CS 161: Operating Systems Spring 2016
Tuesday/Thursday 1:00-2:30
Pierce 301
James Mickens & Margo Seltzer
Professors |
Teaching Fellows
Note: TFs will not be holding office
hours this week (5/2).
|
James Mickens |
Nikhil Benesch: benesch@college.harvard.edu |
Maxwell Dworkin 335 |
Office Hours: Wednesday 4:30 - 6:30 (MD 121) |
mickens@g.harvard.edu |
Rob Bowden: rbowden91@gmail.com
|
http://mickens.seas.harvard.edu |
Office Hours: Thursday 6:00 - 8:00 (Thayer Common Room, probably in the room off the kitchen) |
(617) 384-8132 |
Michelle Deng: mdeng@college.harvard.edu |
Office hours: Wednesday 1:00pm - 3:00pm |
Office Hours: Tuesday 5:00 - 7:00 (MD 2nd Floor Lounge until 6; MD 119 after 6 at CS Night) |
Margo Seltzer |
David Ding: fding@college.harvard.edu |
Maxwell Dworkin 241 |
Office Hours: Sunday 7:30 - 9:30 (Adams Dining Hall) |
margo@eecs.harvard.edu |
Sam Fishman: sfishman@college.harvard.edu |
http://www.eecs.harvard.edu/~margo
| Office Hours: Monday 7:30pm - 9:30pm (Kirkland Dining Hall) |
(617) 496-5663 |
Alex Patel: alexanderpatel@college.harvard.edu |
Office hours: Tu/Th 2:30 - 4:00 |
Office Hours: Saturday noon - 3:00 (MD 221, Pierce 100f on 2/27 and 4/16) |
Announcements
- 2/8 Section times for the rest of the semester:
- Tuesday: 7:00 - 8:30 PM (MD 223 -- we are still looking for a larger room)
- Wednesday: 3:00 - 4:30 PM (Pierce 320 -- ditto)
- Wednesday: 7:00 - 8:30 PM (Barker Center 24 -- McFadden Room)
- Please sign up for the Piazza group! For the first week of the semester
we will post announcements here, but after that point, we will post all
announcements via Piazza.
- Please bring laptops to class, regularly.
- We will have two sections each week. We schedule them for two hours,
but they will typically be shorter. You may attend whichever section
you want. You may attend both sections, but they will typically contain
the same information.
Prerequisites
Computer Science 61 or permission of instructor.
Text
Doeppner: Operating Systems in depth (required)
Overview
This course is an introduction to operating systems.
After completing this course, you should be able to:
- Explain how operating systems provide the abstractions with which
programmers and users are familiar.
- Work effectively with a partner.
- Design, implement, modify, and analyze complex software systems
- Undertake different types of design projects including: implementing
to a well-defined interface, designing appropriate interfaces to provide
specified functionality, extending an existing body of code.
- Explain through examples how violation of good design
and coding practices lead to security problems.
- Analyze how operating systems problems are addressed in different
systems and understand why particular approaches were taken.
We teach this class in a combination
flipped
and conventional, but highly interactive, style.
Days on which we are officially flipped are marked clearly
on the syllabus. Each one will
(almost always) have:
- Pre-class work: typically reading and/or video clips on a particular
topic.
- Web-work: a short web-based form that will ask you to demonstrate
understanding of the pre-class work.
On these days, attendance is mandatory and you should have completed
both the pre-class work and the web work before coming to class.
We check the web work before class so that we can discuss issues that were
not clear from the pre-class work.
While we do not expect that you will be writing the majority of OS161
code during these flipped sessions, we will use them to help you
become familiar with the code base you'll be using this semester,
wrestle and master with the concepts most central to the course,
and evaluate and improve design documents.
Classes that are not flipped will frequently still have interactive
in-class work, but will not require any pre-class preparation.
These more conventional classes will frequently take place while you
are working on the three heavy assignments for the course.
Although we will not take attendance for those classes, attendance is
strongly encouraged. Furthermore, there may be short (1 minute)
surveys due with classes; these are required.
Although this is our fourth year using this style,
the precise structure of the classes continues to be a work in progress.
We always welcome feedback -- tell us what is working for you and what
is not working for you.
You can read about Professor Seltzer's first experience flipping this
course on
her blog.
Course Requirements |
Course Policies |
Class participation (10%) |
This includes pre-class work, small-group work, speaking
in class and participation on Piazza. |
Four homework assignments (50%) |
No late days for assignment 1 |
Midterm (15%) |
Assignments 2-4 completed in teams of 2 |
Final take-home exam (25%) |
5 total late days for assignments 2-4 |
Collaboration Policy
There are three types of work associated with this course and each
has its own specific policy for collaboration.
- Web Work: These are pre-class assignments due the day of class
and should be completed by individuals without collaboration.
- Homework assignments: Homework assignments are to be completed
by the individual or team whose name(s) appear(s) on the submission.
You are free to discuss the assignment with anyone else in the class,
including design documents, debugging tips, or suggested tools.
When such discussions influence your design or implementation,
you must identify the individuals who influenced you in the written
documents that accompany your assignment.
Similarly, if you get design ideas from a web site, book, or external
piece of code, you should cite those sources as well.
- Exams: No collaboration is allowed, but the exams are open book --
more details will accompany each exam.
We encourage students to talk to each other about the course.
In particular, you can always discuss technical details about software
used in the course.
You can share design information, help each other debug, brainstorm ideas,
talk about CS161 over dinner, shout out breakthroughs in your sleep, etc.
Academic integrity requires that when you submit work, you make it clear
who contributed to the work and from where ideas came.