Search for contacts, projects,
courses and publications

Advanced Java Programming


Binder W.

Course director

Rosà A.

Course director

Basso M.



This course teaches concepts of object-oriented, functional, and concurrent programming that help create complex software systems that are extensible and scalable. It also introduces advanced profiling and program-analysis techniques for identifying performance bottlenecks in such systems and for optimizing them. These concepts are explained in the context of the Java programming language and the Java Virtual Machine.


  • Understand advanced concepts of Java programming, such as generics, functional programming, and concurrent programming. 
  • Understand the Java Virtual Machine (JVM) and its bytecode.
  • Implement dynamic program analyses, such as profiling, using bytecode instrumentation.

Teaching mode

In presence

Learning methods

Lectures, tutorials, and exercises on the course topics.

Examination information

The examination consists of a project and a final exam.