Computer Organization & Systems

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

Winter 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 Exam Information and Study Guide posted Wednesday Mar 9 by Chris We have posted the final exam information and study guide.

    A couple of items to note:

  • The exam will be held in two different locations, depending on your last name. This should allow students to have sufficient room to socially-distance.
  • It will be a closed book exam -- you can bring in a 1-page (double-sided) page of notes (no magnifying tools allowed), and you will have access to two reference sheets that we will provide.
  • If you have OAE accomodations, I will be sending out an email by Friday about the details.
  • We have decided not to include the optimizations from Monday's lecture on the exam.

    Let me know if you have questions!

  • Assignment 6 released Monday Feb 28 by Chris We have released your final assignment, Heap Allocator!

    The last two lectures (Friday Feb 25th and Monday, Feb 28th) have gone over the basics in great detail. There are three videos about the project, as well, on Canvas

    This assignment is challenging but rewarding -- it pulls together many concepts from the quarter and serves as an excellent capstone to the course. Enjoy!

  • Assignment 5 released Wed Feb 16 by Chris We have posted assignment 5, Banking on Security. If you've heard me mention the "binary bomb" in class, I forgot that we actually renamed that part of the assignment to "Secure Vault," which (I think) is a fun puzzle with (not so) serious consequences if you don't step carefully -- you might set off the bank alarm! (and by "step", I mean "gdb step," of course!).

    The assignment is due Monday February 28th, which is not on a Wednesday like the other assignments. There is a late submission deadline of that Wednesday.

    Enjoy!

  • midterm graded! Mon Feb 14 by Chris Class,

    We have finished grading the midterm exam, and you should have received an email from Gradescope to that effect. Overall, great job! I tried to make the exam challenging but fair, and that seems to be the case. The median grade was 42/50 (84%), and the mean was 39/50 (78%), which is excellent for a CS107 exam.

    Keep in mind that when you view your exam, you can see the output of our autograder on the previous page to each graded problem (with your code).

    Keep in mind that when you view your exam, you can see the output of our autograder on the previous page to each graded problem (with your code). There are three links that may be helpful when you are reviewing your exam:

  • If you want to see the code you submitted, click this link.

  • If you want to see the original exam, click this link.

  • If you want to see our solutions, click this link.

    Keep in mind that our solutions are not the only way to solve the problem. Also keep in mind that we may have taken off points even if you got the correct output -- for example, if you had extraneous and/or unnecessary code in your solution, that might have meant a loss of points.

    We do make mistakes in grading, and you will have the opportunity to request a regrade for particular problems starting tomorrow, Tuesday, at 9am and going through next Monday at 9am. We won't look at regrade requests after next Monday morning without a good reason.

  • assign4 Released! Wed Feb 2 by Chris 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 Wed 2/16 at 11:59PM PT. You can find more details on the assignment page. NOTE: void * material will be on the midterm exam! Part of your studying should be to start this assignment.

  • assign3 Released! Wed Jan 26 by Chris 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 Wed 2/2 at 11:59PM PT. You can find more details on the assignment page.

  • assign2 Released! Wed Jan 19 by Chris 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

    We will be going over more strings and pointers/array material on Friday, but I strongly urge you to start reading the assignment (at least) before then.

    ! The assignment is due Wed 1/26 at 11:59PM PT. Note that starting with this assignment, part of your style grade will be dependent on having no code issues when run through the codecheck tool. You can find more details on the assignment page.

  • assign0 Grades Released Wed Jan 19 by Chris Assignment 0 grades have been posted to the Gradebook page, along with style feedback for the assignments.

  • assign1 Released! Mon Jan 10 by Chris 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 cell simulation to understanding the effects of integer representations on real-world software. We hope you have fun with it! The assignment is due Wed 1/19 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. Additionally, through TA helper hours and the discussion forum, our focus will be on supporting you so that you can track down your own bugs. Please ask us how to best use tools (like the brand-new GDB!), what strategies to consider, and advice about how to improve your debugging process or track down your bug. If you have debugging questions during helper hours, please make sure to gather information and explore the issue on your own first, and fill out the QueueStatus questions with this information. Starting with a future assignment, we will require this information when signing up for helper hours for debugging help, so please make sure to provide as much information as possible.

  • Lab Assignments PostedMon. Jan 10 by Chris We have posted lab assignments - you can view your assignment from the "labs" 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 lab with space available. Unfortunately, if a lab is full, we are not able to accommodate additional students at this time, but check back later, as enrollments may shift over time.

    Labs start Tues., and there's nothing you need to do before lab this week - you can see your lab location on the lab assignments page. Your lab leader will introduce themselves and explain everything about lab and what it's all about. You can find more information about labs and lab policies on the course information page. We'll see you in lab this week!

  • Apply to CS 107A!Tue Jan 04 by Andrew If you're looking for more practice and support as you take CS 107, consider applying for CS 107A! CS 107A is held Tuesdays and Thursdays from 4:00-5:00pm PT, and is a 1-unit companion course to CS 107. Enrolling lets you attend section (review of course material and practice problems), attend CS 107A-specific office hours, and come to exam review sessions. Everything CS 107A-related (including a more detailed syllabus) can be found on the course website, cs107a.stanford.edu. If you're interested, submit an application (see website) and contact Andrew (adbenson@).

  • Welcome! Sun Jan 02 by Chris Welcome to CS107! Class starts on Monday, January 3rd at 11:30AM. Due to Stanford policy / COVID-19, the first two weeks of class will be online at the following Zoom link: https://stanford.zoom.us/j/96818645932?pwd=dlhhNnZBbE02YmI3a3JJSS81Z2dQZz09 If we return to on-campus classes, then lectures will be held in Bishop Auditorium. We are looking forward to meeting you and starting off a great quarter together! We'll have more details to come about the format of CS107's winter offering. In the meantime, please feel free to check out the updated FAQ. It covers questions about recorded lectures, conflicting classes, CS107E, CS107A, and more. We hope you find it helpful! SCPD students, please check out our SCPD handout for more information on SCPD logistics.

Course Logistics

Lectures: Mon & Fri 11:30AM-1PM online (first two weeks), then in Bishop Auditorium (hopefully)

Labs: Tue/Wed/Thu at various times; students sign up for labs after the quarter begins.

Exams:

  • Midterm Exam
    Date/Time: Tuesday/Wednesday, February 8th/9th, 2-hour block between 8am Tuesday-10pm Wednesday (your choice)
    Locations: Online
    Info: midterm webpage

  • Final Exam
    Date/Time: Tuesday, March 15th, 8:30AM-11:30AM
    Location:
    Last names beginning with A-L: Bishop Auditorium
    Last names beginning with M-Z: 320-105
    Info: final exam webpage

Feedback

  • How are we doing? Submit anonymous feedback here.

Course Staff

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

Aditi Gaur

Gurdeep Sullan

Hanson Lu

Jasmine Shih

Makena Low

Megan Worrel

Ofure Ebhomielen

Ricardo Iglesias

Sanjaye Narayan

Sasha Moore

CS107A CA: