CS 190

CS 190: Software Design Studio

Course Description

This course teaches the art of software design: how to decompose large complex systems into classes that can be implemented and maintained easily. Topics include information hiding, deep classes, API design, managing complexity, error handling, and how to write in-code documentation. The class involves significant system software implementation and uses an iterative approach consisting of implementation, review, and revision. The course is taught in a studio format consisting mostly of in-class discussions and code reviews. Course enrollment is limited; you must apply for admission.

Course Staff

John Ousterhout
Instructor
ouster@cs

Add ".stanford.edu" or ".edu" to all e-mail addresses above.

General Information

Class Meetings
MWF 1:30-2:50
Location TBD
Office Hours
after class or by appointment (drop me an email with some suggested times)
Discussions
Ed Discussions (signup here)

Upcoming Class Meetings

Upcoming Projects

Useful Links

Course application form
Raft paper (extended version)
Raft notes from MIT course
Raft visualization
Sample code that uses sockets
Protocol buffer documentation
Getting started with protocol buffers
Google Doc for sharing during class discussions
Information about code review meetings
Ritchie/Thompson paper on Unix (only accessible on campus)