Grading & Progress
Grade breakdown
Your final grade for this course is composed of two parts:
| Component | Weight | Description |
|---|---|---|
| Project | 5 / 20 | Automated evaluation of your team repository at the deadline |
| Exam | 15 / 20 | Individual written + coding exam on Moodle (Safe Exam Browser) |
The project (5 pts) is your foundation — it teaches you how to code. The exam (15 pts) is where you prove you can do it yourself. The exam tests your ability to write C code in a sandboxed environment, without teammates, without AI tools, and without internet. The only way to prepare for that is to have personally written the project code yourself.
See Ethics & AI Policy.
Project grade — 5 / 20
The project grade is assigned automatically at the deadline from what is on your main branch.
Requirements
- Code uniqueness: Your code must be significantly unique. Code that is identical or near-identical to another team’s will be detected and graded accordingly.
- Individual contribution: Each student must have authored at least 10% of the team’s commits on
main. Students who do not meet this threshold do not receive the project credits. - Attendance: Students must be present at all tutored sessions for the full duration.
How features are scored
The CI runs your program with test images and compares output against the reference implementation:
freud.exe -f images/input/test.jpg -c color_blueOutput must match exactly — spacing, capitalization, and line endings matter. The CI also checks regression: new code must not break previously passing features.
Checking your progress
You can check your team’s progress at any time:
- Open your repository on GitHub.
- Go to Actions — look for evaluation workflow runs.
- Read the pull request report generated by the CI for a per-feature breakdown.
If you believe the reference implementation has a bug, open a GitHub issue and describe the problem. If confirmed, your contribution will be reflected positively in your grade.
CI daily advice
- Keep
maincompilable at all times — a broken build means zero test results - Do not add extra libraries beyond course requirements
- Keep your source files under
src/
Exam — 15 / 20
The exam takes place in a supervised session on Moodle with Safe Exam Browser (SEB). It is individual — no teammates, no AI tools, no internet.
Format
| Part | Description |
|---|---|
| MCQ | Multiple-choice questions about the project: C concepts, Git, CMake, image data structure, feature behavior |
| Coding session | Implement one or more functions similar to those in the project, with automated tests that check your solution |
What the coding session looks like
You will be given a function specification and a test harness. You must write correct C code that passes the tests — the same workflow you have practiced all semester.
The coding session requires you to write and reason about C code under time pressure, without assistance. The only preparation that works is having personally written the project features yourself.
How to prepare
- Implement every feature yourself — do not delegate to a teammate or an AI tool
- Understand how pixel indexing works:
(y * width + x) * 3 - Practice the full dev cycle without relying on autocomplete
- Re-read your own code and be able to explain every line
- Review Image Data Structure and Freud CLI Reference
Ethics and academic integrity
Evaluation includes plagiarism detection across all teams. Code similarity is checked automatically.
Read Ethics & AI Policy before using external help, sharing code, or relying on AI tools.