Project 1

The purpose of the semester project is twofold: 1) Provide you the opportunity to work in a team on a non-trivial problem in a distributed, asynchronous fashion and 2) allow you to make use of the techniques being covered in lecture related to requirements, design, implementation, and modeling concurrency.

The first step in this process is to send Prof. Anderson an e-mail message listing the members of your project team. Do this right away.

The second step in this process is to select a topic and to set-up the environment you will use to coordinate your activities.

With respect to the former, you need to develop an idea for a system that can be developed by a team of three to four people over the course of roughly eight to nine weeks. The major constraint is that there must be some form of concurrency that is part of the application domain, such that you will be able to model the requirements of that concurrency using FSP and will need to make use of a programming language that supports concurrency when implementing your software prototype. You should include as much detail in your proposal as possible: basic information about the problem domain, why concurrency will be needed to solve the problem, how you envision splitting the work of the project across the team, and anything else you think is relevant to "selling" the idea.

With respect to the latter, I request that you make use of the tools provided by assembla.com. By the due date, you need to have a workspace created, all team members registered, and make use of the tools provided by this website to brainstorm ideas for the project. Once you have converged on an idea, you will create a topic proposal that can either be submitted as a PDF document to the moodle or you will submit a link to the page on your site (for instance a page in the wiki that is provided for each workspace) that documents the results of your proposed topic in detail. To facilitate the latter approach, as well as to allow us to evaluate team dynamics, you will also provide a guest account to both the instructor and grader of this class. When you are ready for us to login to your workspace, e-mail instructions to Prof. Anderson.

Example project ideas include information systems that have the ability to spawn and monitor long running computations of some kind, information systems that monitor multiple streams of real-time data, games in which multiple entities may be performing actions at the same time, social network websites that provide their users with information about the activities of other users logged into the site at the same time, etc.

The topic proposal is due for teams of in-class and in-class plus CAETE students on Thursday, February 29th.

The topic proposal is due for teams consisting only of CAETE students on Thursday, March 6th.

This assignment is worth 20 points (10 points for getting your workspace created and using it to brainstorm and create the topic proposal, and 10 points for the topic proposal itself). Teams that do not provide enough detail in their topic proposals may be asked to work on a revision of their proposal with tight deadlines. The basic goal, however, is to ensure that all teams have an approved project idea by the thursday of the 8th week of class (or by the thursday of the 9th week of class for CAETE-only project teams).

Any questions? Send them to Prof. Anderson. 

© Kenneth M. Anderson, 2008.