Algebra lineare Semestre Crediti Corso di Laurea per il...

55
Algebra lineare Docente: Enrico Jabara Semestre: 2 Crediti: 3 Settore scientifico-disciplinare: MAT/02 Ore di lezione/esercitazione: 24 Ore per attività integrative: 4 Modalità di esame: Prova scritta Corso di Laurea per il quale l’insegnamento è attivato: Laurea triennale in Informatica Corsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica in Informatica Obiettivi: fornire gli strumenti di base per risolvere problemi lineari. Programma: 1 Matrici (6 ore) 2 Sistemi di equazioni lineari (6 ore) 3 Spazi vettoriali (6 ore) 4 Trasformazioni lineari (6 ore) Bibliografia: E. Artin. Algebra. Boringhieri, Torino, 1997. Algoritmi e strutture dati Docente: Annalisa Bossi Semestre: 1 Crediti: 6 Settore scientifico-disciplinare: INF/01 (Informatica) Ore di lezioni/esercitazioni: 40 Ore per attività integrative: 8 Modalità di esame: Prova scritta Corso di Laurea per il quale l’insegnamento è attivato: Laurea triennale in Informatica Corsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica in Informatica Obiettivi: Acquisire gli elementi di base per la progettazione e l'analisi degli algoritmi. Viene evidenziato il criterio dell'efficienza nella progettazione degli algoritmi e sottolineata la relazione tra la rappresentazione dei dati e gli algoritmi per la loro elaborazione. Alla fine del corso lo studente deve conoscere le principali strutture dati elementari e saper operare con esse. Programma:

Transcript of Algebra lineare Semestre Crediti Corso di Laurea per il...

Algebra lineareDocente: Enrico Jabara

Semestre: 2Crediti: 3Settore scientifico-disciplinare: MAT/02Ore di lezione/esercitazione: 24Ore per attività integrative: 4Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: fornire gli strumenti di base per risolvere problemi lineari.

Programma:1 Matrici (6 ore)2 Sistemi di equazioni lineari (6 ore)3 Spazi vettoriali (6 ore)4 Trasformazioni lineari (6 ore)

Bibliografia:E. Artin. Algebra. Boringhieri, Torino, 1997.

Algoritmi e strutture datiDocente: Annalisa Bossi

Semestre: 1Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Acquisire gli elementi di base per la progettazione e l'analisi deglialgoritmi. Viene evidenziato il criterio dell'efficienza nella progettazione deglialgoritmi e sottolineata la relazione tra la rappresentazione dei dati e gli algoritmiper la loro elaborazione. Alla fine del corso lo studente deve conoscere le principalistrutture dati elementari e saper operare con esse.

Programma:

Introduzione all'analisi degli algoritmi (4 ore). Algoritmi. Ordine di complessità di unalgoritmo.Strutture di dati elementari (8 ore). Specifica e realizzazione di strutture dati. Liste.Pile e Code. Alberi. Insiemi.Ordinamento e selezione (8 ore). Mergesort. Quicksort. Ordinamento in tempolineare. Mediano e selezione.Dizionari (4 ore). Realizzazione con vettore ordinato. Realizzazione con tabellehash.La struttura dati heap (4 ore). Costruzione di uno heap. Heapsort. Code di priorità.Alberi di ricerca (6 ore). Alberi binari di ricerca. Alberi Bilanciati.Algoritmi elementari sui grafi (6 ore). Rappresentazione (liste/matrici di adiacenza).Visite.

Libri di testo:Cormen T. H., Leiserson C. E., Rivest R. L. ``Introduction to Algorithms''. The MitPress, 1990.

Analisi e progetto di algoritmiDocente: Marcello Pelillo

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scritta con eventuale integrazione oraleCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi:Il corso fornisce un'introduzione alle tecniche avanzate per la progettazione el'analisi degli algoritmi, con particolare riferimento ad algoritmi e problemi su grafi.Vengono inoltre forniti i concetti e i risultati fondamentali relativi alla teoria dellacomplessità computazionale.

Programma:Tecniche per il progetto e l'analisi di algoritmi. Divide et impera. Backtracking.Algoritmi greedy. Programmazione dinamica. Analisi ammortizzata.Algoritmi fondamentali su grafi. Alberi di copertura minimi (Kruskal e Prim).Cammini minimi (Dijkstra, Bellman-Ford, Floyd-Marshal). Flusso massimo (Ford-Fulkerson) e abbinamento massimo bipartito.Problemi NP-completi e approssimazioni. Classi di complessità P e NP. Riducibilitàe NP-completezza. Algoritmi approssimati.

Libri di testo:

T. H. Cormen, C. E. Leiserson, e R. L. Rivest. Introduzione agli Algoritmi . JacksonLibri, 1994. Traduzione italiana di: Introduction to Algorithms. MIT Press, 1990.

Analisi e verifica di programmiDocente: Agostino Cortesi

Semestre: 1 (erogato in forma compatta)Crediti: 3Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 20Ore per attività integrative: 4Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi: Lo scopo del corso è introdurre le principali tecniche di analisi statica diprogrammi, che permettono di derivare a tempo di compilazione approssimazionicorrette relative al comportamento dinamico di un programma. I principali campi diapplicazione di queste tecniche riguardano l'ottimizzazione dei compilatori e lacertificazione di programmi.

Programma:Introduzione all'Analisi di Programmi (4 ore)Analisi Data-Flow (4 ore)Analisi Control-Flow (4 ore)Tecniche di Interpretazione Astratta (8 ore)

Libri di testo:F. Nielson, H.R. Nielson, and C. Hankin: Principles of Program Analysis, Springer,1999.Andrew Appel: Modern Compiler Implementation in Java, Cambridge UniversityPress, 1998.Steven Muchnick. Compiler Design and Implementation. Morgan Kaufmann Pub.1997.

Applicazioni client serverDocente: Alberto Pravato

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scritta e, a scelta, colloquio orale o progetto.Corso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica in

InformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi: Lo scopo del corso è anzitutto chiarire gli aspetti relativi ai sistemienterprise (sistemi client/server, distribuiti, Web oriented e loro integrazioni) comecostruirli e quali effetti possano avere sulle organizzazioni che intendano utilizzarli,fornendo un approfondimento sugli aspetti di apertura, interoperabilità e scalabilità.Il corso intende poi fornire allo studente una preparazione sulle tecniche distrutturazione di applicazioni distribuite e sull'utilizzo di nuovi strumenti diprogrammazione per l'interfacciamento con database server e per laprogrammazione a componenti distribuiti (come CORBA, DCOM ed EJB) anche inWeb.

Programma:Introduzione (4 ore). Contenuti e obiettivi del corso; tecnologia client/server (C/S) alivello di sistema; modello C/S; C/S nella realtà; applicazioni enterprise e lorointegrazioni.Progettazione C/S (8 ore): Separazione dei compiti tra entità distribuite;bilanciamento dei carichi; architetture 2-tier e multi-tier; distribuzione delle risorse;scalabilità; cenni alla progettazione di applicazioni enterprise usando UML.C/S nei database (8 ore). SQL dinamico; scelte implementative in ambito C/S(quando e perché usare stored procedure, trigger, application server e multi-tier);ODBC e JDBC: connessioni, esecuzioni (gestione dei record set); OLAP: databasemultidimensionali, operazioni drill-down e rolling-up.Software a componenti distribuiti (13 ore): Fondamenti teorici sullaprogrammazione a componenti: differenze tra oggetto e componente, interfacce,polimorfismo, ereditarietà e incapsulamento; la tecnologia CORBA; la tecnologiaDCOM; introduzione alla tecnologia J2EE (EJB).C/S in Web (7 ore): Il Web e il protocollo HTTP; estensioni ai server Web: via API,via programmazione CGI, via server side include e via Java Servlet;programmazione dal lato Client: realizzazione di Applet Java, JavaScript.

Libri di testo:P. E. Renaud. Introduction to Client/Server Systems. Second Edition. John Wiley &Sons 1996.C. Szyperski. Component Software. Addison Wesley 1998.

Libri di consultazione:C. T. Arrington, Susan Cardinale, Hugo Scavino. Enterprise Java with UML. JohnWiley & Sons 2000.M. Hall. Web Programming. Prentice Hall 1998.

Architetture degli elaboratori ADocente: Antonino Salibra

Semestre: 1

Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Acquisire conoscenze su rappresentazione digitale dell'informazione, sullivello della logica digitale nei calcolatori elettronici, sulla realizzazione tramitecircuiti delle operazioni aritmetiche principali. Il corso fornisce anche le conoscenzedi base sulle componenti principali di un calcolatore e sul loro funzionamento, esull'organizzazione a livelli della sua architettura. Infine, il corso introduce il livellomacchina di un moderno processore RISC.

Programma:Introduzione (3 ore). Organizzazione di base di un calcolatore (CPU, memoria,I/O). Livelli di astrazione. Tecnologia costruttiva.Rappresentazione informazione (6 ore). Rappresentazione numerica dei dati. Basidi rappresentazione. Numeri con e senza segno. Numeri con virgola. Dati nonnumerici.Circuiti combinatori (8 ore). Algebra di Boole. Espressioni logiche e forme normali.Porte logiche e circuiti. Minimizzazione circuiti. Esempi di circuiti.Circuiti per operazioni logiche e aritmetiche (7 ore). ALU per somma e sottrazioni diinteri, e per operazioni logiche. Cenni su circuiti per moltiplicazione e divisioneintera.Circuiti sequenziali sincroni (8 ore). Latch, Clock, Flip-flop, registri, memoria. Retisequenziali di Mealy e di Moore: specifica e implementazione.Cenni sull'organizzazione a livelli di un calcolatore (8 ore). Livelli linguaggio ad altolivello, sistema operativo, linguaggio assembler. Livello linguaggio macchina(processore MIPS). Livello della microarchitettura: organizzazione CPU (Partecontrollo/Parte Operativa) e ciclo di esecuzione delle istruzioni.

Libri di testo:D.A. Patterson, J.L. Hennessy. Struttura, organizzazione e progetto dei calcolatori:interdipendenza tra hardware e software. Jackson libri, 1999. Traduzione italianadel libro "Computer Organization & Design", second edition, Morgan KaufmannPublisher.

Architetture degli elaboratori BDocente: Salvatore Orlando

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40

Ore per attività integrative: 8Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Acquisire i fondamenti teorici e le tecniche per la progettazionedell'architettura convenzionale di un elaboratore nelle sue componenti principali,ovvero Processore - Input/Output - Memoria. Sono inoltre fornite le conoscenzesulle misure e le tecniche per la valutazione delle prestazioni di un calcolatore. Ilcorso enfatizza infine l'interfaccia tra l'hardware e il software di un elaboratore,introducendo le problematiche relative all'interfaccia tra il livello linguaggiomacchina della CPU con i linguaggi ad alto livello e con il sistema operativo.

Programma:Livello linguaggio macchina (5 ore). Set delle istruzioni, indirizzamenti e formati.Processore MIPS e processori alternativi. Architetture RISC e CISC.Livello microarchitettura (10 ore). Progetto della CPU. Parte controllo e parteoperativa. Organizzazione a singolo e multiplo ciclo. Progetto del controllo.Valutazione delle prestazioni (3 ore). Tempo di CPU. Throughput. CPI. Misure diprestazioni e benchmarks.Parallelismo a livello di istruzioni (8 ore). Organizzazione della CPU con pipeline.Dipendenze sui dati e problemi dovuti a salti e eccezioni.Organizzazione della memoria (7 ore). Gerarchie di memoria e principio di località.Memoria cache (Organizzazioni della cache - Mapping degli indirizzi - Politiche digestione). Memoria virtuale (Indirizzo virtuale e fisico - Memoria paginata esegmentata. Meccanismi di traduzione. Politiche di gestione). Protezione.Input/Output e comunicazioni (7 ore). Esempi di dispositivi. Organizzazionesottosistema di I/O (bus, controllori, dispositivi) e casi di studi. Misure diprestazioni. Cooperazione tra controllori dei dispositivi, CPU e memoria. Tipi di buse arbitraggio. Programmazione dell'I/O. Interruzioni, polling, DMA. Driver deidispositivi.

Libri di testo:D.A. Patterson, J.L. Hennessy. Struttura, organizzazione e progetto dei calcolatori:interdipendenza tra hardware e software. Jackson libri, 1999. Traduzione italianadel libro "Computer Organization & Design", second edition, Morgan KaufmannPublisher.

Basi di datiDocente: Renzo Orsini

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40

Ore per attività integrative: 8Modalità di esame: Prova scritta, prova di laboratorioCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Il corso intende fornire i concetti fondamentali delle basi di dati e letecniche di progettazione e utilizzo di basi di dati attraverso l'uso di sistemi digestione di basi di dati, in particolare di tipo relazionale. Verranno anche studiatel'architettura e le principali funzionalit? di tali sistemi.

Programma:I sistemi per basi di dati: introduzione e funzionalità.Modelli dei dati ad oggetti.La progettazione di basi di dati.Il modello relazionale e la normalizzazione degli schemi relazionali.SQL per l'amministrazione e l'uso dei dati.Sviluppo di applicazioni per basi di dati relazionali.Architetture dei DBMS.Organizzazioni dei dati per la memoria secondaria.Principali moduli di un DBMS.

Libri di testo:A. Albano, G. Ghelli, R. Orsini. Basi di Dati Relazionali e a Oggetti. Zanichelli,1997.A. Albano. Costruire Sistemi per Basi di Dati. Addison-Wesley, 2001.

Basi di dati IIDocente: Renzo Orsini

Semestre: 1Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scritta, progettoCorso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi: Il corso intende fornire i concetti avanzati di basi di dati relazionali, econcetti di basi di dati con modello relazionale ad oggetti e con modello ad oggetti.Verranno presentati linguaggi e sistemi per la gestione di basi di dati con questi

modelli. Verranno anche dati cenni alla realizzazione di tali sistemi.

Programma:Sviluppo di applicazioni con linguaggi ad oggetti per basi di dati relazionali.Modello dei dati e linguaggi relazionale ad oggetti.I sistemi di gestione di basi di dati relazionali ad oggetti.Modelli dei dati e linguaggi per basi di dati ad oggetti.I sistemi di gestione di basi di dati ad oggetti.Architetture dei DBMS ad oggetti.Utilizzo di basi di dati ad oggetti nella costruzione di siti Web dinamici.

Libri di testo:A. Albano, G. Ghelli, R. Orsini. Basi di Dati Relazionali e a Oggetti. Zanichelli,1997.A. Albano. Costruire Sistemi per Basi di Dati. Addison-Wesley, 2001.

Calcolo IDocente: Flavio Sartoretto

Semestre: 2Crediti: 4Settore scientifico-disciplinare: MAT/05Ore di lezione/esercitazione: 32Ore per attività integrative: 6Modalità di esame: Prova Scritta, seguita da eventuale Prova Orale.Esame coodinato con: Esercitazioni di Calcolo.Corso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Acquisire le nozioni di base nel calcolo infinitesimale.

Programma:1 Funzioni reali di variabile reale, continuità (12 ore)2 Derivabilità e sviluppi di Taylor (12 ore)3 Integrabilità (8 ore)

BibliografiaT. M. Apostol. Calcolo, volume 1 - Analisi 1. Bollati Boringhieri, Torino, 1978.M. Bertsch. Istituzioni di Matematica. Bollati Boringhieri, Torino, 1994.

Calcolo IIDocente: John Francis Sullivan

Semestre: 2Crediti: 3Settore scientifico-disciplinare: MAT/05

Ore di lezione/esercitazione: 24Ore per attività integrative: 4Modalità di esame: una Prova Scritta, seguita da una eventuale Prova Orale.Esame coodinato con: Calcolo I, Esercitazioni di Calcolo.Corso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Acquisire ulteriori nozioni di base nel calcolo infinitesimale.

Programma:1 Successioni e serie numeriche (4 ore)2 Equazioni differenziali (10 ore)3 Funzioni di più variabili (10 ore)

BibliografiaT. M. Apostol. Calcolo, volume 3 - Analisi 2. Bollati Boringhieri, Torino, 1978.M. Bertsch. Istituzioni di Matematica. Bollati Boringhieri, Torino, 1994.

Calcolo numericoDocente: Flavio Sartoretto

Semestre: 1Crediti: 6Settore scientifico-disciplinare: MAT/08Ore di lezione/esercitazione: 40Ore per attività integrative: 8Modalità di esame: Prova Scritta, seguita da eventuale Prova Orale Vienerichiesto lo svolgimento e la documentazione di prove pratiche.Corso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Acquisizione delle nozioni indispensabili a un Laureato in Informatica peraffrontare le problematiche del Calcolo Scientifico.

Programma:1 Aritmetica floating point e propagazione dell'errore (8 ore)2 Algebra lineare numerica (8 ore)3 Approssimazione numerica (6 ore)4 Risoluzione numerica di Equazioni Differenziali (10 ore)5 Integrazione numerica (4 ore)6 Risoluzione numerica di equazioni non lineari (4 ore)

Bibliografia:V. Comincioli. Analisi Numerica. McGraw-Hill Italia, Milano, 1991.G. Gambolati. Lezioni di Metodi Numerici per Ingegneria e Scienze Applicate.Cortina, Padova, 1994.F. Sartoretto and M. Putti. Fortran per applicazioni numeriche. Edizioni LibreriaProgetto, Padova, 2000.

Calcolo paralleloDocente: Salvatore Orlando

Semestre: 1Crediti: 3Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 20Ore per attività integrative: 4Modalità di esame: Prova scritta e/o orale, o presentazione di una relazione.Corso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi: Acquisire conoscenze sui modelli di architetture parallele, sui paradigmidi programmazione parallela, e sulla valutazione delle prestazioni dei sistemiparalleli. Il corso presenterà inoltre le tecniche algoritmiche fondamentalisolitamente impiegate per risolvere in parallelo problemi applicativi significativi.

Programma:Introduzione (4 ore). Motivazioni e casi di studio.Architetture parallele (8 ore). Modelli architetturali paralleli e distribuiti. Paradigmi difondamentali di programmazione parallela. Casi di studio.Tecniche di parallelizzazione (8 ore). Tipi di decomposizione. Mapping,bilanciamento del carico e tecniche di ottimizzazione. Paradigmi ricorrenti diparallelizzazione. Metriche per la valutazione delle prestazioni. Cenni su alcunialgoritmi paralleli significativi.

Libri di testo:Appunti del docente.I. Foster. Designing and Building Parallel Programs. Addison-Wesley, 1995,Versione online disponibile presso http://www-unix.mcs.anl.gov/dbpp.B. Wilkinson, M. Allen. Parallel Programming: Techniques and Applications UsingNetworked Workstation and Parallel Computers. Prentice-Hall, 1999.

Commercio elettronicoDocente: Francesco Dalla Libera

Semestre: 2Crediti: 6

Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: esercitazioni durante il corso, scrittoCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Il corso fornisce una rassegna delle tecnologie rilevanti per i sistemi diecommerce.

Programma:Il Mercato Elettronico: attori, modelli e transazioni.Le infrastrutture: rete WWW; modelli client/server, peer-to-peer; architetture multi-tier; tecnologie wireless.Sicurezza e crittografia applicata.Privatezza e proprietà intellettuale.Sistemi di pagamento e moneta elettronica.Motori di ricerca.Interscambio dati: protocolli standard e ontologie.

Libri di testo:Materiali di rete e appunti del docente.Testo di consultazione: M.Shaw, Handbook on electronic commerce, SpringerVerlag, 2000.

ComputabilitàDocente: Antonino Salibra

Semestre: 1Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Il corso si propone di studiare i fondamenti della teoria della calcolabilità.Partendo dall'esame matematico del concetto di procedimento effettivo, sistudieranno i limiti che tale nozione impone sulla classe delle funzionieffettivamente calcolabili da un algoritmo.Programma:Modelli di calcolo via automa. Ciclo di funzionamento di un automa a programma.

Macchine di Turing e funzioni Turing calcolabili. Macchine a registri (URM)..Funzioni URM-calcolabili.Modelli di calcolo funzionali. Principio di induzione. Funzioni iterative su sequenzee funzioni ricorsive su sequenze.Universalità dei modelli di calcolo. Equivalenze tra modelli di calcolo. Il teoremadella forma normale di Kleene.Autoriferimento: il problema della codifica dei programmi. Funzioni non calcolabili: ilmetodo della diagonalizzazione. Il teorema del parametro e della funzioneuniversale. Operazioni effettive su funzioni computabili.Problemi decidibili, indecidibili e semidecidibili. Indecidibilità del problema dellafermata. Altri problemi indecidibili. Il metodo della riduzione. Teoremi di Rice.Insiemi ricorsivi e ricorsivamente enumerabili. Proprietà di chiusura.Definizioni ricorsive. Semantica operazionale e semantica di punto fisso.Ordinamenti parziali, funzioni monotone e punti fissi. Funzionali ricorsivi. Il primoteorema di ricorsione ed.il secondo teorema di ricorsione.

Libri di testo:N.J. Cutland, Computability: An introduction to recursive function theory,Cambridge Univ. Press, Cambridge 1980.V. Manca, Note di teoria degli algoritmi, CLUF, 1992.

Complementi di calcolo numericoDocente: Flavio Sartoretto

Semestre: 1Crediti: 6Settore scientifico-disciplinare: MAT/08Ore di lezione/esercitazione: 36Ore per attività integrative: 8Modalità di esame: discussione di relazioni che documentano la risoluzione diproblemi applicativi.Corso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi: Acquisizione di nozioni utili a un Laureato in Informatica per affrontare leproblematiche del Calcolo Scientifico. Esse integrano le nozioni appresenell'insegnamento di Calcolo Numerico.

Programma:1 Aritmetica floating point e propagazione dell'errore (4 ore)2 Algebra lineare numerica (8 ore)3 Approssimazione numerica (6 ore)4 Risoluzione numerica di Equazioni Differenziali (10 ore)5 Integrazione numerica (4 ore)6 Risoluzione numerica di equazioni non lineari (4 ore)

Bibliografia:V. Comincioli. Analisi Numerica. McGraw-Hill Italia, Milano, 1991.G. Gambolati. Lezioni di Metodi Numerici per Ingegneria e Scienze Applicate.Cortina, Padova, 1994.F. Sartoretto and M. Putti. Fortran per applicazioni numeriche. Edizioni LibreriaProgetto, Padova, 2000.

Complementi di retiDocente: Daniele Badiali

Semestre: 1Crediti: 6Settore scientifico-disciplinare: MAT/08Ore di lezione/esercitazione: 36Ore per attività integrative: 8Corso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennaleinInformatica

Programma:Modulo 1: Cenni sulle Tecnologie di rete * Il modello OSI * Le reti locali (LAN) * Livello 1: Cavi, connessione e collisioni * Livello 2: Tecnologie * Livello 3: Indirizzamento e routing * Livello 3: Protocolli * Livello 4: Il livello di trasporto * Livello 5: Il livello di sessione * Livello 6: Il livello di presentazione * Livello 7: Il livello applicativo

Modulo 2: Gli apparati di routing * WAN e router * L'interfaccia di programmazione di un router CISCO * I componenti dei routers * Installazione e posa in opera di un router * Configurazione di un router * Immagini di IOS * Configurazione TCP/IP * Basi di routing * I protocolli di routing * Network troubleshooting * Le VLAN * Access Control Lists * Il protocollo PPP

Modulo 3: Cenni sui protocolli utilizzati in ambito multimediale * Il multicast * Il suono * Le immagini * Digital Video * Due concetti base: luminanza e crominanza * Formati televisivi * Formati video analogici * Formati video digitali * MPEG * Cos'è la videoconferenza * Cos'è lo streaming

Data MiningDocente: Salvatore Orlando

Semestre: 2Crediti: 3Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 20Ore per attività integrative: 4Modalità di esame: Lettura di articoli scientifici di approfondimento e seminariofinaleCorso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi: Oggigiorno il ritmo con cui i dati in formato elettronico vengonocollezionati in quasi tutte le attività umane, sia in campo scientifico e sianell'industria e nel terziario avanzato, sta diventando sempre più impressionante.Sta quindi emergendo l'esigenza sia economica e sia scientifica di estrarreinformazioni utili da queste grandi moli di dati. La disciplina del Data Mining sioccupa appunto delle tecniche per l'estrazione automatica di pattern frequenti,associazioni, sequenze e anomalie in grandissimi basi di dati. Questo corso vuolefornire i fondamenti di questa disciplina, focalizzando lo studio sulle più importantitecniche attualmente impiegate.

Programma:

Introduzione al Data Mining, concetti e overview del processo di KDD (3 ore)Preprocessing, pulitura dei dati e trasformazione (3 ore)Alcune tecniche di Data Mining (10 ore): - Clustering

- Regole associative e analisi dei pattern sequenziali - Classificazione e alberi di decisioneVisualizzazione dei risultati (1 ora)Mining di testi e del Web (3 ore)

Libri di testo:

J. Han and M. Kamber. Data Mining: Concepts and Techniques. MorganKaufmann - 2001Articoli scientifici.

Economia aziendaleDocente: Bruno Bernardi

Semestre: 1Crediti: 6Corso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Il programma sarà distribuito dal docente all’inizio dei corsi

Economia dell'informazioneDocente: Mario Volpe

Semestre: 1Crediti: 6Settore scientifico-disciplinare: SECS-P/06Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: relazione scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Il corso ha due scopi prevalenti: fornire allo studente la metodologia e glistrumenti utilizzati nello studio dell'economia e applicare tali concetti alla "nuovaeconomia", sottolineando la specificità di attività (imprenditoriali, economiche, diconsumo) basate sul contenuto informativo dei beni scambiati e sulle nuovetecnologie dell'informazione.

Programma:Coerentemente con lo scopo enunciato, il corso si divide in due parti. Nella primaparte verrà fornita allo studente una introduzione ai metodi e ai modelliinterpretativi propri dell'economia politica. Verranno introdotti i concetti chiave didefinizione dei mercati, degli agenti economici, delle variabili economiche rilevanti,delle forme di mercato, delle politiche economiche, dei principi del commercio.Nella seconda parte si tratteranno i temi relativi agli "information goods" e saràintrodotta in modo specifico l'analisi economica del commercio elettronico e della"Internet economy": definizione, motivazioni economiche, comportamento diimpresa, logistica, concorrenza, politiche di prezzo, modelli di "business",regolamentazione, effetti sulla produttività del sistema di offerta complessivo.

Libri di testo:Per la prima parte ci si può riferire ad un qualsiasi testo di Introduzioneall'economia. Si veda ad esempio: Mankiw N. Gregory, Principi di Economia,Zanichelli, Bologna, 1999.Per la seconda parte si veda il seguente testo: Shapiro C. e Varian H. , InformationRules : le regole dell'economia dell'informazione, ETAS, seconda edizione, 1999.Come introduzione ai temi trattati nella seconda parte del corso si può leggere:Vaciago E., Vaciago G, La New Economy, Il Mulino, Bologna, 2001.

Esercitazioni di calcoloDocente: Flavio Sartoretto

Semestre: 2Crediti: 2Settore scientifico-disciplinare: MAT/05Ore di lezione/esercitazione: 20Ore per attività integrative: 4Modalità di esame: Prova Scritta.Esame coodinato con: Calcolo I, Calcolo II.Corso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Acquisire abilità di base nel calcolo infinitesimale.

Programma:Uso di alcuni software matematici. Esercizi sugli argomenti trattati in Calcolo I,Calcolo II.

Bibliografia:S. Antoniazzi, G. Pavarin, and C. Zanniol. Esercizi di Istituzioni di Matematica.Libreria Progetto, Padova, 2000.F. Sartoretto. Appunti di Calcolo. Dispense: Università di Venezia, Dipartimento diInformatica, 2001.

Esercitazioni di programmazioneDocente: Crafa - Rossi

Semestre: 1Crediti: 3Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 30Ore per attività integrative: 18Modalità di esame:Esame coordinato con: ProgrammazioneCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Si veda il corso di Programmazione.

Programma:Rappresentazione binaria dei numeri (4 ore). Sistemi di numerazione.Rappresentazione dei numeri naturali e interi. Somma e differenza di numeri interi.Rappresentazione dei umeri frazionari e reali.Esercizi su concetti fondamentali (2 ore). Variabili, Valori e Tipi primitivi.Espressioni aritmetiche. Costanti.Esercizi sulle strutture di controllo (4 ore). Espressioni Booleane. Comandosequenziale. Comandi condizionali. Comandi iterativi.Esercizi su Procedure e Funzioni (4 ore). Passaggio dei parametri.Decomposizione funzionale. Procedure ricorsive.Esercizi su Array, Puntatori e Stringhe (6 ore). Array. Puntatori. Array comepuntatori. Aritmetica dei puntatori. Array multidimensionali. Stringhe.Definizione di nuovi tipi (2 ore). Tipi structure (record). Tipi enumerazione.Esercizi sulle strutture ricorsive (6 ore). Liste, Pile, Code. Alberi binari.Esercizi su puntatori a procedure (2 ore).

Libri di testo:Appunti delle lezioni.

Esercitazioni di strutture discreteDocente: Enrico Jabara

Semestre: 1Crediti: 2Settore scientifico-disciplinare: MAT/02Ore di lezione/esercitazione: 20Ore per attività integrative: 4Modalità di esame: una Prova Scritta.Esame coodinato con: Strutture Discrete.

Corso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Fornire gli strumenti di base per risolvere problemi lineari.

Programma:Esercitazioni sugli argomenti svolti nel corso Strutture Discrete.

BibliografiaA. Facchini. Algebra e Matematica Discreta. Decibel-Zanichelli, Bologna, 2000.

FisicaDocente: Romana Frattini

Semestre: 2Crediti: 6Settore scientifico-disciplinare: FIS/01 (Fisica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scritta con eventuale colloquio oraleCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Comprendere il metodo di indagine fisica che ha portato allaformulazione delle principali leggi che descrivono i fenomeni naturali ecostruiscono modelli interpretativi e previsionali della realtà. In particolare verrannoricavate e analizzate, anche mediante esempi numerici, le leggi che descrivono iprincipali fenomeni della meccanica classica e dell'elettromagnetismo.

Programma:Metodo fisico e misura (2 ore). Sistemi di unità di misura e loro cambiamento,analisi dimensionale.Cinematica (4 ore). Analisi di diversi tipi di moti rettilinei e nello spazio.Dinamica (17 ore). Leggi d'inerzia. Forze. Lavoro ed energia. Forze conservative.Quantità di moto e sua conservazione. Momento angolare e sua conservazionePrincipali e semplici applicazioni di tali principi a sistemi di punti e al corpo rigido.Gravitazione (2 ore). Forza, campo e potenziale gravitazionale.Elettomagnetismo (17 ore). Forza, campo e potenziale elettrico. Legge di Gauss.Capacità e condensatori. Corrente elettrica, legge di Ohm e resistenza elettrica.Campo magnetico. Forza magnetica su cariche in moto e correnti. Flusso delcampo magnetico. Campi magnetici prodotti da correnti. Campi elettrici e magneticivariabili nel tempo. Equazioni di Maxwell nel vuoto.Termodinamica (6 ore). Temperatura e sua misura. Primo principio dellatermodinamica: calore e lavoro. Secondo principio della termodinamica.

Libri di testo:R. A. Serway Principi di Fisica EdiSES

Fisica II

Semestre: 1Crediti: 6Settore scientifico-disciplinare: FIS/01 (Fisica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Corso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Ingegneria del softwareDocente: Agostino Cortesi

Semestre: 1Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Tasks quindicinali o Prova scritta finaleCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Acquisizione delle principali metodologie di gestione di un progettosoftware.

Programma:Introduzione (6 ore). Ciclo di Vita del Software; Gestione di Progetti SoftwareDefinizione e Specifica dei Requisiti (8 ore). Analisi dei Requisiti; Definizione eSpecifica; PrototipazioneProgettazione del Software (12 ore). Progettazione Architetturale; ProgettazioneObject-Oriented; Progettazione Funzionale; Progettazione di Sistemi Real-Time;Progettazione di Interfacce Utenti

Verifica e Validazione (6 ore). Tipologie di Testing. Defect Testing; Analisi StaticaGestione e Mantenimento (8 ore). Gestione delle risorse umane; Stima dei costi ;Qualità e Certificazioni; Aspetti Legali

Libri di testo:Ian Sommerville. Software Enginnering. 6th ed., Addison Wesley. 2000.M. Fowler, UML Distilled. Addison Wesley, 2000

Italiano TecnicoDocente: Franco Tomasi

Semestre: 1Crediti: 3Ore di lezioni/esercitazioni: 20Ore per attività integrative: 4Corso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformatica

Laboratorio di algoritmi e programmazioneDocente: Marta Simeoni

Semestre: 1Crediti: 4Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 20Ore per attività integrative: 18Modalità di esame: Esercitazioni Pratiche da consegnare durante il corsoEsame coordinato con: Metodologie di Programmazione e Algoritmi e StrutturedatiCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Il corso fornisce una guida all'implementazione dei principali algoritmisviluppati nel corso di Algoritmi e Strutture dati, attraverso l'utilizzo dellemetodologie studiate nel corso di Metodologie di Programmazione.

Programma:Esercitazioni relative all'implementazione di algoritmi e concetti di base sviluppatinei corsi di Metodologie di Programmazione e Algoritmi e Strutture dati

Laboratorio di amministrazione di sistema

Docente: Antonio Taschin

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: progettoCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Programma:•Introduzione•Gli scopi dell'attività di amministrazione.•Diritti e doveri dell'amministratore e degli utenti.•Il ruolo dell'amministratore del sistema e della rete.•Componenti di un SO.•Panoramica Linux.•Interfacce grafiche•Utilizzo di memorie di massa•I vari tipi di dispositivi•SCSI•RAID•Organizzazione del file system•Tipi di file system•La creazione di uno spazio di swap•MBR, partizioni, boot•fsck e badblocks•la struttura delle directory di Linux•Il problema della frammentazione•Processo di boot•init, shutdown, reboot, halt. I runlevel•login e logout, la shell•La gestione degli account•Come creare un account•/etc/passwd e shadow•rimozione di un utente•disabilitazione temporanea di un utente•Il kernel•Come ricompilare il kernel•Le patch•Librerie condivise e il loader dinamico•Il backup•Strategie•tar e gzip•La rete

•ifconfig, inetd•Amministrare un Domain Name System (DNS)•resolv.conf•named e i file di configurazione•Amministrare un Server Web•httpd e i file di configurazione•I principali comandi•cron e at•ls, ps, mkdir, vi, cat, head, tail, find•La posta elettronica•La stampa

Laboratorio di analisi e verifica di programmiDocente: Agostino Cortesi

Semestre: 2Crediti: 3Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 20Ore per attività integrative: 4Modalità di esame: Progetto di LaboratorioCorso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi: Realizzazione di un progetto che applichi le tecniche presentate nelcorso di Analisi e Verifica di Programmi sia alla realizzazione di alcuneottimizzazioni della compilazione di programmi Java che alla certificazione di Javabytecode.

ProgrammaEsercitazioni guidate in Laboratorio e realizzazione di un progetto.

Libri di testo:F. Nielson, H.R. Nielson, and C. Hankin: Principles of Program Analysis, Springer,1999.Andrew Appel: Modern Compiler Implementation in Java, Cambridge UniversityPress, 1998.Steven Muchnick. Compiler Design and Implementation. Morgan Kaufmann Pub.1997.

Laboratorio di architetturaDocente: Massimo Marchiori

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)

Ore di lezioni/esercitazioni: 36Ore per attività integrative: 6Corso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Approfondire la conoscenza sul livello macchina di un processoreconvenzionale. Acquisire i rudimenti della programmazione assembler, e le suerelazioni con un linguaggio ad alto livello (in particolare, le strutture di controllo e itipi di dati) nel linguaggio assembler di un semplice processore RISC.

Programma:Introduzione (4 ore). Importanza del linguaggio macchina. Livello linguaggiomacchina e livello linguaggio assembler. La catena di programmazione:compilatore, assemblatore, linker, loader. Modello di allocazione della memoria(text, data e stack).Programmazione assembler MIPS (10 ore). Principali istruzioni MIPS (aritmetiche,logico, floating-point, salti). Direttive assembler per l'allocazione dei dati.Il processo di compilazione (8 ore). Traduzione assembler delle principali strutturedi controllo di un linguaggio ad alto livello. Implementazione dei tipi semplici e deipuntatori. Funzioni (gestione dello stack - salvataggio dei registri - funzioniricorsive). Strutture dati (problemi di allineamento dei dati - arrays). Debugging.Esempi.Programmazione di I/O (2 ore).Uso del simulatore SPIM (1 ora).Esercitazioni (10 ore).

Libri di testo:D.A. Patterson, J.L. Hennessy. Struttura, organizzazione e progetto dei calcolatori:interdipendenza tra hardware e software. Jackson libri, 1999. Traduzione italianadel libro "Computer Organization & Design", second edition, Morgan KaufmannPublisher.

Laboratorio di basi di datiDocente: Renzo Orsini

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 24Ore per attività integrative: 24Modalità di esame: ProgettoCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Il corso fornisce una guida al progetto di una base di dati ed allo sviluppodi applicazioni per basi di dati relazionali.

Programma:Progettazione concettuale, logica e fisica di una base di dati relazionale, conesempi ed esercizi.Metodologie e linguaggi per lo sviluppo di applicazioni per basi di dati relazionali.Utilizzo di SQL a sé stante e all'interno di un linguaggio di programmazione.Interfaccia JDBC per lo sviluppo di applicazioni indipendenti dal DBMS.Utilizzo di basi di dati relazionali nella costruzione di siti Web dinamici.

Libri di testo:A. Albano, G. Ghelli, R. Orsini. Basi di Dati Relazionali e a Oggetti. Zanichelli,1997.A. Albano. Costruire Sistemi per Basi di Dati. Addison-Wesley, 2001.

Laboratorio di calcolo paralleloDocente: Salvatore Orlando

Semestre: 1Crediti: 3Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 20Ore per attività integrative: 4Modalità di esame: Presentazione di un progetto al termine del corso.Corso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi: Acquisire conoscenze sui paradigmi, sui linguaggi, e sugli ambienti perdi programmazione parallela. Il corso di laboratorio sarà soprattutto focalizzatosull'uso di cluster di workstation come piattaforma per il calcolo parallelo.

Programma:Paradigmi di programmazione (10 ore). Linguaggi e librerie message passing eshared memory. Linguaggi paralleli ad alto livello.Esercitazioni in laboratorio (10 ore). Uso di librerie message passing (MPI o PVM)e di librerie per la programmazione multithread.

Libri di testo:Appunti del docente.Materiale di pubblico dominio reperibile in rete.I. Foster. Designing and Building Parallel Programs. Addison-Wesley, 1995,Versione online disponibile presso http://www-unix.mcs.anl.gov/dbpp.B. Wilkinson, M. Allen. Parallel Programming: Techniques and Applications UsingNetworked Workstation and Parallel Computers. Prentice-Hall, 1999.

Laboratorio di Informatica ApplicataDocente: Alessandro Roncato

Semestre:Crediti: 3Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 20Ore per attività integrative:Modalità di esame:Corso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Laboratorio di ingegneria del softwareDocente: Alessandro Roncato

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative:Modalità di esame: presentazione e discussione di un progetto.Corso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Sviluppo di un progetto software di gruppo applicando in modosistematico le metodologie introdotte nel corso di Ingegneria del Software.

Programma: Il corso consisterà in alcune lezioni introduttive al linguaggio Java edall'uso di CASE Tools, cui seguirà l'assegnazione del progetto ai gruppi di lavoro,ed una serie di verifiche periodiche delle varie fasi di sviluppo del progetto.

Libri di testo:Cornell-Horstmann, Core Java (2nd ed.), Sunsoft Press, 1997,Deitel-Deitel, Java: How to Program, Prentice-Hall, 1997.

Laboratorio di linguaggi di programmazioneDocente: Nicoletta Cocco

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 24

Ore per attività integrative: 24Modalità di esame: ProgettoCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Il corso intende introdurre ed applicare ad un caso concreto le tecnichedi analisi e traduzione dei linguaggi di programmazione.

Programma:Grammatiche e riconoscitori (8 ore): sintassi e semantica, alfabeto, parola,linguaggio; alberi di derivazione, ambiguità sintattica; grammatiche regolari,espressioni regolari e automi finiti; grammatiche libere da contesto e automi a pila;linguaggi deterministici e grammatiche LR(k); grammatiche ad attributi perspecificare la semantica statica.Compilatori e traduttori (12 ore): struttura di un compilatore; tecniche di analisilessicale; tecniche di analisi sintattica; Lex e YACC; traduzione e gestione deglierrori.Descrizione del progetto (4 ore).

Libri di testo:Aho A., Sethi, Ullman J., Compilers Principles Techniques and Tools, AddisonWesley, 1986.Levine J. et al., Lex and YACC (seconda edizione), O'Reilly and Ass., 1992.

Laboratorio di programmazioneDocente: Alessandra Raffaetà

Semestre: 2Crediti: 4Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 24Ore per attività integrative: 16Modalità di esame: Progetto con discussione e/o prova integrativaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Acquisizione degli elementi di pratici di programmazione. Alla fine delcorso lo studente dovrà essere in grado di compilare, linkare e debuggare i propriprogrammi, in un linguaggio di alto livello. Saranno inoltre trattati gli errori più

comuni, le problematiche tipiche e le basi delle metodologie dellaprogrammazione.

Programma: Introduzione al compilatore, linker e debugger; Algoritmi e programi, tipi di dati;Espressioni assegnamenti; Input/Output; Ambiente e visibilità variabili; Tipicarattere e booleani; Istruzioni condizionali; Cicli, funzioni, parametri e valori diritorno; Ricorsione e iterazioni; Tabelle; Puntatori; Aritmetica dei puntatori; Tabellemultidimensionali; Stringhe; Memoria dinamica; Tabelle dinamiche; Strutturericorsive;

Libri di testo:A. Roncato: Documentazioni in linea: http://www.dsi.unive.it/~labprog.A.Cortesi. Programmazione (dispensa con i lucidi delle lezioni), 2001.B.Kernighan, D.Ritchie.Linguaggio C. Ed. Jackson, 1980.

Laboratorio di retiDocente: Alessandro Roncato

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 24Ore per attività integrative: 24Modalità di esame: Progetto con discussione;Esami propedeutici: Reti di CalcolatoriCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Implementare semplici protocolli di applicazione Client/Server oDistribuite tramite le tecniche più comuni.

Programma:Strumenti per monitorare la rete; socket BSD; uso dei socket nei client e nei server;protocolli d'applicazione; tecniche per aumentare leprestazioni dei server;ottimizzazione dell'uso delle risorse nei server; protocollo HTTP; CommonGateway Interface, Servlet e JDBC; SUN XDR e RPC; CORBA.

Libri di testo:A. Roncato: Documentazioni in linea: http://www.dsi.unive.it/~labreti.D. Comer, D. Stevens. Internetworking with TCP/IP. Volume III. Pretice-Hall, 1993.

Laboratorio di sistemi operativiDocente: Paolo Baldan

Semestre: 2

Crediti: 4Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 20Ore per attività integrative:Modalità di esame: Progetto da consegnare e discutere alla fine del corso.Esame coordinato con: Sistemi Operativi BCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi:Consentire allo studente di sperimentare ed applicare nozioni, tecniche e concettiacquisiti nei corsi di Sistemi Operativi A e B. La sperimentazione si concretizzanello sviluppo di progetti che richiedono un’attività di programmazione a livello disistema e nel linguaggio della shell.

Programma:Il sistema operativo Unix:- Shell: comandi fondamentali, script e linguaggi di scripting.- Programmazione di sistema: creazione di processi, gestione di eventi e disegnali, gestione del file system, primitive di sincronizzazione e interprocesscommunication.

Libri di testo:G. Glass, K. Ables, Unix for Programmers and Users (2nd Ed.), Prentice-Hall, 1999.C. Newmann, B. Rosenblatt, Learning the Bash shell (2nd Ed.), O’Reilly, 1998.R. Stevens, Advanced programming in the Unix environment, Addison Wesley

Lingua IngleseDocente: Bruna Compagnin

Semestre: 1Crediti: 6Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Corso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformatica

Linguaggi funzionaliDocente: Michele Bugliesi

Semestre: 1Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)

Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Esercitazioni e prova oraleCorso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi: Il corso studia in profondità i concetti fondamentali di linguaggi funzionalifortemente tipati, nei quali il sistema di tipi assicura che programmi corretti dalpunto di vista dei tipi non causano errori a tempo di esecuzione. Introduce aisistemi formali di specifica delle regile di valutazione, dei meccanismi di scoping edei sistemi di inferenza di tipi. Fornisce inoltre conoscenze sull'implementazionedei linguaggi funzionali.

Programma:Introduzione (4 ore): programmazione funzionale, principi di base, espressioni efunzioni.Strutture dati e funzioni (8ore): funzioni semplici e di ordine superiore. Strutture datipolimorfe e ricorsive.Semantica (10 ore): valutazione come riscrittura, e con ambienti. Strategie call-by-name e call-by-value.Tipi e sistemi di tipo (10 ore): tipi semplici e tipi polimorfi. Inferenza di tipi. Typesoundness.Compilazione (8 ore): struttura della macchina astratta, generazione di codice,valutazione del bytecode.

Libri di testo:Mauny e Cousineau. The Functional Approach to Programming. CambridgeUniversity Press.

Linguaggi e compilatoriDocente: Nicoletta Cocco

Semestre: 1Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Il corso intende fornire i concetti base e le tecniche di analisi etraduzione dei linguaggi di programmazione. Nella prima parte del corso verrà

introdotta la sintassi formale dei linguaggi di programmazione e le sue proprietà. Cisi limiterà ai concetti più utili alla compilazione, e quindi ai linguaggi regolari e liberida contesto. Nella seconda parte verranno illustrate le principali tecniche per lacompilazione e traduzione dei linguaggi di programmazione.

Programma:Grammatiche e riconoscitori (20 ore):Sintassi e semantica; grammatiche formali, classificazione di Chomsky; classi diautomi; alberi di derivazione, ambiguità sintattica.Grammatiche regolari e automi finiti deterministici e non; equivalenza tragrammatiche regolari e automi finiti; proprietà di chiusura rispetto alle operazioni dicomposizione; espressioni regolari e loro proprietà;Grammatiche libere da contesto e automi a pila deterministici e non; trasformazionidelle grammatiche libere da contesto e forme normali; modi di accettazione degliautomi a pila e loro equivalenza; equivalenza tra automi a pila e grammatichelibere; proprietà di chiusura; linguaggi deterministici e grammatiche LR(k).Grammatiche ad attributi per specificare la semantica statica.Compilatori e traduttori (20 ore):Compilazione e interpretazione, cross-compiling e bootstrapping, struttura di uncompilatore.Tecniche di analisi lessicale; Lex. Tecniche di analisi sintattica; YACC.Controllo della tipizzazione, polimorfismo.Generazione di codice per attraversamento degli alberi.Analisi statica, ottimizzazione del codice e gestione degli errori .

Libri di testo:Aho A., Sethi, Ullman J., Compilers Principles Techniques and Tools, AddisonWesley, 1986.

Linguaggi logiciDocente: Annalisa Bossi

Semestre: 1Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova oraleCorso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi: La Programmazione Logica (LP) è un paradigma di programmazioneche si distingue da quello imperativo dei linguaggi di programmazione tradizionali(Basic, Cobol, Fortran, Pascal, C, ecc.) per il fatto che consente di descrivere unproblema in maniera indipendente dal modo in cui esso verrà eseguito. Questoaspetto, cosiddetto dichiarativo, della programmazione logica facilita il

programmatore nelle fasi di progettazione, modifica e manutenzione deiprogrammi. La prima e tuttora più diffusa implementazione della programmazionelogica è il linguaggio Prolog.Il corso fornisce le basi teoriche della programmazione logica ed introduce illinguaggio Prolog dal punto di vista sintattico/semantico.

Programma:Introduzione alla Programmazione Logica. Logica del 1^o Ordine. Logica Clausalee Teorema di HerbrandProgrammazione Logica. Interpretazione Procedurale (Risoluzione SLD)Interpretazione Dichiarativa (Modello Minimo)Il Linguaggio Prolog. Sintassi,Tipi di Dati,Unificazione,Procedura di Valutazione.Controllo del meccanismo di Backtrack. Operatori e Primitive di Sistema.Metaprogrammazione in Prolog.Applicazioni ed evoluzioni linguistiche di Prolog.

Libri di testo:K.R. Apt: From Logic Programming to Prolog. Prentice Hall International, 1997.G. Levi, F. Patricelli, Prolog: Linguaggio Applicazioni e Implementazioni. ScuolaSuperiore G. Reiss Romoli, 1993.

Linguaggi per la Rete: XMLDocente: Massimo Marchiori

Semestre: 2Crediti: 3Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 20Ore per attività integrative: 4Modalità di esame: Esame scritto alla fine del corso, eventualmente integrato conoraleCorso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi:

L'architettura del Web soffre di alcune pecche fondamentali. XML, la cosiddetta"lingua franca" del Web, ha proposto un nuovo modo di gestire l'informazione, inmodo da superare gli attuali limiti. XML si propone come un linguaggio universaleed interoperabile, in grado non solo di offrire un modello flessibile per la crescita diun Web di seconda generazione, ma anche una vero e proprio linguaggiouniversale per lo scambio e la gestione dell'informazione. In questo corso sianalizzera' prima il Web attuale dal punto di vista del trattamento dell'informazione,e si mostreranno poi i punti innovativi di XML, i suoi limiti, e la famiglia di tecnologiecorrelate.

Programma:• Il World Wide Web: Struttura attuale del World Wide Web. Principi

architetturali fondamentali.(1 ora)• Informazione nel Web attuale: Modelli di funzionamento. Trattamento

dell'informazione. (2 ore)• Codifica dell'informazione : XML come mezzo di codifica dell'informazione.

(4 ore)• Strutturazione dell'informazione: Strutturazione dell'informazione a vari

livelli. Modeling dell'informazione in XML. Meta-livelli. (4 ore)• Visualizzazione: Il passaggio dall'informazione al media in XML. (2 ore)• Significato: Esprimere significati usando XML. Senso comune e Semantic

Web. Ontologie e ragionamento. (4 ore)• Privacy: Web e societa'. Spie nel Web. Esempio d'uso di XML come

soluzione ai problemi di privacy del Web. (2 ore)• Il Web del futuro: visione della famiglia di tecnologie fondanti XML;

problemi di integrazione. Le nuove tecnologie. (1 ora) Libri di testo:Il materiale su XML abbonda in rete, e quindi saranno dati gli opportuni puntatori amateriale sulla rete durante le lezioni. Se proprio necessario, lo studenteinteressato puo' utilizzareXML Bible, di Elliotte Rusty Harold , IDG Books, ISBN 0-7645-3236-7.

LogicaDocente: Antonino Salibra

Semestre: 1Crediti: 6Settore scientifico-disciplinare: Mat/01 (Logica matematica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Il corso si propone di fornire gli elementi fondamentali della LogicaMatematica.

Programma:Il calcolo proposizionale. Connettivi proposizionali, tavole di verità, tautologie,sistemi di assiomi per il calcolo proposizionale. Indipendenza. Completezza.Logica del primo ordine. Formalizzazione. Variabili libere e vincolate, sostituzione,Sistemi deduttivi e calcolo predicativo del primo ordine. Indipendenza.Completezza. Logica di Horn.

Cenni alla teoria dei modelli.Libri di testo:V. Manca, Logica, Bollati Boringhieri, 2000.A. Asperti, A. Ciabattoni, Logica a informatica, McGraw-Hill, 1997.

Metodi formaliDocente: Antonino Salibra

Semestre: 1Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi: Il lambda calcolo e' un linguaggio di programmazione funzionale che e'alla base della semantica operazionale e denotazionale dei linguaggi diprogrammazione. Lo studente verra' introdotto progressivamente alle tematicheprincipali del lambda calcolo. Particolare attenzione sara' posta alle relazioniesistenti tra le varie semantiche operazionali e denotazionali che sono stateintrodotte negli ultimi trent'anni.

Programma:1. Lambda calcolo e linguaggi di programmazione funzionale. Lambda termini.Riscrittura con lambda termini. Conversione, ovvero e' il lambda calcolo una teoriaequazionale? Forme ormali come valori. Confluenza e consistenza. Potenzaespressiva del lambda calcolo. Punti fissi e ricorsione.2. Semantiche operazionali (ed osservazionali) del lambda calcolo. Lambda teorie.Lambda termini "indefiniti" e non. Processi computazionali infiniti: alberi di Bohm.Lemma di genericità3. Logica combinatoria e lambda calcolo. Completezza combinatoria.Intertraducibilita' del lambda calcolo e della logica combinatoria.4. Semantica denotazionale del lambda calcolo. Lambda teorie. Classi di modelli:semantica continua, modelli filtro, semantica stabile. Proprieta' sintattiche provatesemanticamente. Lambda calcolo, modelli e teoria dei tipi.5. Linguaggi di programmazione funzionale.

Riferimenti: Note del corso redatte dal prof. Salibra

Metodologie di programmazioneDocente: Michele Bugliesi

Semestre: 1Crediti: 6

Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Il corso introduce ai concetti fondamentali dei linguaggi orientati aglioggetti, e alle tecniche avanzate di programmazione basate su meccanismi diastrazione. Descrive le metodologie di progetto di strutture dati fondamentali, e disviluppo di programmi in the large.

Programma:Introduzione (4 ore): meccanismi di astrazione, tipi di dato astratti: specifica eimplementazione.Classi e oggetti (12 ore): meccanismi di protezione e incapsulamento, tipi, progettodi strutture dati.Ereditarietà (6 ore): sottoclassi e specializzazione, tipi e sottotipi, late binding edynamic dispatch.Programmazione Modulare (6 ore): interfacce e classi astratte, classi innestate,packages.Eventi e threads (4 ore): eccezioni, cenni di programmazione concorrente in Java.Implementazione (8 ore): C++ e Java: differenze e affinità. Struttura della JavaVirtual Machine.

Libri di testo:Arnold e Gosling. The Java Programming Language. Addison-Wesley.Goodrich e Tamassia: Data Strutures and Algorithms in Java. Wiley. (consigliato)

Modelli di valutazioneDocente: Simonetta Balsamo

Semestre: 1Crediti: 3Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 20Ore per attività integrative: 4Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi: Scopo del corso è fornire gli strumenti modellistici di base l'analisiquantitativa e la valutazione di prestazioni ed affidabilità di sistemi. In corso

introduce i principali modelli matematici e di simulazione ed i principali metodi dianalisi, vengono presentati esempi di applicazione di tali metodologie per lo studioquantitativo di sistemi di elaborazione e di comunicazione. Vengono introdottisemplici modelli stocastici, i modelli basilari di coda singola e di rete di code per larappresentare e l'analisi quantitativa di sistemi.

Programma:Modelli stocastici per l'analisi quantitativa di sistemi (6 ore). Modelli matematici disistemi basati su processi stocastici Markoviani. Modelli a coda singola: i sistemiM/M/1, M/M/m e M/G/1. Esempi di applicazione di modelli a coda singola per lavalutazione delle prestazioni di sistemi.Modelli a rete di code (8 ore). Introduzione ai modelli a rete di code. Reti di code informa prodotto. Teorema BCMP. Algoritmi di soluzione: Convoluzione ed MVA.Esempi di analisi di prestazioni ed affidabilità di sistemi di elaborazione e dicomunicazione con modelli a rete di code.Introduzione ai modelli di simulazione e loro applicazione (6 ore). Eventi, attività,avanzamento del tempo. Strutture dati per la simulazione. Pianificazione di unesperimento di simulazione. Cenni all'analisi dei risultati di esperimenti disimulazione. Schemi di simulazione di sistemi di elaborazione e di comunicazione.

Libri di testo:Dispense fornite dal docente.Testi di consultazione: Jain, R. "The Art of Computer System PerformanceAnalysis" Wiley, Editions, 1991; Kant K. "Introduction to Computer SystemPerformance Evaluation" McGraw Hill, Int. Editions, 1992; Kleinrock L. "QueueingSystems", Vol 1, Wiley, New York, 1975 (Trad. italiana :"Sistemi a Coda", Hoepli,1990); Lazowska E.D., J. Zahorjan, G.S. Graham, K.C. Sevcick "QuantitativeSystem Performance; Computer System Analysis Using Queueing NetworkModels" Prentice-Hall, 1984. http://www.cs.washington.edu/homes/lazowska/qsp/;A.M. Law, W.D. Kelton "Simulation Modeling and Analysis" MacGraw-Hill 1982.Banks.J., Carson, J.S., Nelson, B.L., Nicol, D.M. "Discrete-event simulation" thirdedition, Prentice-Hall 2001.

OttimizzazioneDocente: Francesco Mason

Semestre: 1Crediti: 6Settore scientifico-disciplinare: MAT/09Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Il corso si pone come naturale continuazione dell'insegnamento diRicercaOperativa ed ha lo scopo di introdurre lo studente allo studio di unaproblematica specifica e dei relativi modelli per illustrare sia unapproccio a questioni di notevole interesse applicativo che un metodo peraffrontare problemi più generali di razionalizzazione di uso di risorsescarse.

Programma:Una classe di modelli di ottimizzazione: i modelli per la logisticadistributiva. La complessità nei modelli di ottimizzazione. Problemi diassegnazione, di costruzione di alberi ottimi, di individuazione di camminiminimi, di determinazione di circuiti ottimali con vincoli sui punti davisitare e sui tempi di visita.

Libri di testoDispense a cura del docente

Prestazioni e affidabilità dEi sistemiDocente: Simonetta Balsamo

Semestre: 1Crediti: 3Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 20Ore per attività integrative: 4Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi: Scopo del corso è l'introduzione alla analisi quantitativa e di qualità delservizio offerto da sistemi di elaborazione, con particolare enfasi sulla analisi delleprestazioni ed affidabilità. Vengono introdotte le metriche e gli indici di prestazionied affidabilità di sistemi, il ciclo di modellamento e applicazione di metodologie emodelli per l'analisi di sistemi. Viene presentata la metodologia di analisioperazionale per la derivazione dei colli di bottiglia del sistema e l'analisi asintoticadelle prestazioni.

Programma:Introduzione (4 ore). Analisi quantitativa di sistemi di elaborazione. Qualità delservizio. Prestazioni ed affidabilità dei sistemi. Definizione di indici di prestazioneed affidabilità. Esempi.Introduzione ai metodi e modelli di analisi quantitativa (6 ore). Modellazione deisistemi e analisi tramite tecniche di misurazione e tramite modelli: metodi analitici etecniche di simulazione. Sistemi e modelli per la valutazione delle prestazioni.

Classificazione di sistemi. Introduzione ai modelli basilari di code. Ciclo dimodellamento e sviluppo gerarchico di modelli.Analisi operazionale (6 ore) Leggi fondamentali: legge di utilizzazione, legge diLittle, legge del flusso forzato. Analisi operazionale per sistemi rappresentati comeinsieme di risorse interagenti. Applicazione a modelli di sistemi e di sottosistemi.Analisi dei limiti (4 ore) Analisi asintotica dei limiti alle prestazioni di sistema:sistemi aperti e sistemi chiusi. Esempi di applicazione. Analisi e rimozione dei collidi bottiglia.

Libri di testo:Dispense fornite dal docente.Testi di consultazione: Jain, R. "The Art of Computer System PerformanceAnalysis" Wiley, Editions, 1991; Kleinrock L. "Queueing Systems", Vol 1, Wiley,New York, 1975 (Trad. italiana :"Sistemi a Coda", Hoepli, 1990; Lazowska E.D., J.Zahorjan, G.S. Graham, K.C. Sevcick "Quantitative System Performance;Computer System Analysis Using Queueing Network Models" Prentice-Hall, 1984.http://www.cs.washington.edu/homes/lazowska/qsp/

Probabilità e statisticaDocente: Stefano Tonellato

Semestre: 2Crediti: 6Settore scientifico-disciplinare: SECS-S01Ore di lezione/esercitazione: 48Modalità di esame: prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: E' un corso introduttivo al calcolo delle probabilità e ai principaliargomenti di statistica matematica. Si propone di fornire gli strumenti essenziali peraffrontare problemi in condizione di incertezza. Gli argomenti vengono trattati conrigore, evitando complicazioni di natura matematica e sottolineando il lorosignificato da un punto di vista operativo.

Programma:• Concetto di probabilità. Definizione assiomatica. Principali teoremi, probabilità

condizionata, indipendenza stocastica, teorema di Bayes.• Variabili casuali unidimensionali. Funzioni di ripartizione e densità, momenti,

funzione generatrice dei momenti.• Particolari famiglie di distribuzioni unidimensionali: uniforme discreta, Bernoulli,

binomiale, ipergeometrica, Poisson, geometrica, uniforme continua, normale,beta, gamma, esponenziale.

• Variabili casuali multiple. Funzioni di ripartizione e densità congiunte, marginali econdizionate.Momenti. Funzione di regressione. Correlazione e indipendenza.Multinomiale, normale multivariata.

• Trasformazione di variabili casuali e principali risultati.

• Convergenza: quasi certa, in probabilità, in media quadratica, in distribuzione. Ilteorema del limite centrale.

• Stima puntuale ed intervallare.• Verifica d'ipotesi.• Modello lineare.

Libro di Testo:P. Baldi (1998): Calcolo delle probabilità e statistica. McGraw-Hill (second edition).

ProgrammazioneDocenti: Agostino Cortesi – Sabina Rossi

Semestre: 1Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scritta e Prova PraticaEsame coordinato con: Esercitazioni di ProgrammazioneCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Acquisizione degli elementi di base di programmazione. Alla fine delcorso lo studente dovrà essere in grado di progettare e sviluppare sempliciprogrammi "in the small", in un linguaggio di alto livello, utilizzando lecaratteristiche principali per lo sviluppo di algoritmi.

Programma:Introduzione alla programmazione (4 ore). Cenni storici; Componenti hardware esoftware; Concetto di algoritmo; Linguaggio macchina; Linguaggi diprogrammazione di alto livello.Concetti fondamentali (6 ore). Variabili, Valori e Tipi Espressioni aritmetiche;Costanti; Tipi int e double; Portata degli identificatori; Il concetto di Ambiente.Strutture di controllo (4 ore). Espressioni Booleane; Tipo char; Comandosequenziale; Comandi condizionali; Comandi iterativi.Procedure e Funzioni (4 ore). Passaggio dei parametri; Decomposizionefunzionale; Procedure ricorsive.Tabelle e Puntatori (6 ore). Tabelle (Arrays); Puntatori; Array come puntatori;Aritmetica dei puntatori; Array multidimensionali.Stringhe (2 ore)Definizione di nuovi tipi (2 ore). Tipi structure (record); Tipi enumerazioneAllocazione dinamica della memoria (2 ore).Strutture ricorsive (6 ore). Liste semplici; doppie e circolari; Pile e Code; AlberibinariPuntatori a procedure (2 ore). Prototipi di procedure; Procedure come parametriInput-Outputi e Files (2 ore).

Libri di testo:A.Cortesi. Programmazione (dispensa con i lucidi delle lezioni), 2001.B.Kernighan, D.Ritchie.Linguaggio C. Ed. Jackson, 1980.S. Ceri, D. Mandrioli, L. Sbattella. Informatica, Arte e Mestiere, McGraw-Hill, 1999.

Protocolli di reteDocente: Francesco Dalla Libera

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Seminario di gruppo, ScrittoCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Il corso fornisce una analisi delle problematiche e dei principali protocollidella rete Internet.

Programma:Protocollo IP: Addressing; Subnetting; Routing (Protocolli RIP, OSPF, BGP);InternetworkingProtocollo TCP/UDP: apertura/chiusura connessione; gestione della trasmissione;controllo del flusso e della congestione; gestione dei timerApplicazioni TCP/IP: Servizio di naming (DNS); Servizio di amministrazione dellarete (SNMP); Servizio di terminale virtuale (TELNET); Servizio di file systemdistribuito (NFS, FTP); Servizio di posta elettronica e news (SMTP, NNTP); WorldWide Web (HTTP)Elementi di sicurezza delle reti: Segretezza delle comunicazioni; Autenticazione deisoggetti; Integrità dei messaggi; Non Ripudiabilità dei messaggi e Firma Elettronica

Libri di testo:A.Tanenbaum, Computer Networks (III ed.), Prentice Hall 1996.D.E. Comer, Internet e reti di calcolatori, Addison Wesley Italia, 2000.L.Peterson, B.Davie, Computer Networks, a system approach (2nd Edition), MorganKaufmann 1999.

Reti di calcolatoriDocente: Simonetta Balsamo

Semestre: 1Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40

Ore per attività integrative: 8Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Introduzione alle reti di calcolatori. Vengono introdotti i modelliarchitetturali delle reti di calcolatori, le principali problematiche e principi diprogettazione delle reti, i protocolli e servizi. Vengono introdotti i problemi diinterconnessione (internetworking), e le problematiche principali, fra le quali ilrouting, il controllo del flusso e della congestione ed il controllo degli errori. I variargomenti trattati durante il corso sono esemplificati tramite importanti casi distudio e vari tipi di reti. Inoltre vengono trattati il problema di comunicazione e dinaming in sistemi distribuiti.

Programma:Introduzione alle reti di calcolatori e ai sistemi distribuiti (8 ore). Principi,caratteristiche chiave, vantaggi e svantaggi. Scelte di progetto e problematicheconnesse.Classificazione: topologie, tipi di rete. MAN, LAN, WAN. Protocolli eservizi. Prestazioni Modello ISO/OSI. Protocolli TCP/IP. Internetworking.Problematiche comuni: tipi di connessione, routing, controllo del flusso e dellacongestioneLivello fisico e livello data-link. (8 ore) Mezzi trasmissivi. Controllo dell'errore.Gestione del flusso. Protocolli a finestra scorrevole. Stop and wait. Protocolli go-back-n e ripetizione selettiva.Livello MAC e livello rete. (8 ore). Reti LAN. Ethernet, token ring. Reti ATM.Algoritmi di routing statici e dinamici. Controllo della congestione e del flusso.Protocollo IP.Livello trasporto e livello applicazioni. (8 ore). Protocolli, buffering, controllo delflusso e congestione. Multiplexing. Protocolli TCP e UDP. Esempi di applicazione.Comunicazione e naming (8 ore). Comunicazione fra processi in sistemi distribuitie reti di calcolatori. Risoluzione dei nomi e name service. Casi di studio.

Libri di testo:A.Tanenbaum, Computer Networks (III ed.), Prentice Hall 1996.Testi di consultazione: D.E. Comer "Computer Networks and Internet" .), PrenticeHall 1997; M.Sloman, J. Kramer "Distributed systems and Computer Networks"Prentice-Hall; G. Coulouris, J. Dollimore and T. Kindberg, "Distributed Systems:concepts and design", 3nd edition, Addison Wesley Masson, 2001.http://www.cdk3.net/

Reti neuraliDocente: Marcello Pelillo

Semestre: 1Crediti: 3Settore scientifico-disciplinare: INF/01 (Informatica)

Ore di lezioni/esercitazioni: 20Ore per attività integrative: 4Modalità di esame: colloquio orale e discussione di un progetto concordato con ildocenteCorso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi:Le reti neurali sono modelli computazionali paralleli e distribuiti ispirati alla struturae al funzionamento della corteccia cerebrale. Il corso intende fornireun'introduzione ai modelli fondamentali di reti neurali e alle loro applicazioni. Perfavorire uno studio "attivo" degli argomenti trattati, lo studente svilupperà unsemplice progetto, concordato con il docente, che sarà poi oggetto di discussionein sede di esame.

Programma:Introduzione. Cenni di neurofisiologia. Il paradigma di computazione neurale.Cenni storici.Reti feed-forward. Apprendimento con supervisione. Reti a strato singolo. Retimulti-strato. Il back-propagation e sue varianti. Generalizzazione. Applicazioni(sintesi vocale, riconoscimento di caretteri, previsione di serie storiche,compressione di immagini, etc.).Reti ricorrenti. Cenni di neurodinamica. Il modello di Hopfield e sue properietà.Equazioni di replicazione e loro proprietà. Applicazioni (memorie associative,problemi di ottimizzazione, problemi di visione, etc.)

Libri di testo:J. Hertz, A. Krogh, R. P. Palmer. Introduction to the Theory of Neural Computation.Addison-Wesley, Reading, MA, 1991. S. Haykin. Neural Networks: A Comprehensive Foundation. MacMillan, New York,1994.Dispense e appunti a cura del docente.

Ricerca operativaDocente: Daniela Favaretto

Semestre: 1Crediti: 6Settore scientifico-disciplinare: MAT/09Ore di lezioni/esercitazioni: 40Ore per attività integrative:8Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Il corso si propone di introdurre lo studente alla disciplina in oggettomediante l'approccio problema - modello - algoritmo, focalizzando il tema dellaprogrammazione matematica, in particolare quella lineare, come strumento perimpostare e risolvere un'ampia classe di problemi.

Programma:La Ricerca Operativa: una filosofia di approccio aiproblemi concreti.Elementi di programmazione matematica e di programmazione lineare.Cenni a problemi di programmazione intera.

Libri di testo:Dispense a cura del docente

Semantica dei Linguaggi di ProgrammazioneDocente: Annalisa Bossi

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Fornire i modelli formali necessari per capire il comportamento di unprogramma e ragionare su di esso. Vengono presentate le nozioni matematiche, letecniche ed i concetti sui quali si fonda la semantica formale dei linguaggi diprogrammazione.

Programma:Introduzione (4 ore). Il linguaggio IMP e la sua semantica operazionale.Principi di induzione e definizioni induttive (12 ore). Induzione matematica,induzione strutturale, induzione ben fondata, induzione sulle derivazioni, induzionesulle regole, induzione e ricorsione ben fondata.Introduzione alla teoria dei domini (12 ore). Ordinamenti parziali completi e funzionicontinue, Teorema di Knaster-Tarski, costruzione di Domini e metalinguaggio.Semantica Denotazionale (12 ore). La semantica denotazionale di IMP,equivalenza delle semantiche.

Libri di testo:Glynn Winskel. ``The Formal Semantics of Programming Languages: AnIntroduction''.

The Mit Press, 1993.Versione italiana a cura di Franco Turini: ``La Semantica Formale dei Linguaggi diProgrammazione ''. UTET Libreria Srl 1999.

SicurezzaDocente: Riccardo Focardi

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative:Modalità di esame: Prova scritta ed eventuale oraleCorso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi: Fornire i fondamenti teorici e le tecniche principali per garantiresicurezza all'interno di sistemi e su reti di elaboratori.

Programma:• Introduzione (2 ore): proprietà tipiche, tipologie di attacco, esempi introduttivi;• Crittografia a chiave condivisa (8 ore): Crittografia classica, Crittoanalisi, Teoria

di Shannon (concetto di cifrario perfetto), Il Data Encryption Standard (DES),Sistemi di cifratura in uso;

• Crittografia a chiave pubblica (8 ore): concetti generali e funzioni trap-door one-way, Rivest-Shamir-Adelman encryption (RSA), attacchi sull'RSA, cenni su altrialgoritmi a chiave pubblica, firma elettronica;

• Funzioni hash e Message Authentication Codes (4 ore): concetti di collision free,strong collision free, one-way e loro relazioni, birthday attack, autenticazione achiave condivisa tramite funzioni hash;

• Protocolli crittografici (12 ore): protocolli di distribuzione di chiave basati suchiave condivisa, su server, e su chiave pubblica; gestione delle chiavi; schemidi identificazione tramite password, identificazione challange-response tramitechiave condivisa e tramite chiave pubblica;

• Tecniche avanzate (6 ore): Protocolli Zero-Knowledge (ZK), sistemi di provainterattivi, perfect Zero-Knowledge; Schemi secret-sharing: basati su sommamodulo m, (t,w)-threshold schemes, Shamir threshold scheme.

Libri di testo:D. R. Stinson, Cryptography, Theory and Practice, CRC Press, 1995.J. Menezes, P. C. van Oorschot, S. A. Vanstone, Handbook of AppliedCryptography, CRC Press, 1997.W. Stallings, Cryptography and Network Security, Prantice Hall, 1999.Sgarro, Crittografia, Franco Muzzio Editore, 1993.

Sistemi distribuitiDocente: Simonetta Balsamo

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Introduzione ai sitemi distribuiti. Scopo del corso è presentare letecnologie di base hardware e software dei sistemi distribuiti. Nel corso vengonoaffrontate le principali problematiche e scelte di progettodi un sistema distribuito, iprincipi architetturali con particolare enfasi su reti di interconnessione, protocolli dicomunicazione ed internetworking, e, infine, gli algoritmi e le metodologie di baseper risolvere problemi quali sincronizzazione, coordinamento, condivisione deidaati, allocamento di risorse, consistenza, tollerranza ai guasti. I vari argomentitrattati durante il corso saranno esemplificati tramite importanti casi di studio..

Programma:Introduzione ai sistemi distribuiti (6 ore). Modelli architetturali distribuiti e loroprogrammazione Principi, caratteristiche chiave, vantaggi e svantaggi. Scelte diprogetto e problematiche connesse. Classificazione: topologie, tipi di rete diinterconnessione. Mezzi trasmissivi. Protocolli e servizi. PrestazioniComunicazione (4 ore) Paradigmi Client-Server e IPC. Group communication.Multicast.Meccanismi di invocazione e chiamata remota (6 ore) Remote Method Invocation(RMI). Remote Procedure Call (RPC). Tipi e semantiche. Esempi.Sistemi operativi distribuiti (6 ore) Processi: assegnazione e schedulazione,migrazione e bilanciamento del carico. Stallo.File System distribuito (6 ore). Modello di file service e problematiche di progettoCasi di studio: NFS, AFS e CODA.Sincronizzazione e coordinamento in sistemi distribuiti (6 ore). Algoritmi disincronizzazione e coordinamento. Sincronizzazione dei clock, mutua esclusione,elezioni di un leader. Calcolo di stato globale.Replicazione e transazioni (6 ore). Modelli architetturali di replicazione.Transazionie controllo della concorrenza in sistemi distribuiti.

Libri di testo:G. Coulouris, J. Dollimore and T. Kindberg, "Distributed Systems: concepts anddesign", 3nd edition, Addison Wesley Masson, 2001. pagina: http://www.cdk3.net/Testi di consultazione: S. Mullender "Distributed Systems", Addison Wesley, 1993;M.Sloman, J. Kramer "Distributed systems and Computer Networks" Prentice-Hall;

A.Tanenbaum, "Modern Operating Systems", Prentice Hall; D.L. Galli "DistributedOperating Systems: Concepts and Practice", Prentice Hall, 1999.

Sistemi informativi aziendaliDocente: Franco Miotto

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: relazione scrittaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Il corso ha lo scopo di introdurre lo studente alla natura ed all' uso deisistemi informativi in un azienda. Alla fine del corso lo studente avrà affrontato siaproblemi di natura di un sistema informativo aziendale che di impostazione dialcune specifiche problematiche industriali. Il tutto gli permetterà di entrare nelmondo aziendale conoscendo sia il contesto organizzativo che quello tecnologicoin cui normalmente si opera.

Programma:Il corso si divide in due parti. Nella prima parte verrà fornita allo studente unaintroduzione al significato di sistema informativo, ai modelli di definizione dell'azienda e al ruolo dei sistemi nell' azienda. Nella seconda parte si tratterà degliargomenti specifici supportati dai sistemi informativi aziendali con particolareriferimento ad una azienda industriale; si parlerà cioè di sistemi per il prodotto, ilcommerciale, la produzione, la distribuzione e l' amministrazione; il discorso verràallargato anche a sistemi di workflow, office automation e ai servizi in genere perarrivare a parlare di strumenti di marketing esterno quali i Web.Il corso sarà arricchito di alcuni interventi esterni da parte di software houses oaziende per fornire diversi punti di vista.

Libri di testo:Verranno fornite dispense a cura del docente riguardanti la maggior parte degliargomenti del corso, per ulteriori approfondimenti si può consultare G. Bracchi eG. Motta Processi Aziendali e Sistemi Informativi Franco Angeli 1997 oppure M.Ricciardi Architetture aziendali Informatiche Etas libri 1995.

Sistemi informativi multimedialiDocente: Augusto Celentano

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)

Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Progetto o tesinaCorso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi: Il corso illustra i modelli e le tecnologie per la classificazione e la ricercadi informazioni in database multimediali, con particolare riferimento alleapplicazioni in ambito World Wide Web e alla gestione di media continui qualiaudio e video

ProgrammaI sistemi di information retrieval. Principi e funzioni fondamentali. Classificazione ericerca di informazioni non strutturate. Indicizzazione dei documenti. Sistemi diricerca "full text". Metodi di raffinamento delle interrgaizoni: relevance feedback.Ricerca di informazioni multimediali. Estrazione di caratteristiche da immagini,audio, video. Sistemi di ricerca per contenuto.Indicizzazione di informazioni multimediali. Strutture dati per indicimultidimensionali. Proprietà e prestazioniAnalisi e rappresentazione di informazioni video. Segmentazione di filmati,identificazione dei cambi di scena e delle tecniche di ripresa. Rappresentazionestatica di media continui

Libri di testoIl materiale è costituito prevalentemente da copie delle trasparenze del corso,articoli tratti da riviste scientifiche, e documentazione che sarà resa disponibile sulsito Web del corso.Saranno indicati durante il corso alcuni testi, disponibili presso la biblioteca delcorso di laurea, per un approfondimento di alcuni argomenti.

Sistemi ipermedialiDocente: Augusto Celentano

Semestre: 1Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Progetto o tesinaCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Il corso presenta i modelli, le tecnologie e gli strumenti alla base delprogetto di sistemi ipertestuali e multimediali. Illustra le principali tecnologie per lacodifica, memorizzazione e diffusione di informazioni multimediali, e analizza leapplicazioni distribuite con particolare riferimento all'ambiente Internet.

Programma:I sistemi ipertestuali. Modelli ipertestuali dei dati: rappresentazione, trasmissione einteroperabilità; integrazione di media statici (immagini) e dinamici (audio, video);navigazione in un ipertesto; strumenti di gestione e orientamento; modelli per laprogettazione strutturata di applicazioni complesse.Le tecnologie multimediali. Rappresentazione di informazioni multimediali:immagini, audio, video; standard di codifica. Algoritmi e standard per lacompressioni dei dati. Sistemi operativi per media continui. Server multimediali.Sistemi multimediali distribuiti. Qualità di servizio.

Libri di testo:Il materiale è costituito prevalentemente da copie delle trasparenze del corso,articoli tratti da riviste scientifiche, e documentazione che sarà resa disponibile sulsito Web del corso.Saranno indicati durante il corso alcuni testi, disponibili presso la biblioteca delcorso di laurea, per un approfondimento di alcuni argomenti.

Sistemi operativi ADocente: Riccardo Focardi

Semestre: 1Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scritta con discussione oraleCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Illustrare la struttura e le funzioni di un moderno sistema operativomultiprogrammato, con particolare riferimento ai sistemi Unix/Linux e Windows2000.

Programma:Introduzione. Funzioni e struttura di un sistema operativo. Livelli di macchinevirtuali. Meccanismi di interruzione.I sistemi a processi. Struttura e proprietà dei processi. Stato di un processo.Processi sequenziali, concorrenti e in tempo reale. Cooperazione esincronizzazione. Comunicazione tra processi. Condivisione di memoria. Scambiodi messaggi. I threads. Gestione dell'unità centrale. Politiche di scheduling.Indicatori di prestazioni.

La sincronizzazione dei processi (cenni). Semafori binari e generalizzati. Sezionicritiche e monitor. Primitive per l'invio e la ricezione di messaggi. Schemiproduttore-consumatore. Gestione dei deadlock.La gestione della memoria. Spazi di indirizzamento. Rilocazione statica e dinamica.Tecniche di paginazione e segmentazione. La memoria virtuale.Il file system. Struttura e organizzazione dei file. File system gerarchici. Metodi diaccesso. Controllo degli accessi e protezione dei dati. Dispositivi di I/O. Casi di studio - I sistemi operativi Unix/Linux. Il sistema operativo Windows 2000.

Libri di testo:W. Stallings, Operating Systems (quarta ed.), Prentice-Hall, 2000.in alternativa, A Silberschatz, P. Galvin, Sistemi Operativi (quinta ed.), AddisonWesley, 1999

Sistemi operativi BDocente: Paolo Baldan

Semestre: 2Crediti: 3Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 20Ore per attività integrative:Modalità di esame: Prova scrittaEsame coordinato con: Laboratorio di Sistemi OperativiCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Studio dei sistemi operativi visti sia dal punto di vista dell?utente, che daquello dello sviluppatore. In particolare il corso tratterà in modo dettagliatol?interfaccia utente/programmatore del sistema UNIX e approfondirà alcunielementi della struttura interna dei sistemi operativi. Le nozioni e le tecnicheapprese troveranno applicazione concreta nello sviluppo di un progetto (si veda ilcorso di Laboratorio di Sistemi Operativi).

Programma:

Struttura interna di un sistema operativo:- Gestione dei processi, meccanismi di comunicazione e sincronizzazione- Gestione della memoria, tecniche di allocazione e memoria virtuale- File system, struttura fisica, metodi di accesso e protezione

Libri di testo:

A.Silberschatz, P. Galvin, Sistemi Operativi (Quinta edizione), Addison Wesley,1999in alternativa, W. Stallings, Operating Systems (4thEd.), Prentice Hall, 2000G. Glass, K. Ables, Unix for Programmers and Users (2ndEd.), Prentice-Hall, 1999.R. Stevens, Advanced programming in the Unix environment, Addison Wesley.

Strutture discreteDocente: Enrico Jabara

Semestre: 1Crediti: 4Settore scientifico-disciplinare: MAT/02Ore di lezione/esercitazione: 32Ore per attività integrative: 6Modalità di esame: una Prova Scritta, seguita da una eventuale Prova Orale.Esame coodinato con: Esercitazioni di Strutture Discrete.Corso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica inInformatica

Obiettivi: Fornire gli strumenti di base della Matematica Discreta. Abituarsi alragionamento deduttivo astratto.

Programma:1 Funzioni, relazioni e insiemi (10 ore)2 Logica di base (4 ore)3 Tecniche di dimostrazione (2 ore)4 Grafi e Alberi (4 ore)5 Strutture Algebriche Discrete e Aritmetica Modulare (12 ore)

BibliografiaA. Facchini. Algebra e Matematica Discreta. Decibel-Zanichelli, Bologna, 2000.

Teoria dell'informazioneDocente: Marcello Pelillo

Semestre: 2Crediti: 6Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 40Ore per attività integrative: 8Modalità di esame: Prova scritta con eventuale integrazione oraleCorso di Laurea per il quale l’insegnamento è attivato: Laurea triennale inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea specialistica in

Informatica

Obiettivi:Il corso intende fornire un'introduzione ai concetti e ai risultati fondamentali dellateoria dell'informazione classica e alle sue principali applicazioni nel campodell'informatica.

Programma:Introduzione. Informazione e incertezza. Modello per la trasmissionedell'informazione. Ridondanza e codifica di sorgente. Rumore e codifica di canale.Codifica di sorgente. Definizioni ed esempi. Codici univocamente decodificabili.Teorema di Sardinas-Patterson. Codici istantanei. Costruzione di codici istantanei.Diseguaglianza di Kraft. Diseguaglianza di McMillan.Codici ottimali. Definizione ed esempi. Codici di Huffman. Ottimalità dei codici diHuffman. Estensione di una sorgente.Entropia e sue proprietà. Informazione ed entropia. Proprietà della funzioneentropia. Unicità della funzione entropia. Entropia e lunghezza media di parola.Codifica di Shannon-Fano. Il primo teorema di Shannon (o della codifica disorgente).Canali. Notazioni e definizioni. Il canale simmetrico binaro e altri canali notevoli.Entropie di sistema. Estensione del primo teorema di Shannon. Informazionemutua. Capacità di canale e sue proprietà.Trasmissione affidabile su canali rumorosi. Regole di decisione. Esempi ditrasmissione affidabile. Distanza di Hamming. Il secondo teorema di Shannon (odella codifica di canale).

Libri di testo:G. A. Jones and J. M. Jones. Information and Coding Theory. Springer, London,2000.T. M. Cover and J. A. Thomas. Elements of Information Theory. Wiley, New York,1991.

Visione artificialeDocente: Marcello Pelillo

Semestre: 1Crediti: 3Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 20Ore per attività integrative: 4Modalità di esame: colloquio orale e discussione di un progetto concordato con ildocenteCorso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi:I sistemi di visione (biologici e artificiali) hanno l'obiettivo di creare un modello delmondo mediante l'analisi di una o più immagini. Il corso fornisce un'introduzione aiprincipi e agli algoritmi fondamentali impiegati per la costruzione di sistemi divisione artificiale. Per favorire uno studio "attivo" degli argomenti trattati, lostudente svilupperà un semplice progetto, concordato con il docente, che sarà poioggetto di discussione in sede di esame.

Programma.Introduzione. Il problema della percezione visiva. Geometria della formazione delleimmagini.Campionamento e quantizzazione. Il "pixel". Livelli di elaborazione.Elaborazione di immagini binarie. Thresholding. Proprietà geometriche. Proiezioni.Codifica "run-length". Algoritmi binari. Operatori morfologici.Estrazione di regioni. Regioni e spigoli. Segmentazione. Rappresentazione diregioni. Split-and-merge. Growing.Filtraggio. Modifica di istogrammi. Sistemi lineari. Filtri lineari. Filtri mediani.Smoothing Gaussiano.Rilevamento di spigoli. Gradiente. Algoritmi di Roberts, Sobel, Prewitt. Operatoribasati sulla derivata seconda. Algoritmo di Marr-Hildreth. Approssimazione diimmagini. Algoritmo di Canny. Valutazione delle prestazioni.Contorni. Geometria delle curve. Curve digitali. Rappresentazione polyline. Archicircolari. Sezioni coniche. Spline. Approssimazione di curve.Riconoscimento di oggetti. Complessità del problema. Rappresentazione deglioggetti.Rilevamento di "feature". Strategie di riconoscimento. Verifica.

Libri di testo:R. Jain, R. Kasturi, and B. G. Schunk. Machine Vision. McGraw-Hill, New York,1995.Dispense e appunti a cura del docente.

Web DesignDocente: Fabio Pittarello

Semestre: 1Crediti: 3Settore scientifico-disciplinare: INF/01 (Informatica)Ore di lezioni/esercitazioni: 20Ore per attività integrative: 4Modalità di esame: Progetto e/o TesinaCorso di Laurea per il quale l’insegnamento è attivato: Laurea specialistica inInformaticaCorsi di Laurea per i quali l’insegnamento è mutuato: Laurea triennale inInformatica

Obiettivi: Acquisizione di elementi di web design per la creazione e l'analisi criticadi siti web.

Programma:

Pianificazione di un sito web (3 ore).Web Design e Graphics Design a confronto.Definizione Requisiti utente. Definizione delle unità informative e delle lororelazioni.

Layout della pagina (3 ore).Pagine single e multi-frame. Controllo del layout attraverso l'uso di tables e layers.

Formattazione degli elementi della pagina (2 ore).Fogli di stile (CSS).

Ottimizzazione immagini per un sito web (2 ore).Compressione loss-less e lossy a confronto. Immagini multi-frame. Image Maps.Web safe palette.

Links e navigazione (2 ore).

Tools di sviluppo visuali (2 ore).Dalla programmazione in DHTML alla personalizzazione di behaviours ad altolivello.

Accessibilità (2 ore).Il Concetto di Accessibilità. Le Accessibility Guidelines del Consorzio W3C.

Libri di testo:L. Rosenfeld, P. Morville Information Architecture for the World Wide Web, O'Reilly& Associates 1998J. Nielsen, M. Tahir Homepage Usability: 50 Websites Deconstructed, New RidersPublishing 20

Propedeuticità

Legenda:Programmazione con esercitazioni = Programmazione + Esercitazioni di ProgrammazioneStrutture Discrete con esercitazioni = Strutture Discrete + Esercitazioni di Strutture DiscreteCalcolo = Calcolo I + Calcolo II + Esercitazioni di CalcoloSistemi Operativi B con Lab. = Sistemi Operativi B + Laboratorio di Sistemi Operativi

Propedeuticità per il corso di Laurea in Informatica

Laboratorio di Programmazione- Programmazione con esercitazioni

Architettura degli Elaboratori B- Architettura degli Elaboratori A

Algoritmi e Strutture Dati- Programmazione con esercitazioni- Strutture Discrete con esercitazioni oppure Calcolo

Laboratorio di Algoritmi e Programmazione- Programmazione con esercitazioni- Strutture Discrete con esercitazioni oppure Calcolo

Metodologie di programmazione- Programmazione con esercitazioni

Analisi e Progetto di Algoritmi- Algoritmi e Strutture Dati- Calcolo oppure Strutture Discrete con esercitazioni

Fisica- Calcolo

Sistemi Operativi A- Programmazione con esercitazioni- Architettura degli Elaboratori B

Sistemi Operativi B con Lab- Sistemi Operativi A- Laboratorio di Architettura degli Elaboratori

Linguaggi e Compilatori- Programmazione con esercitazioni- Laboratorio di Architettura degli Elaboratori

Probabilità e Statistica- Calcolo

Basi di dati- Laboratorio di Programmazione

Reti di calcolatori- Sistemi Operativi B con Lab.- Metodologie di programmazione

Sistemi Distribuiti- Reti di calcolatori- Algoritmi e Strutture Dati

Protocolli di Rete- Reti di calcolatori

Laboratorio di Reti- Reti di calcolatori

Ingegneria del Software- Metodologie di programmazione- Laboratorio di Programmazione- Laboratorio di Algoritmi e Programmazione

Computabilità

- Strutture Discrete con esercitazioni oppure CalcoloRicerca Operativa

- Algebra Lineare oppure CalcoloCalcolo Numerico

- CalcoloLaboratorio di Linguaggi

- Metodologie di programmazioneTeoria dell'Informazione

- Probabilità e StatisticaSistemi Ipermediali

- Programmazione con esercitazioniLogica

- Strutture Discrete con esercitazioniLaboratorio di Ingegneria del Software

- Ingegneria del SoftwareSistemi Informativi Aziendali

- Basi di DatiCommercio Elettronico

- Reti di calcolatoriLaboratorio di Basi di Dati

- Basi di DatiOttimizzazione

- Ricerca OperativaCalcolo Parallelo

- Sistemi Operativi B con Lab.

Lab. di Calcolo Parallelo- Calcolo Parallelo

Lab. Analisi e Verifica di Programmi- Analisi e Verifica di Programmi

Reti Neurali- Analisi e Progetto di Algoritmi

Visione Artificiale- Analisi e Progetto di Algoritmi

Prestazioni ed affidabilità di sistemi- Sistemi Operativi B con Lab.- Calcolo

Modelli di Valutazione- Prestazioni ed affidabilità di sistemi- Probabilità e Statistica

Sicurezza- Sistemi Operativi B con Lab.- Algoritmi e Strutture Dati

Linguaggi Funzionali- Programmazione con esercitazioni

Linguaggi Logici

- Programmazione con esercitazioniLinguaggi ad Oggetti

- Programmazione con esercitazioniApplicazioni Client-Server

- Basi di Dati- Reti di calcolatori

Lab. di Amministrazione di Sistema- Sistemi Operativi B

Semantica dei Linguaggi di Programmazione- Programmazione con esercitazioni- Linguaggi e compilatori