CS 561 - Guidelines for Third Course Project
Information concerning the third (main) project of CS561
is given below.
This course includes a class project.
The intent is for students to select from a wide spectrum of
possible projects depending on your interests and skills.
You are highly encouraged to take on a project in a
technology or topic that you are not yet too familiar with
so that you assure you learn something new.
Note that a pure DBMS application project, similar to what you would be
doing in a beginning database course such as CS542,
is not acceptable for this final project.
For this project, you should preferably work in groups of two students
or you can also opt to work as an individual.
You should discuss your project plans and project partners
(or lack thereof) with the instructor before the time
you submit your project proposal.
Some of the general project types that would
be acceptable for this course project include:
The design, implementation and evaluation
of a database management application for a real customer,
e.g., some organization on campus or a
real company that you identify.
This type of application-projects
is discouraged, unless
(1) you have only very limited hands-on database
exposure, and (2) you are making sure to utilize
in your project that you have not previously used before.
In other words, usage of just
a standard relational DB server without
any special extra features is not sufficient.
In short, you must assure you are learning something new.
Examples of technologies may include XQuery,
special data integration services, distributed data
services, and so on.
Example applications are
e-commerce applications, and office automation, to just name a few.
Software development of a
subcomponent or software module of a DBMS system
is one good way for you to really be able to understand
the working of that subcomponent.
be a solid (re) implementation of some existing database software.
For example, you could build a distributed query processor,
a simple query optimizer, an spatial index,
a query translation model, and so on.
This could be done from scatch, or likely it would
be more advisable to choose
available software as starting point, so that your
system can be more substantial in size.
/tou would be required to vert
Development of a prototype of some advanced
technology aspects of modern database systems.
Typically, this more researchy-type of development may
not be your own "idea" per se, but could by based on
implementing some ideas you have
identified based on some publication in the literature.
Possible ideas include:
- Personal Information Manager (Microsoft continuous camera)
- Mobile data manager (travel routing/digital-maps)
- Information integration tool using XML
- SQL-based wrapper of web site
- Distributed Data Warehouse Agent
- Web-based query processor or search engine
- XML change detection tool
- Database-centric Web Site Manager
- XML-information integration of relational databases
- XML to Relational Update Propagator
- XML to Relational Query Mapper
- Web Query Caching
- Query Caching Manager using Oracle
- Adding "persistent relations" to a stream query processor
- Distributed query processing in stream query processor
- Adding query operators to a stream query processor, e.g.,
- Stream query optimization, e.g., query rewriting of group-by stream queries
- Load shedders for stream query processor
The design, setup and comparative testing of a set
of techniques or algorithms against some benchmark program.
Such an evaluation should ideally include
the implementation (or install) and evaluation of several
(more than one)
algorithms, structures or tools from the literature.
For example, you could run performance studies for
different XML query processors, or for
different data warehouse maintenance algorithms,
or performance comparison of three alternate stream
mining algorithms on some real data, etc.
The development of either an in-depth survey or possibly
a research paper into any one area of database systems.
Such a project may be completely paper-based,
as long as the final output is a substantial document
comprehensive coverage of the literature,
an annotated bibliography, as well as a
critical analysis of the literature.
Or, in the case of a research paper, some clear
justification for the proposed algorithm or ideas.
For example, you could develop a research
paper on a "comparison of query processing strategies
for high-dimensional data sets".
Based on past experience, these projects tend to be quite
challenging for many of the students -- even though they
may appear simple on first sight -- but in some cases
they lead into future MS thesis or dissertation ideas.
Project Milestones and Deliverables.
This project has several stages:
STAGE 0: Project Formation and Intent (During 6 weeks of class)
Each group will discuss with
the instructor their ideas about possible projects.
They should begin to formulate a clear
proposal early on, possibly already written down.
Please discuss your ideas on a project with the instructor before
finalizing and submitting your proposal.
STAGE 1: Project Proposal (Due: March 15, 2007)
Each group will turn in a typed proposal (about 2 to 4 pages)
defining the proposed project.
You are encouraged to have tried out your
proposed software environment to
understand the feasibility of your proposed direction.
Also, you should have looked at the necessary background
(such as readings) to assure you have or can acquire the
knowledge and skills needed to successfully pursue the project.
This proposal should clearly explain the proposed work to
be done, and also list the
relevant environment and tools you have set up
in order to succeed to complete the project.
Note: This will NOT carry any credit. It's there for you to
assure you get started.
STAGE 2: Progress Report (Due: Mar 29, 2007)
This progress report should clearly state the
of the project. By this time, I would expect you to be about half way
towards completing your project. I would expect you to have conducted
all necessary background work including establishing a bibliography
and reading relevant manuals and literature, installing and testing
all necessary software, resolving specific design issues, and refining
the project plan or possibly re-directing the effort based on your
background studies. Make sure to include literature you have reviewed
for the project, all other tasks you have accomplished as well as your
basic idea of how you are approaching the problem. You also need to
construct a precise schedule and task list week by week; and the
deliverables for the end of the course.
This report must be typed and typically about 10 pages long.
Think of the report as being one major step towards your final
Hence, do a good job on it now, and you can reuse it as well as
starting point for your final report.
I may ask some of teams to meet with me to show a demonstration
of whatever they have working at this time; so be ready for that.
Note: This report
will carry 30% of your final project
The most important part here will be
that you demonstrate that you have completed a sufficient amount of
work to be half way through your project,
and that there is a clear plan of what will be accomplished
by the end of the project.
Final Project Presentation and Report (Due: April 26, 2007 )
The final project presentation and demonstration
will be done in class by each team during
the last class session. We'll determine
the exact time allowed
per project once we know how many different projects
See below for what aspects should be stressed in this
must be supplemented with a
final project report due on that same day.
This report should be a well-written technical report
describing your project (to be linked into our course webpage).
It is likely that this report will
an extension of your progress report (reuse is good hear,
and doing a good job the first time around is a time saver).
Depending on the nature of your
project, it will need to contain detailed
designs, system architectues, key technologies used,
experimental charts, sample runs, a
detailed analysis of the results, a system design, a justification and
evaluation of selected tools, etc. The report typically
is between 15 to 20 pages.
Note: This part of the course project
will count towards the remaining 70 % of the project score.
Project Grading Guidelines
The final grade of the team project (which may not necessarily
be the same for each member of the team) will consist of:
the difficulty of the project you have chosen to work on,
and your solution approach,
the oral project presentation (covering
the problem your group tackled, your solution approach,
and your results at the end of the course),
the written documentation of your project in
the form of a report
(which you will have to enter on
the Web to make it accessible to other students in the class).
The project report should be
well organized, clear, professional quality,
complete, and informative.
the demonstration of your system (such as successful
example runs or performance evalution charts), as applicable
the understanding of each team member of his or her part
of the project, as well as of the overall group product.
YOU ARE REQUIRED TO APPEND ONE PAGE TO THE END OF
YOUR MATERIAL YOU TURN IN THAT STATES THE PERCENTAGE AND
OF THE CONTRIBUTIONs FROM EACH TEAM MEMBER INTO THE PROJECT EFFORT
THUS FAR. YOU CAN SIMPLY SAY HERE THAT EQUAL EFFORT
WAS PUT FORTH, IF YOU WISH, OR PREFERABLY YOU LIST THE TASKS
ACCOMPLISHED BY EACH MEMBER.