Introduction, importance of programming in the current world, EBNF Sequence, Option and Repetition.
First Java programs and Introduction to Types and Variables, Introduction to Precondition and Postcondition.
Advanced Branching with Loops. Weakest Precondition, Value Semantics, Reference Semantics and Immutable Objects.
More on Arrays and Introduction to Objects and their usage. Arrays class, Objects as Parameters and Return type.
Classes and their Constructors, Methods, Visibility of Attributes, Static vs. Non-Static and Class Coding conventions.
Inheritance, Sub- and Superclasses Selective Behaviour change for Subclasses. Polymorphism in Java.
Generic Programming, Wrapper Classes, ArrayList<T> and Comparison of Objects and Instances of Generic Classes.
Implementation of a Generic Type, Systematic Programming, Abstract Data Types and Invariants involving Objects.
EBNF Recursion, Tables and Trees for EBNF Verification, Equivalence of EBNF rules, Java Introduction and Methods.
More on Precondition and Postcondition, Introduction to Branching with if / else Statements.
Input and Output with Scanner, PrintStream, Loop Invariants and an Introduction to Arrays in Java.
Advanced Input and Output with Scanner and PrintStream. Files and how to work with them and GUI.
Working with Classes, More on Visibility, Encapsulation and Introduction to Inheritance in Java.
Interfaces and Inheritance, Exceptions in Java and how to handle them. Try-Catch Exception Handler.
Sets and Maps, Reverse Mapping and their Usage. Comparators and Iterators in Java and how to implement them.
Exam Preparation, anything that might help for the exam and anything that was not mentioned before.