Search for contacts, projects,
courses and publications

Advanced Java Programming

Description

COURSE OBJECTIVES

- 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.

 

COURSE 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 Java Virtual Machine.

 

LEARNING METHODS
Lectures, tutorials, and exercises on the course topics.

 

EXAMINATION INFORMATION
The examination consists of periodic assignments, a project, and a final exam.

 

REFERENCES

  • Java 8 Lambdas: Pragmatic Functional Programming (2014), by R. Warburton. ISBN-13: 978-1449370770.
  • Java Concurrency in Practice (2006), by B. Goetz, T. Peierls, J. Bloch, J. Bowbeer, D. Holmes, D. Lea. ISBN-13: 978-0321349606.
  • Slides, code, documentation and publications made available by the course instructors.

People

 

Binder W.

Course director

Rosà A.

Course director

Additional information

Semester
Fall
Academic year
2020-2021
ECTS
6
Language
English
Education
Master of Science in Informatics, Elective course, Lecture, 1st year
Master of Science in Informatics, Elective course, Lecture, 2nd year