facoltà di
INGEGNERIA
salita Sperone 31 98166 S. Agata - Messina
web: http://ww2.unime.it/ingegneria
CORSO di LAUREA in
INGEGNERIA ELETTRONICA

Presidente : Prof. Carmine Ciofi


SISTEMI per L'ELABORAZIONE dell' INFORMAZIONE

PROGRAMMA

DIARIO di ESAMI

ORARIO delle LEZIONI

PRENOTAZIONI ESAMI


Programma del

Corso di Sistemi di Elaborazione delle Informazioni

Corso di Laurea Ingegneria Elettronica

A.A. 2000-2001

Prof. Antonio Puliafito

 

 

 

Introduzione alla programmazione orientata agli oggetti

· Oggetti software. Programmi e programmazione. Oggetti software; comportamento e operazioni; stato e proprietà. Esempi di oggetti software. Classi; costruzione di oggetti

· Oggetti e Java: una introduzione a Java. Il linguaggio di programmazione Java. Introduzione a Java.

· Strumenti per la programmazione. Strumenti per la programmazione; attività nella programmazione; editing, compilazione ed esecuzione di programmi; java 2 software development kit. Errori di programmazione. Ambienti di sviluppo integrati.

· Problemi, algoritmi e oggetti. Problemi e algoritmi. Introduzione agli algoritmi; un linguaggio per scrivere algoritmi; istruzioni di controllo if-else e while; progettazione di algoritmi per raffinamenti successivi; esempi di algoritmi per l’analisi di sequenze numeriche.

 

Elementi di programmazione in Java

· Uso di oggetti. Struttura delle applicazioni Java. Uso di oggetti; operazioni e metodi; invocazione di metodi; variabili e assegnazione. Sintassi e semantica dei programmi. Descrizione di oggetti.

· Variabili e assegnazione. Variabili e assegnazione. Variabili riferimento. Espressioni e tipi.

· Creazione di oggetti. Creazione di oggetti e costruttori.

· Convenzioni di codifica. Convenzioni di codifica. Commenti. Scelta dei nomi. Indentazione. Repertorio di istruzioni. Ordine delle istruzioni.

· Tipi, operatori ed espressioni. Tipi. Tipi primitivi numerici. Il tipo primitivo boolean. Tipi riferimento.

· Istruzioni di Java: introduzione, istruzioni condizionali e blocco. Introduzione alle istruzioni di Java. Istruzioni condizionali e blocco; istruzione if-else; istruzione if; blocco; cascata di istruzioni if-else. Linee guida.

· Istruzioni di Java: istruzioni ripetitive. Istruzioni ripetitive; istruzione while; istruzione for; istruzione do-while. Linee guida; relazioni tra istruzioni ripetitive; scelta tra istruzioni ripetitive. Errori comuni. Terminazione precoce; istruzioni break e continue.

· Definizione di metodi. Definizione di metodi; variabili locali; parametri; metodi che restituiscono valori. Aspetti sintattici. Sovraccarico di nomi. Auto-referenziazione. Classi e applicazioni. Visibilità delle variabili. Programmazione strutturata (e non). Metodi di supporto; linee guida. Legame dei parametri; legame per valore; legame per riferimento. Effetti collaterali.

 

Metodologie e tecniche di programmazione

· Correttezza. Introduzione alla correttezza. Classificazione degli errori. Correttezza dei metodi; specifica dei metodi. Verifica di correttezza; test di metodi; test a scatola nera e a scatola trasparente. Individuazione (e correzione) degli errori. Test di moduli; test top-down e bottom-up. Correttezza degli oggetti (cenni).

· Progetto di metodi. Progetto di metodi; aspetti metodologici. Alcune tecniche di programmazione. Analisi di sequenze (studio di caso).

· Stringhe. Stringhe e oggetti String; uso di variabili riferimento; uso di oggetti String. Stringhe e tipi primitivi; conversione da tipi primitivi a stringhe; conversione da stringhe a tipi primitivi; concatenazione; confronto tra stringhe. Analisi di stringhe. Gestione di file di testo.

· Definizione di classi. Definizione di classi per istanziare oggetti; variabili d’istanza; metodi d'istanza; costruttori; aspetti sintattici. Progetto di classi; una metodologia per il progetto di classi; classi e oggetti. Variabili di classe. Incapsulamento. Visibilità delle variabili. Convenzioni di codifica. Correttezza di oggetti.

· Array. Introduzione agli array; array; array in Java. Uso di array. Tecniche di base. Analisi di array. Classi e array.

· Array di array. Array bidimensionali; tecniche di base. Array di array.

· Modello runtime. Modello di gestione della memoria; modello per l'esecuzione di metodi e costruttori; modello per la gestione di oggetti. Vita di oggetti e variabili; effetti collaterali.

· Ricorsione. Definizioni induttive; definizione induttiva di insiemi; definizione induttiva di funzioni; principio di induzione matematica. Metodi ricorsivi; definizione di metodi ricorsivi; esecuzione di metodi ricorsivi; progettazione di metodi ricorsivi; errori comuni. Tipi ricorsivi. Sequenze e ricorsione; stringhe e ricorsione; array e ricorsione. Quando usare (o non usare) la ricorsione.

 

Sistemi di calcolo distribuiti

· Topologie: reti parzialmente o completamente connesse, gerarchiche, ad anello, a stella, a bus.

· Comunicazione: routing, connessioni. L'ambiente TCP/IP, le principali applicazioni in rete (WWW, ftp, telnet), gestione dei socket, tecniche di programmazione in rete, programmazione client-server in ambiente Java. Lo standard CORBA.

· Tipi di rete: LAN, WAN.

· Tipi di sistema operativo: S.O. di rete. S.O. distribuito; migrazione di dati, di calcolo e di processi; disegno di sistemi distribuiti.

· Coordinamento: ordinamento degli eventi; mutua esclusione; individuazione di condizioni di stallo e di malfunzionamenti.

· Paradigma ad Agenti Mobili: differenze con Client Server e Remote Evaluation. La piattaforma MAP, meccanismi di comunicazione ad agenti: standard FIPA e MASIF.

· File system distribuiti: strutture e schemi di nominazione; servizi in remoto; cache, strategia di aggiornamento, consistenza, replicazione.

 

Sistemi per il trattamento dei dati multimediali

Basi di dati multimediali, modelli per basi di dati multimediali, caratterizzazione di dati multimediali, indicizzazione multimediale, programmazione client/server per l'accesso a database multimediali, multimedia information retrieval. Elaborazione delle immagini, il problema della visione, la gestione dei colori, sensori per l'acquisizione di immagini, tecniche di campionamento, digital still camera, gli standard JPEG ed MPEG.

 

Tecniche per la valutazione delle prestazioni dei sistemi di calcolo

Cosa si intende per modello, modelli analitici e simulativi, i processi markoviani, le reti di Petri, valutazione dell'affidabilita' e della disponibilita' dei sistemi paralleli e distribuiti, misure combinate di affidabilita' e di prestazioni: la performability, casi di studio, il tool di modellazione WebSPN, modellazione e valutazione basata su Web.

 

 

Testi consigliati

 

Cay S. Horstmann, “Concetti di informatica e fondamenti di Java2”, Apogeo, 2000.

Alan Pope, “CORBA reference guide”, Addison Wesley, 1997.

K. Trivedi, R. Sanher, A. Puliafito, "Performance and Reliability Analysis of Computer Systems: An Example-based Approach Using the SHARPE Software Package", Kluwer Academic Publishers, 1995.

A.S. Tanenbaum, "Reti di Calcolatori", Utet.

T. Bernestein et ali, “Internet Security”, Wiley, 1996.



| Bacheca di Facoltà ||  WEB Mail || HOME Facoltà || HOME C.d.L. |