The Java Language:
I/O, selection, iteration and recursion, data structures (the Java Collection interface), classes, methods, parameters and references, constructors, class variables.
Object Oriented Programming:
Object Oriented concepts and their implementation in Java: inheritance, polymorphism, interfaces, abstract classes, nested classes
Object Oriented Design:
Object Oriented design: UML modelling, abstraction, coupling and cohesion.