Computer Organization & Systems


  • Course Grade Preview statistics

    In your gradebook, you should see a new number that represents your overall course grade as a percentage (includes assign0 through assign4, with on-time bonus and style grades, midterm 1, and lab1 through lab6). For your information, the statistics for this for the class are as follows (UPDATED TO FIX ERROR): median: 0.915, mean: 0.866, stdev: 0.146. The median letter grade in the course is typically a B+, but letter grades will never be assigned lower than 90=A-, 80=B-, etc. Hope this helps. Thurs May 25, by Cynthia

  • Assign4 statistics

    For your information, the statistics for assign4 are as follows: average 53 median 56 stdev 10. Mon May 22, by Cynthia

  • Lecture bug fix!

    I made a short video to fix the gdb/myth demo that went slighlty awry on Monday 5/15. It is on the SCPD site. It is regarding using %rsp register to access the return address, which is stored in the stack frame. Tues May 16, by Cynthia

  • Assign3 statistics

    For your information, the statistics for assign3 are as follows: average 91 median 103 stdev 28. Mon May 15, by Cynthia

  • Assign5 posted

    Assignment 5 is out! This is my favorite assignment of the quarter! Get your hands dirty sleuthing through the Binary Bomb. Sat May 13, by Cynthia

  • Assign2 statistics

    For your information, the statistics for assign2 are as follows: average 81 median 83 stdev 9. Mon May 8, by Cynthia

  • assign4 posted

    Assignment 4 is out! This assignment will take you through integers, bitwise operators, floating-point numbers, and some disassembly. Sat May 6, by Travis

  • Assignment statistics

    For your information, the statistics for the first two assignments are as follows. Assign0: average 19 median 20 stdev 2. Assign1: average 85 median 91 stdev 15. Wed May 3, by Cynthia

  • assign3 now posted, but...

    Assign3 is now posted, but I would emphatically implore you to spend little to no time working on it until after the midterm. The midterm is worth more points than the assignment, and is a better investment of your time. You'll notice that you have the usual 7 days to work on assign3 even if you don't start until after the exam (not including grace period, which adds more time). I only posted it because some students have unusual schedule constraints such that it would make sense for them to choose the (otherwise less than optimal) route of working on it this week to free up time next week. ASSIGN3 HELP VIDEO: There will be an assignment walkthrough video available via the SCPD site. In the walkthrough video, I give a few pointers to get you started. It should post Wed or Thurs depending on when the SCPD staff gets to it. Tue April 26, by Cynthia

  • assign2 now posted

    This assignment practices void*, callbacks, and malloc/free cleanup. Good times! Tue April 18, by Cynthia

  • Lab registration opens Wed 10am

    Lab regisration will open Wednesday (today!) 10am. Go to the labs page to sign yourself up. Wed April 5, by Cynthia

  • assign0 now posted

    Assign0 is now posted. Bon app├ętit, dear coder. Details here. Due Monday April 10, 11:59pm PDT. Mon April 3, by Cynthia

  • Welcome to Spring 2017!

    Please come on in and browse around! Are you wondering if there are lecture videos, or other start of quarter logistics? 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 12:30-1:50pm in NVIDIA Auditorium (in the basement of Huang building). Looking forward to meeting you! Sun April 3, 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 12:30-1:50pm in NVIDIA Auditorium.

Labs: Tue/Wed/Thu various times Gates B08

Piazza Forum

Instructors: Cynthia Lee