Laboratory in Software Engineering

Gizmoball game in progress, with colored elements on a black background.

Gizmoball is a pinball-like game that features balls, flippers, bumpers and even Star Trek-like transporters. See the Projects section for more information. (Courtesy of Kevin Chen, Hongyi Hu, and two anonymous MIT students.)


MIT Course Number


As Taught In

Fall 2005



Translated Versions


Cite This Course

Course Description

Course Features

Course Description

This course 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. Students complete several programming projects of varying size, working individually and in groups.

Students are now introduced to software engineering in 6.005 Elements of Software Construction, which is available on OCW in two versions, as taught in Fall 2008 and Fall 2011.

Other Versions

Other OCW Versions

OCW has published multiple versions of this subject. Question_OVT logo

Archived versions: Question_avt logo

Related Content

Daniel Jackson, and Srinivas Devadas. 6.170 Laboratory in Software Engineering. Fall 2005. Massachusetts Institute of Technology: MIT OpenCourseWare, License: Creative Commons BY-NC-SA.

For more information about using these materials and the Creative Commons license, see our Terms of Use.