Computer Organization & Systems

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

Fall 2021

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 15 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 15 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 Tue. Dec 14 by Nick Assignment 6 grades have been posted to the Gradebook page, along with feedback on the readmes. The quartiles of scores on the assignment were as follows (/122): 1st quartile = 76, second quartile = 109, third quartile = 116. Awesome job on implementing your heap allocators!

  • assign5 Grades Released Tue. Dec 7 by Nick Assignment 5 grades have been posted to the Gradebook page, along with feedback on the readmes. The quartiles of scores on the assignment were as follows (/102): 1st quartile = 85, second quartile = 93, third quartile = 98. Awesome job!

  • CS107 Recap Page Posted Mon. Dec 6 by Nick As an additional resource to our final wrap-up lecture, we've posted a CS107 Recap Page that sums up everything we did this quarter, where you could go next, and ways to explore the CS107 material further if you're interested. We encourage you to check it out!

  • Final Exam Thurs. 12/9 12:15PM-3:15PM in Dinkelspiel Auditorium Mon. Nov 29 by Nick The CS107 final exam is on Thursday, December 9th from 12:15PM-3:15PM in Dinkelspiel 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 Gradescope 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 Friday, December 3 at 5PM PDT. Limited charging outlets will be available during the exam.

  • assign4 Grades Released Sun Nov 28 by Nick Assignment 4 grades have been posted to the Gradebook page, along with style feedback for the assignments. The quartiles of scores on the functionality portion of the assignment were as follows (/107): 1st quartile = 93, second quartile = 101, third quartile = 106. Awesome job!

  • assign6 Posted Mon. Nov 15 by Nick The final assignment, assign6, 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 Friday 12/3 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 12 by Nick We've updated the Gradebook page to list the lecture quizzes you have completed so far (through lecture 13) and your midterm exam score. We've also posted a separate mid-quarter grade update page containing overall course statistics for your work so far this quarter, as well as a preview of your assign4 functionality score. That page includes your raw overall assignment score so far, your overall raw course score, your percentile, and your partially-graded assign4 functionality score. You can view all this information here. 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 Fri Nov 12 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!

  • assign3 Grades Released Fri Nov 5 by Nick Assignment 3 grades have been posted to the Gradebook page, along with style feedback for the assignments. The quartiles of scores on the functionality portion of the assignment were as follows (/95): 1st quartile = 85, second quartile = 92, third quartile = 95. Rock on! See Ed for a more in-depth announcement about grading feedback.

  • assign5 Released! Thurs Nov 4 by Nick 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 Monday 11/15 at 11:59PM PT. You can find more details on the assignment page.

  • assign2 Grades Released Tues Oct 26 by Nick Assignment 2 grades have been posted to the Gradebook page, along with style feedback for the assignments. The quartiles of scores on the functionality portion of the assignment were as follows (/94): 1st quartile = 82, second quartile = 89, third quartile = 93. Awesome job!

  • assign4 Released! Thurs Oct 21 by Nick 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 11/3 at 11:59PM PT. You can find more details on the assignment page.

  • Midterm Exam Tues. 10/26 7:15-9:15PM Tues Oct 19 by Nick The CS107 midterm exam is on Tuesday October 26 from 7:15-9:15PM in Bishop Aud. / STLC 111 (depending on last name). Please see the midterm exam webpage for information about the exam, review materials and study tips. 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 Friday, October 22 at 5PM. Limited charging outlets will be available during the exam. If you have an academic or University conflict with the midterm time, and absolutely cannot make the regularly scheduled midterm, you must send a request by email to the course staff by 11:59PM on Wednesday, October 20 to arrange an alternate exam time. Please include in your email all the possible times you are able to take the exam from Monday, October 25 to Wednesday, October 27. Any alternate midterm exam must be within this window.

  • assign1 Grades Released Thu Oct 14 by Nick Assignment 1 grades have been posted to the Gradebook page, along with style feedback for the assignments. The quartiles of scores on the functionality portion of the assignment were as follows (/90): 1st quartile = 74, second quartile = 83, third quartile = 89. Awesome job! See Ed for a more in-depth announcement about grading feedback.

  • assign3 Released! Thu Oct 14 by Nick 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 10/20 at 11:59PM PT. You can find more details on the assignment page.

  • assign2 Released! Wed Oct 6 by Nick 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 Wed 10/13 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 Oct 6 by Nick Assignment 0 grades have been posted to the Gradebook page, along with style feedback for the assignments. The quartiles of scores on the functionality portion of the assignment were as follows (/25): 1st quartile = 24, second quartile = 25, third quartile = 25. Way to go! Check out Ed for a short debrief of the assignment.

  • Tweaked Midterm Time Wed Oct 6 by Nick Due to room scheduling constraints, we’re bumping our original midterm time back 15 minutes to be from 7:15-9:15PM PDT instead of 7-9PM PDT as we originally announced. We’re sorry for the late change on this - all other midterm details and policies remain the same, and we’ll have more information as we get closer to the midterm date. Let us know if you have any questions!

  • assign1 Released! Mon Sep 27 by Nick 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 10/6 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 PostedSun. Sep 26 by Nick 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!

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

  • Apply to CS 107A! Tue. Sep 21 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. You can also contact Andrew (adbenson@) with any questions.

  • Assignment 0 Posted Mon. Sep 20 by Nick 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 Mon. 9/27 at 11:59PM PST, and there are no late submissions accepted for this assignment (late days or otherwise), so please make sure to submit by the deadline.

  • Welcome! Sun Sep 19 by Nick Welcome to CS107! Class starts on Monday, September 20th at 1:30PM 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 fall 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 1:30PM-3PM in Bishop Auditorium

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

Exams:

  • Midterm Exam
    Date/Time: Tuesday, October 26, 7:15PM-9:15PM
    Locations: Bishop Auditorium and STLC 111
    Info: midterm webpage

  • Final Exam
    Date/Time: Thursday, December 9th, 12:15-3:15PM
    Location: Dinkelspiel Auditorium
    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

Jasmine Shih

Jonathan Kula

Makena Low

Megan Worrel

Ofure Ebhomielen

Ricardo Iglesias

Sanjaye Narayan

CS107A CA: