Understand general programming-language concepts such as static typing, exceptions, access control, interfaces, and equality, and ability to use Java as a particular example language with those concepts.

Class lecturing and discussions with examples. Active laboratory sessions for engaged learning and continuous feedback on progress. Home assignments for analyzing the obtained knowledge in the classes.