Operating Systems Principles

Winter 2025

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.

  • Mid-Quarter Grade Update Posted Thu. Feb 27 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 and MQE extra credit 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! See our Ed post for more information as well: click here.

  • assign3 Grades Released Mon Feb 24 by Nick Assignment 3 grades have been posted to the Gradebook page. The median functionality score was 99/100; rock on! See Ed for a more in-depth announcement about grading feedback.

  • [early release] assign5 Released! Sat Feb 22 by Nick Assignment 5 has been posted in the assignments dropdown - the original release date is this coming Monday, but Friday's lecture material allows work on the first part of the assignment, and so we are releasing it early just in case for anyone who wants to take an early look. The default timeline for the assignment is still a release this Monday, so there's certainly no requirement to get started on this early if you aren't able to! This is just an early release for folks who want to take a look. Part 1 (Thread) can be done with material from Friday's lecture, and the remaining parts can be done after Monday's lecture. The assignment 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 3/6 at 11:59PM PT. You can find more details on the assignment page.

  • Midterm Grades Released Wed Feb 19 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. You can also find more information in our Ed post here.

  • assign2 Grades Released Mon Feb. 10 by Nick Assignment 2 grades have been posted to the Gradebook page, along with feedback on your readmes and code. The median functionality/readme score was 98/98. Awesome job! See Ed for a more in-depth announcement about grading feedback.

  • assign4 Released! Mon Feb. 10 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 2/24 at 11:59PM PT. You can find more details on the assignment page. Monday 2/10's lecture covers enough material to get started on the programming portion of the assignment - the ethics / written portion requires material we will cover on Wednesday, 2/12.

  • Midterm Exam Thurs. 2/13 7-9PM Fri 2/7 by Nick The CS111 midterm exam is on Thursday February 13th from 7-9PM in Hewlett 200. Please see the midterm exam webpage for information about the exam, review materials and study tips. We'll also be holding a review session on Monday 2/10 from 7-8PM in 380-380F- see the midterm page for more information. You got this!

  • assign1 Grades Released Thurs Thurs 2/6 by Nick Assignment 1 grades have been posted to the Gradebook page. The median score for functionality was 91/93. Nice work! Check out Ed for a debrief of the assignment.

  • assign3 Released! Wed Jan. 29 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 Feb 9 at 11:59PM PT. You can find more details on the assignment page. Wednesday's lecture covers enough material to get started on the assignment, though we will do more practice/discusssion about multiprocess pipelines on Friday.

  • assign0 Grades Released Thurs Jan. 23 by Nick Assignment 0 grades and style feedback have been posted to the Gradebook page! The median score for code functionality and questions.txt responses was 79/80. Nice work! Check out Ed for a debrief of the assignment.

  • assign2 Released! Wed. Jan 22 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 1/29 at 11:59PM PT. You can find more details on the assignment page.

  • Section Assignments PostedMon. 1/13 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. For CGOE students, there is an announcement on Canvas about section logistics for attending in person, remotely, or completing section on your own.

    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!

  • assign1 Released! Fri. Jan 10 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 Friday January 24th at 11:59pm. See the assignment page for more information. As you get started, check out our review videos on Canvas, especially on pointers and memory, as this assignment includes work with pointers and C strings.

  • Section Signups Open until Thurs. 11:59PM Mon. Jan 6 by Nick Anytime through Thursday at 11:59PM 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 Thursday at 11:59PM 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.

  • assign0 Released! Mon. Jan 6 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, January 13th at 11:59pm and no late days/submissions are accepted on this assignment (except for OAE / approved Head TA extensions). 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!

  • Apply to CS111ACE! Mon Jan. 6 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 Courses 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 Mon. 8:30-10:20AM in 320-109. 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 Matthew Ayoob, the ACE CA, at mayoob@stanford.edu.

  • Welcome! Sun Jan. 5 by Nick Welcome to CS111! Class starts on Monday, January 6th at 11:30AM in NVIDIA Auditorium. 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! For CGOE students, we have a handout available with information about course logistics: click here.

Course Logistics

Lectures: Mon/Wed/Fri 11:30AM-12:20PM in NVIDIA Auditorium

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

Exams:

  • Midterm Exam
    Date/Time: Thurs, February 13, 7-9PM PDT
    Location: Hewlett 200
    Info: midterm webpage

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

Feedback

  • How are we doing? Submit anonymous feedback here.
  • Submit feedback about a specific piece of coursework (assignments or exams) here

Course Staff and Contact Information

For any OAE accommodations, please submit your OAE letter via our OAE accommodations form here, and the Head TA will follow up with more information.

OAE Submission Form

Instructor email: troccoli+cs111@stanford.edu for CS111 emails, troccoli@stanford.edu for non-CS111 emails
Head TA email: shrutive+cs111@stanford.edu

You can email the Head TA for requests of a personal nature, such as about: Office of Accessible Education accommodations, alternate exams, extension requests or other accommodations, assignment autograder test scores, enrollment questions, auditing, or other personal matters.

You can email the instructor for questions about private/personal matters.

You can email the grader listed at the top of your assignment grade report if you have questions about assignment style or manual review grades - for questions about assignment autograder test scores, please email the Head TA.

You can email your section TA for questions about section attendance grades, or for section accommodations (e.g. missing a section due to extenuating circumstances).

Note that email is not intended for course material or code questions; for those questions, please take advantage of the discussion forum or helper hours!

A profile picture for Head TA Shruti Verma

Shruti Verma (Head TA)

A profile picture for TA Cary Xiao

Cary Xiao

A profile picture for TA Clément Dieulesaint

Clément Dieulesaint

A profile picture for TA Elyas Obbad

Elyas Obbad

A profile picture for TA Emma Escandon

Emma Escandon

A profile picture for TA Gabe Seir

Gabe Seir

A profile picture for TA Grant Bishko

Grant Bishko

A profile picture for TA Jay Chauhan

Jay Chauhan

A profile picture for TA June Lee

June Lee

A profile picture for TA Luciano Gonzalez

Luciano Gonzalez

A profile picture for TA Niveditha Iyer

Niveditha Iyer

A profile picture for TA Poojan Pandya

Poojan Pandya

A profile picture for TA Proud Mpala

Proud Mpala

A profile picture for TA Usman Tariq

Usman Tariq

CS111ACE CA:

A profile picture for ACE TA Matthew Ayoob

Matthew Ayoob (mayoob@stanford.edu)