6.005 Elements of Software Construction

Class Info

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. Topics include specifications and invariants; testing, test-case generation, and coverage; abstract data types and representation independence; design patterns for object-oriented programming; concurrent programming, including message passing and shared concurrency, and defending against races and deadlock; and functional programming with immutable data and higher-order functions. Includes weekly programming exercises and larger group programming projects.

This class has 6.01 as a prerequisite. This class has 6.042 as a corequisite.

6.005 will be offered this semester (Fall 2017). It is instructed by M. Goldman and A. S. Lezama.

Lecture occurs 1:00 PM to 2:30 PM on Mondays and Wednesdays in 32-123.

This class counts for a total of 12 credits.

You can find more information at the 6.005: Software Construction site or on the 6.005 Stellar site.

MIT 6.005 Elements of Software Construction Related Textbooks
MIT 6.005 Elements of Software Construction On The Web
6.005: Software Construction
omnivore gradescope available grading ps4

© Copyright 2015