Advanced Java Programming
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 Java Virtual Machine.
- Understand advanced concepts of Java programming, such as generic, functional and concurrent programming.
- Understand the principles of dynamic program analysis, profiling, and instrumentation on the Java Virtual Machine.
Lectures, tutorials, and exercises on the course topics.
The examination consists of periodic assignments, a project, and a final exam.