Software Construction

A blue and yellow fractal.

 A fractal generated from the hailstone sequence discussed in Lecture 1 (Image in the public domain courtesy of Pokips76 on Wikipedia).


MIT Course Number


As Taught In

Spring 2016



Cite This Course

Course Description

Course Features

Course Description

6.005 Software Construction introduces fundamental principles and techniques of software development, i.e., how to write software that is safe from bugs, easy to understand, and ready for change. The course includes problem sets and a final project. Important topics include specifications and invariants; testing; abstract data types; design patterns for object-oriented programming; concurrent programming and concurrency; and functional programming.

The 6.005 website homepage from Spring 2016, along with all course materials, is available to OpenCourseWare users.

Other Versions

Open Learning Library Versions

MIT Open Learning Library offers a free version of this subject: Question_avt logo

Other OCW Versions

OCW has published multiple versions of this subject. Question_OVT logo

Archived versions: Question_avt logo

Related Content

Robert Miller, and Max Goldman. 6.005 Software Construction. Spring 2016. 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.