Main project

Description and requirements

The goal of the main project is to develop an application or library using the concepts and techniques introduced in the lectures. More concretely, the project should:

Deliverables

The project should be developed in teams of three people. The due dates can be found on the schedule.

Project proposal

The proposal is a 1 to 2-page document describing:

  1. The domain you will be working on.
  2. The problem or problems you library or application aims to solve.
  3. An estimated schedule for the project.

Status report

At the middle of the period you have to hand in a report (1 to 2 pages) describing the current status of your project:

  1. A concise description of the main data types and techniques you are using.
    • Include a description of any libraries you are using.
  2. What you have achieved so far – a brief summary of what has been implemented.
    • Please include a link to the repository containing the code.
  3. Timeline – are you still on track? How will you adapt your original timeline?

Presentation and final submission

Your final submission should contain the code and a small report (around 5 pages) outlining:

  1. A description of your domain and problem and how they translate to code.
  2. The most important concept and techniques used throughout the code.
  3. The results you have achieved, including examples of use of your library or application.
  4. Reflection about what went well or better than expected, and what problems you encountered.

Each team should prepare a small presentation (20 minutes, including questions) to describe the highlights of the project – both in terms of functionality and techniques – to the rest of the class.

Suggested topics

A few ideas for possible topics are included below – but this list is by no means exhaustive: