Computer Organization & Systems

Announcements

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: (Week 1 only) MWF 11:00-11:50 in 420-040 STARTING WEEK 2 CHANGES TO: Mon & Fri ONLY 11:00-12:15pm in Bishop Auditorium (NO Wed lecture)

Labs: Tue/Wed/Thu various times Gates B08

Lecturer: Cynthia Lee

TAs: Matt Anderson, Duyun Chen, Laura Groenendaal, Patrick Harvey, Shantanu Joshi, Sumi Narayanan, Keziah Plattner, Shahriyar Pruisken, James Tran, Jacky Wang

Honorary Course Meme: A friend made this image after I told him about the content of CS107. He said, "After taking your class, Cynthia, I expect your students to walk out seeing the world like this." I hope he's right! So here's our theme image for the quarter: