Our ninjas are all (excellent) returning 2016 students.
Some will do local office hours, some remote, and some may help out on the
forums.

Unofficial Teaching Assistants

Scott Haseley (test161 maintainer)

Guru Prasad (the official OS/161 Guru)

Jinghao Shi (ultimate Tier 3 support)

These blue group graduate students will help
with office hours and work on tool development.
All are former 421/521 students!

Operating Systems Briefly Defined

Operating System:

A computer program that

multiplexes hardware resources and

implements useful abstractions.

The OS is just another computer program! (If a large,
complex, mature and mission critical one.)

Multiplexing allows multiple people or programs to use the same set of
hardware resources—​processors, memory, disks, network connection—​safely and
efficiently.

Abstractions--processes, threads, address spaces, files, and
sockets—​simplify the usage of hardware resources by organizing information
or implementing new capabilities.

Motivating This Class

How many of you have participated in OS development?

How many of you regularly program in languages that use operating system
abstractions directly?

And C is a dead language—​rightfully so!

So why study operating systems? Why is this class even offered? Why is it
required?

!

Remind me

What’s this for again?

Why Study Operating Systems?

Reality: this is how computers really work, and as a computer scientist or
engineer you should know how computers really work.

Ubiquity: operating systems are everywhere and you are likely to eventually
encounter them or their limitations.

Beauty: operating systems are examples of mature solutions to difficult
design and engineering problems. Studying them will improve your ability to
design and implement abstractions.

Why Program Operating Systems?

Design: programming operating systems stresses the importance of careful
design and specification before coding begins. You will learn the value of
design, probably the hard way.

Difficulty: operating systems are large existing code bases where new
solutions have stringent performance requirements. Programming operating
systems will make you a better programmer and improve all of your subsequent
work.

Debugging: debugging operating systems is challenging due to their multi-
threaded nature and the lack of typical debugging support provided to
applications. Again, debugging operating systems will sharpen your debugging
skills.

Course Structure

Conceptual learning…​

Lectures

Recitations

Exams

…​by doing (programming).

Learning Objectives: Conceptual

When you finish CSE 421/521 you will:

understand the abstractions supported by modern operating systems

be able to describe how operating systems policies and mechanisms safely
and efficiently multiplex hardware resources

be able to analyze historical, current, and emerging operating system
designs and features

The main way we will know that you are learning is by your participation in
class and recitations.

!

2016 Positive Student Feedback

I liked the lectures/videos/notes, the course website and assignment
submission/feedback system is stellar, and Geoff is very enthusiastic about
the course.

The OS161 project and the amount of of hours provided for it was
incredibly challenging but manageable. The heavy weight on exams allowed good
leniency so the project wasn’t one make or break grade.

The projects were really good. I learnt a lot from them. TAs were really
helpful.

The work is very hard, but incredibly engaging. This course is definitely a
real-world prep course and goes beyond the classroom, teaching time
management, problem solving and different types of thinking. The lectures were
very interesting and the course website is fantastic!

Geoff is easily one of the best professors I’ve ever had. You can tell he is
passionate about what he teaches

Everything…​ The professor goes out of his way let everyone learn what he
wants to teach.

The efforts put forth by professor and TAs is really good. They have
designed the course structure and timeline very well. Also, one thing which I
felt in love with was test161. It is the test suite I have never seen
before. They have worked very hard for that

2016 Negative Student Feedback

Of course, not everyone is happy.

There are 2 sides to Geoff either he is in a great mood or he is in a bad
mood. I think that he is generally a really nice guy but you do not what to
get on his bad side.

He made students feel very unwelcome during office hours, he seemed hostile
and rude at times to students who were struggling but nice to others who had a
better understanding. I was personally scared of interacting with him due to
the way he treated students during office hours.

Professor Challen is a sadistic being.

Failed at being a developer at Microsoft and in turn came back to haunt the
halls of the CSE department.

Still keeps sending emails to all CSE students more than any other
in the department. Better to stop doing that.

So make up your own mind about which are the "alternative facts".
Full course reviews for
2015
and
2016
are available online.
Or visit my
RateMyProfessor
page.

I want you to make the right decision about this course and whether it is
right for you.