/Teaching/System Level Programming/Exercises and Assessment

System Level Programming — Exercises and Assessment

Update for WS 2026/27: The mandatory A1 entry test is cancelled. A1 is an optional bonus assignment worth up to 2 points. The crossed-out A1 information below does not apply this year.

Assessment at a glance

Component Date Second Chance Points Assessment
A1: Entry Test 02.10., 17:00 06.10., 17:00 Mandatory Repeatable Teilleistung with two attempts. Participation brings a grade. At least 50% is required to pass. A graded second-chance submission replaces the first-chance score, even when lower or zero.
A1: Bonus assignment — — Up to 2 bonus Optional for WS 2026/27; no mandatory entry test.
Lecture Exam 07.01. 13:00 14.01. 13:00 35 Repeatable Teilleistung with two attempts. At least 17.5 out of 35 points (50%) is required to pass.
Practicals Exam (A8 / A9) 20.01. 18:00 27.01. 16:00 65 Live coding. A8 is the regular date. At least 32.5 out of 65 points (50%) is required to pass. A9 the second chance with the same threshold to pass.
A2–A7 — — Up to 20 bonus Regular assignments provide bonus points only.

Grading

To pass the course, you must achieve at least 50% in each of the two mandatory assessments separately:

  • A1: Entry Test — at least 50%. Cancelled for WS 2026/27; optional bonus only.
  • Lecture Exam — at least 17.5 out of 35 points (50%).
  • Practicals Exam (A8 or A9) — at least 32.5 out of 65 points (50%).

A higher score in another component or bonus points from A1–A7 cannot compensate for a score below 50% in any of these assessments. The attempt-replacement rules apply when determining the result for each component.

The base score is the lecture exam plus the practicals exam, for a maximum of 100 points. A1 provides up to 2 bonus points, and A2–A7 provide up to 20 bonus points. Bonus points can improve a positive grade, but cannot turn a negative grade into a positive grade.

If you are selected for an oral exam, its assessment of your achievement of the learning goals is applied as a factor ranging from 0% to 120% to your entire course score, including bonus points, before determining the final grade. This can also turn an otherwise passing result into a failing result. See Oral Exam below.

Final score Grade
87.5 or more 1
75 or more 2
62.5 or more 3
50 or more 4

Assignments and recommended time frames

All regular assignments are available throughout the semester. The following time frames are recommendations, not deadlines.

Assignment Recommended time frame Question hour
A1: Entry Test A1: Bonus assignment (up to 2 points) — —
A2: Multithreading 8–21 October A2 and A3:

4. November 11:00

CCGEG008

A3: Thread Synchronization 22 October–5 November
A4: Interprocess Communication 6–19 November A4 and A5:

2. December 11:00

CCGEG008

A5: Memory Layout and Demand Paging 20 November–3 December
A6: Dynamic Memory Implementation 4–17 December A6 and A7:

16. December 11:00

CCGEG008

A7: Calling Conventions and Inline Assembly 7–28 January
A8 + A9: Practicals Exam — —

Entry Test (A1)

Cancelled for WS 2026/27. A1 counts only as an optional bonus assignment worth up to 2 points.

A1 uses the same live-coding format as the practicals exam. It covers basic C and C++ programming, pointer arithmetic, ISP material, and basic Git usage.

Practise the workflow with the ungraded demo. Submit A1/input.c and A1/report.cpp using the A1 tag. Follow the A1 workflow, push the branch and explicitly update the tag, and verify the tested commit in the server log. Local checks alone do not confirm submission.

Memory Layout and Demand Paging (A5)

A5 consists of 15 independent C programming experiments completed by filling gaps in supplied templates. Submit the 15 completed .c files in A5/ with the A5 tag; do not submit binaries. Automated assessment awards 0.2 points per experiment, for an A5 score of 3 points. This assignment score is distinct from the combined A2–A7 course bonus of up to 20 points. See the A5 instructions.

Practicals Exam (A8 + A9)

  • The practicals exam determines the exercise points.
  • A small additional screen (<= laptop size) is allowed; desktop computers are not allowed.
  • Snacks and drinks can be left in the break room.

Oral Exam

The oral exam provides an overall assessment of the extent to which you have achieved the learning goals of the course. Its result determines a multiplicative factor ranging from 0% to 120% (0 to 1.2), applied to your entire course score, including the lecture exam, practicals exam, and assignment bonus points.

The oral exam therefore affects your final course grade and can result in failing the course, even if you passed the lecture exam and the practicals exam.

Final score = (lecture-exam points + practicals-exam points + applicable assignment bonus points) × oral-exam factor. A factor of 0% reduces the final score to zero. A factor of 100% leaves the score unchanged; a factor below 100% reduces it, and a factor above 100% increases it, up to a 20% increase at 120%. For example, 80 points with a factor of 50% become 40 points, which is below the passing threshold.

The separate minimum requirements for the lecture exam and practicals exam still apply.

Students are selected randomly. Students who push changes after the practicals exam have an increased probability of being selected. Changes after the practicals exam can be used to improve assignment bonus points.

Repository and submissions

Each participant receives a Git repository. Do not change its name or path, and do not add other people to it. Use the upstream repository at https://extgit.isec.tugraz.at/slp/upstream. Submit work by tagging it with the assignment name. Use gcc/g++ 13.x or later on Linux and implement according to POSIX.

Communication

Use Discord for course questions and information.

Pitfalls

Review the pitfalls before submitting work.