The exam grade counts for 40% of the final grade, whereas the exercise grade counts for 60%. Passing the exam is required for a passing grade. The exam grade is calculated based on the percentage of exercise points in the following way:
| % of exam points | Exam grade |
|---|---|
| 90% - 100% | 5 |
| 80% - 89% | 4 |
| 70% - 79% | 3 |
| 60%- 69% | 2 |
| 50%- 59% | 1 |
| 0% - 49% | 0 |
Further assessment details can be found in the material.
The exam consist of following types of tasks:
- Concept understanding (e.g., how inheritance and interfaces work).
- Code interpretation (e.g., what is the output of certain code snippet).
- Small coding tasks.
The exam is done in Moodle without any external materials. In small coding tasks, Visual Studio Code or other editor won't be in use, but the amount of code written won't be significant.
The focus is on the following topics, study them well:
- The purpose of inheritance and interfaces, and how to use them in code. Study the materials.
- How to define (in code) an interface with a method and a class implementing the interface.
- How to define (in code) a superclass and a subclass inheriting it.
- The purpose of
HashMap,ArrayList, and array data structures, and how to use them in code. Study the materials. - The purpose of streams and lambdas and how to use the common stream operations, such as
mapandfilter, in code. Study the materials. - The purpose of unit testing and how to implement simple unit tests with JUnit. Study the materials.
- How to define (in code) a JUnit test class and a test method with
assertEqualsassertions.
- How to define (in code) a JUnit test class and a test method with
- The purpose of the DAO pattern. Study the materials.
The following topics are excluded from the exam:
- Details how sorting algorithms, such as bubble sort, are implemented.
- Any SQL syntax.
- Final week, "Advanced and applied topics", related topics.