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