Operating Systems Principles

NOTE: this website is out of date. This is the course web site from a past quarter, Fall 2023. 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.

Fall 2023

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 20 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 Tues. Dec 19 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 19 by Nick Assignment 6 grades have been posted to the Gradebook page. The quartiles of functionality scores on the assignment were as follows (/97): 1st quartile = 95, second and third quartiles = 97; rock on! See Ed for a more in-depth announcement about grading feedback.

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

  • assign4 Grades Released Sun. Dec 10 by Nick Assignment 4 grades have been posted to the Gradebook page, along with manual code review scores for the assignments. The quartiles of the functionality scores were as follows (/156): first quartile 152, second quartile 154, and third quartile 156. Rock on! See Ed for a more in-depth announcement about grading feedback.

  • Final Exam Fri. 12/15 8:30AM-11:30AM Tues. Dec 5 by Nick The CS111 final exam is on Friday, December 15 from 8:30-11:30AM in Dinkelspiel Auditorium. Please see the final exam webpage for information about the exam, as well as study tips and review materials.

    If you have not already let us know about academic accommodations (e.g. OAE) or athletics accommodations, please let us know as soon as possible. We'll also be hosting a review session for the exam, the details of which are coming soon!

  • assign6 Released! Fri. 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/8 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 17 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. We've also added lecture scores to the gradebook page 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!

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

  • assign5 Released! Tues Nov 14 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 Thurs 11/30 at 11:59PM PT. You can find more details on the assignment page.

  • Midterm Grades Released Tues Nov 14 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!

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

  • assign4 Released! Sat Nov. 4 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 reflecting on trust, managing boarding Caltrain passengers and coordinating guests at a party. We hope you have fun with it! The assignment is due Mon 11/13 at 11:59PM PT. You can find more details on the assignment page.

  • assign1 Grades Released Tues Oct. 24 by Nick Assignment 1 grades have been posted to the Gradebook page. The quartiles of scores on the assignment were (/97): 1st quartile = 91, second quartile = 94, third quartile = 96. Nice work! Check out Ed for a debrief of the assignment.

  • Midterm Exam Wed. 11/1 7-9PM Mon 10/23 by Nick The CS111 midterm exam is on Wednesday November 1st from 7-9PM in Cemex Auditorium. Please see the midterm exam webpage for information about the exam, review materials and study tips. You got this!

  • assign3 Released! Thurs 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 Sun Oct 29 at 11:59PM PT. You can find more details on the assignment page. Wednesday's lecture covers enough material to work up through single-process pipelines, and the remaining portions require material covered on Fri. 10/20.

  • assign2 Released! Fri. Oct 13 by Nick Assignment 2 has been posted on the assignments page. It is meant to reinforce the topic of crash recovery and OS trust with exercises ranging from implementing components of a crash recovery tool to using provided tools to explore logging filesystems and crash recovery tradeoffs to exploring assumptions we make when we use operating systems. We hope you have fun with it! The assignment is due Wed 10/18 at 11:59PM PT. You can find more details on the assignment page.

  • assign0 Grades Released Thurs Oct 12 by Nick Assignment 0 grades have been posted to the Gradebook page. The quartiles of scores on the assignment were (/80): 1st quartile = 77, second quartile = 78, third quartile = 80. Nice work! Check out Ed for a short debrief of the assignment.

  • assign1 Released! Tues. Oct. 3 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 Thursday October 12th at 11:59pm. See the assignment page for more information. 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. Monday's lecture covers enough material to implement the inode and file layers (and we will do more practice with doubly-indirect blocks on Wed); the remaining portions require material covered on Wed. 10/4.

  • Section Assignments PostedSun. 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, and we also plan to add a few more section times soon with available space. If you didn't submit section preferences, you can also join any section with space available.

    Sections start Wed., 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, including makeup sections, on the course information page. We'll see you in section this week!

  • assign0 Released! Wed. Sep 27 by Nick Assignment 0 has been posted on the assignments page. It is meant to get you up to speed with the tools, techniques and some of the C/C++ features we'll be relying on this quarter, and consists of some code reading, short answer questions, and a little code writing. We hope you have fun with it! It is due on Monday October 2 at 11:59pm. See the assignment page for more information. Also check out our course style guide for tips and guidelines on how to write code with good style!

  • Section Signups Open until Sat. 5PM Wed. Sep 27 by Nick Section preference submissions open after lecture today! 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 once it opens. For more information about sections including attendance, missing sections, and other policies, see the sections portion of our course syllabus.

  • Apply to CS111ACE! Tues Sep. 26 by Nick If you're looking for more practice and support as you take CS111, consider applying for CS111ACE ("CS111A")! It 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. It is done in addition to all the normal requirements for CS111, and is scheduled this quarter for Tues 9:30-11:20AM in 50-51A. Enrollment 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 on Axess. If you have questions, please email Trip Master, the ACE CA, at tmaster@stanford.edu.

  • Welcome! Mon Sep. 25 by Nick Welcome to CS111! Class starts on Wednesday, September 27th 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 this quarter. In the meantime, please feel free to check out our FAQ. It covers questions about recorded lectures, conflicting classes, CS111ACE, 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: Wednesday, November 1, 7-9PM
    Location: Cemex Auditorium
    Info: midterm webpage

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

Feedback

  • How are we doing? Submit anonymous feedback here.

Course Staff

Instructor email: troccoli@stanford.edu
Assignment/Exam Accommodations TA: Michela Marchini (marchini@stanford.edu - please put "CS111" in subject line)

Visit the Getting Help page for more information about how to contact the course staff.

Aman Kansal

Diego Ahmad-Stein

Eric Tang

Evan Saracay

Isaac Gorelik

Michael Cao

Michela Marchini

Michelina Hanlon

Nirvik Baruah

Priya Khandelwal

Wilmer Zuna

Yash Govil

CS111ACE CA:

Trip Master (tmaster@stanford.edu)

CS111 Embedded Ethics:

Liana Keesing