Course Project

In the course project, groups consisting two to three students are to design and implement a distributed system of their choosing (larger groups are expected to address a larger problem / system). Even though the actual functionality of the system can be chosen freely, certain restrictions apply. The implemented system must be a distributed system and consist of communicating subsystems (monolithic solutions are not accepted). Furthermore, the amount of work needed to realize your envisioned system should be proportional to the size of the project team and the time available (i.e. of sufficient complexity to motivate the work effort of (at least) two assignments). If the project plan (see examination below) is deemed to be of an unsuitable size, it may be adjusted accordingly. Use of the technologies covered in the course (e.g., SOAP, REST, BOINC, Chord, etc.), or equivalent technologies, is encouraged.

Sample project ideas

Here are some sample projects from earlier years, these are NOT suggestions that students can use, but rather included to give an idea of the type and level of projects that have been implemented prior years.

Federated online reservation system

Tired of keeping track of a multitude of online booking systems? Imagine being able to book IKSU classes, movie tickets, and reserve airline tickets using a single web site. Implement a mashup that allows users to manage multiple online booking systems through a uniform interface.

Security aspects are likely to be a complicating factor in this project. A (federated) single-sign-on solution is preferable, but may not be feasible. Students working with this project should have a solid background in web technologies.

Distributed Chess AI

TDB

First Person Shooter Game

TDB

Stock Market Simulator

TDB

Tile-Based Strategy Simulation Game

TDB

Bonus credits

Each course project will be graded based on the following aspects: Novelty and usefulness of the project idea as well as the quality of design, implementation, and presentation (the latter including both the written report and the oral presentation). Successful course projects may be awarded bonus points that can be counted towards a higher grade. As in all parts of the examination of the course, students are required to reach at least a passing grade to be eligible to add any points against a course grade.
Bonus points awarded projects are only valid during the study year points are awarded, i.e. within the next 12 months. Projects failing to reach a passing grade at the first attempt cannot be awarded bonus points.

Examination

There are three deliverables for this project.

Project plan

The project plan is an outline for your project and describes your project idea. This description includes a rough sketch of the envisioned architecture and a few use cases that illustrate the functionality of your system. Furthermore, the project plan should, to as large an extent as possible, describe the tools and technologies that you are planning to use. Finally, your project plan should include a time plan, outlining the details of how your project is to be realized.

Presentation

At the end of the project, each team is to hold a 20 minutes oral presentation of their work. This presentation should include the motivation and goals of the project, illustrate the architecture of the implemented system, and an describe the technologies used to implement it. Furthermore, the presentation should include a demonstration of the system. This can either be done live, or, preferably, be a playback of a previously recorded demo. To record your demo, use e.g., the XVidCap tool.

Final report

The final report should be a complete description of your project. As there is no ready-made specification of the task, the motivation for your project the envisioned use cases should be described with special care. Describe the architecture of your system, the various subcomponents, and their interaction. Also discuss to which extend you have fulfilled the project plan, and share your experiences with the used tools. Envision a reader unaware of, but genuinely interested in, your system, instead of a grading teacher that knows all the details. In other words, your report should be a self contained description of your project.

You are about to finish your education. This course is likely among the last courses you will take, and this project is probably one of the largest and/or most sophisticated systems you will build during your studies. This fact should be reflected in your report. A main guideline is that your report should reflect the knowledge that you have accumulated during your studies. The project report should hence be a valuable tool in marketing your programming and (written) communication skills for a potential employer, e.g., when looking for a master thesis or a job.

Examination

The course project is to be addressed in groups of 2-3 students. Place all files pertaining to your solution in

~/edu/5DV153/assignments/project/

Source code should be placed in

~/edu/5DV153/assignments/project/src/

The project report should be placed in a single, self-contained PDF document in

~/edu/5DV153/assignments/project/report/report.pdf

Deadline

See the course schedule for project deadlines.