UNIVERSITÀ DEGLI STUDI DI PERUGIA Facoltà di Scienze MM FF NN Laurea Triennale in Informatica NOTIZIARIO Anno Accademico 2006 – 2007 1/1 INDICE OBIETTIVI FORMATIVI...................................................................................................................4 ATTIVITÀ FORMATIVE...................................................................................................................4 ISCRIZIONI AL CORSO DI LAUREA IN INFORMATICA ...........................................................4 OBBLIGHI DI FREQUENZA.............................................................................................................4 CREDITI FORMATIVI UNIVERSITARI (CFU) ..............................................................................5 RICONOSCIMENTO DI CREDITI ACQUISITI PRESSO ALTRE ISTITUZIONI.........................5 INSEGNAMENTI COMUNI A TUTTI I CURRICULA ...................................................................6 INSEGNAMENTI CURRICULARI ...................................................................................................7 A) B) C) INDIRIZZO RETI DI COMPUTER ...................................................................................................7 INDIRIZZO SISTEMI DI ACQUISIZIONE DATI .................................................................................7 INDIRIZZO REALTÀ VIRTUALE MOLECOLARE ...............................................................................7 ALTRE ATTIVITÀ FORMATIVE.....................................................................................................9 A SCELTA DELLO STUDENTE...................................................................................................9 ALTRE.............................................................................................................................................9 PROVA FINALE...........................................................................................................................10 PROGRAMMI DEI CORSI...............................................................................................................11 ALGORITMI E STRUTTURE DATI I.............................................................................................12 ALGORITMI E STRUTTURE DATI II ...........................................................................................13 ANALISI MATEMATICA I .............................................................................................................14 ANALISI MATEMATICA II............................................................................................................15 APPLICAZIONI E CALCOLO IN RETE.........................................................................................16 ARCHITETTURA DEGLI ELABORATORI I ................................................................................17 ARCHITETTURA DEGLI ELABORATORI II ...............................................................................18 ARCHITETTURA DELLE RETI DI COMPUTER .........................................................................20 BASI DI DATI E SISTEMI INFORMATIVI I .................................................................................21 BASI DI DATI E SISTEMI INFORMATIVI II................................................................................21 CALCOLO DELLE PROBABILITÀ E STATISTICA MATEMATICA ........................................22 CALCOLO NUMERICO ..................................................................................................................23 FISICA DEI DISPOSITIVI ELETTRONICI ....................................................................................24 FISICA GENERALE.........................................................................................................................25 ABORATORIO DI ALGORITMI.....................................................................................................27 LABORATORIO DI ARCHITETTURA ..........................................................................................27 LABORATORIO DI LINGUAGGI DI PROGRAMMAZIONE E COMPILATORI ......................28 LABORATORIO DI LINGUAGGI DI REALTÀ VIRTUALE .......................................................30 LABORATORIO DI PROGRAMMAZIONE...................................................................................30 LABORATORIO DI RETI DI COMPUTER....................................................................................31 2/2 LABORATORIO DI SISTEMI OPERATIVI ...................................................................................32 LINGUA INGLESE...........................................................................................................................34 LINGUAGGI DI REALTÀ VIRTUALE ..........................................................................................34 MATEMATICA DISCRETA I..........................................................................................................35 MATEMATICA DISCRETA II ........................................................................................................36 MODELLISTICA MOLECOLARE..................................................................................................38 PROGRAMMAZIONE I ...................................................................................................................39 PROGRAMMAZIONE II..................................................................................................................40 RETI DI CALCOLATORI: PROTOCOLLI .....................................................................................40 SISTEMI APERTI E DISTRIBUITI .................................................................................................41 SISTEMI MULTIMEDIALI..............................................................................................................42 SISTEMI OPERATIVI I....................................................................................................................44 SISTEMI OPERATIVI II ..................................................................................................................45 STRUTTURE ATOMICHE E MOLECOLARI................................................................................45 TECNICHE DI ACQUISIZIONE DATI I.........................................................................................46 TECNICHE DI ACQUISIZIONE DATI II .......................................................................................47 RECAPITI DEI DOCENTI ...............................................................................................................49 DOCENTI DEGLI INSEGNAMENTI COMUNI A TUTTI I CURRICULA..............................49 DOCENTI DEGLI INSEGNAMENTI CURRICULARI..............................................................50 3/3 Obiettivi formativi I laureati in Informatica devono: - possedere conoscenze e competenze nei vari settori delle scienze e tecnologie dell’informazione e della comunicazione mirate al loro utilizzo nella progettazione, sviluppo e gestione di sistemi informatici; - avere capacità di affrontare e analizzare problemi e di sviluppare sistemi informatici per la loro soluzione; - acquisire le metodologie di indagine ed essere in grado di applicarle in situazioni concrete con appropriata conoscenza degli strumenti matematici di supporto alle competenze informatiche; - essere in grado di utilizzare efficacemente, in forma scritta ed orale, almeno una lingua dell’Unione Europea, oltre l’italiano, nell’ambito specifico di competenza e per lo scambio di informazioni generali; - essere capaci di lavorare in gruppo, di operare con definiti gradi di autonomia e di inserirsi prontamente negli ambienti di lavoro. I laureati della classe svolgeranno attività professionale negli ambiti della progettazione, organizzazione e gestione di sistemi informatici, sia in imprese produttrici nelle aree dei sistemi informatici e delle reti, sia nelle imprese, nelle amministrazioni e nei laboratori che utilizzano sistemi informatici complessi. A tale scopo, una parte delle attività formative (di seguito indicate di orientamento o curriculari) sarà dedicata alla formazione di figure professionali specifiche nei settori: Reti di Computer Sistemi di Acquisizione Dati Sistemi di Realtà Virtuale Molecolare Attività formative Le attività formative consistono in attività di base, caratterizzanti, affini, di orientamento o curriculari, integrative e relative alla conoscenza della lingua straniera. Altre attività sono a libera scelta dello studente o consistono in tirocini, acquisizione di abilità linguistiche, informatiche e relazionali secondo quanto esposto nell’Ordinamento del Corso di Laurea in Informatica allegato al regolamento Didattico di Ateneo. Infine, vengono svolte attività formative per la predisposizione della prova finale secondo le disposizioni emanate dalla struttura didattica. Nel primo anno di Corso vengono svolte attività formative comuni a tutti i curricula. Contestualmente all’iscrizione al secondo anno di Corso, lo studente specifica, di norma, il curriculum prescelto tra quelli previsti dal Regolamento del CdS. All’atto dell’iscrizione al terzo anno, lo studente dovrà infine indicare, per quanto gli compete, tutte le rimanenti attività formative con l’unica eccezione della prova finale. Iscrizioni al Corso di Laurea in Informatica Per essere ammessi al primo anno del Corso occorre essere in possesso di un diploma di scuola secondaria superiore o di altro titolo di studio conseguito all'estero e ritenuto equipollente dalla struttura didattica Obblighi di frequenza Per il corrente A. A. non è previsto alcun obbligo di frequenza. 4/4 Crediti formativi universitari (CFU) La misura del lavoro di apprendimento, compreso lo studio individuale, richiesto ad uno studente per l’acquisizione di conoscenze ed abilità nelle attività formative è espresso in crediti formativi. Ad un credito formativo corrispondono 25 ore di lavoro per studente. Per conseguire la laurea di I livello in Informatica lo studente deve avere acquisito 180 crediti. La durata del corso di laurea di primo livello (3 anni) è indicativa; lo studente potrebbe conseguire i crediti richiesti ed i corrispondenti titoli anche in un tempo inferiore con le modalità stabilite dalla struttura didattica. Riconoscimento di crediti acquisiti presso altre istituzioni I crediti formativi acquisiti dagli studenti nell’ambito di programmi di studio internazionali presso istituzioni universitarie legate da contratti bilaterali con l’Università di Perugia verranno riconosciuti tramite il sistema di trasferimento crediti europeo (ECTS). In caso di accordo bilaterale tra l’Università di Perugia e l’istituzione di provenienza, si procederà in conformità con i termini dell’accordo. Crediti acquisiti dagli studenti presso altre istituzioni di livello universitario italiane, dell’Unione Europea o di altri paesi potranno essere riconosciuti a delibera della struttura didattica in base alla documentazione prodotta dallo studente. 5/5 ELENCO DEGLI INSEGNAMENTI E DELLE ALTRE ATTIVITÀ FORMATIVE Semestre INSEGNAMENTI COMUNI A TUTTI I CURRICULA Disciplina Docente H/sett CFU Primo anno di Corso I II I II II I II II I II I Analisi Matematica I Analisi Matematica II Architettura degli Elaboratori I Architettura degli Elaboratori II Laboratorio di Architettura Programmazione I Programmazione II Laboratorio di Programmazione Matematica Discreta I Matematica Discreta II Lingua Inglese I II I I II II I Algoritmi e Strutture Dati I Algoritmi e Strutture Dati II Laboratorio di Algoritmi Sistemi Operativi I Sistemi Operativi II Laboratorio di Sistemi Operativi Fisica Generale Antonio Boccuto Antonio Boccuto Ferruccio Barsi Ferruccio Barsi Docente in corso di nomina Marco Baioletti – Federico Greco Stefano Marcugini Stefano Marcugini Maria Cristina Vipera Maria Cristina Vipera C.L.A. 4 4 4 4 3 4 4 3 4 4 4 6 6 6 6 3 6 6 3 6 6 4 4 4 3 4 4 3 4 6 6 3 6 6 3 6 4 4 6 6 3 3 Secondo anno di Corso II I II Maria Cristina Pinotti Maria Cristina Pinotti Rosanna Bicocchi Arturo Carpi Arturo Carpi Pietro Tito Melacci Paolo Lariccia – Santocchia Calcolo Numerico Ivan Gerace Calcolo delle Probabilità e Statistica Giulianella Coletti Matematica Laboratorio di Linguaggi di Giorgio Cecconi Programmazione e Compilatori Attilio Terzo anno di Corso I II Basi di Dati e Sistemi Informativi I Marco Baioletti Poggioni Basi di Dati e Sistemi Informativi II Marco Baioletti Poggioni – Valentina 4 6 – Valentina 4 6 NB: CFU = Credito Formativo Universitario; 1 CFU = 25 ore di lavoro per studente (ex art. .5 c. 1 DM 509/99) PROPEDEUTICITÀ Tutti gli insegnamenti denominati “I” sono propedeutici agli insegnamenti denominati “II”. Il corso di Programmazione I è propedeutico al corso di Laboratorio di linguaggi di programmazione e compilatori ACQUISIZIONE DEI CREDITI E VERIFICA DEL PROFITTO I crediti vengono acquisiti previo esito positivo di verifiche individuali del profitto. Le prove di valutazione possono essere scritte e/o orali e/o di laboratorio e possono essere effettuate anche in itinere. Con l’unica eccezione della prova finale, la valutazione è espressa in trentesimi da apposite commissioni, che comprendono il responsabile dell'attività formativa, costituite secondo le norme contenute nel Regolamento Didattico di Ateneo. 6/6 INSEGNAMENTI CURRICULARI (Lo studente deve scegliere uno dei tre indirizzi indicati nella seguente tabella) Anno Semestre Disciplina Docente H/sett CFU di Osvaldo Gervasi 4 6 Sergio Tasso 4 6 Simonetta Pallottelli Antonio Laganà, Sergio Tasso, Leonardo Pacifici Sergio Tasso 4 4 6 6 3 4 3 6 Totale CFU 33 a) Indirizzo Reti di Computer II II III I Architettura delle Reti Computer Sistemi aperti e distribuiti III III II I Sistemi multimediali Applicazioni e Calcolo in Rete III III II I Laboratorio Reti di Computer Reti di Calcolatori: Protocolli Bruno Checcucci b) Indirizzo Sistemi di Acquisizione Dati II II Fisica dei dispositivi elettronici Campanella Renzo Leonello Servoli Laboratorio Reti di Computer Sergio Tasso Architettura delle Reti di Osvaldo Gervasi Computer Tecniche di Acquisizione dati I Piero Giorgio Verdini III III II II III I III II Tecniche di Acquisizione dati Giovanni Ambrosi II III I Reti di Calcolatori: Protocolli – 4 6 3 4 3 6 4 6 4 6 4 6 Totale CFU 33 Bruno Checcucci c) Indirizzo Realtà Virtuale Molecolare II II III III I I III III III I I II Strutture Atomiche e Francesco Tarantelli, Molecolari Sistemi Aperti e Distribuiti Sergio Tasso Applicazioni e Calcolo in Rete Antonio Laganà, Sergio Tasso, Leonardo Pacifici Modellistica Molecolare Massimo Baroni Linguaggi di realtà Virtuale Osvaldo Gervasi, Laboratorio di Linguaggi di Antonio Riganelli realtà virtuale 4 6 4 4 6 6 4 4 3 6 6 3 Totale CFU 33 NB: CFU = Credito Formativo Universitario; 1 CFU = 25 ore di lavoro per studente (ex art. .5 c. 1 DM 509/99) 7/7 a) Reti di Computer L'indirizzo si propone di fornire l'insieme delle competenze necessarie per il disegno, la progettazione e la gestione di Reti di Computer complesse. Ambisce a formare figure professionali dotate di approfondite conoscenze sulla teoria, le tecnologie e le applicazioni delle reti informatiche. Nell'ambito dell'indirizzo vengono fornite le conoscenze sull'architettura delle Reti, sui protocolli ed i Servizi Internet, sulle tematiche emergenti quali la sicurezza delle reti e le applicazioni ed i servizi Web. Vengono approfondite le conoscenze relative alle implementazioni di applicazioni complesse fruibili in rete e basate su sistemi distribuiti e paralleli. Allo studente viene inoltre offerta la possibilità di sviluppare conoscenze e applicazioni multimediali, attraverso le metodologie più avanzate. b) Sistemi di Acquisizione dati L'indirizzo si propone di fornire l'insieme delle competenze necessarie per la progettazione e l’utilizzo di sistemi di acquisizione di dati da apparecchiature scientifiche e/o industriali. La figura professionale prevista sarà in grado di gestire in completa autonomia i problemi che nascono in realtà industriali, commerciali, scientifiche per l’acquisizione dati, il controllo dei processi ed il trattamento dell’informazione acquisita. La medesima figura professionale avrà anche la capacità di collaborare con le figure professionali competenti nel disegno di sistemi complessi per la struttura di sottosistemi. c) Sistemi di Realtà Virtuale Molecolare L'indirizzo si propone di preparare dei laureati in informatica con sufficiente conoscenze nella gestione di ambienti di realtà virtuale costituiti da atomi e molecole. Il percorso di apprendimento prevede l'acquisizione degli elementi di base di strutturistica e modellistica atomica e molecolare nonché degli strumenti matematici e algoritmici utili alla descrizione delle strutture e dei processi degli atomi e delle molecole. Il percorso prevede la familiarizzazione con le tecnologie che consentano calcoli ad alta prestazione e rappresentazioni interattive ed efficienti di realtà virtuali diverse. Questo sarà finalizzato in particolare a rappresentazioni di realtà virtuali di sistemi atomici e molecolari. Tale percorso formativo è funzionale alla progettazione di sistemi molecolari complessi e trova applicazioni in biologia, medicina, farmaceutica, nanotecnologie, materiali, ecologia e in tutte quelle discipline in cui sostanze e processi debbono essere razionalizzati in termini molecolari o ne debbono essere formulati di nuovi. ACQUISIZIONE DEI CREDITI E VERIFICA DEL PROFITTO Per la verifica del profitto degli insegnamenti curricolari, si rimanda a quanto già indicato relativamente agli insegnamenti comuni a tutti gli indirizzi. 8/8 ALTRE ATTIVITÀ FORMATIVE Attività formative descrizione CFU A scelta dello studente (art. 10, comma 1, lettera d - DM 509/99) Attività appartenenti a tutti i settori scientifico -disciplinari 9 Altre (art. 10, comma 1, lettera f - DM 509/1999) 1. Tirocini (stage in aziende private o enti pubblici); oppure 2. abilità informatiche e relazionali; oppure 3. ulteriori conoscenze linguistiche, etc. 9 Prova finale Relazione finale (Tesi) 8 NB: CFU = Credito Formativo Universitario; 1 CFU = 25 ore di lavoro per studente (ex art. .5 c. 1 DM 509/99) A SCELTA DELLO STUDENTE In base a quanto stabilito dall’art. 10 c. 1 lett. d del DM 509/99, lo studente deve scegliere autonomamente esami appartenenti a tutti i settori scientifico-disciplinari di un qualsiasi corso di laurea, fino a concorrenza di 9 CFU. ACQUISIZIONE DEI CREDITI E VERIFICA DEL PROFITTO Per la verifica del profitto degli insegnamenti a scelta dello studente, si rimanda a quanto già indicato relativamente agli insegnamenti comuni a tutti gli indirizzi. ALTRE In base all’articolo 10 comma 1 lettera f del DM 509/99, le altre attività formative sono attività formative, non previste dalle lettere precedenti, volte ad acquisire ulteriori conoscenze linguistiche, nonché abilità informatiche e telematiche, relazionali, o comunque utili per l’inserimento nel mondo del lavoro, nonché attività formative volte ad agevolare le scelte professionali, mediante la conoscenza diretta del settore lavorativo cui il titolo di studio può dare accesso, tra cui, in particolare, i tirocini formativi e di orientamento di cui al decreto del Min. del Lavoro 25 marzo 98, n.142. ACQUISIZIONE DEI CREDITI Qualora lo studente realizzi un tirocinio formativo organizzato dal Corso di Laurea in Informatica di Perugia e comprovato da firme di presenza per almeno 230 ore sul registro rilasciato dall’Ufficio Campus del Dipartimento di Matematica ed Informatica, i 9 crediti sono automaticamente riconosciuti; negli altri casi, lo studente dovrà richiedere al Consiglio di Corso di Laurea la convalida dei crediti, producendo tutta la documentazione che ritiene idonea a provare di avere 9/9 effettuato un’attività formativa, ex art. 10, comma 1, lettera f del DM 509/1999, per un totale di 9 crediti. PROVA FINALE Per essere ammessi alla prova finale occorre avere conseguito tutti i crediti nelle attività formative previste dal piano di studi (cioè un totale di 172 CFU ottenuti dalla somma di 121 CFU per insegnamenti comuni a tutti i curricula, 33 CFU per insegnamenti curriculari, 9 CFU per insegnamenti a scelta dello studente e 9 CFU per tirocinio / oppure abilità informatiche / oppure abilità linguistiche). Le attività formative relative alla preparazione della prova finale per il conseguimento del titolo e la relativa verifica consistono nell’approfondimento di un argomento specifico con relativa relazione finale, in base a quanto stabilito dal CILL Informatica nella seduta 05/05/20041 secondo quanto segue: - Lo studente deve presentare al Relatore prescelto la richiesta di tesi; il Relatore provvederà a comunicare l’inizio di tesi al Presidente del Corso di Laurea. - Ci sono due possibilità: a) tesina/monografia sotto forma di elaborato scritto da discutere brevemente con la Commissione di Laurea e corrispondente ad un impegno di un mese circa di lavoro e b) tesi di tipo implementativo o di approfondimento tecnico/scientifico corrispondente ad un impegno di quattro mesi circa di lavoro. Entrambe le modalità comportano la produzione di un elaborato scritto che deve essere presentato alla Commissione di Laurea, secondo i tempi stabiliti dal C.C.L. e pubblicizzati nel calendario degli esami. - Il criterio di valutazione della prova finale è il seguente: - nel caso della Tesi il voto assegnato può variare da 0 ad 6 punti che, aggiunti alla media dei voti degli esami sostenuti2, contribuiscono alla formazione del voto finale di laurea; - nel caso della Tesina il voto assegnato può variare da 0 a 3 punti che, aggiunti alla media dei voti degli esami sostenuti, ponderata rispetto ai crediti e tradotta in centodecimi, contribuiscono alla formazione del voto finale di laurea; Si ricorda che per sostenere la prova finale è necessario assolvere i seguenti adempimenti: 1. pagare la tassa presso la segreteria studenti (di norma entro il 15/09); 2. presentare il titolo della RELAZIONE finale alla segreteria studenti (foglio giallo), entro la scadenza stabilita nel calendario degli esami per l’AA 06-07; 3. Entro la scadenza stabilita nel medesimo calendario degli esami per l’AA 06-07, consegnare due copie della Relazione finale alla Segreteria Studenti della Facoltà di Scienze MM FF NN, una copia alla segreteria del Dipartimento di Matematica ed Informatica dell’Ateneo ed infine una copia per ciascuno dei Relatori. Certificato complementare Ai sensi e per gli effetti previsti dall’art. 11, comma 8, del DPR n. 509/99, il diploma attestante il conseguimento del titolo è integrato da un certificato complementare in cui viene specificato: il curriculum prescelto dallo studente; l’attività di tirocinio svolta; la prova finale 1 2 Cfr. verbale n. 6/A AA 2003-2004 del Consiglio Intercorso di Informatica del 05/05/04. la media, ponderata rispetto ai crediti e tradotta in centodecimi, è ottenuta escludendo il voto più basso. 10 / 10 PROGRAMMI DEI CORSI 11 / 11 ALGORITMI E STRUTTURE DATI I (Docente: M. Cristina Pinotti) Obiettivi del corso Progettare e analizzare l'efficienza degli algoritmi. Manipolare le strutture dati elementari: dizionari, alberi e grafi. Prerequisiti: Nozioni basilari dei corsi di Analisi Matematica, Matematica Discreta e Programmazione I (anche senza aver necessariamente sostenuto l’esame). Periodo didattico: I semestre Programma: Algoritmi: correttezza, terminazione, complessità (caso pessimo, caso medio). Analisi di InsertionSort. Metodi di progetto: Divide et Impera. Analisi di Ricerca binaria e MergeSort. Fondamenti di Matematica. Principio di Induzione (prova di terminazione e correttezza di programmi). Ordine di grandezza di funzioni: O, Ω, θ, o, ω. Base, tetto, esponenziali, Logaritmi. Sommatorie e serie. Soluzioni di ricorrenze, verifiche di soluzioni. Il Teorema dell'esperto. Generalità sugli alberi. Alberi binari (definizione ricorsiva). Rappresentazione con arrays. Heap: procedura di mantenimento dalla proprietà di heap e calcolo della sua complessità. Costruzione di un heap: metodo dal basso e dall'alto, calcolo delle complessità HeapSort e sua complessità. Code di priorità. Inserimento e cancellazione su un heap, complessità. Heaps d-ary. Ordinamento: Procedure di partizione (3 versioni). Analisi della complessità di QuickSort (caso peggiore, caso migliore, complessità media). Limiti teorici della complessità di ordinamento per confronto. CountingSort. Radix Sort. Mediana: Complessità di calcolo del minimo e del massimo in una sequenza. La mediana e la selezione dell'i-esimo elemento: algoritmo di complessità media O(n); algoritmo di complessità O(n) nel caso peggiore. Tabelle hash: Memorizzazione su tabelle con indirizzamento diretto. Collisioni. Tabelle hash. Criteri per funzioni hash. Gestione delle collisioni. Scansione esterna (liste di trabocco). Scansione interna (lineare, quadratica, doppio hashing, pseudocasuale). Cancellazione di dati. Complessità della scansione esterna ed interna senza agglomerati primari. Alberi di ricerca: Generalità sugli alberi ordinati, realizzazione. Alberi binari di ricerca. Ricerca di chiavi, minimo, massimo, successore e predecessore. Inserimento e cancellazione. Complessità delle operazioni di ricerca e problema del bilanciamento. Alberi binari di ricerca bilanciati. Alberi bilanciati per realizzare insiemi disgiunti (union, find). Generalità e rappresentazione in memoria. Schema generale di visita di grafi. Alberi di copertura e componenti connesse.Visita in ampiezza (BFS), visita in profondità (DFS) e loro proprietà (classificazione degli archi). Grafi aciclici e ordine topologico (algoritmo con la cancellazione di sorgenti, algoritmo con i tempi di fine-visita DFS). Componenti fortemente connesse (algoritmo con i tempi di fine-visita DFS). 12 / 12 Modalità di Esame. Per accedere all'esame orale, lo studente deve superare una prova scritta di 2 ore, senza possibilità di consultare i testi. Una volta superata la prova scritta lo studente dovrà - a pena dell'annullamento della prova - sostenere l'orale nello stesso appello. Testi consigliati: T. H. CORMEN, C. E. LEISERSON, R. L. RIVEST, C. STEIN Introduzione agli algoritmi e strutture dati (Seconda edizione), McGraw-Hill, 2005, ISBN: 88-386-6251-7. ALGORITMI E STRUTTURE DATI II (Docente: M. Cristina Pinotti) Obiettivi del corso Progettare e realizzare algoritmi per problemi combinatori, utilizzando tecniche di programmazione avanzate. Conoscere strutture dati per la memoria secondaria. Riconoscere i problemi trattabili e non. Periodo didattico: II semestre Prerequisiti: È necessario aver seguito il corso Algoritmi e Strutture Dati I. Programma: B-alberi e hashing per la memoria secondaria. Alberi di copertura di costo minimo: algoritmo di Kruskal, algoritmo di Prim. Cammini minimi da sorgente unica: algorimi di Dijkstra, algoritmo di Bellman-Ford. Heap binomiali e Heap di Fibonacci. Programmazione dinamica: moltiplicazione di matrici con il minimo numero di prodotti, la piu' lunga sottosequenza a comune fra due stringhe, problema dello zaino intero con/senza ripetizioni, palindrome, proghrammazione delle catene di montaggio. Algoritmi Greedy: selezione delle attività, colorazione di un grafo di intervalli, codici di Huffman. Cammini minimi fra tutte le coppie: algoritmo di Floyd-Warshall, algoritmo analogo alla moltiplicazione di matrici, algoritmo di Johnson per grafi sparsi. Flusso massimo; metodo di Ford-Fulkerson, algoritmo di Edmonds-Karp. Non-determinismo e algoritmi enumerativi. Teoria della NP-completezza e riducibilita'. Modalità di Esame. Per accedere all'esame orale, lo studente deve superare una prova scritta di 2 ore, senza possibilita' di consultare i testi. Una volta superata la prova scritta lo studente dovrà - a pena dell'annullamento della prova - sostenere l'orale nello stesso appello. Testi consigliati: T. H. CORMEN, C. E. LEISERSON, R. L. RIVEST, C. STEIN Introduzione agli algoritmi e strutture dati (Seconda edizione), McGraw-Hill, 2005, ISBN: 88-386-6251-7. 13 / 13 ANALISI MATEMATICA I (Docente: Antonio Boccuto) Obiettivi del Corso Il Corso si propone di fornire le basi e gli strumenti necessari per il Calcolo di limiti, derivate, studio di funzioni e serie e una metodologia critica di studio. Prerequisiti Conoscenze preliminari di decomposizione di polinomi, regola di Ruffini, logaritmi, funzione esponenziale, funzioni trigonometriche. Periodo didattico: I semestre Programma Funzioni cosiddette „elementari“: potenza, radice, esponenziale, logaritmo, funzioni trigonometriche e fondamentali proprietà. Studio di vari tipi di disequazioni (di primo e secondo grado, esponenziali, logaritmiche, trigonometriche, razionali). Calcolo di domini di funzioni attraverso le disequazioni (esercizi). Definizioni e proprietà fondamentali dell‘estremo superiore e inferiore. Successioni e funzioni monotone. Definizione di limite. Significato geometrico del limite. „0 x limitata=0“ (senza dim.). Altre proprietà fondamentali dei limiti (senza dim.). Teoremi dell‘unicità del limite, della limitatezza locale, della permanenza del segno (senza dim.). Esercizi sui limiti e risoluzione di forme indeterminate. Continuità e punti di discontinuità. Teoremi di Weierstrass, dei valori intermedi, degli zeri delle funzioni continue (senza dim.). Applicazioni. Definizione, significato geometrico e proprietà fondamentali della derivata (senza dim.). Derivabilità implica continuità (con dim.), ma non è vero il viceversa. Esercizi sulle derivate e sulle derivate notevoli. Punti di massimo e minimo assoluti e relativi, teorema di Fermat (senza dim.). Continuità, convessità, flessi e asintoti. Studi di funzione ed esercizi. Teorema di Rolle (con dim. ed esempi correlati), teorema di Lagrange (con dim.), conseguenze del teorema di Lagrange (con dim. di una a piacere), teorema di Cauchy (con dim.), teorema de L‘Hospital nei casi „zero su zero“ e „infinito su infinito“ (senza dim.). Teorema di Darboux (senza dim.). Calcolo di alcuni limiti con l‘aiuto del Teorema de l‘Hospital (esercizi). Serie: convergenza, divergenza e indeterminatezza. Serie geometrica e serie armonica generalizzata (senza dim.). Una serie A termini positivi o converge o diverge (con dim.). Se una serie converge, allora il limite del termine generale è zero (con dim.). Non è vero il viceversa (esempio). Criteri del confronto, del confronto asintotico, della radice, del rapporto, criteri di Leibnitz (senza dim.). Esercizi. Modalità di esame L’esame verte in una prova scritta, su esercizi sugli argomenti del Corso, e di una prova orale su tutto il programma, esercizi compresi. Sono ammessi all’orale solo gli studenti che alla prova scritta riportano una votazione non inferiore a 16/30. Testi consigliati Dispense fornite dal Docente ADAMS, Calcolo differenziale I, Ambrosiana Editrice, Milano 14 / 14 PAGANI-SALSA, Analisi Matematica per Diplomi Universitari, Masson, Milano VINTI, Lezioni di Analisi Matematica, Vol. I, Galeno, Perugia ZWIRNER, Esercizi di Analisi Matematica, Vol. I, Cedam, Padova DEMIDOVIC, Esercizi e problemi di Analisi Matematica, MIR ANALISI MATEMATICA II (Docente: Antonio Boccuto) Obiettivi del Corso Il Corso si propone di fornire le basi e gli strumenti necessari per il Calcolo di limiti, derivate, studio di funzioni e serie e una metodologia critica di studio. Periodo didattico: II semestre Programma (N.B.: Solo dov'è esplicitamente indicato viene richiesta la dimostrazione; altrimenti si intende senza dimostrazione) Integrazione alla Riemann e principali proprietà. Integrale inferiore e superiore. Funzione di Dirichlet. Funzione integrale e sua lipschitzianità (con dim.), teorema della media nelle varie versioni (tutte quante con dim.), teorema di Torricelli-Barrow (con dim.), Formula Fondamentale del Calcolo Integrale (con dim.). Significato geometrico dell`integrale (con esercizi); legami, differenze e affinità tra integrale ed aree; calcolo di aree. Integrale indefinito e sue fondamentali proprietà. Integrazione per parti e per sostituzione. Formule della tangente dell’arco metà. Varie versioni della formula di Hermite (escluso il caso di radici complesse multiple). Legami tra integrabilità alla Riemann ed esistenza di primitive (esempi). Integrali generalizzati o impropri (cenni). Formula di Taylor. Differenziale. Sviluppi in serie di Taylor ed esempi. Introduzione ai numeri complessi: operazioni elementari, potenze, radici, logaritmi. Teorema fondamentale dell’algebra (senza dim.; solo un cenno). Funzioni di due variabili: intorni, continuità, differenziabilità, derivate parziali, gradiente, Hessiano. Ricerca di massimi e minimi per funzioni di due e tre variabili. Punti stazionari o critici, punti sella. Autovalori e autovettori di matrici 2 x 2 e 3 x 3. Integrali doppi (con esercizi, senza particolari approfondimenti teorici). Integrali importanti per il Calcolo delle Probabilità e Statistica Matematica. Cenni sulla funzione Gamma e sue principali proprietà. Equazioni differenziali: Generalità su equazioni differenziali ordinarie del primo ordine, problema di Cauchy. Equazioni a variabili separabili. Equazioni lineari del primo ordine. Equazioni lineari del secondo ordine a coefficienti costanti. Metodo della variazione delle costanti arbitrarie (sia per il primo che per il secondo ordine: molto bene). Applicazioni a problemi della Fisica riguardanti i circuiti oscillanti, il moto dei gravi e il pendolo. Applicazioni all’equazione logistica e alla dinamica delle popolazioni. 15 / 15 Cenni sulle linee di livello. Modalità di esame L’esame consiste in due prove, prova scritta e orale. La prova scritta verte su esercizi su argomenti del corso. La prova orale verte su tutto il programma, esercizi compresi. Passano la prova scritta solamente gli studenti che riportano una votazione non inferiore a 16/30. Testi consigliati Dispense fornite dal docente R. A. ADAMS, Calcolo Differenziale, Vol. I, Ambrosiana, 1999 C. VINTI, Lezioni di Analisi Matematica, Vol. I e II, Galeno, 1992 C. D. PAGANI - S. SALSA, Matematica per i Diplomi Universitari, Masson, 1997 G. ZWIRNER, Esercizi di Analisi Matematica, Vol. II, CEDAM, 1977 B. DEMIDOVIC, Esercizi di Analisi Matematica, MIR, 1987 APPLICAZIONI E CALCOLO IN RETE (Docenti: Antonio Laganà, Sergio Tasso, Leonardo Pacifici) Obiettivi del corso Familiarizzare con l'evoluzione delle architetture da sequenzialità a concorrenza. Sviluppare la capacità di analizzare algoritmi semplici sia per ambienti sequenziali che paralleli. Familiarizzare con la programmazione scientifica fortran. Approfondimento della conoscenza degli strumenti per la parallelizzazione e la distribuzione su rete di programmi scientifici e relative applicazioni. Periodo didattico: I semestre Programma Mod. I - 16 ore - Dalla sequenzialità alla concorrenza (A. Laganà) - a. Verso la concorrenza su elaboratori a singola cpu - b. Piattaforme concorrenti a più cpu - c. Piattaforme di elaborazione su grid - d. Soluzioni concorrenti di problemi elementari Mod. II 16 ore - Strumenti e tecniche di parallelizzazione e valutazione delle prestazioni (S. Tasso) - a. Elementi di calcolo in Fortran - b. Programmazione parallela e valutazione delle prestazioni Mod. III 16 ore - Approcci concorrenti al calcolo tecnico-scientifico (L. Pacifici) - a. Modelli di programmazione parallela e paradigmi di programmazione - b. MPI: nascita ed evoluzione - c. Applicazioni di paradigmi e modelli di parallelismo Modalità di Esame Superamento di test di valutazione telematico (EOL) Colloquio di verifica dei risultati del test 16 / 16 Per eventuale incremento del voto e lode: discussione di un progetto di parallelizzazione da riprendere eventualmente per preparare la tesi, per coloro che scegliessero di fare la tesi su applicazioni e calcolo in rete Testi consigliati Gregory F Pfister, In search of clusters, Prentice Hall (1988) Ian Foster, Designing and Building Parallel Programs, Concepts and tools for Parallel software engineering, Addison-Wesley (1995) Dongarra, Foster, Fox, Gropp. Kennedy,Torczon,Whit, The sourcebook of parallel computing, Elsevier (2002) ARCHITETTURA DEGLI ELABORATORI I (Docente: Ferruccio Barsi) Obiettivi del corso Analisi e sintesi delle reti digitali. Introduzione alla modellistica discreta ed al progetto di sistemi numerici. Periodo didattico: I semestre Programma LE RETI LOGICHE Funzioni logiche e reti logiche. Circuiti AND, OR, NOT, NAND, NOR e loro impiego. Rappresentazione grafica. LE RETI COMBINATORIE Funzioni logiche e loro rappresentazione. Implicazione e copertura. Implicanti ed implicati. La ricerca degli implicanti. Espressioni irridondanti e minime. Procedure sistematiche per l’ottenimento delle forme minime. La tabella di copertura. Tabelle cicliche. Funzioni non completamente specificate e funzioni a più uscite. MODULI COMBINATORI I moduli combinatori. Addizionatori, codificatori e decodificatori, Multiplexer e Demultiplexer, PLA. ROM. LE RETI SEQUENZIALI Reti sequenziali. La macchina sequenziale. Gli elementi di memoria. Riduzione del numero di stati di una macchina sequenziale.La procedura di Moore e la Tabella di Unger. La macchina minima. Sintesi. Macchine non completamente specificate. Copertura, compatibilità, riduzione. Procedure sistematiche per la riduzione di macchine non completamente specificate. Sintesi. MODULI SEQUENZIALI Moduli sequenziali. Contatori e registri. Modalità di Esame. Per accedere all'esame orale, lo studente deve superare una prova scritta generalmente consistente in un questionario a risposte multiple. Una volta superata la prova scritta lo studente dovrà - pena l'annullamento della prova - sostenere l'orale in un appello dell'anno 17 / 17 accademico di riferimento. Lo studente ha facoltà di rinunciare al proseguimento della prova orale (la rinuncia non comporta menzione nella carriera dello studente) per una ed una sola volta senza che la prova scritta venga annullata ma non è consentito ripetere l'esame nella stessa sessione. Testi consigliati F. BARSI, Architettura degli Elaboratori. Prima parte: Reti Logiche, Margiacchi - Galeno Editrice, 2001 - ISBN 88-86494-40-8 F. BARSI, Reti Logiche e Aritmetica di macchina - Esercizi e Test, Margiacchi - Galeno Editrice, 2005 - ISBN 88-86494-60-2 ARCHITETTURA DEGLI ELABORATORI II (Docente: Ferruccio Barsi) Obiettivi del corso Analisi di sistemi digitali e loro architettura tipo. Sintesi elementare. Capacità di comprensione di sistemi complessi. Aritmetica dei calcolatori. Periodo didattico: II semestre Programma ARCHITETTURA A LIVELLO DEI REGISTRI Considerazioni generali sull?architettura di un sistema digitale. Il livello descrittivo dei registri. Il linguaggio RTL. Le micro-operazioni ( op). op di trasferimento ed aritmetico ? logiche. Considerazioni generali sul controllo. Cicli di macchina. Formato istruzioni. Indirizzamento. Controllo cablato e programmato. Architetture RISC e CISC. UN CALCOLATORE ELEMENTARE A CONTROLLO CABLATO Un calcolatore didattico a controllo cablato. L?architettura a livello di registri. Il bus di sistema. Tipi di istruzioni. Istruzioni che fanno riferimento alla memoria. Linguaggi a livello macchina. Assembly language. Programmazione assembly. Esempi di programmi. Cicli e subroutines. UN CALCOLATORE ELEMENTARE A CONTROLLO MICROPROGRAMMATO Architettura. Il linguaggio µ-Assembler. La routine di fetch. Le altre routine. Decodifica dei campi funzione. Il generatore di indirizzi. ARCHITETTURA A LIVELLO DEI PROCESSOR La CPU L'unità aritmetico logica. Lo shifter. Lo stack di memoria. LA MEMORIA Dispositivi di Memoria. Caratteristiche dei dispositivi di Memoria. Dischi. Memorie Veloci. Memoria Virtuale. Gerarchie di memoria. Address mapping. Allocazione dinamica.. Allocazione nelle diverse organizzazioni di memoria principale di memoria. L'INGRESSO/USCITA L'Interfaccia di I/O. I/O Bus e Modulo di interfaccia. I/O Bus e Memory Bus. Un esempio di interfaccia I/O. Trasferimento dati. Modalità di controllo di I/O. L'interrupt. Hardware priority interrupt. Accesso Diretto in Memoria. I/O Processor. 18 / 18 L'INFORMAZIONE La rappresentazione dei numeri.. Sistemi numerici posizionali in base fissa. Rappresentazione di un numero in base fissa. Cambiamento della base della rappresentazione. La rappresentazione dei numeri relativi. Rappresentazione in complemento al campo. I numeri razionali. Rappresentazione di un numero frazionario. Rappresentazione di un numero razionale. OPERAZIONI ARITMETICHE Addizione di interi relativi. Traboccamento. Moltiplicazione di interi relativi. La virgola mobile. PROTEZIONE DELL'INFORMAZIONE DA ERRORE La parola di informazione. Le ipotesi di errore. Rilevazione e correzione di errore. Codici binari lineari. Codici di Hamming. SISTEMI DI SICUREZZA La criptografia. Riservatezza ed autenticazione. Sicurezza assoluta e computazionale. Tipi di criptosistemi. Le firme digitali. Il criptosistema DES. Il criptosistema RSA. La moneta elettronica nel criptosistema RSA. Il criptosistema PGP. Modalità di Esame. Per accedere all'esame orale, lo studente deve superare una prova scritta eralmente consistente in un questionario a risposte multiple. Una volta superata la prova scritta lo studente dovrà - pena l'annullamento della prova - sostenere l'orale in un appello dell'anno accademico di riferimento. Lo studente ha facoltà di rinunciare al proseguimento della prova orale (la rinuncia non comporta menzione nella carriera dello studente) per una ed una sola volta senza che la prova scritta venga annullata ma non è consentito ripetere l'esame nella stessa sessione. Testi consigliati F. BARSI, Architettura degli Elaboratori. Parte Seconda: Struttura dei Sistemi, Margiacchi Galeno Editrice, 2006 – ISBN 88-86494-63-7 F. BARSI, L’Informazione – Rappresentazione Trattamento Protezione, Margiacchi - Galeno Editrice, 2006 – ISBN 88-86494-64-5 F. BARSI, Reti Logiche e Aritmetica di macchina - Esercizi e Test, Margiacchi - Galeno Editrice, 2005 - ISBN 88-86494-60-2 19 / 19 ARCHITETTURA DELLE RETI DI COMPUTER (Docente: Osvaldo Gervasi) Obiettivi del corso Conoscenza delle tecnologie e dei servizi di rete. Comprensione del funzionamento dei principali servizi Internet. Approfondimento del ruolo dei diversi dispositivi hardware e funzionalità dei protocolli software. Periodo didattico: II semestre Programma Introduzione Presentazione del corso e delle modalità di esame. Reti Aziendali, Reti per le persone La rete Internet Storia, Struttura della rete, Evoluzione, Architettura di Internet; Servizi ed applicazioni emergenti: Intranet - Extranet -Sicurezza nelle reti telematiche - Firewall Secure Socket Layer (SSL) - Privacy ed autenticazione nelle transazioni elettroniche (EDI) – Encryption - PGP - Firma digitale - Accesso controllato alla rete Internet (PICS). Reti locali e geografiche Introduzione, ISO Open System Interconnection (OSI) Reference Model, Reti locali, Topologie, Metodi di accesso, Principali standard, Reti Metropolitane (MAN), Reti geografiche (WAN), Interconnessione di LAN su scala geografica, Reti a commutazione di pacchetto e loro evoluzione, X.25, Frame Relay, ATM, Tecnologia per DSL, Reti Wireless, Satellite Networks, Mobile Networks, Personal Area Networks. TCP/IP Protocolli IP, ARP, RARP, ICMP, TCP e UDP. Request For Comments (RFC). Servizi di rete: Telnet - File Transfer Protocol (FTP) - Network File System (NFS) - Network Information System (NIS) - Domain Name System (DNS) - Simple Mail Transfer Protocol (SMTP) - Simple Network Management Protocol (SNMP) - Network News Transfer Protocol (NNTP) Hyper Text Transfer Protocol (HTTP) - Network Time Protocol (NTP) - Esempi applicativi in ambiente Unix (AIX, Linux); Protocolli di routing RIP - OSPF - BGP Esempi applicativi in ambiente Unix (AIX, Linux) e Cisco; Modalità di Esame Test su sistema EOL e prova orale. Testi consigliati: 1. Andrew S. Tanenbaum: Reti di Computer, UTET-Prentice Hall International, ISBN 88-7750453-6 2. Douglas Comer: Internetworking con TCP/IP - Principi, protocolli, Architettura; Gr. Ed. Jackson-Prentice Hall Int. ISBN 88-256-0346-0 3. Materiale multimediale fornito del Docente. 20 / 20 BASI DI DATI E SISTEMI INFORMATIVI I (Docenti: Marco Baioletti, Valentina Poggioni) Obiettivi del corso Comprensione e capacità di utilizzo delle nozioni e strumenti basilari connessi alla progettazione ed implementazione delle basi di dati. Periodo didattico: I semestre Programma Concetti generali dei sistemi informativi e introduzione alle basi di dati e ai DBMS. La progettazione concettuale con il modello Entità/Relazione Esteso. La progettazione logica con il modello relazionale dei dati. Dal modello E.R. al modello relazionale. Le interrogazioni con l'algebra relazionale. Il linguaggio SQL (Structured Query Language): sottolinguaggi DML, DDL, QL. Modalità di Esame Esame scritto, colloquio orale. Testi consigliati 1. Atzeni P., Ceri S., Paraboschi S., Torlone R., Basi di dati, Modelli e linguaggi di interrogazione. Seconda edizione. McGraw-Hill Libri Italia, 2006. BASI DI DATI E SISTEMI INFORMATIVI II (Docenti: Marco Baioletti, Valentina Poggioni) Obiettivi del corso Conoscenza di base sull'architettura dei DBMS e sulle strutture dati ed algoritmi impiegati per la loro realizzazione. Conoscenza critica delle problematiche connesse all'approccio object-oriented e distribuito. Laboratorio di basi di dati: realizzazione di applicazioni database. Periodo didattico: II semestre Programma Forme normali e normalizzazione. Tecnologia dei DBMS: Teoria della concorrenza e transazioni. Gestione della concorrenza. Gestione dell'affidabilità. Gestione del buffer e delle memorie di massa. Strutture di memorizzazione. Ottimizzazione ed esecuzione delle interrogazioni. DBMS distribuiti: Architetture. Trasparenza. Frammentazione. Transazioni distribuite e loro problematiche. DBMS ad oggetti: OODBMS e ORDBMS. Lo standard SQL-3. DBMS attivi. Sviluppo di applicazioni con Java e VB.NET con connessione ed utilizzo di database MySQL e PostgreSQL. 21 / 21 Modalità di Esame Progetto, colloquio orale. Testi consigliati 1. Atzeni P., Ceri S., Paraboschi S., Torlone R., Basi di dati, Architetture e linee di evoluzione. McGraw-Hill Libri Italia, 2003. 2. Dispense distribuite dal docente (esclusivamente sulla parte del programma non coperta dal libro di testo) CALCOLO DELLE PROBABILITÀ E STATISTICA MATEMATICA (Docente: Giulianella Coletti) Obiettivi del corso Fornire, in modo integrato, alcuni concetti fondamentali di probabilità e statistica, cercando di stimolare le capacità critiche del discente, per metterlo così in grado anche di affrontare ogni nuovo problema e non solo quelli di "routine" (la cui soluzione può essere invece affidata ad un calcolatore). Periodo didattico: I semestre Programma Eventi. Operazioni fra eventi. La probabilità come grado di fiducia. Coerenza e additività . La valutazione combinatoria. Numeri aleatori semplici. Previsione e varianza di numeri aleatori semplici. La valutazione frequentista. Eventi condizionati e probabilità condizionata. Indipendenza stocastica. Distribuzione binomiale e ipergeometrica. Test di ipotesi. Numeri aleatori discreti e continui. Distribuzioni di Poisson, geometrica, uniforme, esponenziale, normale. Distribuzioni multiple. Il teorema centrale. Variabili statistiche discrete e continue. Media, moda, mediana. Misure di dispersione. Correlazione di dati bidimensionali. Rette di regressione. Campionamento statistico e stima dei parametri. Intervalli di confidenza. Modalità di Esame Prova scritta e (eventuale) prova orale (a scelta del candidato) a cui si accede solo con la sufficienza della prova scritta. Testi consigliati: R. Scozzafava. Incertezza e Probabilità, Ed. Zanichelli. 22 / 22 CALCOLO NUMERICO (Docente: Ivan Gerace) Obiettivi del corso Fornire allo studente gli strumenti fondamentali per l'implementazione al computer dei principali metodi per la risoluzione di problemi matematici. Periodo didattico: II semestre Programma Analisi dell' errore - Numeri di macchina. Errore nella rappresentazione di un numero macchina. Errore totale, inerente e algoritmico. Uso dei grafi per l'analisi dell'errore. Equazioni non lineari - Metodo di bisezione. Metodi di iterazione funzionale. Ordine di convergenza. Metodi delle tangenti. Metodo delle secanti. Metodi per la risoluzione di sistemi lineari - Richiami di algebra lineare (autovalori e norme). Numero di condizionamento. Metodo di Gauss. Fattorizzazioni LU e LLT. Metodi iterativi. Metodi di Jacobi e Gauss-Seidel. Metodo del gradiente coniugato. Metodi per il calcolo degli autovalori – Condizionamento del problema. Localizzazione degli autovalori. Metodo delle potenze. Al laboratorio: esercitazione con uso di MatLab. Modalità di Esame È suddiviso in una prova scritta ed una orale (Prerequisiti: Analisi Matematica II, Matematica Discreta II, Laboratorio di Informatica: Programmazione II). Testi consigliati 1. D. Bini, M. Capovani, O. Menchi, Metodi Numerici per l'Algebra Lineare, Zanichelli. 2. R. Bevilacqua, D. Bini, M. Capovani, O. Menchi, Metodi Numerici , Zanichelli. 3. W.J. Palm III, MATLAB 6 per l'ingegneria e le scienze, MC Graw Hill. 23 / 23 FISICA DEI DISPOSITIVI ELETTRONICI (Docenti: Renzo Campanella, Leonello Servoli) Obiettivi del corso Comprensione del funzionamento dei dispositivi elettronici impiegati sulle macchine attuali e degli sviluppi futuri del campo. Capacità di realizzare semplici circuiti. Periodo didattico: II semestre Programma MODELLO ATOMICO. Atomo di idrogeno, principio di esclusione di Pauli, Livelli di energia, buche ed effetto tunnel, distribuzione di Fermi-Dirac, Livelli di Fermi. FISICA DEI MATERIALI SEMICONDUTTORI. Conduttori, semiconduttori, isolanti. Cenni sulla meccanica quantistica. Livello di fermi nei metalli. Densità degli stati disponibili. Teoria delle bande nei solidi. Concetto di lacuna. Massa efficace. Esempi di bande nei semiconduttori (gr. IV e gr III-V). Semiconduttori intrinseci ed estrinseci. Livello di Fermi nei semiconduttori. Fenomeni di trasporto nei materiali semiconduttori. Equazione generale della diffusione. GIUNZIONE P-N. Equilibrio termodinamico, regione di svuotamento. Caratteristica i-v, funzionamento come un diodo, modello lineare del diodo, tempi di transizione. Diodi zener e tunnel. TRANSISTORE BIPOLARE. Effetto transistore e regioni di funzionamento. Guadagno di corrente, fattore di trasporto ed efficienza di emettitore. Il modello di Ebers-Moll. Caratteristiche statiche I-V. Effetto Early. Effetti della polarizzazione di emettitore. Resistenza di base. Modelli e circuiti equivalenti principali. ELEMENTI DI ELETTRONICA DIGITALE. Implementazione delle operazioni logiche. Famiglie logiche DISPOSITIVI OPTOELETTRONICI. Transizioni radiative e assorbimento ottico. Diodi emettitori di luce: LED, Laser a semiconduttore. Fotorivelatori, celle solari. Trasduttori. Sensori. DISPOSITIVI QUANTISTICI PER IL QUANTUM COMPUTING E DISPOSITIVI PER LA NANOELETTRONICA. Dispositivi quantistici (memorie e quantum computing). Nanotubi di carbonio: Proprietà generali. Proprietà elettriche. FET su nanotubi di carbonio. Prestazioni dei dispositivi nanometrici. CENNI SUI DISPOSITIVI PER LA BIOELETTRONICA. Laboratorio: - Simulazione di circuiti elettrici e dispositivi logici. - Esperienze con componentistica discreta analogica e digitale. - Realizzazione di semplici circuiti logici. Testi consigliati G. Giustolisi, G. Palumbo: Introduzione ai dispositivi elettronici - Franco Angeli J. Millman, A. Grabel: Microelettronica - McGraw-Hill Libri di consultazione: H. Taub, D. Schilling: Elettronica integrata digitale - Jackson Libri S.M. Sze, Dispositivi a semiconduttore - Hoepli Materiale integrativo Modalità di Esame Consultare il docente. 24 / 24 FISICA GENERALE (Docenti: Paolo La riccia, Attilio Santocchia) Obiettivi del corso Comprensione dei concetti fondamentali di fisica classica con particolare riguardo agli aspetti rilevanti per il funzionamento dei calcolatori e delle loro periferiche. Periodo didattico: I semestre Programma MECCANICA Misure. Moto rettilineo: velocità media, velocità istantanea, accelerazione. Esempi ed esercizi. Moto in due e tre dimensioni. Posizione, spostamento, velocità, accelerazione. Composizione e decomposizione dei moti. Moto dei proiettili. Moto circolare uniforme e moto armonico Forze e moto: Le forze. Forza di gravità, forza elastica, forze di attrito. Le forze ed il moto. Moti relativi: Moti relativi. Sistemi inerziali. Esempi ed esercizi. Forze e moto: Cenni storici sulla meccanica newtoniana. Le forze della natura. Massa. Baricentro, moto del baricentro. Energia cinetica e lavoro: Energia cinetica. Lavoro: lavoro di una forza costante e di una forza variabile, esempi. Il teorema dell’energia cinetica per il moto di un corpo senza energia interna. Esempi ed esercizi. Lavoro ed energia: Lavoro ed energia. Forze conservative e non conservative. Conservazione dell’energia: Energia interna ad un sistema. Il principio di conservazione dell’energia in generale. Cenni alla dinamica dei moti rotatori. Equilibrio. MECCANICA DEI FLUIDI I fluidi: Densità e pressione. Misura della pressione. Principio di Pascal. Principio di Archimede. Dinamica dei fluidi: Linee di flusso ed equazione di continuità. Equazione di Bernoulli ed applicazioni. TERMOLOGIA E TERMIDINAMICA Calorimetria: Temperatura e calore. Esempi ed esercizi. Il primo principio della termodinamica. Trasmissione del calore. Equazione di stato dei gas perfetti. Temperatura assoluta e gas: Equazione di stato dei gas perfetti. Il modello molecolare dei gas perfetti. La temperatura assoluta. Cenno ai gas reali. Macchine termiche e frigorifere. Il secondo principio della termodinamica. Cenni al terzo principio della termodinamica. Propagazione del calore. ELETTROSTATICA Carica elettrica e campo elettrico: Carica elettrica, conservazione della carica. Legge di Coulomb. Campo elettrico. La carica dell’elettrone. Il concetto di campo. Legge di Gauss per il campo gravitazionale ed elettrostatico. Energia potenziale e potenziale elettrico. Capacità e condensatori: Capacità e condensatori. Condensatori piani. Calcolo della capacità. Condensatori in serie e parallelo. L’oscillografo. Energia immagazzinata nel campo elettrico. Dielettrici. CORRENTI ELETTRICHE CONTINUE Cariche in movimento, densità di corrente e corrente elettrica. Legge di Ohm. Potenze nei circuiti elettrici. Dissipazione della potenza. Elettrolisi. Resistenze in serie e parallelo. Esempi ed esercizi. Cenno ai superconduttori. 25 / 25 Generatori di f.e.m. Resistenza interna. Generatori di tensione e di corrente. Cenni ai semiconduttori. Circuiti in corrente continua. Amperometri, voltmetri, Ohmetri. Esempi ed esercizi. Principi di Kirchhoff. Esempi ed esercizi INTRODUZIONE ALL’ELETTRONICA Carica e scarica di un condensatore. Elementi non lineari. Diodo a giunzione. Il LED. Il transistore a giunzione e ad effetto di campo: principio di funzionamento. Applicazioni dei transistori: Il transistore come amplificatore, il transistore come interruttore. CAMPI MAGNETICI STATICI Il campo magnetico. Legge di Ampère. Solenoidi e toroidi Dipolo magnetico. Il teorema di Gauss per il campo magnetico. Equivalenza di una spira percorsa da corrente con un dipolo magnetico. Fenomeni magnetici e struttura della materia. Cenno al ferromagnetismo. CAMPI ELETTRICI E MAGNETICI VARIABILI E INTRODUZIONE ALL’ELETTRODINAMICA Legge di induzione di Faraday-Lenz. Esempi ed applicazioni. Considerazioni energetiche. Alternatori e motori. Induttori ed induttanza. Energia immagazzinata in un campo magnetico. Mutua induttanza, Campi magnetici indotti. Corrente di spostamento. Cenno alle equazioni di Maxwell. Propagazione dell’onda elettromagnetica: trattazione qualitativa. Velocità della luce. Trasporto di energia. Cenno ai fenomeni ondulatori: interferenze e diffrazione. INTRODUZIONE ALL’OTTICA Riflessione, rifrazione. Il prisma e la scomposizione della luce. Le fibre ottiche. Introduzione all’ottica geometrica. Immagini. Proprietà delle lenti. CIRCUITI IN CORRENTE ALTERNATA Oscillazioni LC. L’analogia tra oscillazioni in corrente alternata e gli oscillatori in meccanica. Corrente alternata. Ciruiti in corrente alternata. Cenno alla analisi di Fourier. Il trasformatore Oscillazioni smorzate. Oscillazioni forzate. CENNI DI STRUTTURA DELLA MATERIA ED APPLICAZIONI Cenni alla struttura atomica. Tavola periodica degli elementi. Laser e luce laser. Principio di funzionamento del laser. Modalità di Esame L'esame è costituito da una prova scritta eventualmente seguita da una prova orale nei casi in cui la prova scritta sia leggermente insufficiente o lo studente reputi la sua preparazione superiore al risultato conseguito o, infine, a giudizio del docente. La prova scritta è costituita da quesiti a scelta multipla. Il voto in trentesimi è proporzionale al numero di risposte corrette. La prova è valida per la sola sessione di esame in cui è stata effettuata. Testi consigliati Halliday - Resnick: Fondamenti di fisica - Sesta edizione Casa Editrice Ambrosiana (Anche le edizioni precedenti vanno bene). Note: I trasparenti delle lezioni ed un esempio di prova scritta alla fine del modulo sono disponibili su http://lariccia-pc2.pg.infn.it/moodle/ e saranno in futuro disponibili sul sito di Facoltà e-science 26 / 26 ABORATORIO DI ALGORITMI (Docente: Rosanna Bicocchi) Periodo didattico: I semestre Obiettivi del corso: Implementare algoritmi operanti su strutture dati elementari: liste, pile, code, alberi, grafi. Programma: Tipi di dati astratti: specifica sintattica e semantica, implementazione. Rappresentazione di insiemi. Rappresentazione di tipi di dati astratti (gioco, contenitore, ecc.) Liste semplici: specifica sintattica e semantica, rappresentazione sequenziale e collegata. Algoritmi operanti su liste semplici. Liste bidirezionali: rappresentazione collegata . Algoritmi operanti su liste bidirezionali. Liste circolari. Liste ordinate. Alberi radicati: specifica sintattica e semantica, possibili rappresentazioni. Alberi binari: rappresentazione sequenziale e collegata. Algoritmi di visita. Algoritmi operanti su alberi binari. Alberi binari di ricerca. Algoritmi operanti su alberi binari di ricerca: ricerca di una chiave, inserimento di un nodo, cancellazione di un nodo. Grafi: specifica sintattica e semantica, possibili rappresentazioni. Algoritmi di visita. Modalità di esame: l`esame e` costituito da una prova scritta, che deve essere superata con voto >= 18, seguita da una prova orale. Testi: A. A. Bertossi: “Algoritmi e strutture di dati”, UTET, 2000. LABORATORIO DI ARCHITETTURA (Docente: in corso di nomina) 27 / 27 LABORATORIO DI LINGUAGGI DI PROGRAMMAZIONE E COMPILATORI (Docente: Giorgio Cecconi) Obiettivi del corso: Il corso ha lo scopo di illustrare le principali metodiche teoriche ed alcuni strumenti di uso corrente che sono alla base per la costruzione di compilatori ed interpreti. Periodo didattico: II semestre Programma: Finalizzazione: Sono esaminati alcuni strumenti per definire la sintassi e la semantica dei linguaggi di programmazione, la struttura di un compilatore. La parte più teorica è incentrata sulla definizione e classificazione dei linguaggi, con approfondimento su grammatiche libere dal contesto, su alberi sintattici, automi a pila. La parte pratica è sviluppata tramite i tools di Unix per il trattamento delle espressioni regolari (sed, ed, grep family, awk, visual editors), su analizzatori lessicali (Lex/Flex), su analizzatori sintattici (Yacc/Bison). Vengono proposti progetti di approfondimento teorico o di sviluppo di parser specializzati. Contenuti parte teorica: • • • • • • INTRODUZIONE: cosa sono gli interpreti e i compilatori; linguaggi di programmazione e macchine; le pasi di un interprete e di un compilatore. LINGUAGGI E AUTOMI: linguaggi formali e grammatiche; gerarchia di Chomsky; linguaggi regolari e liberi dal contesto; automi a stati finiti; automi a pila. ANALISI LESSICALE: il ruolo dell'analizzatore lessicale; espressioni regolari; da espressioni regolari a automi a stati finiti; il generatore LEX. ANALISI SINTATTICA: il ruolo del parser; parsing top-down (LL) e parsing bottom-up (LR); il generatore di parser YACC. TRADUZIONE GUIDATA DALLA SINTASSI: definizioni guidate dalla sintassi; valutazione top-down e bottom-up delle definizioni guidate dalla sintassi. GENERAZIONE DEL CODICE: generazione del codice intermedio e generazione del codice target; linguaggi intermedi; ottimizzazione del codice intermedio; emissione del codice target. • Cenni su: CONTROLLO DI SEQUENZA: comandi condizionali e iterativi; controllo dei sottoprogrammi; controllo di sequenza in interpreti e compilatori.TIPI DI DATO: tipi di dato elementari e strutturati; sistemi di tipi e espressioni di tipi; type checking statico e dinamico; gestione dei tipi di dato negli interpreti e nei compilatori. GESTIONE DELLA MEMORIA: memoria statica e dinamica; allocazione e de-allocazione della memoria; deallocazione automatica della memoria: contatori dei riferimenti e garbage collecting. Contenuti parte pratica: • Realizzazione di automi a stati finiti riconoscitori. • Realizzazione di analizzatori lessicali. • Gestione delle tabelle dei simboli. 28 / 28 • Realizzazione di programmi per manipolare le grammatiche. Ricevimento: • secondo calendario delle lezioni • a fine lezione • per appuntamento Modalità di Esame: Di norma consiste in una prova scritta il cui esito determina l’ammissione alla prova orale. In alternativa alla prova scritta potrà essere concordato con il docente un progetto di approfondimento, da presentare in aula e discutere con gli altri studenti del corso. Materiale didattico: . distribuito o proposto dal docente . indicazione di URL di riferimento Testi consigliati: - per approfondimento generale e su compilatori: J. Levine, T. Mason, D. Brown, Lex & Yacc, O'Reilly, 1992. A.W. Appel, Modern Compiler Implementation in C, Cambridge University Press, 1998. A.V. Aho, R. Sethi, J.D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986. T.W. Pratt and M.V. Zelkiwitz. Programming Languages: Design and Implementation. Third Edition. Prentice Hall, 1996. - su teoria degli automi: John E. Hopcroft, Jeffrey D. Ullman, Rajeev Motwani, Introduction to Automata Theory, Languages, and Computation, Addison-Wesley, 2000. John E. Hopcroft, Jeffrey D. Ullman, R. Motwani, Automi, linguaggi e calcolabilità, AddisonWesley, 2003. 29 / 29 LABORATORIO DI LINGUAGGI DI REALTÀ VIRTUALE (Docente: Antonio Riganelli) Obiettivi del corso Conoscenza delle tecnologie alla base della rappresentazione virtuale degli oggetti e delle scene e delle tecnologie Web3D, in particolare i linguaggi X3D e VRML. Periodo didattico: II semestre Programma: Approfondimento delle tematiche affrontate nel corso di Linguaggi di Realtà Virtuale. Esercitazioni guidate in laboratorio. Sviluppo dell’applicazione oggetto dell’esame. Modalità di Esame Test idoneativo mediante il sistema EOL. Presentazione della relazione in formato HTML o Openoffice o PDF o Powerpoint inerente il progetto di Mondo Virtuale sviluppato dallo Studente ed assegnato dal Docente. Testi consigliati: Materiale multimediale e bibliografia di siti Internet forniti dal Docente. LABORATORIO DI PROGRAMMAZIONE (Docente: Stefano Marcugini) Obiettivi del corso Capacità di progettare e realizzare programmi applicativi. Periodo didattico: II semestre Programma Approfondimento del linguaggio Java. Esempi di applicazioni. Programmazione mirata all'ambiente di rete Socket. Applicazioni client-server. Modalità di Esame Presentazione e discussione di un progetto. Testi consigliati: Appunti forniti dal docente Java "Dai fondamenti alla programmazione avanzata" di Karsten Samaschke edizioni Apogeo Testi di riferimento L.Lemay, C.L. Perkins, Java 1.2, Edizioni Sams net Cay S. Horstmann e Gary Cornell, Java 2 i fondamenti, Mc Graw Hill; Cay S. Horstmann e Gary Cornell, Java 2 tecniche avanzate, Mc Graw Hill; 30 / 30 LABORATORIO DI RETI DI COMPUTER (Docenti: Sergio Tasso) Obiettivi del corso Fornire conoscenze ed esperienze sulla gestione del hardware di rete, dei servizi Internet e di strumenti per la messa in sicurezza delle reti. Periodo didattico: I semestre Programma Introduzione alla gestione delle reti · Configurazione del TCP/IP: Come definire sottoreti, definizione delle interfacce · La configurazione del Routing: minimale, statico, dinamico (RIP, OSPF, EGP) · Servizi di rete (definizione, configurazione ed uso): La gestione dei nomi la Host table, il DNS (Domain Name Service); L'accesso a risorse in rete comandi remoti, il servizio NIS (Network Information Service), il sistema NFS (Network File System); La posta elettronica gli aliases, il servizio sendmail; · Servizi di controllo e gestione: SNMP (Simple Network Management Protocol) definizione del protocollo, MIB (Management Information Base), applicazioni di gestione, monitoraggio, definizione degli allarmi, trattamento degli eventi; Altri comandi e tools di diagnostica in Unix; Sicurezza: Criteri di valutazione dei rischi Strumenti per il controllo dei rischi Limitazione degli accessi TCP wrapper Firewall Strumenti di monitoraggio e IDS Esempi ed esercitazioni su tutti gli argomenti trattati Modalità di Esame Test a risposte chiuse e progetto di LAN aziendale Testi consigliati: Gary Govanus: TCP/IP Per configurare, implementare e gestire TCP/IP sulla vostra rete, McGraw-Hill Craig Hunt: TCP/IP Network Administration, O’Reilly & Associates, Inc. Materiale fornito dal Docente. 31 / 31 LABORATORIO DI SISTEMI OPERATIVI (Docente: Pietro Tito Melacci) Obiettivo del corso: Studio di uno specifico SO dal punto di vista dell’utente e sviluppo di semplici programmi di interazione con il sistema. Programma: IL SISTEMA OPERATIVO UNIX. Organizzazione a livelli (HW, Kernel, Tools, Shell). La portabilità` di UNIX. La storia di UNIX. Formato dei comandi. Il manuale UNIX in linea. Comandi interattivi e non interattivi. Interfaccia utente. I codici speciali (eof, esc, lnext, intr, quit, start, stop). La procedura di bootstrap. Il processo init. I processi utente. I daemon. LA GESTIONE DEI FILE. Il file system, la struttura gerarchica. Le directory standard di UNIX. I tipi di file di UNIX (file ordinari, directory, file speciali, pipe, link simbolici). I pathname. I nomi dei file e i metacaratteri. I meccanismi di protezione dei file (i diritti di accesso, i diritti di accesso sulle directory). Maschera di creazione dei file. Modifica dei diritti di accesso ai file (modo numerico, modo simbolico). Home directory. Operazioni sui file ordinari (cp, mv, rm, ln). Hard link, link simbolici (symlink). Verifica del contenuto dei file ordinari. Reperire informazioni sui file. File e directory significativi di UNIX. I file speciali (major number, minor number). Le espressioni regolari. LA GESTIONE DEI PROCESSI. Verifica dell`evoluzione dei processi (stati di avanzamento di un processo UNIX). Manipolazione dell`evoluzione dei processi. La gestione dei segnali. La creazione di un processo e l`esecuzione di un programma (la primitiva exec, la primitiva fork). LA SHELL UNIX. Le shell di UNIX, la Bourne shell e la C shell. Il meccanismo di esecuzione dei comandi: i comandi built-in ed i comandi esterni (primitive fork ed exec), meccanismo di esecuzione di un comando. Multitasking: comandi foreground, comandi background (metacarattere &), meccanismo di esecuzione di un commando in background. REDIREZIONE: Redirezione dello standard output (metacaratteri > e >>), Redirezione dello standard input (metacarattere < ), Redirezione dello standard error (nella Bourne shell e nella C shell), Here documents ( metacarattere <<). COMPOSIZIONE DEI COMANDI: Esecuzione seriale (metacarattere ;), il meccanismo di esecuzione seriale; pipeling (metacarattere |), il meccanismo di esecuzione di una pipeline; esecuzione con subshell (metacaratteri ( e )), il meccanismo di esecuzione con subshell. Esecuzione condizionale dei comandi utilizzando && e | | AMBIENTE SHELL: Il file .profile e le variabili di ambiente nella Bourne shell, Il file .login e le variabili di ambiente nella C shell. Caratteristiche tipiche della C shell (la history, aliasing, il job control). La gestione del login (il file /etc/passwd). MANIPOLAZIONE TESTI. 32 / 32 L`editor vi. Command mode, text input mode. Le modifiche con ex. Pattern di ricerca. Le espressioni regolari dell`editor. Interazione con la Shell. Personalizzazione di vi. Gestori di testi. LINGUAGGI E STRUMENTI DI SUPPORTO ALLA PROGRAMMAZIONE. Compilatori ed interpreti (opzioni, il file oggetto). I compilatori Fortran, Pascal, C. Debugger. Librerie. STRUMENTI DI GESTIONE DEI FILE. Gestione avanzata dei file. Comandi filtro (comandi dell`algebra relazionale). Confrontare file. Selezionare file. Occupazione della memoria. STRUTTURA INTERNA DEL FILE SYSTEM UNIX. La suddivisione del file system (bootstrap, superblock, i-list, area dati). Blocco di bootstrap. Il super-block, i-node, i-number, l`area dati, la i-list, i link. Struttura di un i-node. L`indirizzamento indiretto ai blocchi dati. Interpretazione del pathname. Lista dei blocchi liberi. Link multipli allo stesso file. I file system montati, chiamate al sistema mount/unmount. Monitoraggio del sistema. IL LINGUAGGIO DELLA SHELL. Gli shell script. Variabili, passaggio di parametri, strutture di controllo, login script. Meccanismi di esecuzione di shell script. La variabile PATH. Ambiente di valutazione (le variabili di ambiente, le variabili predefinite). Il metacarattere (back apostrophe). La history. Aliasing. Funzioni. Bourne shell: elementi del linguaggio, costrutti di controllo (for, case, while, if), funzioni, esempi di shell script. C shell: elementi del linguaggio, caratteristiche tipiche della C-shell, variabili numeriche (simbolo @, operatori), input/output, espressioni (operatori), costrutti di controllo (foreach, switch, while, if, repeat, goto), esempi di shell script. Debugging di shell script. COMUNICAZIONI. La comunicazione immediata di messaggi. Il sistema di posta elettronica, la funzione mail, i programmi mailer. Connessione remota (telnet), modo comandi. Trasferimento file (ftp), comandi di ftp. CHIAMATE DI SISTEMA UNIX. Chiamate relative ai file. Chiamate relative ai processi. X WINDOW SYSTEM. Modalità di esame: Presentazione di un progetto, prova scritta che deve essere superata con voto >= 18, prova orale. Testi di riferimento: A. Bonsignori, A. Fabrizio: ''UNIX'', Jackson libri, 1993. G. Glass: ''UNIX for Programmers and Users. A Complete Guide'', Prentice Hall International Editions, 1993. Appunti forniti dal docente e disponibili in forma elettronica sulla cartella H:\comune\docenti\melacci\ nei PC del Laboratorio di Informatica del Dipartimento. 33 / 33 LINGUA INGLESE I Corsi vengono svolti dal Centro Linguistico di Ateneo (CLA). LINGUAGGI DI REALTÀ VIRTUALE (Docente: Osvaldo Gervasi) Obiettivi del corso Conoscenza delle tecnologie alla base della rappresentazione virtuale degli oggetti e delle scene e delle tecnologie Web3D, in particolare i linguaggi X3D e VRML. Periodo didattico: I semestre Programma Introduzione alla realtà virtuale Esperienze significative nell'evoluzione della Realtà Virtuale; Sensorama; Sketchpad; Head Mounted Display (HMD); Virtual Interface Environment Workstation; Evoluzione della Realtà Virtuale; VR devices: BOOM, CAVE, Digital Glove; Immersive VR; Shared Virtual Environments; Non immersive VR. Il linguaggio VRML Creazione di mondi con VRML; sintassi VRML; lo spazio VRML; Eventi e Route. il nodo Shape; il nodo Appearance; il nodo Material; i nodi Box, Cone, Cylinder, Spere; Il nodo Group. il nodo Text; il nodo FontStyle. Il nodo Transform. il nodo TimeSensor; Il nodo PositionInterpolator; Il nodo OrientationInterpolator; il nodo ColorInterpolator; il nodo ScalarInterpolator. Il nodo ElevationGrid. Gestione delle luci in VRML; il nodo PointLight; il nodo DirectionalLight; il nodo SpotLight. Gestione di sfondi e della nebbia nel mondo virtuale. Riproduzione di filmati e e suoni. Controllo del punto di vista e delle proprietà dell’avatar: i nodi Viewpoint e NavigationInfo. Scrittura di programmi Script in Java e Javascript; Il nodo Script; Le API Java e Javascript. X3D Presentazione delle specifiche del Web3D Consortium per X3D. Introduzione ad XML, XML Schema e Document Type Definition (DTD). Formati supportati in X3D. Caratteristiche dei nodi X3D esistenti anche in VRML. Caratteristiche dei nodi specifici di X3D: Arc2D, ArcClose2D, AudioClip, BooleanFilter, BooleanSequencer, BooleanToggle, BooleanTrigger, Circle2D, ColorRGBA, Contour2D, ContourPolyline2D, CoordinateInterpolator2D, Disk2D, EspduTransform, FillProperties, GeoCoordinate, GeoElevationGrid, GeoLocation, GeoLOD, GeoMetadata, GeoOrigin, GeoPositionInterpolator, GeoTouchSensor, GeoViewpoint, HAnimDisplacer, HAnimHumanoid, HAnimJoint, HAnimSegment, HAnimSite, IndexedTriangleFanSet, IndexedTriangleSet, IndexedTriangleStripSet, IntegerSequencer, IntegerTrigger, KeySensor, LineProperties, LineSet, LoadSensor, MetadataDouble, MetadataFloat, MetadataInteger, MetadataSet, MetadataString, 34 / 34 MultiTexture, MultiTextureCoordinate, MultiTextureTransform, NurbsCurve, NurbsCurve2D, NurbsOrientationInterpolator, NurbsPatchSurface, NurbsPositionInterpolator, NurbsSet, NurbsSurfaceInterpolator, NurbsSweptSurface, NurbsSwungSurface, NurbsTextureCoordinate, NurbsTrimmedSurface, Polyline2D, Polypoint2D, PositionInterpolator2D, RecieverPdu, Rectangle2D, SignalPdu, StaticGroup, StringSensor, TextureBackground, TextureCoordinateGenerator, TimeTrigger, TransmitterPdu, TriangleFanSet, TriangleSet, TriangleSet2D, TriangleStripSet. Programmazione di nodi Script e Scene Authoring Interface (SAI). Java3D Presentazione delle API Java3D. Rappresentazione di forme. Apparenza delle forme. Rotazione di forme. Testi. Sfondi. Interazioni. Animazioni. Luci. Textures. Modalità di Esame: Test idoneativo mediante il sistema EOL. Presentazione della relazione in formato HTML o Openoffice o PDF o Powerpoint inerente il progetto di Mondo Virtuale sviluppato dallo Studente ed assegnato dal Docente. Testi consigliati Materiale multimediale e bibliografia di siti Internet forniti dal Docente. . MATEMATICA DISCRETA I (Docente: Maria Cristina Vipera) Obiettivi del corso Fornire le nozioni di Matematica necessarie per trattare strutture discrete. Periodo didattico: I semestre Programma INSIEMI Insiemi e sottoinsiemi. Operazioni tra insiemi: proprietà. Insieme delle parti, complementare, leggi di De Morgan. Prodotto cartesiano. APPLICAZIONI Corrispondenze e applicazioni. Applicazioni iniettive, suriettive, biiettive. Composizione di applicazioni. Inversa di una applicazione biiettiva. Immagini e controimmagini di sottoinsiemi. NUMERI NATURALI E CARDINALITÀ Numeri naturali, divisibilità, M.C.D. e m.c.m. Numeri primi; unica fattorizzazione. Principio d'induzione (due forme). Divisione con resto. Cardinalità di insiemi finiti. Formule fondamentali del calcolo combinatorio: disposizioni semplici e con ripetizione, combinazioni semplici, binomio di Newton. RELAZIONI D'EQUIVALENZA Relazioni binarie in un insieme. Relazioni d'equivalenza e partizioni. RELAZIONI D'ORDINE E RETICOLI Relazioni d'ordine: ordinamenti forti e deboli, totali e parziali. Massimo e minimo. Elementi massimali e minimali. Estremo superiore e inferiore. Isomorfismi di insiemi ordinati. Reticoli, distributività, complementi. Algebre booleane: proprietà fondamentali, legge di dualità; struttura e cardinalità delle algebre booleane finite. 35 / 35 NUMERI INTERI RELATIVI E CONGRUENZE Definizione di alcune strutture algebriche: semigruppi, monoidi: elementi invertibili, cancellabili. Gruppi, anelli, campi. Relazioni d'equivalenza compatibili e strutture quoziente. Anello degli interi. Algoritmo delle divisioni successive, identità di Bézout. Congruenze e classi di resto. Divisori dello 0. Inversi modulo n. Risoluzione di congruenze e sistemi di congruenze. Cenni ai campi razionale e reale e alla rappresentazione dei numeri. GRAFI Definizione di grafo. Grado di un vertice. Grafi completi. Sottografi, grafo complementare, isomorfismi di grafi. Cammini e circuiti, cicli. Grafi connessi. Componenti connesse. Distanza, geodetiche. Centro di un grafo. Alberi: definizioni equivalenti e proprietà. Cammini e circuiti euleriani. Cenno ai cammini e ai cicli hamiltoniani. Punti di taglio e ponti. Connettività (cenni). Grafi bipartiti, grafi bipartiti completi. Grafi planari, facce. Caratterizzazione dei grafi piani (senza dimostrazione). Definizione di digrafo (o grafo diretto) e di grafo orientato. Cammini e semicammini. Connessione forte, debole, unilaterale di un digrafo, componenti. Digrafi inversi, dualità. Sorgenti e pozzi. Alberi orientati. Modalità di Esame La prova scritta è divisa in due parti. La prima è formata da 3 o 4 esercizi da risolvere. Durante questa prova gli studenti potranno consultare testi ed appunti. La seconda parte consiste nel rispondere ad alcuni quesiti per verificare la comprensione della teoria. In questa seconda fase non è consentito consultare libri o appunti. La durata totale delle due prove è di circa 3 ore e mezzo, che includono un intervallo tra le due prove. La prova orale si terrà di regola dopo due o tre giorni e si baserà, almeno in parte, su un commento alla seconda parte della prova scritta. Testi consigliati M. Cristina Vipera, Corso di Matematica Discreta, Margiacchi - Galeno Editrice - 2001. MATEMATICA DISCRETA II (Docente: Maria Cristina Vipera) Obiettivi del corso Fornire conoscenze algebriche di base, con particolare riguardo all’Algebra Lineare e alle strutture algebriche finite. Periodo didattico: II semestre Programma: GRUPPI Gruppi e sottogruppi. Potenze e loro proprietà. Elementi periodici e aperiodici. Proprietà del periodo. Sottogruppi ciclici. Gruppi ciclici. Congruenze modulo un sottogruppo. Laterali, teorema di Lagrange e conseguenze. Gruppi di permutazioni. Decomposizione di una permutazione in cicli disgiunti. Inversi. Parità. Coniugio in un gruppo; permutazioni coniugate. Sottogruppi normali e gruppi quozienti. Omomorfismi: nucleo e immagine. Isomorfismi. 36 / 36 ALGEBRA LINEARE Spazi vettoriali, sottospazi. Combinazioni lineari. Sistemi di generatori. Dipendenza lineare, basi, dimensione. Dimensione di un sottospazio. Matrici e sistemi lineari: eliminazione di Gauss. Calcolo del rango (per colonne). Teorema di Rouché-Capelli. Somma e somma diretta di sottospazi. Dimensione della somma diretta. Formula di Grassmann (senza dimostrazione). Applicazioni lineari: nucleo, immagine e loro dimensione. Matrice associata ad un'applicazione lineare rispetto a due basi fissate. Prodotto di matrici. Matrice della composizione di due applicazioni lineari. Isomorfismi e matrici invertibili. Calcolo della matrice inversa mediante l'eliminazione di Gauss. Determinante: definizione e proprietà (senza dimostrazione). Criteri per l'invertibilità di una matrice. Metodi per il calcolo del determinante. Formule di Laplace (senza dimostrazione) e calcolo della matrice inversa mediante i cofattori. Definizioni equivalenti di rango di una matrice. Teorema di Cramer. Soluzione dei sistemi con l'uso dei determinanti. POLINOMI. Anelli di polinomi (in una indeterminata) a coefficienti in un campo. Grado. Divisione con resto. Polinomi irriducibili. Decomposizione di polinomi. M.C.D e m.c.m. di polinomi. Radici, teorema di Ruffini. Radici multiple. Estensioni algebriche semplici. Il campo complesso; radici complesse di polinomi reali. Campi finiti (cenni). DIAGONALIZZAZIONE. Cambiamenti di base. Matrici coniugate. Autovalori e autovettori. Diagonalizzazione. Modalità di Esame La prova scritta è divisa in due parti. La prima è formata da 3 o 4 esercizi da risolvere. Durante questa prova gli studenti potranno consultare testi ed appunti. La seconda parte consiste nel rispondere ad alcuni quesiti per verificare la comprensione della teoria. In questa seconda fase non è consentito consultare libri o appunti. La durata totale delle due prove è di circa 3 ore e mezzo, che includono un intervallo tra le due prove. La prova orale si terrà di regola dopo due o tre giorni e si baserà, almeno in parte, su un commento alla seconda parte della prova scritta. Testi consigliati M. Cristina Vipera, Corso di Matematica Discreta, Margiacchi - Galeno Editrice, 2001. 37 / 37 MODELLISTICA MOLECOLARE (Docente: Massimo Baroni) Obiettivi del corso Acquisire di conoscenze di base della modellistica molecolare in alcuni suoi aspetti. Sapere affrontare problematiche d’interesse chimico mediante strumenti informatici. Conseguire capacità di analisi degli aspetti algoritmici ed implementativi nello sviluppo di softwares dedicati alla modellistica molecolare ed alla chemioinformatica. Periodo didattico: I semestre Programma Introduzione alla modellistica molecolare. Gli hardwares e softwares per il chimico modellista. Lo sviluppo di un programma: algoritmi, complessità computazionale, progettazione. Richiami di programmazione orientata agli oggetti in C++: tipi di dati, operatori, visibilità, istruzioni di controllo, array, overloading delle funzioni e funzioni inline, riferimenti, puntatori, tipi di dati definiti dall’utente, allocazione dinamica, namespaces, gestione delle eccezioni, classi e data hiding, polimorfismo, membri a livello di classe e accesso friend, costruzione e distruzione di un oggetto, oggetti allocati dinamicamente, membri puntatori, costruttori di copia, overloading degli operatori, eredità, polimorfismo, funzioni virtuali, costruttori e distruttori virtuali, classi astratte, template e funzioni template. La molecola ed il modello di valenza. Rappresentazione e manipolazione di strutture molecolari: modalità mono, bi e tridimensionali. Matrice di connettività e notazione lineare. Calcolo della geometria 3D delle molecole: metodi di meccanica molecolare e force fields. Metodi per la visualizzazione tridimensionale di strutture molecolari. Potenziali elettrostatici molecolari e campi d’interazione molecolare. Visualizzazione di superfici, volumi e delle proprietà molecolari. Algoritmo di Connoly. Banche dati per il chimico. Lo screening virtuale “in silico”. Grafi molecolari. Aspetti computazionali nella ricerca per struttura e sottostruttura. Isomorfismo fra grafi molecolari e la ricerca del massimo sottografo comune per la valutazione del grado di similitudine fra molecole. Analisi dell’algoritmo LeRP applicato a strutture 2D molecolari. Metodi di codifica delle strutture molecolari in stringhe di bit per ricerche veloci. Percorsi minimi superficiali e funzioni di forma per la descrizione molecolare. Il problema della numerazione canonica di una molecola: analisi di un algoritmo a due stadi. Esempi di codici sorgenti scritti in C e C++ per l’implementazione di alcuni degli algoritmi illustrati. Modalità di Esame Prova orale. Testi consigliati Dispense fornite dal docente 38 / 38 PROGRAMMAZIONE I (Docenti: Marco Baioletti, Federico Greco) Obiettivi del corso Comprensione dei concetti di base relativi alla programmazione: strutture dati, meccanismi di controllo. Conoscenza del linguaggio C e parte del linguaggio C++. Capacità di progettazione ed implementazione di semplici algoritmi. Periodo didattico: I semestre Programma Introduzione. Algoritmi e loro proprietà. Il processore e il linguaggio macchina. Paradigmi e linguaggi di programmazione. Compilatori ed interpreti. Il ciclo di vita del software. I linguaggi C e C++. Tipi di dati elementari, variabili, costanti ed espressioni. Assegnamento ed operatori di base. Istruzioni elementari di I/O. Costrutti di sequenza, scelta ed iterazione. Tipi di dati strutturati array, record, stringhe, union (cenni). Procedure, funzioni e passaggio dei parametri. Variabili e regole di visibilità. Record di attivazione e stack. Ricorsione. Puntatori e operazioni sui puntatori. Allocazione dinamica delle variabili e gestione della memoria. Cenni alla gestione delle eccezioni. I file. Algoritmi e strutture dati elementari. Somma, media, massimo, minimo, conteggio e filtro di un array. Algoritmi di ricerca (lineare e binaria) e di ordinamento (bubblesort, sort per selezione e per inserzione) di un array. Intersezione, unione e differenza di insiemi rappresentati con liste. Definizione ricorsiva di fattoriale, elevamento a potenza, numeri di Fibonacci e coefficienti binomiali. Liste lineari semplici e operazioni su di esse (inserimento e cancellazione di un nodo, ricerca, scansione, ordinamento). Liste lineari ordinate. Cenni alle liste bidirezionali. Pile e code implementate con liste. Alberi binari e operazioni su di essi (inserimento di un nodo, visite pre-order, in-order e post-order). Alberi binari di ricerca. Modalità di Esame Prova scritto-pratica al calcolatore, colloquio orale. Testi consigliati Dispense fornite dal docente 39 / 39 PROGRAMMAZIONE II (Docente: Stefano Marcugini) Obiettivi del corso Comprensione dei concetti riguardanti la programmazione orientata agli oggetti ed agli eventi. Capacità di realizzare semplici applicazioni. Periodo didattico: II semestre Programma PROGRAMMAZIONE AD OGGETTI Incapsulamento; Ereditarietà; Polimorfismo; INTRODUZIONE AL LINGUAGGIO JAVA Istruzioni strutturate; Array; Classi e metodi; Programmi stand-alone; Applet; Librerie Java; Eccezioni; Multithreading; Input ed Output; Istruzioni, espressioni, operazioni; Programmazione orientata agli eventi. ESEMPI DI ALGORITMI. Modalità di Esame esame orale Testi consigliati: Appunti forniti dal docente Java "Dai fondamenti alla programmazione avanzata" di Karsten Samaschke edizioni Apogeo Testi di riferimento L.Lemay, C.L. Perkins, Java 1.2, Edizioni Sams net Cay S. Horstmann e Gary Cornell, Java 2 i fondamenti, Mc Graw Hill; Cay S. Horstmann e Gary Cornell, Java 2 tecniche avanzate, Mc Graw Hill; RETI DI CALCOLATORI: PROTOCOLLI (Docente: Bruno Checcucci) Obiettivi del corso Conoscenza dei primi tre livelli del sistema di architettura ISO-OSI. Conoscenza delle principali tipologie di reti telematiche e strutture dati ad esse correlate Periodo didattico: I semestre Programma INTRODUZIONE Il concetto di informazione e sua misura, il processo comunicativo, flussi trasmissivi, topologie di rete, il concetto di protocollo, il codice, la compressione, l'errore, metodi di rivelazione e di risoluzione, sistemi sincroni e asincroni. I PROTOCOLLI SECONDO IL MODELLO ISO-OSI Introduzione, organismi di standardizzazione, esame dei sette livelli, strutturazione dei dati, organizzazione di frame OSI, strati OSI e sommario funzioni. LA TRASMISSIONE DATI 40 / 40 Segnali analogici e digitali, il segnale dati, rappresentazione nel dominio del tempo e delle frequenze, il concetto di modulazione, le modulazioni di ampiezza, frequenza e fase, la modulazione PCM, la multiplazione Time sharing (TDM) e FDM, sistemi interattivi e sistemi di tipo batch, schema di una trasmissione dati, le interfaccie DTE-DCE, varie categorie di modem. MEZZI TRASMISSIVI I mezzi di comunicazione, le bande di comunicazione, il doppino telefonico, il cavo coassiale, la fibra ottica, i sistemi softwire, cenni sui sistemi satellitari. LE RETI PER LA TRASMISSIONE DATI Strutture per reti di tipo analogico/digitale, rete commutata e rete dedicata, sistemi point to point e multipoint, e la procedura di contesa con sincronizzazione, le reti wan, varie tipologie, in particolare wireless. IL SECONDO LIVELLO ISO-OSI Introduzione, i protocolli asincroni e sincroni, i protocolli orientati al carattere e al bit, il protocollo BSC, il protocollo HDLC il protocollo SDLC, cenni sul protocollo PPP. IL TERZO LIVELLO ISO-OSI Introduzione, le tecniche di commutazione ed instradamento, la commutazione di circuito, la commutazione di messaggio, la commutazione di pacchetto, le tecniche di routing, il routing statico, il routing adattativo, il routing misto, la rete X.25, i circuiti virtuali, il protocollo MPLS, architettura, situazione attuale e sviluppi, campi d’applicazione, esempi sull’introduzione dell’MPLS LE RETI NUMERICHE La rete CDN, la rete ISDN, i sistemi di rete xDSL:principali caratteristiche del canale trasmissivo e tipologie xDSLx, reti di accesso con sistemi ADSL, soluzioni di rete per ADSL,il sistema HDSL. Modalità di Esame Consiste in una prova scritta. Testi di riferimento: B.Checcucci – Il protocollo MPLS e le reti xDSL - Ed. Margiacchi-Galeno; Tanenbaum – Reti di Computer – Ed UTET; Testi Consigliati: C.Tomlison – TLC un approccio per informatici - Ed. McGrawHill; U.Black - Data Network, concepts, theory and practice - Ed.Prentice Hall. SISTEMI APERTI E DISTRIBUITI (Docente: Sergio Tasso) Obiettivi del corso Comprensione delle principali tecnologie di progettazione e sviluppo in ambiente distribuito. Periodo didattico: II semestre Programma INTRODUZIONE AI SISTEMI DISTRIBUITI Definizione; Vantaggi e svantaggi; Tipologie; COMUNICAZIONI NEI SISTEMI DISTRIBUITI Protocolli a livelli; Modello Client/Server; Chiamata di procedura remota (RPC); Comunicazioni di gruppo; ELABORAZIONE NEI SISTEMI DISTRIBUITI 41 / 41 Processi e thread; Package di thread; Thread e RPC; Modelli di sistema (workstation e pool di processori); Allocazione dei processori; Schedulazione nei s.d.; FILE SYSTEM DISTRIBUITI Progettazione; Implementazione; Struttura; Caching; Replicazione; NFS; AFS; CODA; STANDARD CORBA Definizioni; componenti (ORB, BOA, POA, IDL, SII, DII, DSI) e applicazioni; COM e DCOM Definizioni e applicazioni; JAVA RMI Definizioni e applicazioni; WIRELESS COMPUTING Tecnologie e configurazioni; Client/Server in ambienti mobili; SERVIZI WEB definizioni e stato dell’arte; IL PROTOCOLLO SOAP, SOAP-RPC fondamenti e applicazioni; IL LINGUAGGIO WSDL introduzione e struttura di documenti WSDL; IL PROGETTO UDDI introduzione ed utilizzo; J2EE E I SERVIZI WEB la metodologia SOAP-J2EE; Modalità di Esame Test a risposte chiuse e progetto di un'applicazione in ambiente distribuito Testi consigliati Andrew S.Tanenbaun, I moderni sistemi operativi, Prentice Hall International - Jackson Libri David A. Chappell, Tyler Jewell, Java Web Services, O’Reilly - HOPS James Snell, Doug Tidwell, Pavel Kulchenko, Programmare servizi Web con SOAP, O’Reilly JACKSON Libri Pradeep K. Sinha, Distributed Operating Systems, IEEE Press Materiale multimediale fornito dal Docente SISTEMI MULTIMEDIALI (Docente: Simonetta Pallottelli) Obiettivi del corso Il corso intende far conoscere i modelli, le tecnologie e gli strumenti alla base del progetto di sistemi ipertestuali e multimediali. È strutturato in tre parti. Nelle prime due parti vengono illustrate le principali tecniche per la codifica, la memorizzazione e la diffusione di informazioni multimediali, analizzando soluzioni e software specifici. Nell’ultima parte, il Corso presenta una panoramica generale delle tecnologie Web e di come queste possano essere impiegate per la produzione di materiale multimediale in ambiente distribuito. Lo studente dovrebbe, alla fine, essere in grado di affrontare correttamente ed esaurientemente l’analisi e la realizzazione di applicazioni multimediali. 42 / 42 Periodo didattico: II semestre Programma I° Parte: Introduzione ai sistemi multimediali. 1. Introduzione. Il paradigma ipertestuale. Struttura di un ipertesto. Tipi di collegamenti. Navigazione in un ipertesto. Strumenti per l'orientamento. Sistemi multimediali e ipermediali. 2. I modelli per la descrizione e per la progettazione di applicazioni ipermediali. I modelli di riferimento: Dexter Reference Model, Amsterdam Hypermedia Model. I modelli per la progettazione strutturata di presentazioni ipermediali. 3. I formati dei media. Media e modelli dei dati. Classificazione dei media. Audio, immagini statiche, video. Media statici, media continui, media temporizzati. 4. La compressione dei dati. Compressione reversibile e irreversibile. Compressione MP3 dei dati audio. Compressione JPEG delle immagini. Compressione MPEG dei dati video. 5. Aspetti sistemistici: sistemi operativi per media continui, qualità di servizio, protocolli di rete real-time. II° Parte: Strumenti ed Applicativi. 1. Panoramica e confronti su tecnologie e strumenti web. 2. Software applicativi: Flash e cenni su ToolBook,. III° Parte: linguaggi e tecniche per la progettazione multimediale in ambiente Web. 1. Il World Wide Web: Struttura attuale del World Wide Web. Principi architetturali fondamentali. Informazione nel Web attuale: Modelli di funzionamento. Trattamento dell'informazione. 2. Il linguaggio HTML e i fogli di stile (CSS). 3. XML come mezzo di codifica dell'informazione. Strutturazione dell'informazione a vari livelli. Modeling dell'informazione in XML. Meta-livelli. Il passaggio dall'informazione al media in XML. Esprimere significati usando XML. Senso comune e Semantic Web. Ontologie e ragionamento. 4. Privacy: Web e società. Spie nel Web. Esempio d'uso di XML come soluzione ai problemi di privacy del Web. 5. Il Web del futuro: visione della famiglia di tecnologie fondanti XML; problemi di integrazione. Le nuove tecnologie. 6. Il linguaggio SMIL. Proprietà. Struttura di un file SMIL. Regioni e layout grafico. Esecuzione sequenziale e parallela di media. Eventi. Interazione utente. Modalità di Esame Presentazione di un progetto in Flash, prova scritta, prova orale. Testi consigliati Introduzione alle tecnologie Web. Vito Roberto, Marco Frailis, Alessio Gullotta - Milano : McGraw-Hill Progettazione di dati e applicazioni per il web. Stefano Ceri ... [et al.] - Milano [etc.] : McGraw-Hill Audio e multimedia. Vincenzo Lombardo, Andrea Valle - Milano: Apogeo Architettura dell’informazione per il World Wide Web – L.Rosenfeld, P.Morville – Hopslibri Programmare XML – R.Allen Wyke, Sultan Rehman, Brad Leupen - Mondadori Altro materiale didattico Copie delle trasparenze del corso, articoli tratti da riviste scientifiche, e documentazione che sarà resa disponibile su Internet. Saranno indicati durante il corso alcuni testi per un approfondimento di alcuni argomenti. 43 / 43 SISTEMI OPERATIVI I (Docente: Arturo Carpi) Obiettivi del corso Conoscenza del funzionamento del sistema calcolatore al livello di astrazione del Sistema Operativo. Identificazione delle differenti organizzazioni del Sistema Operativo. Conoscenza dei meccanismi interni di funzionamento dei Sistemi Operativi. Periodo didattico: I semestre Programma EVOLUZIONE DEI SISTEMI OPERATIVI: Sistemi a lotti, dispositivi virtuali, multiprogrammazione, time-sharing, sistemi personali e sistemi distribuiti. SERVIZI E FUNZIONI Sistema di archiviazione, esecuzione dei programmi, Input/Output, processi, gestione delle risorse, protezione, interprete dei comandi. STRUTTURA DEL CALCOLATORE: Unità centrale, istruzioni e programmi, dispositivi, sistema di interruzione, accesso diretto alla memoria, multiprocessori. ESECUZIONE DEI PROGRAMMI: Archivi, compilazione e collegamento, modelli di memoria e di caricamento, rilocazione e caricamento. IL MODELLO CONCORRENTE: Processi, condivisione di dati, sincronizzazione e comunicazione, dipendenze tra paradigmi di interazione, processi esterni, generazione e terminazione di processi. IL NUCLEO DEL SISTEMA OPERATIVO: Modelli di organizzazione del sistema operativo, realizzazione dei processi, protezione, semafori e primitive per la comunicazione , sincronizzazione con i processi esterni, primitive per la generazione e terminazione, gestione del processore. LE RISORSE: Modelli e politiche di gestione delle risorse, stallo e attesa indefinita, problemi classici: processi lettori e scrittori, filosofi a cena, scambio di messaggi. PROGRAMMAZIONE CONCORRENTE: Costrutti per il modello orientato procedure e per il modello cliente-servente. Modalità di Esame Prova scritta (domande a risposta aperta) e prova orale. La prova scritta, se superata, conserva la sua validità per 12 mesi. Testi consigliati: Piero Maestrini, Sistemi Operativi, McGraw-Hill William Stallings, Sistemi Operativi, Jackson Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, Sistemi Operativi, Pearson 44 / 44 SISTEMI OPERATIVI II (Docente: Arturo Carpi) Obiettivi del corso Conoscenza della problematica legata alla gestione delle risorse e capacità di confrontare le caratteristiche di alcuni SO commerciali. Periodo didattico: II semestre Programma GESTIONE DEI DISPOSITIVI: Dipositivi a caratteri. Temporizzatore condiviso. Gestione del disco: politica FCFS, ordinamento per settore, scansione, memoria cache. GESTIONE DELLA MEMORIA: Partizioni fisse e partizioni variabili. Swapping. Paginazione statica e dinamica. Segmentazione statica e dinamica. Paginazione con modello di memoria con segmentazione. Algoritmi di sostituzione: LRU, second chance, insieme di lavoro, algoritmi di sostituzione per segmentazione. GESTIONE DEGLI ARCHIVI: Modello logico del sistema di archiviazione. Realizzazione di archivi e repertori. Collegamento degli archivi. Strutture dati del sistema di archiviazione e del gestore degli archivi. Affidabilita' e sicurezza del sistema di archiviazione. Modalità di Esame Prova scritta (domande a risposta aperta) e prova orale. La prova scritta, se superata, conserva la sua validità per 12 mesi. Testi consigliati Piero Maestrini, Sistemi Operativi, McGraw-Hill William Stallings, Sistemi Operativi, Jackson Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, Sistemi Operativi, Pearson STRUTTURE ATOMICHE E MOLECOLARI (Docente: Francesco Tarantelli) Obiettivi del corso Comprensione delle leggi fondamentali che governano i fenomeni chimici e delle tecniche di simulazione, a fini di studio e progettazione, di molecole, materiali e farmaci. Periodo didattico: II semestre Programma FONDAMENTI DI STRUTTURA DELLA MATERIA Aspetti generali. Nuclei ed elettroni. Atomi. Il sistema periodico. Il legame chimico. Reazioni chimiche. La descrizione quantistica. Funzioni d'onda e distribuzioni. Valori medi di grandezze fisiche, operatori e autovalori. Relazioni di indeterminazione. Evoluzione degli stati nel tempo: l'equazione di Schroedinger. Stati stazionari e non. Il processo di misura. ATOMI, MOLECOLE E SISTEMI COMPLESSI Orbitali e funzioni d'onda elettroniche. Il metodo Hartree-Fock e gli orbitali molecolari. La correlazione elettronica. Teoria delle perturbazioni. Interazione di Configurazione e altri metodi per la correlazione elettronica. La teoria del funzionale della densità. Superfici di energia potenziale e 45 / 45 moto dei nuclei. Vibrazioni e rotazioni. Dinamica molecolare. Dinamica nucleare e reazioni chimiche. Sistemi di molecole e sistemi chimici complessi. ASPETTI COMPUTAZIONALI E ALGORITMI NUMERICI Calcolo degli integrali elettronici. Diagonalizzazione di matrici. Calcolo delle strutture nucleari di equilibrio e dei punti di sella. Metodi iterativi in sottospazi. Metodi diretti integral-driven. Risoluzione di equazioni differenziali. Fast Fourier Transform. Strategie per il calcolo parallelo e distribuito. Realtà virtuale molecolare. Modalità di Esame Consiste in un’unica prova orale. Testi consigliati Dispense scritte dal docente. TECNICHE DI ACQUISIZIONE DATI I (Docente: Piero Giorgio Verdini) Obiettivi del corso Familiarizzare gli studenti con la programmazione in C di sistemi embedded, basati su microcontrollori della famiglia MCS-51. Realizzare durante il corso una implementazione software del protocollo I2C e di un rudimentale sistema operativo per detti microcontrollori. Sviluppare una o più applicazioni dimostrative basate sui prodotti software precedentemente sviluppati. Periodo didattico: I semestre Programma Il concetto di sistemi “real-time” ed “embedded”. Programmazione di microcontrollori della famiglia MCS-51 in linguaggio C. Uso dell’“Integrated Developement Environment” e simulatore RIDE. Sistemi “event-triggered” (attivati da un evento). Sistemi “time-triggered” (attivati a tempo). Scheduler per applicazioni embedded: Il “superciclo” come scheduler rudimentale; Scheduler “preemptive” (coercitivo); Scheduler “cooperativo”; Scheduler ibrido; Il concetto di puntatori a funzioni. Pensare cooperativamente: “loop timeout” (timeout di ciclo); “hardware timeout” (timeout hardware); Il concetto di “watchdog”. Il protocollo I2C e sua realizzazione in software. Organizzazione di un progetto software in C Elementi di programmazione C avanzata Modalità di Esame L’esame consiste in una relazione scritta sull’applicazione dimostrativa sviluppata durante l’anno, e su una verifica orale della materia di programma. Qualora uno studente non abbia partecipato alle esercitazioni durante il corso, è prevista una verifica pratica delle nozioni di programmazione nell’ambiente di sviluppo utilizzato per il corso (RIDE). Testi consigliati 46 / 46 Moltissimi concetti sui sistemi “real-time” ed “embedded” si possono trovare in “Patterns for TimeTriggered Embedded Systems”, di Michael J. Pont, ISBN 0-201-33138-1, edito da Addison-Wesley (collana ACM Press) nel 2001. Per quanto riguarda il bus I2C, esso è stato definito e brevettato nel 1992 dalla Philips, che produce un gran numero di circuiti integrati che lo supportano, sia come Slave che come Master. Nel 1998 è stata pubblicata una nuova serie di specifiche (v. 2.0), che sono allegate e che sono disponibili sul sito Web della Philips, http://www.philips.com insieme alle specifiche e alle note applicative per i circuiti integrati I2C. Per quanto riguarda il linguaggio C come definito nello standard ANSI/ISO, l’opera di riferimento è “The C programming language, second edition”, di Brian W. Kernighan e Dennis M. Ritchie, ISBN 0-13-110362-8, edito da Prentice Hall nel 1988. Un’opera molto più didattica e di facile lettura, che copre anche brevemente la “Standard Library”, è “C programming: a modern approach” di K.N. King, ISBN 0-393-96945-2, edito da W. W. Norton & Company nel 1996. Un testo fondamentale per quanto riguarda lo studio formale e matematico degli algoritmi, seppur di difficile lettura, è la collana “The art of computer programming” di Donald E. Knuth, al momento in tre volumi, edito da Addison-Wesley nel 1973 (Data della seconda edizione. Attualmente esiste la terza). Letture raccomandate a quanti abbiano intenzione di dedicarsi alla programmazione professionalmente, per il loro contenuto di insegnamenti pratici e stilistici, sono: “The practice of programming”, di Brian W. Kernighan e Rob Pike, ISBN 0-201-61586-X, edito da Adison-Wesley nel 1999; “Programming Pearls, second edition” di Jon Bentley, ISBN 0-201-65788-0, edito da AddisonWesley (collana ACM Press) nel 1999; “Code complete: a practical handbook of software construction” di Steve McConnell, ISBN 155615-484-4, edito da Microsoft Press nel 1993. TECNICHE DI ACQUISIZIONE DATI II (Docente: Giovanni Ambrosi) Obiettivi del corso Familiarizzare lo studente con il trattamento dei segnali in tempo reale ed in particolare con lo studio in frequenza, sia sotto il profilo teorico che sperimentale. Realizzare implementazioni software di semplici architetture di acquisizione dati. Periodo didattico: II semestre. Programma del Corso Definizione di un segnale, tipi di segnali: Segnali a tempo continuo, segnali a tempo discreto, segnali ad ampiezza continua, segnali ad ampiezza discreta. Segnali a tempo continuo: Segnali periodici: Analisi armonica, sviluppo in serie di Fourier in forma polare ed in forma complessa; spettri di ampiezza e di fase; proprietà dello spettro di un segnale periodico. 47 / 47 Segnali aperiodici: dalla serie all'integrale di Fourier; proprietà dell'integrale di fourier: simmetrie, linearità, dualità. Teorema del ritardo. Teorema della modulazione. Teorema del prodotto e della convoluzione. Trasformate di Fourier generalizzate: Delta di Dirac e funzione a gradino. Funzioni seno e coseno. Sistemi monodimensionali a tempo continuo: Concetto di trasformazione, amplificatore ideale, proprietà. Risposta impulsiva e risposta in frequenza. Definizione di Decibel Filtri: passa basso, passa alto, passa banda e band stop. Densità spettrale di energia e di potenza; funzione di autocorrelazione e teorema di WienerKhintchine. Densità spettrale di segnali periodici. Segnali a tempo discreto: Campionamento dei segnali a tempo continuo. Trasformata di Fourier dei segnali aperiodici a tempo discreto. Teoremi sulla trasformata di Fourier di una sequenza. Condizione di Nyquist e teorema del campionamento. Interpolazione: a mantenimento, interpolazione cardinale. Analisi di Fourier delle sequenze periodiche; trasformata discreta di Fourier. Fast Fourier Trasform (FFT): complessità di calcolo Sistemi monodimensionali a tempo discreto: Risposta impulsiva e risposta in frequenza. Filtri a tempo discreto: filtro a media mobile. Cenni di teoria delle code e affidabilità dei sistemi. L’ambiente di programmazione LabView con esercitazioni. Modalità di Esame L’esame consiste nella preparazione e discussione delle relazioni scritte relative alle applicazioni sviluppate durante l’anno, e in una verifica orale degli argomenti indicati nel programma trattati a lezione. Nel caso uno studente non abbia partecipato regolarmente alle esercitazioni durante il corso, l’esame sarà preceduto da una verifica pratica delle nozioni di programmazione nell’ambiente di sviluppo Testi consigliati Teoria dei segnali, Marco Luise & Giorgio M. Vitetta - McGraw-Hill, ISBN 88-386-0809-1 48 / 48 RECAPITI DEI DOCENTI N. B.: Per contattare i docenti telefonicamente, è necessario far precedere il numero interno dal seguente numero: 075/585 DOCENTI DEGLI INSEGNAMENTI COMUNI A TUTTI I CURRICULA Disciplina Docente n. tel. interno e.mail Primo anno di Corso Analisi Matematica I - II Architettura degli Elaboratori I - II Laboratorio di Architettura Programmazione I Programmazione II Laboratorio di Programmazione Matematica Discreta I - II Lingua Inglese Antonio Boccuto Ferruccio Barsi In corso di nomina Marco Baioletti Federico Greco Stefano Marcugini Stefano Marcugini Maria Cristina Vipera Centro Linguistico Ateno – Hutchinson Nancy e Giles Hilary 5034 5046 [email protected] [email protected] 5044 [email protected] [email protected] 5049 5049 5012 5741 [email protected] [email protected] [email protected] 5055 5047 5014 5047 2709 5050 5019 [email protected] [email protected] Secondo anno di Corso Algoritmi e Strutture Dati I - II Maria Cristina Pinotti Laboratorio di Algoritmi Rosanna Bicocchi Sistemi Operativi I - II Arturo Carpi Laboratorio di Sistemi Operativi Pietro Tito Melacci Fisica Generale Paolo Lariccia Calcolo Numerico Ivan Gerace Calcolo delle Probabilità e Giulianella Coletti Statistica Matematica Laboratorio di Linguaggi di Giorgio Cecconi Programmazione e Compilatori [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] Terzo anno di Corso Basi di Dati e Sistemi Informativi I Marco Baioletti – - II Valentina Poggioni 5044 [email protected] [email protected] 49 / 49 DOCENTI DEGLI INSEGNAMENTI CURRICULARI Indirizzo Reti di Computer n. tel. interno e.mail di Osvaldo Gervasi 5048 [email protected] Sergio Tasso 5048 [email protected] Sistemi multimediali Simonetta Pallottelli Applicazioni e Calcolo in Rete Sergio Tasso 5044 5048 [email protected] [email protected] Laboratorio Reti di Computer Reti di Calcolatori: Protocolli 5048 2741 [email protected] [email protected] Disciplina Architettura delle Reti Computer Sistemi aperti e distribuiti Docente Sergio Tasso Bruno Checcucci Indirizzo Sistemi di Acquisizione Dati Disciplina Docente Fisica dei dispositivi elettronici Renzo Campanella Leonello Servoli Laboratorio Reti di Computer Sergio Tasso n. tel. interno e.mail [email protected] 2784-3839 2706 5048 [email protected] Architettura delle Reti di Osvaldo Gervasi Computer Tecniche di Acquisizione dati I Piero Giorgio Verdini 5048 [email protected] Tecniche di Acquisizione dati Giovanni Ambrosi II Reti di Calcolatori: Protocolli Bruno Checcucci 2708 [email protected] 2741 [email protected] [email protected] [email protected] Indirizzo Realtà Virtuale Molecolare Disciplina Docente Strutture Atomiche e Francesco Tarantelli Molecolari Sistemi Aperti e Distribuiti Sergio Tasso Applicazioni e Calcolo in Rete Antonio Laganà, Sergio Tasso, Osvaldo Gervasi Modellistica Molecolare Massimo Baroni Linguaggi di realtà Virtuale Osvaldo Gervasi Laboratorio di Linguaggi di Antonio Riganelli realtà virtuale n. tel. interno e.mail 5531 [email protected] 5048 5048 [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] 5048 [email protected] 50 / 50