Project

Project Deadlines are available on the Schedule page

Violating the No Copying Policy could result in a 0 on your project grade, and will cap your course grade at 50%

  • The project is completed in pairs for Checkpoints 1, 2 and 3. Checkpoint 0 is completed individually.

  • You need a partner by end of your first lab after the Checkpoint 0 deadline.

  • Attend *your* lab the week of the C0 deadline if you need to meet people or be assigned a partner.

  • There will be no teammate swaps. Teams can only be split in cases of non-academic misconduct.

  • If you are in a situation where your teammate is not pulling their weight, we deal with that through grade adjustments.

The project is a single, cumulative project, that progresses over the semester, in which you are implementing a query language over a snapshot of the UBC Pair database. At regular intervals there are submission checkpoints where we run the Client version of the autograder on your implementation. You are able to check your project's correctness by writing your own tests, and by running the "Smoke" version of the autograder (a subset of the Client). To ensure you are staying on track. There are 4 checkpoints (0,1,2,3). Grading Details Here

Github Issues & Scrums

You must use Github Issues to track your work. All your commits must reference the issue they address. These will serve as a basis for your weekly Scrum meetings with your TA. Additionally, you will be filling out a weekly report to be submitted 24 hours before you meet with your TA.

This is an individual checkpoint

To meet this checkpoint you must bootstrap your project repo and write tests for a project implementation

Checkpoint 1-3

Meeting these checkpoints involves adding functionality, cumulatively, according to the specification.

Each checkpoint suite checks its own new functionality, and checks prior functionality.

Each week you must meet with your TA for a Scrum meeting to detail your progress.

Please see project grading for details.

AutoTest wait times increase massively as deadlines approach. Do not leave submission to the last minute.

Project Context

The project is an integral part of this course. The project will be difficult and time consuming. Projects will be completed in pairs (everyone must have a partner, and you must work with the same partner for the duration of the term). Your partner needs to be in the same lab section as you. The project will proceed in 4 2-3 week sprints; the requirements for each sprint is detailed in a deliverable document.

You should expect the project to take ~6 hours / week / person (13 weeks * 2 people * 6 hours = 156 hours).

It is extremely important you not leave project deliverables until the last moment. It is impossible to stress strongly enough how important this is; 36h over three weeks is no problem, but over a weekend is impossible. These time estimates are based on effective effort, if you are multitasking or just randomly trying to cobble something together without a plan or tests, the project may take much longer.

The project will rely heavily on self-learning. The course content is necessarily broad to provide coverage that will be applicable to most software development projects. It is important to remember that the project is a single software project that will utilize only a subset of the in-class material; the lectures will not serve as a tutorial for the project, it is expected that you will have to use your own creativity to reason about the project requirements, design a solution, and build and validate it yourself.

See the full project description for complete details about the project, the lab, project grading, and finding partners.