This course features lecture notes
and a complete set of assignments
. An extensive description of the final projects
(Gizmoball and RSS Reader) and implementation examples are also provided. In addition, the tools section includes detailed instructions for all of the software tools used by students in the course.
This course is a core electrical engineering computer science subject at MIT. It introduces concepts and techniques relevant to the production of large software systems. Students are taught a programming method based on the recognition and description of useful abstractions. Topics include: modularity; specification; data abstraction; object modeling; design patterns; and testing. Several programming projects of varying size undertaken by students working individually and in groups.
*Some translations represent previous versions of courses.