Advanced Java Programming
Persone
Descrizione
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.
Obiettivi
- 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.
Obiettivi di sviluppo sostenibile
- Industria, innovazione e infrastrutture
Modalità di insegnamento
In presenza
Impostazione pedagogico-didattica
Lectures, tutorials, guided exercises, and practical programming assignments.
Modalità d’esame
Assessment consists of a project and a final exam.
Bibliografia
Programma
- Master of Science in Informatics, Lezione, Programming languages, A scelta, 1° anno
- Master of Science in Informatics, Lezione, Programming languages, A scelta, 2° anno
- Master of Science in Software & Data Engineering, Lezione, A scelta, 2° anno