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...
Main Author: | |
---|---|
Other Authors: | |
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 |