The goals of CS x265 projects are to further exercise you in database concepts in realistic, holistic contexts; and to address selected characteristics that the Vanderbilt School of Engineering want graduates of Computer Engineering and Computer Science programs to possess (See Codes, particularly ABET Criteria).

In class, we will be doing exercises with a number of sample projects prior to Spring Break.

In addition, you will be doing an original group project in the latter 2/3 of the semester.

The project has a number of deliverables with due dates found on the Schedule. In addition to group deliverables, you will submit individual assessments of group dynamics and your own contributions to the group. If your contributions are significantly less (or more) than other group members, your score for the group project deliverable may be less (or more) than other group members. If the group doesn’t seem to be operating well, I may  reconfigure it.

Sample projects, allowed for public display, from Spring 2015 are at

Project Overview

You will be assigned to groups for project work in about week 5. A project will be of each group’s own specification and design, drawn from one of these broad areas:

  • Experience portfolios, which can include experiential records along different thematic lines, as diverse as travel to formal coursework, informal learning accomplishments (e.g., open, online courses), volunteer/work/internship experience, resumes, and samples of notable projects;
  • Health records, which can range from personal health records to institutional health records, which can include health-related behavior tracking (e.g., exercise, meals), perhaps special readings (e.g., blood glucose, blood pressure), medication schedules, and physician visits;
  • Entertainment and Leisure, which can be in areas of music, movies, gaming, art, and athletics, with records on stated and unstated preferences (e.g., through viewing, purchasing, playing, and other analog behaviors that are appropriate to the domain);
  • Sustainability and Ecology, which can range from wildlife monitoring applications, backpacking, tree tours, public and private transportation (e.g., ride-sharing and routing), and recycling (but should probably avoid energy and water monitoring as we deal with this in one of our sample projects, unless you can imagine creative ways of expanding this theme, such as through social networking).

If you are really excited above some idea that is outside the realm of one of these broad areas, then be prepared to make a strong pitch to me in Week 6. I can imagine some areas, like travel, could fall under multiple areas (eg., experience portfolios, entertainment and leisure, sustainability and ecology).

The focus of your database specifications can be on individual-level data, on institutional-level data, on regional/national/world level data, or some span of these granular levels. Importantly, however, I want each project to include some “social networking” component. Social networking can be overt social links, like “friend” or “following”, and/or “hidden” links, such as those that we can imagine are used in recommender systems (e.g., who are my “doppelgängers” in an online retailer’s DB, which the retailer uses to recommend items to me?).

Week 5 project kickoff

Week 6 topic selection and writeup: A good and brief description of what an initial (or functional) specification can look like is given here ( This will be a one paragraph description of what FUNCTIONS you want the database to support (e.g., a music library, social network, and recommender system), perhaps with a bullet list of specific tasks. You will have a chance to revise the functional specification in the coming weeks, certainly through week 11.

Week 8: UML (no implementation), with annotations as needed to explain intended functionality;

Week 11: Intermediate design deliverable, to include Tables and constraints, to include ASSERTIONS, and an updated UML and functional specification;

Week 13: Final Design using  Final Deliverable Guidelines, which includes implementation

Week 14: In-class project presentations and demos on Youtube (optionally, anonymized) for review by others, inside and outside of Vanderbilt.

You will use SQLite for your implementations.

We will not be significantly weighting any additional front-end interface that you create (e.g., a Web or mobile interface), but obviously, such an application front-end can be incredibly cool, and you will definitely have to be thinking very specifically about the application-layer in designing and ranking your tables, constraints, queries, updates, and triggers!