Introduction to Software Design
9 units (1-6-2) |
Prerequisites: CS 2 or equivalent.
CS 3 is a practical introduction to designing large programs in a low-level language. Heavy emphasis is placed on documentation, testing, and software architecture. Students will work in teams in two 5-week long projects. In the first half of the course, teams will focus on testing and extensibility. In the second half of the course, teams will use POSIX APIs, as well as their own code from the first five weeks, to develop a large software deliverable. Software engineering topics covered include code reviews, testing and testability, code readability, API design, refactoring, and documentation.
The online version of the Caltech Catalog is provided as a convenience; however, the printed version is the only
authoritative source of information about course offerings, option requirements, graduation requirements,
and other important topics.