Practicals Organizational
The practicals are divided into three parts with one or multiple assignments:
- Warmup: 0% (mandatory)
- Hacklets 1: 15%
- Hacklets 2: 25%
- Defensive Programming: 30%
The exam for the lecture will account for the remaining 30% of the VU.
There will be 2 oral exams, one about Hacklets 1 and one about Hacklets 2 + Defensive Programming. For these, the overall score consists of:
-
Regular points for each assignment
-
Bonus points. They only count if you have achieved 50% of the respective assignments points
-
Oral exam performance
Your final score for each practical part is calculated by:
sum(assignment+bonus) * percentage(OralExam)
Marks
Percentage | Grade |
---|---|
> 90% | Sehr gut (1) |
78.5% – 90% | Gut (2) |
67.5% – 78.49% | Befriedigend (3) |
50% – 67.49% | Genügend (4) |
< 50% | Nicht genügend (5) |
Important notes
- There will be no second chance option
- Submission deadlines are hard. We give you multiple weeks to solve an assignment, so ensure to start on time.
Oral exam
The oral exam is mandatory. You will have the option to select one of the multiple time slots where you need to be able to answer questions to each assignment and task that you fulfilled.
Insufficient answers will lead to a point deduction that can even yield a negative grade. We will provide more information on what you need to know for the oral exam for each assignment individually.
Plagiarism
We encourage discussions with other students and really appreciate that. However, we do not tolerate any plagiarism at all. We will check all submissions for plagiarism. All affected students will receive 0 points and a Ungültig/Täuschung with all its consequences.
Thus, do not give away your source code to other students. You are responsible for protecting your source code and solutions from unintended access of others. In the end, we do not want you to copy code and solutions. We want you to learn and understand the topics for yourself!
Preparations
Your Repository
Soon you are given access to a private git repository where you have to push your exploits and your submission for the defensive programming assignment. You will be informed via e-mail. In the meantime please initialize an empty local git repository by following these instructions:
mkdir ssd2025
cd ssd2025
git init
Upstream Repository for Defensive Programming
We push the defensive programming assignment to our upstream repository. Merge this upstream repository into your local repository to receive the assignment and optional patches or fixes, as follows:
git remote add upstream https://extgit.isec.tugraz.at/sase/practicals/2025/exercise2025-upstream.git
git pull upstream main
Final submission / Tags (Defensive Programming)
Your final submission for the defensive programming assignment must be tagged correctly with a git tag
. The tag label starts with the defensive-
, followed by a number.
As an example, defensive-1
is the label for the defensive programming assignment. As you are not able to delete tags, you can always update your final submission by increasing the appended number, e.g. defensive-15
. In the end, the tag with the highest number before the deadline counts.
IMPORTANT: Don’t forget to push the tags online using git push --tags