Questo manuale, che si offre come una guida di fondamenti di informatica, affronta in modo chiaro, ma allo stesso tempo rigoroso, un ampio insieme di concetti che contribuiscono a formare le conoscenze di base di uno studente universitario. Gran parte del volume è dedicata all'illustrazione di costrutti e tecniche fondamentali di programmazione nel moderno paradigma orientato agli oggetti. Il linguaggio di programmazione di riferimento è Java, oggi ampiamente utilizzato a livello mondiale, sia in ambito accademico che industriale. La lettura del testo non richiede alcuna conoscenza preliminare di nozioni di informatica, e grazie alla sua struttura graduale, la trattazione risulta particolarmente flessibile per le esigenze degli insegnamenti di informatica nei differenti corsi di studi universitari. Oltre ai concetti di base dell'informatica e della programmazione in Java, il testo dedica ampio spazio ad argomenti avanzati quali: - l'analisi di complessità degli algoritmi. - le tecniche efficienti di ricerca e ordinamento di dati. - la progettazione di strutture dati dinamiche. - la gestione degli errori. - la gestione dei flussi di input ed output. Vengono anche descritte alcune delle caratteristiche più recenti del linguaggio Java, quali i tipi enumerativi e i tipi generici. Al fine di illustrare concretamente ed esaustivamente i concetti teorici affrontati, il testo presenta molti esempi pratici e propone al lettore oltre 140 esercizi da svolgere. Ulteriore materiale a supporto degli argomenti trattati nel testo è disponibile on-line all'indirizzo: http://www.approfondimenti.maggioli.it/fondamenti-di-informatica-in-java. Emilio Di Giacomo Ricercatore (con abilitazione al ruolo di professore associato) presso il Dipartimento di Ingegneria dell'Università degli Studi di Perugia. È titolare dei corsi di Fondamenti di Informatica e di Algoritmi e Strutture Dati. Svolge attività di ricerca nel settore dell'Ingegneria degli algoritmi, della Geometria computazionale e della Visualizzazione dell'informazione. Walter Didimo Professore associato (con abilitazione al ruolo di professore ordinario) presso il Dipartimento di Ingegneria dell'Università degli Studi di Perugia. È titolare dei corsi di Fondamenti di Informatica, Informatica Teorica e Programmazione per le Reti. Svolge attività di ricerca nel settore dell'Ingegneria degli algoritmi, della Geometria computazionale e della Visualizzazione dell'informazione.