Operating Systems Principles

NOTE: this website is out of date. This is the course web site from a past quarter, Fall 2022. If you are a current student taking the course, you should visit the current class web site instead. If the current website is not yet visible by going to cs111.stanford.edu, it may be accessible by visiting this link until the new page is mounted at this address. Please be advised that courses' policies change with each new quarter and instructor, and any information on this out-of-date page may not apply to you.

Autumn 2022

Important course announcements will be posted below and announced in class. You are responsible for all material that appears here and should check this page for updates frequently.

Announcements

Scroll to see more announcements. Updates will also be posted on the discussion forum.

  • Final Course Grades Posted Wed. Dec 21 by Nick Final grades have been uploaded to Axess. Check your Stanford email for more details about grades. We have also posted all your grade information and breakdown to the Gradebook page. There is more information about how we calculated final course grades on the Ed forum here. Have a great winter break - we hope you enjoyed the course!

  • Final Exam Grades Released Wed. Dec 21 by Nick Final exam scores have been released via Gradescope, an online course grading website. You can find more information about the exam solutions, statistics, how to see your score, and information about regrade requests, on the final exam grading page here. Awesome job on the exam!

  • assign6 Grades Released Tues. Dec 13 by Nick Assignment 6 grades have been posted to the Gradebook page. The quartiles of scores on the assignment were all 88/88; rock on! See Ed for a more in-depth announcement about grading feedback.

  • assign5 Grades Released Tues. Dec 13 by Nick Assignment 5 grades have been posted to the Gradebook page, along with scores for manual functionality code review. The quartiles of scores on the assignment were as follows (/101): 1st quartile = 97, second quartile = 99, third quartile = 101. Great job! See Ed for a more in-depth announcement about grading feedback.

  • Final Exam Fri. 12/16 8:30AM-11:30AM Wed. Dec 7 by Nick The CS111 final exam is on Friday, December 16 from 8:30AM-11:30AM in CEMEX Auditorium. Please see the final exam webpage for information about the exam, as well as study tips and review materials. The exam will rely on BlueBook just like for the midterm exam.

    If you have academic accommodations (e.g. OAE) or athletics accommodations, or if you do not have a workable laptop for the exam, please let us know by Wednesday, December 7 at 11:59PM PDT. Limited charging outlets will be available during the exam. We'll also be hosting a review session for the exam, the details of which are coming soon!

  • assign4 Grades Released Fri. Dec 2 by Nick Assignment 4 grades have been posted to the Gradebook page, along with manual code review scores for the assignments. The quartiles of scores on the assignment were all 96/96; rock on! See Ed for a more in-depth announcement about grading feedback.

  • assign6 Released! Thurs. Dec 1 by Nick The final assignment, assign6, has been posted in the assignments dropdown. It is meant to reinforce the topics of virtual memory and demand paging; you will implement the core components of a demand paging system to track page mappings and swap pages to disk. We hope you have fun with it! It is due Friday 12/9 at 11:59PM PT and no late submissions are accepted on this assignment, whether or not you have free late days remaining, except in cases of instructor-granted extensions or OAE accommodations. You can find more details on the assignment page.

  • Mid-Quarter Grade Update Posted Fri. Nov 18 by Nick We've posted a mid-quarter grade update page containing overall course statistics for your work so far this quarter. That page includes your raw overall assignment score so far, your overall raw course score, and your percentile range. You can view all this information here. In addition, we have added your autograder score for assign4 (82 of the 96 points), as well as midterm scores and lecture attendance records, to the Gradebook; you can view this information here. Lastly, we have also posted a page containing information about commonly-asked questions heading into the final weeks of the course, for example about how to interpret course grades, succeed in the remainder of the course, and more. We hope you find it helpful!

  • Midterm Grades Released Wed Nov 16 by Nick Midterm exam scores have been released via Gradescope, an online course grading website. You can find more information about the exam solutions, statistics, how to see your score, and information about regrade requests, on the midterm grading page here. Awesome job on the exam!

  • assign5 Released! Thurs Nov 10 by Nick Assignment 5 has been posted in the assignments dropdown. It is meant to reinforce the topics of dispatching and scheduling, with exercises ranging from implementing your own thread dispatcher to implementing your own lock and condition variable types. We hope you have fun with it! The assignment is due Wed 11/30 at 11:59PM PT.

  • assign3 Grades Released Mon Oct 31 by Nick Assignment 3 grades have been posted to the Gradebook page. The quartiles of scores on the assignment were as follows (/88): 1st quartile = 85, second quartile = 88, third quartile = 88. Rock on! See Ed for a more in-depth announcement about grading feedback.

  • assign4 Released! Sun Oct. 30 by Nick Assignment 4 has been posted on the assignments page. It is meant to reinforce the topic of multithreading and synchronization, with exercises including managing boarding Caltrain passengers to coordinating guests at a party. We hope you have fun with it! The assignment is due Tues 11/8 at 11:59PM PT. You can find more details on the assignment page.

  • assign2 Grades Released Sun Oct. 30 by Nick Assignment 2 grades have been posted to the Gradebook page, along with feedback on your readmes. The quartiles of scores on the assignment were as follows (/58): 1st quartile = 56, second quartile = 57, third quartile = 58. Awesome job! See Ed for a more in-depth announcement about grading feedback.

  • Midterm Exam Tues. 11/1 7-9PM Sun Oct. 30 by Nick The CS111 midterm exam is on Tuesday November 1 from 7-9PM in 420-041 / 320-105 / 200-002 (depending on last name). Please see the midterm exam webpage for information about the exam, review materials and study tips. You got this!

  • assign3 Released! Wed Oct. 19 by Nick Assignment 3 has been posted on the assignments page. It is meant to reinforce the topics of multiprocessing and pipes; your task is to implement your very own shell! The assignment is due Fri Oct 28 at 11:59PM PT. You can find more details on the assignment page.

  • assign1 Grades Released Mon Oct 17 by Nick Assignment 1 grades have been posted to the Gradebook page. The quartiles of scores on the assignment were all 75/75; way to go! Check out Ed for a short debrief of the assignment.

  • assign2 Released! Tues. Oct 11 by Nick Assignment 2 has been posted on the assignments page. It is meant to reinforce the topic of crash recovery with exercises ranging from implementing components of a crash recovery tool to using provided tools to explore logging filesystems and crash recovery tradeoffs. We hope you have fun with it! The assignment is due Mon 10/17 at 11:59PM PT. Note that starting with this assignment, we aren't able to look at assignment code when helping in helper hours, though we can still provide code-level help. You can find more details on the assignment page.

  • Section Assignments PostedSat. Oct 1 by Nick We have posted section assignments - you can view your assignment from the "sections" dropdown in the top toolbar. We did our best to assign everyone to one of their top choices. On this form, if you'd like, you can also join a different section with space available. Unfortunately, if a section is full, we are not able to accommodate additional students at this time, but check back later, as enrollments may shift over time. If you didn't submit section preferences, you can also join any section with space available.

    Sections start Thurs., and in the first section, your TA will introduce themselves and explain everything about section and what it's all about. You can find more information about section and section policies on the course information page. We'll see you in section this week!

  • assign1 Released! Fri. Sep 30 by Nick Assignment 1 has been posted on the assignments page. It is meant to reinforce the topic of filesystems (specifically the design of the Unix V6 filesystem); your job is to implement the logic for reading from the Unix v6 filesystem. We hope you have fun with it! It is due on Monday October 10 at 11:59pm. See the assignment page for more information. Friday's lecture covers enough material to implement the inode and file layers of the assignment; the directory and pathname layers require material covered on Mon. 10/3.

    Additionally, we'll be holding "YEAH hours" (Your Early Assignment Help Hours) for assignment 1 on Mon 7-8PM in building 200, room 202. It will be recorded for later viewing. We encourage you to start the assignment beforehand and come to the session to go over the assignment as a whole, get tips, and get questions answered!

  • Section Signups Open until Sat. 5PM Tues. Sep 27 by Nick Section preference submissions are now open! Anytime until Saturday at 5PM PDT, please submit your section preferences for which section you would prefer to attend this quarter. Note that preferences are not first-come first-serve; you may fill out your preferences anytime between now and Saturday at 5PM PDT, and you may come back to update your preferences later as well. You can access the preferences form in the "Sections" dropdown at the top of the page. For more information about sections including attendance, missing sections, and other policies, see the sections portion of our course syllabus.

  • Apply to CS111A! Sat Sep 24 by Nick If you're looking for more practice and support as you take CS111, consider applying for CS111A! CS111A is a 1-unit class that is a part of ACE (Additional Calculus for Engineers), a supplementary instruction program that includes weekly sections, office hours, and ACE-specific review sessions. CS111A is done in addition to all the normal requirements for CS111, and is scheduled this quarter for Tues/Thurs 10:30AM-11:50AM in 160-124. Enrollment in CS111A is by application, and you can find more information at this link: click here. Once enrollment decisions are made, students who are accepted will then be given a permission number to enroll in CS111A on Axess. If you have questions, please email Trip Master, the ACE CA, at tmaster@stanford.edu.

  • Welcome! Tues Sep 20 by Nick Welcome to CS111! Class starts on Monday, September 26th at 11:30AM in STLC 111. We are looking forward to meeting you and starting off a great quarter together! We'll have more details to come about the details of CS111's fall offering. In the meantime, please feel free to check out our FAQ. It covers questions about recorded lectures, conflicting classes, CS111A, and more. We hope you find it helpful!

Course Logistics

Lectures: Mon/Wed/Fri 11:30AM-12:20PM in STLC 111

Sections: Wed/Thu/Fri at various times; students sign up for sections after the quarter begins.

Exams:

  • Midterm Exam
    Date/Time: Tuesday, November 1st, 7PM-9PM
    Locations: 420-041 / 320-105 / 200-002 (by last name, see link)
    Info: midterm webpage

  • Final Exam
    Date/Time: Friday, December 16th, 8:30AM-11:30AM
    Location: CEMEX Auditorium
    Info: final exam webpage

Feedback

  • How are we doing? Submit anonymous feedback here.

Course Staff

Instructor email: troccoli@stanford.edu
Visit the Getting Help page for more information about how to contact the course staff.

Bharat Khandelwal

Briana Berger

Keegan Mehall

Michela Marchini

Nikhil Raghuraman

Parthiv Krishna

Pratyush Agarwal

Sumer Kohli

Swayam Parida

Xiyu Zhang

CS111A CA:

Trip Master (tmaster@stanford.edu)