Your assignment for the final weeks of the semester is to extend our work in some direction. The project may take one of several forms:
- A written paper exploring some aspect of databases beyond those covered in class.
- An implementation that takes our practical work with databases beyond previous assignments.
- Something else proposed by you, related to databases, of similar scope and difficulty to the items above.
Regardless of the project chosen, students should prepare a short summary presentation of their work to share with the class on the final day (Dec. 11). Although the final submission of work is not due until the end of Dec. 12, the work should be substantially complete before the presentation. (Note: if you will not be present on the last day for any reason, please arrange with me to make your presentation early.)
Written Paper
The written paper option should be 4-6 pages, excluding bibliography. You may include diagrams and other figures within the page count. You should follow the conventions of a scientific paper. Begin with an abstract summarizing the important points of what you are about to say. Cite sources and justify any conclusions drawn.
Possible topics include investigation of a particular database system implementation, current or historical; description of a database-related algorithm not covered in class; or explication of a current research paper on database technology.
Implementation
Suitable implementation projects will go significantly beyond the project completed for the midterm. This does not necessarily mean just adding more tables, although you may do so. Rather, it should explore implementation of additional features not included with the midterm. For example, you could add constraints and triggers to the database, allow (safe) use of more complicated queries, etc. Another angle would be to look explore what administrative and metadata are available for examination.
If you choose to do an implementation for the final, you can continue to use the course account database we have used before. Just make sure that your new table names don't conflict with any others already in the database. (Normally we would want to create a separate DB for each project, but here we are constrained by the available tech support.) If you wish to set up your own database server on your own laptop you may do that as part of this project. However, we will need to talk about how I can test your system to evaluate the work.
The final project does not need to be a continuation of the midterm project at all. I suggest that you choose a topic for the database that will allow you to explore and show off the new aspects of your work.
Your page should be linked from the index page of your course account. You should include a readme.html page that documents exactly what you did. List the goals you set yourself for the project, and assess how successful you were at achieving each one. Finally, tell me anything interesting or surprising that you learned during the project.
Alternative Projects
The third option is wide open to you if you have a good idea. There are no advance constraints about what I will consider possible. However, it is definitely necessary to consult with me about your idea before getting started on it. I will only approve projects in this category that seem both feasible and roughly similar in scope to the other two options above.