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
Add ".stanford.edu" or ".edu" to all e-mail addresses above.
General Information
Class Meetings
MWF 1:30-2:50
McMurtry Art 360
McMurtry Art 360
Office Hours
W 4-5 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 formRaft 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)