Recent Changes - Search:
ECG Home






Spring 2017

Older Courses

Fall 2016

Spring 2016

Fall 2015

Spring 2015

Fall 2014

Spring 2014

Fall 2013

Spring 2013

Fall 2012

Spring 2012

Fall 2011

Spring 2011

Fall 2010

Spring 2010

Fall 2009

Spring 2009

Fall 2008

Spring 2008

Fall 2007


edit SideBar


91.580.202 Software Design Studio
Prof. Fred Martin, click for fred's email
Thursdays, 5:30 pm
with additional Monday 12:30 pm scheduled Skype conference


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

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:

  • Adapting and incorporating new Google visualizations
  • Interfacing to new hardware (e.g. Vernier probes, PASCO probes, the GoGo Board)
  • Creating personalization features and layered privileges inside the iSENSE user system
  • Developing entirely new data-gatherers (e.g., based on a cellphone with Bluetooth comms to a sensor module, a metered GPRS link for data upload, and solar cell power source)
  • Entirely new things based on your own ideas and interests

Class Structure

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.

In terms of technology, the iSENSE system makes use of MySQL for the backend database, with a Java servlet to communicate to clients written in Java, JavaScript, and PHP (running in a web browser). There is a Java applet that communicates with the Scratch/Pico Board via a serial connection. A build script written in Ant is used to compile the servlet and applets.

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.

Edit - History - Print - Recent Changes - Search
Page last modified on December 10, 2008, at 12:09 AM