6.005 Elements of Software Construction, Fall 2011

This course introduces fundamental principles and techniques of software development. Students learn 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; state machines; abst...

Full description

Bibliographic Details
Main Author: Miller, Robert
Other Authors: Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Format: Learning Object
Language:en-US
Published: 2011
Subjects:
Online Access:http://hdl.handle.net/1721.1/106923
_version_ 1826198911428067328
author Miller, Robert
author2 Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
author_facet Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Miller, Robert
author_sort Miller, Robert
collection MIT
description This course introduces fundamental principles and techniques of software development. Students learn 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; state machines; 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. The course includes weekly programming exercises and two substantial group projects.
first_indexed 2024-09-23T11:11:35Z
format Learning Object
id mit-1721.1/106923
institution Massachusetts Institute of Technology
language en-US
last_indexed 2025-03-10T09:29:58Z
publishDate 2011
record_format dspace
spelling mit-1721.1/1069232025-02-25T16:40:48Z 6.005 Elements of Software Construction, Fall 2011 Elements of Software Construction Miller, Robert Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science software development specifications invariants state machines test-driven development design patterns object-oriented programming concurrent programming functional programming This course introduces fundamental principles and techniques of software development. Students learn 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; state machines; 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. The course includes weekly programming exercises and two substantial group projects. 2011-12 Learning Object 6.005-Fall2011 local: 6.005 local: IMSCP-MD5-998a9954181b8a19924075e9b7b0267b http://hdl.handle.net/1721.1/106923 en-US Usage Restrictions: This site (c) Massachusetts Institute of Technology 2017. Content within individual courses is (c) by the individual authors unless otherwise noted. The Massachusetts Institute of Technology is providing this Work (as defined below) under the terms of this Creative Commons public license ("CCPL" or "license") unless otherwise noted. The Work is protected by copyright and/or other applicable law. Any use of the work other than as authorized under this license is prohibited. By exercising any of the rights to the Work provided here, You (as defined below) accept and agree to be bound by the terms of this license. The Licensor, the Massachusetts Institute of Technology, grants You the rights contained here in consideration of Your acceptance of such terms and conditions. Usage Restrictions: Attribution-NonCommercial-ShareAlike 3.0 Unported http://creativecommons.org/licenses/by-nc-sa/3.0/ text/html Fall 2011
spellingShingle software development
specifications
invariants
state machines
test-driven development
design patterns
object-oriented programming
concurrent programming
functional programming
Miller, Robert
6.005 Elements of Software Construction, Fall 2011
title 6.005 Elements of Software Construction, Fall 2011
title_full 6.005 Elements of Software Construction, Fall 2011
title_fullStr 6.005 Elements of Software Construction, Fall 2011
title_full_unstemmed 6.005 Elements of Software Construction, Fall 2011
title_short 6.005 Elements of Software Construction, Fall 2011
title_sort 6 005 elements of software construction fall 2011
topic software development
specifications
invariants
state machines
test-driven development
design patterns
object-oriented programming
concurrent programming
functional programming
url http://hdl.handle.net/1721.1/106923
work_keys_str_mv AT millerrobert 6005elementsofsoftwareconstructionfall2011
AT millerrobert elementsofsoftwareconstruction