Carnegie Mellon University
15721 Database System Design and Implementation
Spring 2003 - C. Faloutsos
There are three graded parts to the project: the project proposal
(10%), the progress report (10%) and the final report (80%).
The proposal will be a short writeup describing what you plan to do and
how you plan to do it. The progress report will be a more extensive writeup,
describing the work performed up to then, and the revised plans for the
whole project. It mainly serves as a `checkpoint', to detect and prevent
dead-ends and other problems early on. The report will be a more detailed
description of what you did, what results you obtained, and what you have
learned and/or can conclude from your work. Proposals and final projects
will be carried out in teams of 1-3.
You and your partner(s) should begin by selecting a topic for your project.
A list of suggested projects gives some suggestions; you are free to pick
a different topic if you have ideas of your own. The only constraint
is that you'll need to get the instructor's approval on your choice of
topic, meaning that you'll need to justify that the topic is interesting,
relevant to the course, and challenging enough. Joint projects with other
courses, for example, theory, AI or systems courses, are negotiable. However,
the idea would be to allow you to do a single in-depth study, as opposed
to two more shallow studies, so such joint projects will have to involve
enough work to satisfy both instructors that you're doing your share for
Once you have selected a topic, you should do some background reading
so that you are capable of describing, in some detail, exactly what you
expect to accomplish. For example, if you decide that you want to implement
some new proposal for a multidimensional file structure, you will have
to carefully read the paper that proposes the structure in order to know
(1) what will be involved, and (2) what design decisions you will be faced
with along the way. Once you have read up on your topic, you will be ready
to write your proposal.
The proposal should describe what you plan to do for your project. It should
describe the problem that you will be addressing, how you plan to address
it, what tools (e.g., "yacc", Postgres, SP2, etc.) you will need for your
work, what you expect to produce as a result of your work, and anything
else that you think I should know in order to evaluate your plans. You
should also describe what portion of the project each partner will be doing.
Your proposal should be approximately 6-8 pages long,
(eg., latex/postscript), double-spaced, neat, and with pictures if they
seem useful (`idraw' and `xfig' are good choices). Also, make sure that
your proposal is pretty much self-contained. For example, do not rely heavily
on references to explain what you will be doing. Returning to the multidimensional
index example, don't just say: "We're going to implement Smith's Foo-Tree
data structure [Smith86], and we will study the performance implications
of his three suggested implementations of the Bar-Graph directory structure."
Instead, you should briefly review the key ideas in the reference, and
describe clearly the alternatives that you will be examining.
Grading scheme: 70% for the survey; 30% for innovation
at least 3 papers or book chapters per group member (outside the reading
please provide a plan of activities and time estimates, per group member.
template (you are strongly recommended to follow its
The Progress Report
This should be a 10-15 page long report, and it is intended to serve as
a check-point. It should consist of the same sections as your final report
(introduction, survey, etc), with a few sections `under construction'.
Specifically, the introduction and survey sections should be in their final
form; the section on the proposed method should be almost finished; the
sections on the experiments and conclusions will have whatever results
you have obtained, as well as `place-holders' for the results you plan/hope
Grading scheme for the project report:
70% for proposed method (should be almost finished)
25% for the design of upcoming experiments
5% for plan of activities (in an appendix, please show the old one and
the revised one, along with the activities of each group member)
The Final Report
Your final report is expected to be a 20-30 pages long report, treating
in depth the agreed topic. A detailed grading scheme will be posted on
the class web site in time.
The report for "theoretical" projects should include an introduction
section, a survey section, your contributions (proofs, ideas, algorithms,
simulation results etc.), problems for future research and a list of references.
For implementation projects, the report should include an introduction,
a survey, your contributions (major design decisions, rationale, timing
results), problems for future research, a list of references, a brief description
of the developed modules, a user's manual and a programmer's manual. For
implementation projects, careful packaging for distribution and a demonstration
is also expected (a sample package with a 'makefile' is here
- gunzip | tar xvf ; make ).
As announced in the course schedule
Last modified: 1/13/2003 by Christos Faloutsos