Skip to content

Projects

Erdogan Dogdu edited this page Mar 6, 2019 · 4 revisions

(Adapted from http://pl.cs.jhu.edu/oose/index.shtml)

Project Requirements

  • Aim for 4 people in a project group.
  • There are no limits placed on the topic of the project, but there are some limits on the software structure, described below.
  • Innovate! Your project must include some significant original ideas. Feel free to borrow cool ideas from others, but give them credit and make your idea better. You learn to innovate by doing it. It also must serve a real purpose, not some hypothetical need that does not exist.
  • Large software is difficult to produce without organization; we will follow a common timeline of six iterations, one every two weeks.
  • Communication is an important element of team programming. There will be several class sessions devoted to individual team work and discussion with the professor. There will also be presentations (see below) to give you an opportunity to describe your project and to allow for critiquing by the whole class.
  • Initial project proposals will be reviewed, and if your project seems non-innovative or too simple or difficult, you will either be encouraged to switch topics or to make significant changes.

Iterations

Project development is broken down into a sequence of six two-week iterations. Certain milestones need to be hit by each iteration. Starting with the coding in Iteration 3, you need to turn in an iteration report describing what was accomplished compared to what you planned to do, and your plans for the next iteration, by Wednesday (class day) of that week.

Week 4:

Iteration 0: Group Formation

Declare who will be in your project group and propose an initial idea for a topic. Post a message to course piazza forum under project proposals discussion, when you have your group, with your group name, all of your team members’ names, emails, and a paragraph or two giving your initial idea(s) for your project topic.

Week 5:

Iteration 1: Requirements

Give an analysis of the requirements your project must meet for it to fulfill its intended function. The main things you need to produce are feature lists, UML use case model, and UI sketches.

Week 7:

Iteration 2: Design Proposal and Framework Prototyping

Elaborating on your requirements, flesh out a design proposal, including a draft of data structures via UML class diagram. You will also need to have fixed your chosen frameworks/tools and submit some initial prototyping code in your chosen framework.

Week 9:

Iteration 3: First Pure Code Iteration

Some core functionality is coded, and at least a few tests are passing.

Week 11:

Iteration 4: Core Working

Core functionality of the project is working, and there are a good set of tests for that core.

Week 13:

Iteration 5: Alpha Release

Alpha release: the project generally works but has some bugs and is missing some desired features.

Week 15:

Iteration 6: Final project

Beta release: Submission of code, and demonstration of your final project.

Presentations

Being a good software developer also means being able to communicate what you did and will do to clients, management, and your peers. The oral presentation component of the projects helps to give you practice in this arena.

There will be two presentations: each group will present an overview in April, and there will be a presentation at the final demo. We will give details about how to present later.

Examples

Some project webpages from JHU course are very helpful to see what a good scope of a project is, and what must be done for the first two iterations.

Clone this wiki locally