CMPSCI 645: Database Design and Implementation

Course Project

A portion of your grade in 645 consists of a final project. This project is meant to be a piece of independent research or engineering effort related to material we have studied in class. Your project may involve a comparison of systems we have read about, an application of database techniques to a problem you are familiar with, or be a database-related project in your research area. You can either define your own project (e.g. it can be the data management component of your research project), or you can choose one of the project suggestions below, and possibly adapt it. You will work in groups of 1-3 members (groups of 2 preferred).
Students are welcome to discuss their ideas with the instructor (and other faculty in the database group) throughout the semester. You can refer to these slides for some project ideas.


Good class projects can vary dramatically in complexity, scope, and topic. The only requirement is that they be related to something we have studied in this class and that they contain some element of research or that they involve a significant engineering effort. In the latter case, there should still be an element of novelty in your work (otherwise, there is not much point in doing it). To help you determine if your idea is appropriate and of reasonable scope, we will arrange to meet with each group several times throughout the semester.
Please pay attention to your writing. Make sure it is coherent, your goals are explicitly stated, and your arguments are well structured. Don't make claims without backing them up. Give examples. Seek feedback on your writing, and make improving it a priority. I recommend Mike Ernst's advice on how to write a technical paper.


Form groups (due Sept. 19, 11:59pm)

Find project partners and begin to discuss project ideas. We expect that most students will be in groups of 2. Please self-assign your groups through Moodle. If you want to work alone, or in a group of 3, please contact the instructor first.

Project proposal (due Oct 5, 11:59pm)

This is a group assignment. Please use Moodle to submit your proposal as a PDF document. Your proposal should be around 1 to 2 pages in length and should explicitly state the following:
  1. Project title and team members
  2. Problem your project will address.
  3. Your project's goal and motivation.
  4. The methodology and plan for your project. Be sure to structure your plan for the project as a set of incremental milestones and include a schedule for meeting them.
  5. The resources needed to carry out your project. What tools, datasets, and systems do you plan to use?
Write clearly and succinctly, and cite all your sources. Make sure that you describe your project in enough detail, but don't write more than you need to. Make sure that you proof-read your document! I can't stress this enough. Bad writing leaves a bad impression, and we will take off points.

Literature survey (due Oct 16, 11:59pm)

This is a group assignment. Please use Moodle to submit your literature review as a PDF document. Your literature review should include the following:
  1. Identify all research areas related to your project. And briefly describe each one of them.
  2. Identify any appropriate sub-areas
  3. Cite all appropriate papers and sources. For each one provide a short summary of the problem it solves, and the approach.
  4. Point out connections and differences between existing pieces of work.
  5. Explain how each of the mentioned areas and papers relates to your project.
  6. How does existing work differ from your proposal, and why is it insufficient for the problem you propose?
  7. Your survey should make a convincing argument to the merits of your project. You need to convince the reader that you are addressing something fundamentally new, either a brand new problem, or a new approach.
As with the project proposal, and all the deliverables, write clearly and succinctly, and cite all your sources. Always make sure that you proof-read your document! We will take off points for sloppy writing.

Midterm status report (due Nov 9, 11:59pm)

This is a group assignment. Please use Moodle to submit your report as a PDF document.
Your status report should have the form of a short research paper. Given the varied nature of the projects, there won't be a strict length restriction, but as a guideline aim for approximately 4-5 pages. In your report, you should combine your project proposal, your literature review, details on the progress you have made so far, and your next steps towards completing the project. You should include enough implementation, data, and analysis to show that your project is on the right track. You should revise your original proposal to accommodate the instructor's comments, along with any surprising results or changes in direction, schedule, etc. You sometimes also need to have a refined version of the problem statement as well as a more developed related work section.
Make sure that you follow these guidelines:
  1. Your document should be self-contained. Don't make reference's to your earlier submissions. Imagine a random CS professor as the reader of your report. Based on your report alone, and with no other information, they should be able to understand what your project is about, what is the exact problem statement, why is it challenging, why is it interesting, what is your proposed solution/approach, and how do you intent to evaluate it.
  2. Do not respond to me or my previous feedback directly, but use the feedback to improve your content and presentation.
  3. Do not treat this as a homework assignment with a list of questions to be answered. Your submission should resemble a short technical paper.
  4. Structure your document into meaningful sections. Start by clearly and succinctly defining the research question that your project addresses. "We will use learning techniques to analyze query logs" is NOT a research question, it is a method. Instead, you need to state what is the important problem that your method will solve.
  5. Provide a motivation for your research problem. You need to explain why the problem that you are solving is important, and why it is hard. An example scenario is always a good way to demonstrate the existence and the difficulty of a problem.
  6. Describe your solution. This will vary across groups, as some of your projects focus on theoretical analysis, some on tool development, some on new algorithmic techniques. You should describe your solution in enough detail to demonstrate your current progress, and convince the reader that your project will be successful.
  7. Explain your evaluation plan. If you have some graphs already, include them! Explain how will you demonstrate that you succeeded in solving the problem. Do you have a backup plan if your first attempt fails?
Practically, your midterm report should look similar to what your final report will be, but in the midterm report you describe what you will do, instead of what you have done. Here is an example of what your final report should look like: [past graduate database class project from University of Washington]

Peer Feedback
Your midterm project status reports will be peer-reviewed by other students in the class. The purpose of this exercise is to help you improve your writing by learning from the things that others do well, but also from their mistakes. Often, you have a good understanding and plan of your project in your head, but it translates poorly on paper. My expectation is that this will help you learn what things you should emphasize, what structure you should follow, and what common mistakes you should avoid.
Here is my plan for implementing this:

  • I will assign each student another student's report to review.
  • Each student will need to read the assigned report and write feedback on it. You can use the type of feedback that you have been getting from me as a guideline, or you can write a more traditional paper review.
  • You will submit the feedback to me through Moodle.
  • The feedback will be made available to the corresponding team anonymously (I will not disclose which student wrote it).
  • You will not be graded on the feedback that you write, nor the feedback that others write on your report. However, your own report will not be graded if you do not submit the assigned feedback.
  • All teams will also receive my feedback, as usual.
If you have concerns about having your report peer-reviewed, please ask me to exclude your team. You will still be required to write feedback on another student's report.

Project Feedback Day (Nov 13)

This is a group activity, but there are no deliverables. You will give a very short presentation to the class about your project, and your progress. You can use slides, or any other means of your preference. You will not be graded on this, and you can opt out if you don't care to get feedback. If you do not want to present, email me by November 9 and request to be excused. If I do not get an email, I will expect you to present.

Project presentations (last week of classes)

A brief presentation should include the proposed problem, state-of-the-art solutions, your proposed solutions including the algorithms and implementation, and evaluation results. The presentation may include a system demo if appropriate.

Project report (due Dec 10, 11:59pm)

A final report extends your previous write-ups to
  1. present the research problem and summarize your contributions (in the first section),
  2. survey related work (in the related work section),
  3. include a detailed description of your algorithm, analysis, and implementation (in the technical section),
  4. describe evaluation methodology and significant results (in the evaluation section), and
  5. finally present your conclusions (in the summary section).
  6. For team work, the report should also include a paragraph explaining, for each group member, their contributions and duties in the project.