everything.study
6.1020

Software Construction

3-0-12 units · Undergraduate

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.

Prerequisites & course information

Prereq: 6.1010 U (Spring) 3-0-12 units

Sources