Project#
| Courses (Course Mark %): |
|
| Submission deadline: | (In 3 stages, last stage due Friday, 30 October 2026, 15:00) |
In COMP1140, the main assessment aside from the tests and the exam is a project that covers a bit over half of the semester. The key idea of the topic is that you will implement a chat application, including the server and the client program. This gives us the opportunity to look at key object-oriented programming principles and their origin from several angles.
The project and the necessary extra course content is driven by the workshops starting in week 4. We will cover necessary extra topics, like the basics of networking and multithreading in early workshops. We will also look at design documents called RFCs (for “Request for Comment”). In the Practice Project, you will look at a real RFC and implement the basic functionality of a web server.
Starting in week 6, the workshops become the main forum that drives the project: you will decide on the specifics of the chat application and its protocol. We make the basic decision in the workshops, and then you will write your own RFCs that turn those decisions into technical specifications. We do this in two rounds for two different specifications (more on that, later) - these form stages 1 and 2 of the project. After those, I pick one each of the best RFCs of the two rounds and declare them to be the specifications for the project (possibly with modifications).
This kicks off the final stage, in which you implement the system based on the specification. The goal is that all of your parts can be swapped out individually for any of your classmate’s parts and still work.
Stages#
| Stage | Due Date |
|---|---|
| Stage 1 | Friday, 25 September 2026, 17:00 |
| Stage 2 | Friday, 02 October 2026, 17:00 |
| Stage 3 Checkpoint | Wednesday, 21 October 2026, 15:00 |
| Stage 3 | Friday, 30 October 2026, 15:00 |
Optional Group Work#
You may submit the first two stages in groups of up to a certain size (TBD), but also can just submit on your own, subject to everyone having contributed substantially. You must write your own code in the final stage, but you are encouraged to test your implementation is working with other people’s implementation.
Final Interview#
During the final exam period, in addition to taking the Final Exam, you must attend a final interview for the project. These will be scheduled individually. We will look at your implementation, I will ask you questions about your code, and about related course content.
Marking#
There are two separate marks for the project: an artifact mark and an interview mark. The interview mark is based on your final interview (see above).
Artifact Mark#
The artifact mark assesses your submissions in the various stages of the project. The main part is evaluating the functionality of your implementation. Essentially, it both should function according to specification and in combination with other implementations that satisfy the specification.
The basic mark from testing your implementation is then modified by the more coarse-grained results from the previous stages and the checkpoint. These can provide bonus marks (for a maximum artifact mark of 125 points) or reduce your artifact mark.
For stages 1 and 2, your RFC will be graded as “poor”, “reasonable”, “good”, or “great” (the latter category is from where I pick the specification). You count has having submitted an RFC if you have reasonably contributed to one within an allowed group size. Not submitting an RFC will reduce your artifact mark by 20 points for each stage. Submitting a poor RFC will reduce your artifact mark by 10 points for each stage. Submitting a reasonable RFC will leave your artifact mark unchanged. Submitting a good RFC will increase your artifact mark by 5 points for each stage. Submitting a great RFC will increase your artifact mark by 10 points for each stage.
For the stage 3 checkpoint, you will need to submit some tests based on the released specifications. The standard for tests is higher, so I expect most things will be graded as “reasonable”, leaving the artifact mark unchanged. Under special circumstances, I might deem your tests of “exceptional” quality, giving you another 5 bonus points. Otherwise, your tests might be rated as “poor”, reducing your artifact mark by 10 points. Finally, not submitting tests reduces your artifact mark by 20 points.
Final Project Mark#
Your final project mark is based on the product of the artifact mark and the interview mark percentages (meaning you both have to write good code and understand what you are doing), capped at 100%.