91.580.202 Software Design Studio
You will develop significant software applications as part of a multi-person team, using contemporary software technologies and source code/project management tools.
Course projects include a combination of desktop, web-based, database, embedded, and mobile technologies. Student work will be tightly integrated into a real-world software system.
In addition to software development, the class includes reading, discussion, and reflective and research-based writing assignments.
The class will work on extending the iSENSE project -- Internet System for Networked Sensor Experimentation (see http://isenseproject.org).
iSENSE allows users distributed around the world to connect sensors (e.g., environmental sensors) to their desktop computers and have their data aggregated in a central database. Then, they (or other users) can create visualizations of these data, allowing people to conduct distributed science investigations. iSENSE also supports importing of data from remote data-collector devices.
For more, please see this project overview.
We will have many options for extending the system in the class:
The class will be based on a shared software engineering practical (the studio aspect). In other words, while each of us will have his/her own projects, we will continuously share in each others' work and make contributions to it.
All software will be kept in a central SVN server, and we will explicitly arrange that every student can personally build the code and make contributions to all parts of it.
Implementation work will be done using rapid-prototyping and iterative design principles (also known as agile design).
The class will have the following organization:
Phase 1. Introduction to existing iSENSE system, trivial build projects to get familiar with the system, selection of small implementation projects, execution and evaluation of such projects.
Discussion of readings.