CS 190
Software Design Studio
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 the causes of complexity, modular design, techniques for creating deep classes, minimizing the complexity associated with exceptions, in-code documentation, and name selection. 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 with in-class discussions and code reviews in addition to lectures. Prerequisite: CS 140 or equivalent. Apply at: https://web.stanford.edu/class/cs190
Topics
- the causes of complexity
- modular design
- techniques for creating deep classes
- minimizing the complexity associated with exceptions
- in-code documentation
- and name selection
Topics explicitly listed in official catalogue description
Sources
- Course catalogue ↗2026-2027