Questo testo raccoglie ed elabora le lezioni di Programmazione Orientata agli Oggetti (POO) svolte da Libero Nigro nell'ambito del corso di laurea in Ingegneria Informatica dell'Università della Calabria. Il testo approfondisce la programmazione ad oggetti in Java e lo sviluppo di classi "tagliate su misura" delle applicazioni, organizzate in gerarchie di moduli riutilizzabili, robuste rispetto al verificarsi di eccezioni, ed eventualmente dotate di interfaccia grafica di interazione (GUI). I meccanismi della POO sono messi in pratica attraverso il progetto e lo sviluppo di applicazioni non banali. Il testo introduce altresì i concetti della programmazione concorrente/parallela multi-thread e lo stile funzionale nell'elaborazione (eventualmente in parallelo) di collezioni di dati mediante espressioni lambda e stream. La presentazione degli argomenti è "essenziale" ma rigorosa, e dà prevalenza al "codice", ossia la scrittura dettagliata di programmi completi sui vari argomenti affrontati.