Project Guidelines

Projects should have enough scope so that all team members will have to contribute in order to deliver modeling, presentation and code artifacts in a reasonable time commitment for each team member. Although work will be divided, each team member should be thoroughly familiar with the work of the whole team, and decisions should be reached by consensus. Do not worry too much about taking on too much work; part of the mentoring process will involve helping you develop an estimate of coding time based on the model, and it is acceptable to implement only part of the team model with the permission of the instructor. Projects will be the focus of application of techniques introduced in class. Specific deliverables will be explained as we cover the techniques.

A project should involve interesting behavior and non-trivial data. Interesting behavior is defined as having multiple states. The only limitations on the projects are
 

  • Must be implemented in Java
  • Team members must agree on a common computing environment
  • Models must be done in Together J unless permission of instructor is given
  • There must be something physical (a lego robot) or something against which models may be validated. This could be a set of user requirements, or an existing system you are re-engineering.

 Project proposals should be in enough detail that the instructor and class can understand what your team wants to build. Sample topic projects could be

  • Model a lego robot lunar rover and simulate its movement over a particular Moonscape.
  • Model a Probotics robot and program it to move up and down the 4100 corridor avoiding obstacles and people.
  • Model and develop an e-commerce site for booking reservations at a bed and breakfast inn.
  • Model and develop an information system for a Program Administrator at CMU.

 Projects should be fun!