6.170 Laboratory in Software Engineering

Fall 2005

Software programming.
Software programming. (Image courtesy of Photo © openphoto.net.)

Course Highlights

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.

Course Description

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.

Technical Requirements

Special software is required to use some of the files in this course: .zip, .vss, .vst, .jar, .java, .mf, and .xml.

*Some translations represent previous versions of courses.

Donate Now


Prof. Srinivas Devadas
Prof. Daniel Jackson

Course Meeting Times

Three sessions / week
1 hour / session

One session / week
1 hour / session



Archived Courses

Previous version