Home
Teaching
 
6515 S '11
General
Texts
Schedule
Communications
Blog
Journal
Projects

Software Design and Development

Abstract

The course covers proven techniques for constructing maintainable software that consists of many components. In this context, these techniques include: problem and data analysis, data definitions, concise specifications, interfaces and contracts, example and test data design, program design based on data definitions. Over the course of the semester, students will design, implement, and maintain a software system in the language of their choice.

MS students: This course is the continuation of the Bootcamp course.

BS students: This course extends the learning trajectory of Fundamentals I, Fundamentals II, and Object-Oriented Design with a first application of your programming skills to a large-scale evolving project. The course counts in lieu of "Software Construction" formerly known as CS U 670.

Previous instances of "Software Construction" (see Teaching) provide a good idea of how this course is run.

Prerequisite: The above prerequisites imply that you can read and comprehend fragments of Java and Racket (formerly PLT Scheme) code. In addition to the above mentioned courses, some familiarity with the ideas of finite state machines (the "theory" behind regular expressions) is assumed.

good software

last updated on Tue Nov 1 20:51:24 EDT 2011generated with Racket