Computer Organization & Systems


  • No class Friday 3/10

    As a reminder, there is no lecture on Friday 3/10. We got ahead of schedule due to having video replacements for the two Monday holidays, so we are able to take a break while I'm out of town at a conference in Seattle. There will be office hours during lecture (check the office hours calendar for details). Miss you! See you back Monday! Monday March 10, by Cynthia

  • Assign6 and assign7 deadlines NO GRACE PERIOD

    Just a reminder that there is NO GRACE PERIOD for assign6 and assign7, which are both due Friday of 10th week at 11:59pm. Please turn in early and often so that you are guaranteed some points even in the event of a catastrophe of your submission at the last minute (because you can fall back to earlier submission(s)). Assign7 briefly showed a grace period due to a typo in the configuration file, but this is not correct, there is no grace period. This is to conform with university policy of not having assignments due past the end of dead week Friday, and to allow you to study for your exams in our class and other classes. Monday March 6, by Cynthia

  • Midterm 2 graded

    Midterm 2 is now graded. You have 7 days to submit regrade requests through the Gradescope interface. Monday March 6, by Cynthia


    I think everybody (including myself) is feeling pretty exhausted from the midterm rush, so an extra 24 hours for assign5 seemed like a good idea. New deadline: Saturday 11:59pm (48 hours grace period ends Monday 11:59pm). Thurs March 2, by Cynthia

  • Assign4 grade stats

    Here are the assign4 grade stats: average 49 median 51 stdev 8. Thurs March 2, by Cynthia

  • Assign3 grade stats

    Here are the assign3 grade stats: average 94 median 104 stdev 26. Tues February 14, by Cynthia

  • Presidents' Day lecture video

    Check the syllabus page for a link to the Presidents' Day lecture video. You'll want to watch BEFORE going to lab this week! Monday February 20, by Cynthia

  • Midterm regrades due 2/22

    Midterm regrades will be accepted through Wednesday 2/22 only. Submit through Gradescope. Monday February 20, by Cynthia

  • Assign5 posted

    Assign5 is posted--it's x86 assembly time! Monday February 20, by Cynthia

  • Assign2 grade stats

    Here are the assign2 grade stats: average 78 median 82 stdev 11. Tues February 14, by Cynthia

  • Midterm Exam 1 Room Assignments

    Last names A-R: please go to Hewlett 200. Last names S-Z: please go to HERRINT175 Sun February 5, by Cynthia

  • Assign1 grade stats

    Here are the assign1 grade stats: average 81 median 86 stdev 16. Fri February 3, by Cynthia

  • Assign2 deadline extended

    As I mentioned when I announced the assign1 grace period extension, a consequence of that is a re-evaluation of all the subsequent deadlines in the course. The assign2 deadline has moved to Wednesday (instead of Tuesday). Details on all upcoming assignment deadlines are in this Piazza post. Mon January 30, by Cynthia

  • Assign1 grace period extended

    Due to reports from students and TAs about exceptionally long queue waits at office hours today, the grace period for assign1 is being extended by 12 hours to 11:59am on Friday (just before noon Friday). I wouldn't always do this, but given it is the first assignment and everyone is still adjusting to the course, how to calibrate your work expectations and planning, not to mention adjusting to C/gdb/Unix, I thought it would be a good idea to make a little scheduled adjustment to release some of the pressure.

I'll look into reorganizing the staffing at office hours near deadline times, and also take a look at assign1 to see if improvements can be made (this was its first time going out to students, so I would be doing a thorough look anyway), but that said I strongly encourage and invite everyone to come to office hours as early in the assignment week as possible. That is both to enjoy a no or low wait office hours experience, and to ensure that if problems arise there is plenty of time to address them. Thanks!!

I will also be looking at deadlines for assign2 and assign3 (and onward) to make sure that they have adequate time in light of this extension of the assign1 grace period. Assign2 is undoubtedly shorter than assign1, so even if you are going to the Friday end of assign1's grace period, you should have a chance to regroup, breathe, and get caught up. Assign2 is meant as a warmup for assign3, which is more intense. (I can't rank assign3 in relation to assign1 without doing more investigation of how assign1 went for you, but I will be carefully considering upcoming schedule.)

I sincerely apologize for the stress that many of you have felt today. Please reach out if there is anything else I should know about the details of the situation, or how we can further address it to ensure a learning environment and experience for you. Wed January 25, by Cynthia

  • Assign2

    Assignment 2 is now posted, enjoy!! This one is really just a warm-up for assign3, which will be much more challenging. Assign3 also doesn't have as much wiggle room for grace period (24 hours instead of 48), because it goes right up against our midterm. Therefore, I'm going to release assign3 early and I encourage you to finish assign2 in less than a week, to give yourself more than a week for assign3. You shouldn't need more than a week, but you'll want to have that cushion just in case. Wed January 25, by Cynthia

  • Exam Dates

    All students please complete this form by the end of Week 2, to verify your ability to attend the scheduled midterms and final. Thurs January 12, by Cynthia

  • Labs

    Lab signups are now open. If you haven't had a chance yet, please sign up for a time. Labs begin next week. More info and signup button on the labs page. Thurs January 12, by Cynthia

  • Assign0

    I'm so excited about our new assign0! It's a tutorial on the basics of Unix and our CS107 repository clone/commit/submit procedure, packaged as a scavenger hunt and simulated computer intruder detection activity. Hope you enjoy it. I would suggest coming to an office hours sesstion this week to work on it, even if you don't have a question yet, just to meet other students, TAs, and familiarize yourself with the Gates B08 lab room. The assignment is due Tues (no late submissions on this one since it is a warm-up activity). Thurs January 12, by Cynthia

  • Welcome to Winter 2017!

    Please come on in and browse around! The FAQ under the "Getting Help" menu above answers common questions from prospective students. Our class piazza is open for business if you want to spark a conversation or ask a question.

Lectures are Mondays and Fridays 1:30-2:50pm in Hewlett 200. Looking forward to meeting you! Sun January 8, by Cynthia

Course information

CS107 is the third course in Stanford's introductory programming sequence. Our CS106 courses provide students with a solid foundation in programming methodology and abstractions and CS107 follows on to build up their programming maturity and expand breadth and depth of experience. The course will work from the C programming language down to the microprocessor to de-mystify the machine. With a complete understanding of how computer systems execute programs and manipulate data, you will become a more effective programmer, especially in dealing with issues of debugging, performance, portability, and robustness. Topics covered include: the C programming language, data representation, machine-level code, computer arithmetic, elements of code compilation, optimization of memory and runtime performance, and memory organization and management.

The class has two lectures a week and a weekly lab designed for hands-on learning and experimentation. There will be significant programming assignments and you can expect to work hard and be challenged by this course. Your effort can really pay off - once you master the machine and advance your programming skills to the next level, you will have powerful mojo to bring to any future project!

Lectures: Mon & Fri 1:30-2:50pm in Hewlett 200

Labs: Tue/Wed/Thu various times Gates B08

Piazza Forum

Instructors: Cynthia Lee