Search for contacts, projects,
courses and publications

Advanced Java Programming

People

Binder W.

Course director

Rosà A.

Course director

Description

This course covers advanced concepts in object-oriented, functional, and concurrent programming for designing extensible, scalable, and resource-aware software systems. It introduces the Java Virtual Machine (JVM), bytecode, and bytecode instrumentation as foundations for dynamic program analysis. Students learn how profiling and related analysis techniques can be used to understand program behavior, identify performance bottlenecks, and guide optimization. The course combines language-level concepts, runtime-system principles, and hands-on practice in the Java ecosystem.

Objectives

  • Understand advanced Java programming concepts, including generics, functional programming, and concurrent programming.
  • Explain the execution model of the Java Virtual Machine (JVM) and the role of bytecode.
  • Design and implement dynamic program analyses, such as profiling, using bytecode instrumentation.

Sustainable development goals

  • Industry, innovation and infrastructure

Teaching mode

In presence

Learning methods

Lectures, tutorials, guided exercises, and practical programming assignments.

Examination information

Assessment consists of a project and a final exam.

Bibliography

Education