Computer Organization & Systems

Summer 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 on a regular basis.

Announcements

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

  • Assignment 6 Posted! Friday August 1 The final assignment, Assignment 6 has been posted in the assignments dropdown. It is meant to act as a capstone for all the topics we've covered this quarter by implementing your very own heap allocator! We hope you have fun with it. It is due Thursday 8/14 at 11:59PM PT and no late submissions are accepted on this assignment, whether or not you have free late days remaining, except OAE accommodations. There is also a checkpoint deadline by which point you need to submit the first part of the assignment (the implicit allocator). You can find more details on the assignment page.

  • Assignment 5 Posted! Friday July 25 Assignment 5 has been posted in the assignments dropdown. It is meant to reinforce the topics of assembly translation, reverse engineering, and trust and privacy. The backstory: you have been hired as a security expert for Stanford Bank (a fictional on-campus bank). They need you to investigate reports of infiltration and security issues and replicate the issues so that they can fix them. There are three parts to this assignment, and each one will have you investigate supposed vulnerabilities and assess the risks the bank faces. These problems are like C/assembly "puzzles" to solve, and we hope you enjoy solving them and exploring this material as much as we enjoyed creating them! The assignment is due Friday 8/1 at 11:59PM PT. You can find more details on the assignment page. We strongly recommend getting started early on this assignment!

  • Assignment 4 Posted! Friday July 18 Assignment 4 has been posted on the assignments page. It is meant to reinforce the topic of generics, disclosure and partiality, void * pointers and function pointers, with exercises ranging from implementing your own version of the ls command to implementing your own version of the sort command. We hope you have fun with it! The assignment is due Friday 7/25 at 11:59PM PT. You can find more details on the assignment page.

  • Assignment 3 Posted! Friday July 11 Assignment 3 has been posted on the assignments page. It is meant to reinforce the topic of pointers, arrays and heap allocation, with exercises ranging from implementing a convenient version of a C file I/O function to implementing your own versions of the Unix "tail" and "uniq" commands. We hope you have fun with it! The assignment is due Friday 7/18 at 11:59PM PT. You can find more details on the assignment page.

  • Assignment 2 Posted! Friday July 4 Assignment 2 has been posted on the assignments page. It is meant to reinforce the topic of C Strings and thorough documentation, with exercises ranging from implementing tools to display environment variables to implementing your own version of the Unix "which" command. We hope you have fun with it! The assignment is due Friday 7/11 at 11:59PM PT. You can find more details on the assignment page.

  • Assignment 1 Posted! Friday June 27 Assignment 1 has been posted on the assignments page. It is meant to reinforce the topics of bits, bitwise operators, and integer representations, with exercises ranging from implementing the core "saturated arithmetic" algorithm to a bit-level particle simulation to understanding the effects of integer representations on real-world software. We hope you have fun with it! The assignment is due Friday 7/4 at 11:59PM PDT. You can find more details on the assignment page.

    As you start working, we want to include a reminder about the course style guide; it contains an in-depth reference about how to ensure your programs have great style! We have also added a new codecheck tool to this assignment - check out the spec for more information.

  • Assignment 0 Posted! Mon. Jun 23 Assignment 0 has been posted under the assignments tab. It is meant as an introduction to Unix and C, with exercises ranging from uncovering who got unauthorized access to a filesystem to modifying a provided C program to accept command-line arguments. We hope you have fun! The assignment is due Fri. 6/27 at 11:59PM PST.

  • Welcome! Mon Jun 23 Welcome to CS107! Class starts on Monday, June 23rd at 1:30 PM in Gates B3. We are looking forward to meeting you and starting off a great quarter together! In the meantime, please feel free to check out the updated FAQ. It covers questions about recorded lectures, conflicting classes, and more. We hope you find it helpful! CGOE students, please check out our CGOE handout for more information on CGOE logistics.

Course Logistics

Lectures: Mon/Wed/Fri 1:30 PM - 2:45 PM in Packard 101

Labs: Will be announced soon

Exams:

  • Midterm Exam
    Date/Time: Wednesday, July 16th, 1:30PM-2:45PM PDT
    Location: Packard 101
    Info: midterm webpage

  • Final Exam
    Date/Time: Friday, August 15th, 3:30PM-6:30PM PDT
    Location: Hewlett 201
    Info: final exam webpage

Submit our Exam information form if at least one of the following applies:

  • have an academic or University conflict with the midterm time, and absolutely cannot make the regularly scheduled midterm.
  • are a CGOE student wanting to take exams on campus
  • if you want a left-handed desk when assigning seating for the exams

Exam Information Form

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: akeppler@stanford.edu, oadekola@stanford.edu
Head TA email: bbyan@stanford.edu

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!

Meet the Staff

Adam Keppler (Instructor)

Ola Adekola (Instructor)

Ben Yan (Head TA)