Prof. Daniel Jackson
Prof. Srinivas Devadas
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.
OCW has published multiple versions of this subject.
Jackson, Daniel, and Srinivas Devadas. 6.170 Laboratory in Software Engineering, Fall 2005. (MIT OpenCourseWare: Massachusetts Institute of Technology), http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-170-laboratory-in-software-engineering-fall-2005 (Accessed). License: Creative Commons BY-NC-SA