Additional resources #
This course is self-contained, meaning that no extra reading is required.
We list here optional resources that may help you complement it, or provide a different perspective.
A reading list for this course is available in the catalogue of the Unibz’s library. All books can be accessed via the library (either physically or digitally).
Among these books, we highlight the following five.
Introductory textbooks #
Java #
Java : the complete reference (11th edition) by Herbert Schildt McGraw-Hill Education, 2019
A general introductory book to Java and object-oriented programming.

Head First Java (3rd edition) by Kathy Sierra, Bert Bates and Trisha Gee O’Reilly Media, 2022
An alternative introductory book, less comprehensive, but with more emphasis on problem solving (rather than syntax).

Haskell #
Learn you a Haskell for great good by Miran Lipovača No Starch Press, 2012
A popular tutorial that introduces Haskell’s syntax and basic concepts.

Programming in Haskell (2nd edition) by Graham Hutton Cambridge University Press, 2016
A more thorough introduction to Haskell, with a variety of exercises.

Good practices (intermediate level) #
Effective Java (3rd edition)
by Joshua Bloch
Addison-Wesley Professional, 2017
A reference book for best practices and common pitfalls when programming in Java (and more generally in an object-oriented language).
