Ricerca di contatti, progetti,
corsi e pubblicazioni

Programming Fundamentals 3

Descrizione

COURSE OBJECTIVES

  • Concepts of concurrent and parallel programming
  • Parametric polymorphism
  • Functional programming.

 

COURSE DESCRIPTION
This course teaches concepts and methods of concurrent and parallel programming, with particular focus on multi-threading, safety/liveness hazards, and synchronization. The course also covers patterns, constructs and classes made available by the Java language and the Java Class Library to implement thread-safe concurrent applications. Moreover, the course introduces generic programming in Java, including related concepts such as erasure and reification. Finally, the course teaches principles of functional programming and its application on the Java Virtual Machine, including lambdas and Java streams. The presented techniques enable the development of scalable, concise, easy-to-maintain and flexible multi-threaded Java applications capable of exploiting modern multicore hardware.

 

LEARNING METHODS
Lectures and exercises on the course topics.

 

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

 

REFERENCES

  • Java Concurrency in Practice (2006), by B. Goetz, T. Peierls, J. Bloch, J. Bowbeer, D. Holmes, D. Lea. ISBN-13: 978-0321349606.
  • Java Generics and Collections (2007), by M. Naftalin and P. Wadler. ISBN-13: 978-0596527754.
  • Mastering Lambdas: Java Programming in a Multicore World (2014), by M. Naftalin. ISBN-13: 978-0071829625.
  • Materials made available by the course instructors.

Persone

 

Binder W.

Docente titolare del corso

Basso M.

Assistente

Schiavio F.

Assistente

Informazioni aggiuntive

Semestre
Autunnale
Anno accademico
2020-2021
ECTS
6
Lingua
Inglese
Offerta formativa
Bachelor of Science in Informatics, Corso di base, Corso, 2° anno