Lezioni di programmazione orientata agli oggetti in Java

con elementi di strutture di dati e architettura dei calcolatori

 45.00 IVA assolta

Autori: Christian NIGRO, Libero NIGRO
2014, 504 pagine, formato 17x24
ISBN: 88-371-1893-7
COD: 1893
Argomento: Ingegneria Informatica

Descrizione

Questo testo raccoglie gran parte delle lezioni del corso di Programmazione Orientata agli Oggetti (POO) che il prof. Libero Nigro svolge da diversi anni presso il corso di laurea in Ingegneria Informatica dell’Università della Calabria. Le lezioni assumono che l’allievo abbia già seguito un primo corso di Fondamenti di Informatica e dunque abbia già familiarizzato con i concetti fondamentali di algoritmo, calcolatore e risoluzione algoritmica di problemi secondo lo stile procedurale. I primi due capitoli del testo, comunque, richiamano gli argomenti di base della programmazione procedurale in Java, cioè i tipi primitivi, le strutture di controllo e la gestione di strutture dati array unitamente allo sviluppo di diversi programmi dimostrativi. Dal terzo capitolo in poi si approfondisce la programmazione orientata agli oggetti in Java e la messa a punto di classi “tagliate su misura” delle applicazioni, organizzate in biblioteche di moduli riutilizzabili, robuste rispetto al verificarsi di eccezioni, ed eventualmente dotate di interfaccia grafica di interazione (GUI). Lo studio della POO include i meccanismi di programmazione mediante tipi generici, e approfondisce classi proprie della libreria di Java ed in particolare il collection framework (liste, set e mappe) considerato il suo ruolo strategico ai fini delle applicazioni. Successivamente si forniscono elementi di conoscenza riguardanti l’implementazione di collezioni custom lineari (liste concatenate) e non lineari (alberi e grafi), le tecniche di programmazione ricorsiva, si introducono i concetti di complessità degli algoritmi, si presentano algoritmi efficienti di ordinamento, si discutono alcune strutture di dati e le nozioni dello unit testing. I meccanismi della POO vengono messi in pratica attraverso il progetto e lo sviluppo di applicazioni non banali. In particolare, si mostra una realizzazione ad oggetti di un sistema software che emula un calcolatore didattico (RASP) utilizzato per la programmazione in assembler, ed una libreria di classi a supporto di programmi basati sui grafi. Un capitolo a parte è dedicato ad un’introduzione alla programmazione multi-thread e al progetto di classi thread-safe, con diversi esempi di programmi concorrenti. Chiudono il testo due appendici nelle quali rispettivamente vengono studiati (a) la rappresentazione in bit delle informazioni, (b) il calcolatore didattico RASP. Il testo si caratterizza per uno stile di presentazione “essenziale” ma rigoroso, e per la “prevalenza del codice”, ossia la scrittura dettagliata di programmi completi sui vari argomenti affrontati. Si ritiene che il testo possa essere utile nel biennio di ingegneria informatica o dei corsi di studio in informatica.

E’ possibile scaricare il codice aggiornato e una Errata Corrige accedendo alla pagina http://www.lis.dimes.unical.it Teaching -> Programmazione Orientata agli Oggetti

Christian Nigro è un professionista che opera nell’ambito dell’ingegneria del software. I suoi interessi sono centrati sulle metodologie di sviluppo di sistemi software lato server, basati su Java o su tecnologie affini, e sullo sviluppo di software per dispositivi mobili. Particolare attenzione è rivolta alla specificazione, progetto e implementazione di sistemi concorrenti e distribuiti.
Libero Nigro (www.lis.deis.unical.it/~nigro) è un professore ordinario di Ingegneria Informatica presso la facoltà di Ingegneria dell’Università della Calabria (UNICAL). E’ titolare dei corsi di Programmazione Orientata agli Oggetti, erogato al primo anno degli studi in Ingegneria Informatica, e di Ingegneria del Software per Sistemi in Tempo Reale e ad Agenti, rivolto agli studenti della laurea specialistica in Ingegneria Informatica. E’ responsabile del Laboratorio di Ingegneria del Software (www.lis.deis.unical.it) presso il DIMES/UNICAL. I suoi interessi di ricerca riguardano la modellazione (mediante strumenti formali come reti di Petri, automi temporizzati etc.), l’analisi (basata su simulazione o verifica esaustiva), il progetto e l’implementazione di sistemi software concorrenti, tempo dipendenti, multi-agente o basati su servizi, in ambiente centralizzato o distribuito/parallelo.