Introduction to the object-oriented paradigm, and the programming language Java (basic concepts: object, method, messages, classes, inheritance). Simple data types, variables, expressions, assignment of values. Working with methods, transfer of parameters. Subclasses and inheritance. Control structures (branching and iteration). Recursion; relation: recursion-iteration; application of recursion. Using the graphical user interface in applets. Modifiers, interfaces and exceptions. Input and output in the Java programming language.
Working with threads and animation in applets. Working with components within the graphical user interface. Abstract data structures: the implementation of classic data structures (lists, stacks, queues, graphs, trees, ...) using the Java programming language. The application of algorithmic techniques to search and sort problems with emphasis on the assessment of the complexity and formal testing. Modeling. Characteristics of UML and UML diagrams. The use of software tools. Introduction to software engineering: Development of applications in medium-sized teams with an emphasis on efficiency.