CS 367 - Introduction to Data Structures - Section 3

Programming Assignment Four: Final Project

Due dates: see below



Contents


The Assignment

At last, a chance to show off your creativity! For the final project, you will work in small groups and write a program involving some of the concepts discussed in the second half of the semester. The exact nature of your project will be determined by you and the other members of your group. Project topics should be selected from the project list. You may choose a project not on the list, but you must obtain instructor approval prior to December 2.

There are several possible projects listed below. The projects at the top of the list are most directly related to material covered in class. If you feel that you have had or are having some difficulty grasping material covered in the second half of the course, definitely do one these projects --- it will help solidify your knowledge of the material and assist in preparation for the final exam. The projects further down on the list are not necessarily more difficult, but involve new or novel ideas.

Some of the projects require auxiliary reading; some require reading ahead in order to start now.

In all cases, a project is, in some sense, an open ended grade. If you meet the basic requirement for the final project, it will count just like any other programming project. However, you can add to your project as much as you'd like, so, a great deal of extra credit is possible. If you have been dissatisfied with your grades thus far, now is your chance.


Project Topics


Groups

Target size for groups is three people. I will allow groups of up to four and as small as two. Part of the point of the project is to learn to work with others. Solo projects will be allowed, but require instructor permission prior to December 2. In order to make demonstration scheduling `reasonable', I would like to have no more than 25 groups total.

Choosing the group that's right for you: Please work with people who are at the same level of experience (or feel the same level of ease) with using C++. I expect groups to divide the work fairly among group members

Remember, the idea of working in a group is to divide the labor --- it is expected that each member of the group will have worked on at least one aspect of the project by herself/himself.


Important Dates

  1. Group sign up: sign up for what project you are doing and who you are doing it with by Tuesday, 12/2.
  2. Progress report : I must receive, by e-mail, a progress report from each group (not each student) by Sunday 12/7 at 4pm. This is crucial (see grading below) so that I may make sure that you are on the right track.
  3. Demo sign up: sign up for when your group will demonstrate the project by Tuesday, 12/9. (Demonstrations will take place between 12/15 and 12/19.)
  4. Individual summary: due at or before the final exam. You need to turn in a sketch of what aspect of the project you did. This should be brief, but clear. A paragraph is fine; more than a page is too long. Click here to see an example individual summary.
  5. Preliminary code submission: A version of your code must be submitted electronically twenty-four hours prior to the scheduled demonstration time. The final version of the code will be submitted at demonstration time.
  6. Group summary: to be turned in at demonstration time. An overview of what the purpose of your project was, what was learned, what techniques were used, and what makes your project special. A few paragraphs is fine; more than two pages is too long.

Demonstrations

Demonstrations will take place at the following times:

Monday    (12/15) from 11am-1pm
Tuesday   (12/16) from 11am-1pm and 2pm-4pm
Wednesday (12/17) from 11am-1pm
Thursday  (12/18) from 11am-1pm and 2pm-4pm
Friday    (12/19) from 11am-1pm
Demonstrations will be in room 1358 (one of the Vega Labs) on machines Vega23 and Vega24.

You must sign up for a demonstration in advance. Sign up by sending me e-mail. All group members must attend the demonstration.

If you cannot make any of the above times, let me know ASAP.

Time will be alloted for demonstrations based on the number of people participating in the project, roughly five minutes per person. You must be prepared to show me all the features of your project within the alloted amount of time. Please practice in advance. All group members should be ready to answer any questions relevant to their project.


Requirements

Each group must: Each individual must:

Grading

The final project will be graded on an one-hundred point scale, distributed roughly (it might vary for different projects --- more details will follow) as: Extra credit: sky's the limit.

For more information on grading policy, click here.


Submitting

Final project submission directories are now available.

As usual, the naming convention is:

  ~cs367-3/Submissions/Four/
where is your login name.

However, there is effectively one directory for each group.

In each directory, there is a file called group which states the alphabetically first login name of the group, the topic of that groups' final project, and the logins for the other members of the group.

For example if Marc Dreyfuss (login md) and Michael Siff (login siff) were working together on trees, the directory

  ~cs367-3/Submissions/Four/md
and the directory
  ~cs367-3/Submissions/Four/siff
both refer to the same directory. In that directory would be a file called group that would look like:
  md trees siff

Please note: there is only one submission directory for each group so do not erase or change files in the submission directory without permission from the other members of the group.

Also, when submitting progress reports, feel free to put a copy of whatever you've done so far in your submission directory so I may see how you are doing (that copy will not effect your grade at all).


Solution

There are many possible projects and many possible solutions. No one solution is correct.

Late Policy

This is your final project. No late work will be accepted.