DescriptionCreate a complete design (functional, technical and experimental prototype) for a project of your own choosing.
TypeHand-in assignment with assessment.
DurationAbout 35 working days.
Progress points35.0
Credits15
Test matrix
Learning goal
?
Know Comprehend Apply Analyze Evaluate Create Σ
Create functional designs.
1
1
1
11 11 11 33.3
Create technical designs.
2
2
2
11 11 11 33.3
Apply insight to solve problems.
4
4
4
11 11 11 33.3

Introduction

This project consists of the doing the early stages of developing a new software product. It has a hard seven working week deadline. Make sure that you submit your complete report on or before the last day.

During this project, you're (of course) not required to leave your laptop at school. You're also allowed to work from different locations. You may discuss your project with others, as long as you disclose any significant help your received in your report.

Stages

Functional design

Create a functional design for your project. We would recommend it be a (web)app with a graphical user interface. Although the exact contents of a functional design may differ depending on the project, we would generally expect to see:

  • An introduction and a problem statement.
  • A domain model (in the form of an ERD or a class diagram).
  • A complete set of wireframes (including behavior descriptions) for the desired functionality.
  • A description of how you validated your designs with either the client and/or some of your intended end-users, and the results of this validation.
  • A description of any help you received.

Alternatively, you may also propose substantial changes to an existing functional design or product. Make sure you execute the full design process though. Talk to a teacher in case of doubt.

Objective #13.0 points

Grading is based on the quality of your design, correcting for the complexity of the problem.

Grade Quality (completeness, clarity, accuracy)
1 There is nothing of any use. One would need to start over entirely.
5 The FD has rather many large flaws. Even when in a rush, one would need to iterate on the FD before continuing development.
6 The FD has some large flaws, but when in a rush it could be used as a starting point for creating a TD and an implementation.
8 The FD has some shortcomings, but for the most parts provides enough guidance for creating a TD and an implementation.
10 The FD is complete, clear and accurate. A TD and an implementation can be created without any further knowledge of the project.
Multiplier Complexity
0.6 About the complexity of a blog, including sign ups, managing posts and (unmoderated) user comments.
1.0 About as complex as a web store, including sign ups, shopping basket, checkout, payment and product recommendations.
1.2 Clearly more complex than the above example, or about as complex but in a problem domain that is less well understood.

Technical design

Create a technical design for your project. Although the contents of a technical design may differ depending on the project, we would generally expect to see:

  • An introduction.
  • A short description of the functionality of the system that needs to be build (or a reference to a relevant functional design).
  • A (high level) technical overview, for example in the form of a C4 level 2 model.
  • A description of your design choices, including motivation of the choices made and alternatives that have been considered.
  • A description of how security between parts of your system is handled.
  • A description of how and why your design choices would change if extreme scalability and reliability were important concerns.
  • A description of any help you received.

Alternatively, you may also propose substantial changes to an existing system. In that case, you should start by carefully modeling the existing system, and then execute all design steps for making your changes on top of that. Talk to a teacher in case of doubt.

Objective #23.0 points

Grading is based on the quality of your design, correcting for the complexity of the problem.

Grade Quality (completeness, clarity, accuracy)
1 There is nothing of any use. One would need to start over entirely.
5 The TD has rather many large flaws. Even when in a rush, one would need to iterate on the TD before continuing development.
6 The TD has some large flaws, but when in a rush it could be used as a starting point for creating an implementation.
8 The TD has some shortcomings, but for the most parts provides enough guidance for creating an implementation.
10 The TD is complete, clear and accurate. The TD has a clear link with the functional design and an implementation (based on the TD) can be made without any further enquiry.
Multiplier Inherent complexity
0.7 About the complexity of a single web-server connected to a database, with two user roles and one external service.
1.0 About the same complexity as the Technical Design Project assignment.
1.2 Clearly more inherent complexity than the above.

Problem solving

Solve a technical problem to which the solution is not obvious to an experienced developer (like a teacher). This should usually be the hardest and/or most uncertain part of your project. Solving it should involve doing some (informal) research, and some experimenting and/or prototyping.

We would generally expect to see:

  • A clear introduction to the problem.
  • Your definition of success. What would be a good outcome of this research.
  • References to resources you have consulted for solving the problem.
  • A list of alternative ways to approach the problem, with pros and cons for each.
  • Your motivated decision on which one(s) of these to experiment with or prototype on.
  • A description of your experiments or prototype.
  • Any source code and output data for the above.
  • A critical (if possible numerically supported) analysis of your solution's fitness. For example in terms of time and/or space complexity, or in terms of meeting some specific goal.
  • Your conclusion.
  • A description of any help you received.

Objective #33.0 points

Grading is based on the quality of your solution, correcting for the complexity of the problem.

Grade Quality (completeness, clarity, accuracy)
1 The presented solutions do not solve the presented problem at all.
5 The presented solutions are severely flawed. Little to no alternatives have been considered or an obvious alternative has been missed.
6 The presented solutions has some large flaws, relevant alternatives have been considered but the derivation of the solution is flawed.
8 The presented solutions has some shortcomings, but for the most parts provides enough guidance for creating a production grade implementation.
10 The presented solutions complete, clear and accurate. An expert presented with the problem would consider similar alternatives and come to a similar conclusion.
Multiplier Complexity
0.6 A problem that can be solved without much of an algorithm, but by intelligently combining standard data structures.
1.0 About as complex as the teleporting-maze assignment.
1.2 Clearly more complex than the above example, or about as complex but in a problem domain that is less well understood.

PDF documents

Objective #4MUST

Having all documentation in PDF format is a precondition for receiving a graduation grade.

Although Markdown is convenient for software developers, it requires special tools to view them properly, especially when using advanced features like embedded PlantUML. As this report will become part of your graduation dossier, we ask you to please create a companion .pdf for each .md in your portfolio repository. You can do this using the Markdown Preview Enhanced VSCode extension by:

  • Opening the .md file.
  • Showing the preview panel for it (using ctrl-k v).
  • Right-clicking on the preview panel and selecting Open in browser.
  • Within the new browser window, print (ctrl-p) to PDF.
  • Give the .pdf file the same base name as the original .md file, and place it in the same directory.

Graduation procedure

  • After you've submitted the project, you'll be invited for an assessment of your work. During the assessment, which will generally last about 30 minutes, you will be asked to explain your work and defend your choices by two examiners (teachers).
  • Shortly after the assessment, you'll hear from the examiners if you passed or not.
  • In case you did not pass, you may choose how to do a retake:
    1. Continue work on the assignment for up to three weeks, based on the feedback and grading of your first attempt. After submission you have to take another assessment. You may only choose this option once per project.
    2. Start a new project, solving an entirely different problem. This is also what you'll have to do if you chose the above option but once again didn't get a passing grade.
  • As usual, you are entitled to do two attempts (meaning one retake) per academic year. Each of the above options counts as doing a retake. In case you require an additional retake, you must file a request with the examination board.
  • If there are special circumstances (like extended sickness during the project period) that warrant an extension, please file a request with the examination board.
  • Once you have received a passing grade based on the assessment, there is just one more thing to do: publicly present your project work!
    • These presentations are scheduled in the late afternoon of every Intern Meetup Day (the last non-vacation Thursday of each month).
    • There will often be multiple students presenting their graduation projects.
    • Each student gets to present for about 10 minute and answer questions for another 10 minutes.
    • Assuming the presentations were satisfactory, which they generally should be if some preparation was put into it, it's time for diplomas (or IOUs for diplomas), speeches, presents and celebrations!
    • As the presentations will take place in our offices, class mates are welcome and very much encouraged to attend.
    • Please do feel more than welcome to invite family, friends and future colleagues to the presentations and celebrations!

Objective #5: Presentation and Q&AMUST

Doing a public presentation of your work is a mandatory part of the graduation project. Because: what good is a plan if you're unable to explain it to other people.

Though you will not receive a grade for the quality of your presentation, in order to pass it must be well-prepared, clearly structured and understandable for fellow graduating students. Your presentation should last for about 10 minutes (between 7 and 15, if you want exact numbers).

After the presentation there will be about 10 minutes time for audience questions. We expect you to be able to answer them professionally.

Rubrics mapping and grading

#1#2#3-Σ
Create functional designs.3.003.0
Create technical designs.3.003.0
Apply insight to solve problems.3.003.0
Base grade.1.001.0
Σ3.003.003.001.0010.0