# Points scheme for the exercises

## For programming tasks (code)

Functionality: 60% Tests: 20% Documentation, Checkstyle, etc. 20%

**Example:** Your program written for a 5-point subtask works in principle, but there are no tests and no documentations and there are many checkstyle errors. Then you will get only 3 of 5 points.

**Important:**

If your code does not compile (*make compile* for Python and C++, *ant compile* for Java), the exercise will not be graded (= 0 points).

*Rationale: otherwise it's a pain for your tutor to look at your code and to find mistakes.*

Tests specified in the TIP file **must** be implemented, otherwise the exercise will not be graded (= 0 points, the content of the test cases is important, not the exact syntax).

*Rationale: you just have to do it, do it.*

If tests are not specified, you **must** write one non-trivial unit test per non-trivial method yourself, otherwise 50% of the points are subtracted.

*Rationale: a method that is not tested, is usually not correct.*

If there are checkstyle errors on Jenkins, your exercise will not be graded (= 0 points).

*Rationale: you just have to do it, do it.*

If you do not document your code, you risk point subtraction.

*Rationale: you just have to do it, do it.*

## For theoretical tasks (proofs)

Basic idea / approach: 40% Line of argument: 60%

**Example:** If you only write down the basic, correct proof idea in some vague sentences, you will get only 40% of the points. However, if your proof idea is wrong, you will get 0 points.

**Important:** Minor mistakes in your proof are ok and don't lead to any points deduction. But it should be obvious, that you have made some reasonable effort to show the proof.