6.031 Elements of Software Construction
Introduces fundamental principles and techniques of software development: 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 memory 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.009 as a prerequisite.
Lecture occurs 11:00 AM to 12:30 PM on Mondays, Wednesdays and Fridays in 34-101.
This class counts for a total of 15 credits.
© Copyright 2015 Yasyf Mohamedali