Object-Oriented Systems Design (CS 108) is an introductory course in software design principles, especially pertaining to object-oriented programming. The course is a required course for the CS major and is offered in the autumn and winter. See the CS 108 (Winter 2006) page for information about the current course.
The course teaches design of object-oriented systems. Unfortunately, it is taught in the Java Language in 2006. Topics include libraries, GUI design and architecture, OOP software engineering principles, and team programming. CS 107 is a prerequisite.