The Final Project
The
final project should be submitted in a (probably 3 ring) binder.
The binder should be divided into two sections: a group section,
and an individual section. The individual section should be
divided into a subsection for each team member.
- Final Project
- Group Section
- Individual Section
- Suggested topics for final paper
- Frequently Asked Questions
Group Section
The group
sections should contain the following:
- Copy of team presentation material
- A general description of the project.
- Team members and their roles/assignments.
- Initial requirements of the project. (What you planned to
do). Identify any requirement changes that were made during
design or implementation.
- Description of the Data Structures and Algorithms used
within the project. Explain how these contributed to the
quality of the project.
- Collection of status reports and other documents describing
the design and implementation process. These should include
major decisions and reasons behind them. (You don't need to
include detailed bug fixes unless they are germain to major
decisions.)
- User documentation. How to run the program, what files to
use for input, etc. This should be enough that I can exercise
your program.
- An evaluation of the final project. Include what you did
right and what you did wrong. Describe what you would have
liked to accomplish if you had more time, and what you would do
differently if you had to do it again.
See the note below.
- Complete source code and data file listings, preferably
organized in some way so that I can examine your code.
- Complete source code and data files on a floppy or CD-ROM.
Instructions on how to build the executable. You should also
include executable files, but I will try not to use them.
Please virus check what you submit.
- Final Project
- Group Section
- Individual Section
- Frequently Asked Questions
Individual Section
The
individual sections should contain a paper written by each
individual student. The paper should include an evaluation of the
project from the student's perspective. (This may or may not
agree with the group evaluation.)
See note below.
This section may also include a discussion of what was learned
in the course. This should not be a rehash of
the lecture notes. It should contain what insights you gained
from the course, not what facts you learned.
- Final Project
- Group Section
- Individual Section
- Frequently Asked Questions
Suggested Topics for Final Paper
The following are suggested topics for your
papers. These are only suggestions to get you to think about what
you can cover in your own group and individual papers. This is
not a checklist. I don't expect all (or even
any) of these topics to be included in your papers. The actual
topics you write about are up to you. The emphasis should be on
the thought process you went through, what options you
considered, what you decided and why, and an evaluation of what
you would do if you could do it over, had more time, knew at the
beginning of the course what you know now, etc.
- What Data Structures did you use and
why?
- Identify what types of data structures you used for the
project. What other structures did you consider? Why did you
decide on the types of structures you did? How would you do it
differently if you could do it over again? Make sure you
explain your decision making process. Don't just say, for
instance, "we chose a linked list because it was easy to add
entries in the middle". Explain why being able to add entries
in the middle was important. What are the (positive and
negative) features of a linked list that you considered in
making this decision. What trade-offs did you make in the
process?
- Describe Abstract Data Types (ADTs) that were
used
- What ADTs did you use? Describe the interface and explain
your decision making process. How visible are the various
components? Why or why not? Make sure you explain the reasons
you made these decisions, not just your conclusions.
- Describe the algorithms that were
used
- What algorithms did you use on your project? Were they
based on any known algorithms? Were they modified? How? Why? If
they were original algorithms (of your own design), how did you
arrive at them? What other options did you consider? Why did
you make the decisions that you did?
- What do you know now that you wished you had known
at the start?
- What data structures or algorithms came up during the class
that, had you known it at the beginning, would have affected
the design and/or implementation of your project? Now that you
know these things, how would you approach the project if you
were to do it again?
- Final Project
- Group Section
- Individual Section
- Frequently Asked Questions
Frequently Asked Questions
- How long should it be?
-
The purpose of the submission is to impress me with how well
you have mastered Data Structures and Algorithms. I don't
have a fixed number of pages in mind. I would prefer a few
pages of well written, well organized, insightful discussion.
I don't expect that, however. :^) I don't want a few pages of
generalities. I don't want a long, rambling discussion of
minute details. If you can demonstrate in a few pages, great.
If you need more pages, that's fine.
- What's the different between the group and
individual evaluations?
- The group section will include what the entire group
decided. If you agree with the groups decision, that is fine,
but not required. I would also expect the individual sections
to contain more detail and possibly different reasoning behind
the decision. I would especially expect the "what would you do
different/if you had more time" questions to be answered
differently. If you say the exact same thing in the individual
section that was said in the group section, then I have to
wonder if you had any thoughts of your own on the topic. (If
you are the one who wrote the group section, say so. :^)
- Final Project
- Group Section
- Individual Section
- Frequently Asked Questions
© 1999-2014
Bill Pringle.
Hosting courtesy of
CHCS Consulting.
This site best viewed with FireFox.