CSE 331 - Data Structures - Fall 2004
Computer Science & Engineering
University of Notre Dame

Open-ended Programming Project - Guidelines & Requirements


This project is quite open. You may choose from almost any type of software application as long as there are significant data structures and algorithms involved. You may create your own software or significantly enhance an existing Open Source program. In either case you must do some research into the literature. Hard copy and web accessible information is acceptable. At least one reference should be from a technical publication.

Phase 1: Due Tuesday, September 28, 2004 by MIDNIGHT

Submit Initial Programming Project Proposal:

In a 1/2 page proposal (dsproj.pdf or dsproj.doc) include the following.

Phase 2: Due Tuesday, October 26, 2004 by MIDNIGHT

Final Programming Project Plan and UML:

This submission will describe in a bit more detail what your project is and some significant planning details related to the software design and system requirements. No significant change in topic or application type will be allowed after this phase has been passed.

If you have decided to make a change between the first phase and now, approval must be obtained from the professor.

Submit a one page project plan that identifies the central application for your program and the key functionality that this application will require. Outline the framework of your program in a separate UML diagram. Explain the interaction of the modules and the basic functionality of each (you will develop this into a set of formal ADT APIs which will be submitted with your final project). Identify the GUI utilities which you will use and your program’s target platform.

Identify new or standard data structures which you will implement (if you are not working on an Open Source project you must identify two). Identify how you will test the efficiency of your selected data structures. If you implement structures already in the STL you may test them against the standard. For structures used but not implemented you must compare their efficiency against that of another structure. For example: MyVector vs stlVector, List vs Tree, Hash vs ....

Phase 3: Final Written Materials due Tuesday, December 7, 2004 - by MIDNIGHT

Project in-class presentations will be on

Selection of presentation slots will be by lottery, and will be determined after submission of Phase 2 documents. Any group that wishes to volunteer to go on the first day, may do so.

Each presentation will last a MAXIMUM of 20 minutes (including questions and any demonstration). You should have the following PowerPoint slides, overhead transparencies, or similar visual aids, and must discuss each item below briefly. If you include additional topics, MAKE SURE you have time to cover them. Remember, each group will have approximately 15 minutes for talk and software demo, plus a few minute (3-5 max) for any questions.

All class members are expected to attend all presentations.

The in-class presentation must include: UPDATED 11/24/2004

Keep in mind that each slide (powerpoint or overhead transparency) will take you anywhere from one to three minutes to present, so keep the number limited and have each focused. You may have more than one presenter. However, make an effort to minimize the "tag-team" effect.

The final project submission will include:

  1. A short (min 3 page, max 5 page) paper covering the topics listed below. Be concise.
  2. A separate UML diagram showing high level overview of program structure
  3. You source code
  4. An executable program
  5. A file containing APIs for each key data structure (class, ADT, ...) you create
  6. README files, one for each group member (named README.<your_asfid> - for example README.jstewman). Each file details your individual activities and contributions. Keep it in the form of a daily diary, giving date, time worked, activity, etc.)
All submissions must be made digitally in the course drop box. Please submit the paper, API's and UML diagram in .pdf format. Make sure to cite all of your References!

The final paper format includes:

General allocation of points will be according to these percentages.

Phase 1 document 5%
Phase 2 document 5%
Presentation 15%
Program Demo 10%
Paper 35%
UML diagram 5%
APIs for data structures, classes, ADTs, etc 10%
Source Code & executable 10%
Individual diaries 5%

BONUS: If (by the Dec 7th submission deadline) you decide to post your program in an Open Source development forum, I will award 5% extra to your final project grade. Make sure your program is ND quality; you don’t want to publish your name globally with a “sub-par” project.