Advanced Java Programming
People
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
- Master of Science in Informatics, Lecture, Programming languages, Elective, 1st year
- Master of Science in Informatics, Lecture, Programming languages, Elective, 2nd year
- Master of Science in Software & Data Engineering, Lecture, Elective, 2nd year