CORSO DI LAUREA IN INFORMATICA Corsi e programmi a.a. 2007

annuncio pubblicitario
CORSO DI LAUREA IN INFORMATICA
Corsi e programmi a.a. 2007/2008
ALGEBRA
Docente: Prof. MANZINI Giovanni
e-mail: [email protected]
Numero CFU: 4
Anno: 1
Periodo di insegnamento: 1
Codice della disciplina: S0358
Programma del corso e testi consigliati:
Programma
Numeri interi. Divisibilità e numeri primi. Massimo comun divisore. Algoritmo di Euclide. Minimo
comune multiplo. Equazioni diofantee. Congruenze e classi di resto. Criteri di divisibilità.
Rappresentazione di numeri con base diversa da 10. Teorema cinese del resto. Condivisione di
segreti mediante sistemi di congruenze. Il teorema di Eulero. Il problema del logaritmo discreto.
Cenni sul protocollo di Diffie-Hellman. Cenni sul protocollo RSA. Radici quadrate modulo n e lancio
di una moneta al telefono. Test di primalità di Miller-Rabin.
Libro di testo: Dispense del docente disponibili on-line.
ALGORITMI E STRUTTURE DATI: ALGORITMI E STRUTTURE DATI II
Docente: Prof. SAITTA Lorenza
e-mail: [email protected]
Numero CFU: 5
Anno: 2
Periodo di insegnamento: 3
Codice della disciplina: S0374
Programma del corso e testi consigliati:
Programma
Richiami della definizione di complessità. Nozioni di base di Teoria dell'Informazione (Definizione
di 'informazione", Approccio di Hartley, Approccio di Shannon, Teorema della diramazione,
Teorema di Shannon, Entropia, Guadagno di informazione). Algoritmi 'greedy'. Grafi (Definizione di
grafo, Algoritmo di Dijkstra per il calcolo dei cammini minimi, Algoritmi di Kruskal e Prim per il
calcolo dell'albero di copertura minima). Programmazione dinamica (Principio di ottimalità,
Problema dello zaino, Scheduling ottimale della produzione, Prodotto parentetizzato di matrici).
ALGORITMI E STRUTTURE DATI: LABORATORIO DI INFORMATICA: ALGORITMI E
STRUTTURE DATI
Docente: Prof. FURINI Marco
e-mail: [email protected]
Numero CFU: 5
Anno: 2
Periodo di insegnamento: 3
Codice della disciplina: S0374
Programma del corso e testi consigliati:
Programma
Il corso prevede una rivisitazione di alcuni concetti studiati nel corso di Algoritmi e Strutture Dati,
enfatizzando gli aspetti più implementativi di: Code, Liste a puntatori, Vettori, Liste, Alberi, Alberi
binari, Grafi direzionati e Grafi pesati. Saranno implementati nel linguaggio C alcune strutture dati
ed algoritmi ed in particolare si toccheranno i seguenti argomenti:
1. Ricerca binaria e Algoritmi di ordinamento: Insertion sort, Selection sort, Merge sort, Heap sort;
2. Strutture dati dinamiche: Liste, Code, Pile;
3. Pattern Matching ed Algoritmi di Parsing;
4. Alberi binari di ricerca: Alberi AVL;
5. Visite di Grafi.
Testi Consigliati:
Algoritmi in C: fondamenti, strutture dati, ordinamento, ricerca - terza edizione, di Sedgewick
Robert, Addison Wesley, ISBN 88-7192-151-8
ALGORITMI E STRUTTURE DATI I
Docente: Prof. GIANNINI PAOLA
e-mail: [email protected]
Numero CFU: 5
Anno: 2
Periodo di insegnamento: 1
Codice della disciplina: S0373
Introduzione all'analisi degli algoritmi. Concetto di analisi asintotica. Analisi di algoritmi ricorsivi.
Algoritmi di ordinamento basati sui confronti: insertion sort, merge sort, quicksort, heap sort. Limiti
inferiori per l'ordinamento basato su confronti. Algoritmi di ordinamento basati sul conteggio:
counting sort e radix sort. Concetto di struttura dati. Pile, code, code con priorità. Alberi radicati e
loro rappresentazione. Alberi binari di ricerca. Alberi 2-3-4 e B-alberi.
ANALISI MATEMATICA I
Docente: da designare
e-mail:
Numero CFU: 5
Anno: 1
Periodo di insegnamento: 2
Codice della disciplina:
Programma del corso e testi consigliati:
Insiemi numerici: minoranti e maggioranti, minimo e massimo, estremo inferiore ed estremo
superiore.
Funzioni di una variabile: concetto di limite, continuita`, derivabilita`,minimo e massimo locali e
globali, estremo inferiore ed estremo superiore., teoremi di esistenza, condizioni necessarie e
sufficienti, in particolare teorema di Weierstrass e lemma di Fermat.
Integrale definito: definizione mediante le somme di Riemann, proprietà` delle funzioni integrabili,
criteri di integrabilita`, teorema della media integrale, teorema fondamentale del calcolo integrale.,
metodi di integrazione.
Funzioni integrali: generalizzazioni del teorema fondamentale del calcolo integrale.
Teorema di Cauchy, e teorema de Hospital, ordini di infinitesimo e di infinito, algebra degli
infinitesimi, polinomio di Taylor ed applicazioni, resto nella forma di Peano e di Lagrange.
ARCHITETTURA DEGLI ELABORATORI I
Docente: Prof. BOBBIO Andrea
e-mail: [email protected]
Numero CFU: 5
Anno: 1
Periodo di insegnamento: 2
Codice della disciplina: S0362
Programma del corso e testi consigliati:
Programma
Il corso ha lo scopo di fornire allo studente una prima descrizione dell'architettura di un moderno
sistema di elaborazione e delle sue principali componenti hardware e software. L'approccio seguito
è quello della scomposizione della macchina in diversi livelli: livello della logica circuitale, livello
della microprogrammazione, livello della macchina convenzionale. Verrà affrontato lo studio di
ciascun livello separatamente, e le problematiche relative all'interazione fra i livelli. Poiché il
funzionamento dei sistemi di elaborazione si basa sulla manipolazione di segnali logici binari, verrà
preliminarmente affrontato lo studio della rappresentazione binaria dei numeri (interi, relativi e in
virgola mobile) e dell'informazione (codici binari ridondanti). Si passerà allo studio della logica
binaria con particolare attenzione alle funzioni logiche binarie e verranno illustrati i principi base
per la costruzione di reti logiche combinatorie e sequenziali, con esemplificazioni.
Testi consigliati
Tanenbaum: "Architettura dei Calcolatori: un approccio strutturale", V Edizione, Pearson Education
Italia, 2006.
ARCHITETTURA DEGLI ELABORATORI: ARCHITETTURA DEGLI ELABORATORI II
Docente: Prof. FRANCESCHINIS Giuliana
e-mail: [email protected]
Numero CFU: 5
Anno: 1
Periodo di insegnamento: 3
Codice della disciplina: S0366
Programma del corso e testi consigliati:
Programma
Questo corso può essere visto come la naturale continuazione e l'approfondimento di alcuni
concetti visti nel corso i "Architetture degli Elaboratori I" la cui conoscenza è necessaria per la
comprensione degli argomenti sviluppati. Scopo del corso è approfondire alcuni aspetti
dell'architettura di un elaboratore con particolare attenzione a come una istruzione della macchina
a livello convenzionale viene eseguita dai circuiti logici. Verranno successivamente presentate
alcune soluzioni architetturali che tendono a rendere l'esecuzione più veloce e si discuteranno
alcune linee di tendenza che si sono sviluppate per quanto concerne tipi di istruzione e modalità di
indirizzamento. Il corso prevede anche una parte sperimentale da svolgere in uno specifico
"Laboratorio di Architetture".
Testi consigliati
Tanenbaum: "Architettura dei Calcolatori: un approccio strutturale", V Edizione, Pearson Education
Italia, 2006.
ARCHITETTURA
DEGLI
ELABORATORI:
LABORATORIO
DI
INFORMATICA:
ARCHITETTURA DEGLI ELABORATORI
Docente: Prof. Francesco Poli
e-mail: [email protected]
Numero CFU: 5
Anno: 1
Periodo di insegnamento: 3
Codice della disciplina: S0366
Programma del corso e testi consigliati:
Programma
Studio del simulatore mic1: sintassi del linguaggio IJVM, esempi di programmazione, architettura
della macchina simulata. Sintassi del linguaggio del microprogramma MAL; microprogrammazione.
Modifica e creazione di istruzioni IJVM. Linguaggio assembly, traduttori e linkers.
Testi consigliati:
Andrew S. Tanenbaum
"Architettura dei Calcolatori – Un approccio strutturale", 5a ed, Prentice Hall
Capitolo 4, fino al paragrafo 4.4 escluso
Capitolo 7, seguendo le indicazioni date a lezione
BASI DI DATI E SISTEMI INFORMATIVI: BASI DI DATI ED APPLICAZIONI PER IL WEB
Docente: Prof. PORTINALE Luigi
e-mail:[email protected]
Numero CFU: 5
Anno: 3
Periodo di insegnamento: 3
Codice della disciplina:
Programma del corso e testi consigliati:
Programma:
Scopo del corso e' introdurre le principali metodologie per la progettazione di applicazioni WWW
dinamiche e data-driven (ossia interfacciate ad opportune basi di dati). Dopo un richiamo sulle
tecniche di progettazione di una Base di Dati in un ottica di RDBMS client/server, verranno
illustrate le principali metodologie server-side per lo sviluppo di un'architettura 3-tier (PHP e J2EE).
L'esame verterà principalmente sullo sviluppo di un'applicazione web data-driven da realizzarsi in
modo pratico con gli strumenti descritti a lezione.
Testi consigliati:
Deitel, Deitel, Goldberg: Internet and WWW: How to Program (3 ed.), Prentice Hall, 2003.
Autori Vari: Professional Java Server Programming. J2EE 1.3 Edition, Wrox, 2001.
D. Tansley: Pagine web dinamiche con PHP e MySQL, Addison Wesley, 2002
BASI DI DATI E SISTEMI INFORMATIVI I: FONDAMENTI
Docente: Prof. GIORDANO Laura
e-mail:[email protected]
Numero CFU: 5
Anno: 2
Periodo di insegnamento: 1
Codice della disciplina:
Programma del corso e testi consigliati:
Programma
Finalità del corso: obiettivo del corso è fornire gli strumenti metodologici e formali per derivare le
strutture logiche e fisiche di una base di dati relazionale a partire dai requisiti del sistema
informatico espressi dagli utenti.
Argomenti trattati: dei tre principali modelli dei dati (relazionale, reticolare e gerarchico) adottati dai
sistemi di gestione delle basi di dati (DBMS) viene approfondito il modello relazionale, in
particolare sono presentati gli aspetti teorici di tale modello. Le strutture logiche di una base di dati
sono progettate con modelli semantici ed analizzate alla luce di opportune forme normali. Il corso
si articola nelle seguenti parti: Modello Relazionale; Algebra Relazionale; Modello Entita’Relazione; Traduzione del Modello ER nel modello Relazionale; Normalizzazione.
Viene inoltre descritta brevemente l'architettura di un DBMS, che viene presentata succintamente
seguendo lo schema di descrizione generale a tre livelli di astrazione: esterno, logico e fisico.
Testi consigliati
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Basi di dati: modelli e linguaggi di interrogazione,
McGraw-Hill Italia, 2002
E. Bertino, B.Catania, E.Ferrari, G.Guerrini: "Sistemi di basi di dati", Città Studi Edizioni.
Elmasri, Navathe "Fundamentals of Database Systems", Addison Wesley - 1994.
BASI DI DATI E SISTEMI INFORMATIVI I: SPERIMENTAZIONI
Docente: Prof. PORTINALE Luigi
e-mail:[email protected]
Numero CFU: 5
Anno: 2
Periodo di insegnamento: 2
Codice della disciplina: S0370
Programma del corso e testi consigliati:
Programma
Finalità del Corso:
Il corso è indirizzato nel fornire allo studente gli strumenti formali (metodologie di progettazione) e
tecnologici (SQL) per la progettazione e manutenzione delle basi di dati.
Argomenti trattati
Progettazione:
Formalismo EER
EER vs. Relazionale
Casi pratici di progettazione di una base dati
Utilizzo di DDS (Database Design Studio) come tool CASE per il supporto alla progettazione
concettuale e logica
Implementazione e manutenzione di una base dati
SQL
Utilizo del DBMS PostgreSQL.
Testi consigliati
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Basi di dati: modelli e linguaggi di interrogazione,
McGraw-Hill Italia, 2002
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone "Basi di Dati: concetti, linguaggi, e architetture",
McGraw Hill Italia - 1996.
Elmasri, Navathe "Fundamentals of Database Systems", Addison Wesley - 1994.
BASI DI DATI E SISTEMI INFORMATIVI II
Docente: Prof. GIORDANO Laura
e-mail:[email protected]
Numero CFU: 5
Anno: 2
Periodo di insegnamento: 2
Codice della disciplina: S0371
Programma del corso e testi consigliati:
Programma
Finalità del corso: obiettivo del corso è lo studio degli aspetti architetturali dei sistemi di gestione
delle basi di dati (DBMS) e l'analisi delle strutture dati e degli algoritmi connessi messe a punto per
gestire le varie funzionalità di questi sistemi. Anche se il modello logico dei dati a cui si farà
prevalentemente riferimento sarà il modello relazionale, la trattazione avrà carattere generale per
poter trasporre gli argomenti di studio anche ai sistemi basati su altri modelli quale il modello a
oggetti.
Argomenti trattati: si richiama l'architettura di un DBMS seguendo lo schema di descrizione
generale a tre livelli di astrazione: esterno, logico e fisico con la definizione delle funzionalità di tali
sistemi. In particolare vengono trattati i seguenti temi: organizzazione fisica degli archivi e metodi
di accesso ad indici, hash; tecniche di ottimizzazione delle interrogazioni; nozione di transazione,
sue proprietà e loro ciclo di vita; gestione della concorrenza per sistemi centralizzati di basi di dati
con molti utenti; sistemi di ripristino dell'integrità dei dati in seguito a guasti o anomalie di
funzionamento degli apparati hardware-software.
Testi consigliati:
A. Albano: "Costruire Sistemi per Basi di Dati", 2000, Addison - Wesley
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone "Basi di Dati: concetti, linguaggi, e architetture",
McGraw Hill Italia - 1996
CALCOLO DELLE PROBABILITA'
Docente: Prof. RAPALLO Fabio
e-mail: [email protected]
Numero CFU: 4
Anno: 2
Periodo di insegnamento: 2
Codice della disciplina: S0361
Programma del corso e testi consigliati:
Programma
Finalità del corso: introdurre le principali tecniche di analisi delle situazioni di incertezza, con
particolare attenzione agli aspetti applicativi.
Argomenti trattati:
1. Probabilità. Spazio degli esiti ed eventi. Relazioni con la teoria degli insiemi. Assiomi della
probabilità. Spazi di esiti equiprobabili. La probabilità condizionata. La formula della probabilità
totale (o di fattorizzazione) e la formula di Bayes. Indipendenza di eventi.
2. Variabili aleatorie. Definizione di variabile aleatoria discreta e continua. Coppie di variabili
aleatorie: distribuzione congiunta e marginali, variabili indipendenti. Media (o valore atteso) e sue
proprietà. Varianza e sue proprietà. Covarianza e coefficiente di correlazione.
3. Modelli di variabili aleatorie. Variabili aleatorie di Bernoulli. Variabili aleatorie binomiali. Variabili
aleatorie geometriche. Variabili aleatorie di Poisson. Variabili aleatorie uniformi continue. Variabili
aleatorie normali (o gaussiane). Variabili aleatorie esponenziali.
4. Convergenze. Disuguaglianze di Markov e di Chebichev. Legge debole dei grandi numeri.
Teorema limite centrale e sue applicazioni.
Si consiglia di sostenere l’esame dopo quello di Analisi Matematica 1.
Testi consigliati:
Appunti ed esercizi forniti dal docente.
Ross, Probabilità e statistica per l’ingegneria e le scienze, Apogeo
ECONOMIA DELL'INFORMAZIONE
Docente: Prof. RAMELLO Giovanni Battista
e-mail: [email protected]
Numero CFU: 5
Anno: 1
Periodo di insegnamento: 1° semestre (Facoltà di Scienze Politiche)
Codice della disciplina:
Programma del corso e testi consigliati:
Programma
Finalità del corso: il corso si rivolge prevalentemente agli studenti del corso di laurea in Economia
e Finanza, di Gestione ed Economia della Pubblica Amministrazione e di Informatica, ma è aperto
anche agli studenti di altri corsi di laurea o di altre Facoltà.
Argomenti trattati:
1. Richiami di microeconomia
2. Che cos’è l’informazione. Perché la scienza economica si occupa di informazione.
3. Informazione come bene pubblico
4. Informazione come bene privato
5. Capitale Umano, tecnologia e Sviluppo Economico
6. Incertezza e rischio
7. Esternalità ed esternalità di rete
8. Asimmetrie d’informazione e problemi di agenzia (adverse selection , moral hazard)
9. Paternità intellettuale e proprietà intellettuale
10. Brevetti, Diritti d’autore, Marchi
11. Il settore industriale della produzione di hardware e di software
12. Casi studio: farmaci, musica, libri, opere d’arte, beni di lusso
13. La New Economy. La Bolla Speculativa
14. Applicazioni della tecnologia informatica e-learning, e-government, e-commerce, etc
Testi consigliati
Per le nozioni di base di economia alcuni capitoli ( 3. Preferenze; 4. Utilità; 5. Scelta; 6. Domanda;
30. Benessere; 31. Esternalità, 32. Diritto ed economia; 33. Beni pubblici; 34. Informazione) di:
H. VARIAN, Microeconomia, Cafoscarina, Venezia 1993.
Per le questioni specifiche di economia dell’informazione:
C.SHAPIRO H. VARIAN, Information Rules: le regole dell’economia dell’informazione, Etas, II
sedizione, 1999
Si invita a consultare il materiale didattico sul sito internet http://www.sp.unipmn.it/corsi/index.htm
Altre letture utili:
Vaciago E. Vaciago G, la New Economy, Il Mulino, Bologna 2001
L.Prosperetti, La New Economy: aspetti analitici e implicazioni di politica economica, Il Mulino,
Bologna, 2002
S.Rossi, La nuova Economia, , Il Mulino, Bologna,2003
Modalità d’esame
La prova intermedia (scritta) verterà sulla prima metà circa del programma e consisterà di
domande a scelta multipla e aperte. La prova finale (scritta) verterà sull’intero programma del
corso. Un colloquio orale (obbligatorio anche se breve) completa la procedura di valutazione.
FISICA
Docente: Prof. SCALAS Enrico
e-mail:[email protected]
Numero CFU: 5
Anno: 1
Periodo di insegnamento: 3
Codice della disciplina:
Programma del corso e testi consigliati:
Programma
Finalità del corso: illustrare la metodologia della scienza galileiana fornendo una base culturale
ampia e aperta a successivi aggiornamenti.
Argomenti trattati:
Meccanica. Grandezze fisiche. Unità di misura. Errori. Moti in 1 e 2 dimensioni. Esempi: moto
uniforme, uniformemente accelerato, parabolico, circolare. Dinamica (I e II legge di Newton).
Studio di moti; moto armonico, armonico smorzato, circolare. Lavoro, energia cinetica, potenza.
Forze conservative, energia potenziale, esempi (1 dimensione). Conservazione dell'energia
meccanica. Forza gravitazionale, energia gravitazionale. Urti, conservazione del momento lineare.
Cinematica rotazionale. Dinamica rotazionale. Conservazione del momento lineare. Fluidi.
Idrostatica. Idrodinamica: equazioni di continuità, di Bernoulli. Viscosità. Meccanica –
Complementi. Moto di una particella in 3 dimensioni. Forze conservative (F =-grad U). Momento
angolare e campo di forze centrali. Campo e potenziale gravitazionale. Oscillatori (armonico
semplice, smorzato, forzato, accoppiati). Moti relativi. Cinematica relativistica. Relatività galileiana.
Cenni alla dinamica di sistemi di particelle e alla dinamica del corpo rigido. Oscillazioni e Onde.
Onde nei mezzi elastici. Onde sonore. Onde elettromagnetiche. Interferenza delle onde. Energia
delle onde. Cenni all'equazione delle onde e alle sua soluzioni.
Termodinamica
Stato termodinamico. Equilibrio termico. Temperatura. Variabili di stato. Esempio: il gas ideale.
Equilibrio termodinamico. Energia interna. Il I principio della Termodinamica. Gas ideali.
Applicazioni del I Principio. Teoria cinetica dei gas ideali. Il II Principio della Termodinamica.
Entropia. Applicazioni del II Principio. Potenziali termodinamici. Elettricità e magnetismo. Carica
elettrica - Legge di Coulomb - Campo elettrico e Potenziale elettrico Legge di Gauss per E Condensatori, energia elettrostatica in termini di Q,V,C - Corrente elettrica e circuiti elettriciCampo magnetico B - Legge di Biot-Savart Forza magnetica - Legge di Ampere - Legge di Gauss
per B - Moto di particelle cariche sotto l'azione di E e B -Induzione elettromagnetica - Applicazioni Autoinduzione, energia magnetica in termini di L, M, I- Cicuiti RC, RL, RLC - Circuiti in corrente
alternata - Il campo elettrico nella materia: dielettrici – Il campo magnetico nella materia:
paramagnetismo, diamagnetismo, ferromagnetismo.
Testi consigliati
M. Alonso, E.J. Finn: "Elementi di Fisica per l'Universita'", Vol. I, Ed. Masson, Milano.
C. Mencuccini, V. Silvestrini: "Fisica I", Liguori Editore, Napoli.
R. Resnick, D. Halliday: "Fisica" Vol. I, Ed. Casa Editrice Ambrosiana, Milano.
P. Mazzoldi, M. Nigro, C. Voci "Fisica", Vol. I, Ed. EdiSES, Napoli.
D. Halliday, R. Resnick: "Fisica" Vol. II, Ed. Casa Editrice Ambrosiana, Milano.
R. Feynman, The Feynman lectures on physics/La fisica di Feynman, vol. I e II, Addison-Wesley,
Londra
GEOMETRIA
Docente: Prof. MATESSI Diego
e-mail: [email protected]
Numero CFU: 5
Anno: 1
Periodo di insegnamento: 1
Codice della disciplina: S0364
Programma del corso e testi consigliati:
Programma
Matrici e sistemi lineari. Operazioni tra matrici - Operatori lineari - Sistemi lineari - Soluzione col
metodo di riduzione di Gauss - Teorema di Cramer - Teorema di Rouché-Capelli.
Elementi di geometria. Vettori nello spazio - Spazi vettoriali - Dipendenza lineare - Base Geometria analitica nel piano: Rette, Circonferenze, Coniche in forma canonica.
Algebra lineare. Omomorfismi - Nucleo e Immagine - Autovalori, autovettori e autospazi.
Testi consigliati
Oltre alle dispense del corso, sono possibili approfondimenti su un qualsiasi testo di base di
Geometria.
INGEGNERIA DEL SOFTWARE I
Docente: Prof. Codetta Raiteri Daniele
e-mail: [email protected]
Numero CFU: 5
Anno: 3
Periodo di insegnamento: 3
Codice della disciplina: S0381
Programma del corso e testi consigliati:
Il corso di "Ingegneria del Software I" ha come obiettivo l'introduzione dei metodi di Ingeneria del
Software per ogni fase del processo di sviluppo di sistemi software: specifica, progettazione,
implementazione, collaudo e manutenzione. Inoltre viene introdotto il linguaggio UML per la
specifica e la progettazione di sistemi. L'attività di laboratorio consiste nella preparazione di
diagrammi UML attraverso l'uso di un UML editor.
Programma:
- Introduzione all'Ingegneria del Software
- Prodotto software e Processo software
- Specifica di sistemi
- Modellazione analitica con UML
- Progettazione di sistemi
- Modellazione progettuale con UML
- Collaudo di sistemi
- Manutenzione di sistemi
- Gestione del progetto
- Modelli di processo software
Testi consigliati:
Binato, A. Fuggetta, L. Sfardini, "Ingegneria del software - creativita' e metodo", Addison
Wesley, Pearson Education Italia
I. Sommerville, "Ingegneria del software", Addison Wesley, Pearson Education Italia
M. Fowler, "UML distilled", Addison Wesley, Pearson Education Italia
INGEGNERIA DEL SOFTWARE: PROGRAMMAZIONE AD OGGETTI
Docente: Prof. MANZINI Giovanni
e-mail:[email protected]
Numero CFU: 5
Anno: 3
Periodo di insegnamento: 1
Codice della disciplina: S0378
Programma del corso e testi consigliati:
Programma
Il corso si propone di introdurre i concetti generali della programmazione ad oggetti e di mettere gli
studenti in grado di programmare nel linguaggio Java.
Java come estensione del C. Introduzione agli oggetti. Metodi e variabili public, private e static.
Inizializzazione e costruttori. Uso di packages. Composizione e ereditarietà. Upcasting e late
binding. Classi e metodi astratti. Interfacce. Collezioni: liste e insiemi. Array associativi. La
gestione delle eccezioni. Lettura e scrittura di Stream.
Testi consigliati
M. Ferrari and G. Pighizzini. Dai fondamenti agli oggetti. Corso di programmazione Java. Seconda
edizione. Pearson Education Italia, 2005.
Bruce Eckel, Thinking in Java, 3rd Edition, Prentice-Hall (liberamente disponibile sul web)
INTELLIGENZA ARTIFICIALE
Docente: Prof. PORTINALE Luigi
e-mail:[email protected]
Numero CFU: 5
Anno: 3
Periodo di insegnamento: 2
Codice della disciplina: S0380
Programma del corso e testi consigliati:
Programma
Introduzione e cenni storici; Ricerca nello spazio degli stati: ricerca path-based cieca ed euristica.
Algoritmi di miglioramento iterativo: hill-climbing e simulated annealing; cenni su problemi CSP;
algoritmi per giochi a 2 concorrenti. Rappresentazione della conoscenza: cenni su formalismi logici
e a regole. Sistemi di Case-Based Reasoning; uso del tool CBR-Works. Conoscenza Incerta:
richiami di calcolo delle probabilità; Bayesian Belief Networks (proprietà ed algoritmi) e uso di tool
per il loro sviluppo (MSBNx, Hugin, ecc...). Teoria delle decisioni: generalità, il concetto di utilità
attesa e di lotteria, Influence Diagrams e loro uso per utilità multi-attributo.
Testi consigliati
S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach (2nd edition), Prentice-Hall
INTELLIGENZA ARTIFICIALE: ANALISI DI DATI INTELLIGENTE
Docente: Prof. SAITTA Lorenza
e-mail:[email protected]
Numero CFU: 5
Anno: 3
Periodo di insegnamento: 3
Codice della disciplina: S0458
Programma del corso e testi consigliati:
Programma
Introduzione al "Data Mining". DataWareHousing, OLAP. Tipi di dati. Pre-processing (Trattamento
dati mancanti, Sampling, Discretizzazione, Feature selection). Clustering (k-Means, COBWEB).
Regole di Associazione (Algoritmi Apriori, Apriori-TD, Partition, Visualizzazione, Valutazione e
riduzione delle regole). Analisi selle serie temporali (Analisi statistica, trend, stagionalità, rumore,
Correlogramma, Test di casualità). Analisi di sequenze (Distanza di editing, Similarità tra stringhe,
Catene di Markov, Catene di Markov nascoste).
Testi consigliati
Il corso farà uso di dispense e di articoli distribuiti via Web.
LABORATORIO DI INFORMATICA: RETI DI CALCOLATORI
Docente: Prof. CANONICO Massimo
e-mail:[email protected]
Numero CFU: 5
Anno: 3
Periodo di insegnamento: 2
Codice della disciplina: S0382
Programma del corso e testi consigliati:
Programma
Il corso prevede una parte teorica ed una di laboratorio.
Nella parte teorica verrano descritti i meccanismi di comunicazione tra calcolatori, partendo dalle
caratteristiche fisiche della trasmissione dati, per arrivare alla realizzazione di applicazioni software
accessibili via rete o distribuite su piú calcolatori collegati. Verranno esaminate sia le reti locali, sia
le reti geografiche e il collegamento tra reti eterogenee.
La parte di laboratorio ha lo scopo di analizzare dal punto di vista sperimentale alcune delle
problematiche tipiche della progettazione e dello sviluppo di protocolli di comunicazione. In
particolare, saranno progettati e realizzati dei programmi applicativi di rete basati sui alcuni dei
protocolli della famiglia TCP/IP.
Testi consigliati:
W. Richard Stevens, "UNIX Network Programming, Volume 1, Second Edition: Networking APIs:
Sockets and XTI", Prentice Hall
Andrew S. Tanenbaum, "Computer Networks, 4th ed", Prentice Hall
LINGUAGGI DI PROGRAMMAZIONE: LINGUAGGI PER IL WEB
Docente: Prof. GIANNINI Paola
e-mail:[email protected]
Numero CFU: 5
Anno: 3
Periodo di insegnamento: 2
Codice della disciplina: S0457
Programma del corso e testi consigliati:
Programma
Il corso si propone di introdurre presentare una panoramica di temi e tecnologie di
programmazione Web. Si analizzeranno i problemi relativi alla struttura dei dati
(semistrutturazione, mancanza di schema, trasformazioni di formati, ecc... ) e quelli relativi
all'aspetto computazionale: con particolare riferimento da un lato al supporto necessario alla
distribuzione/mobilità del codice.
Programma delle lezioni
Introduzione. Dati sul Web: Presentazione di XML: Sintassi: DTD e Namespaces. Presentazione
dei dati semistrutturati. Linguaggi di Query per dati semistrutturati. Schemi per XML: XSchema,
trasformazioni e queries per XML. Linguaggi di query per XML: XPath, XQuery. Trasformazioni:
XSL. Computazioni su Web (distribuzione/mobilità). Meccanismi di base: Rmi, class loading,
security in Java 1.
La macchina virtuale Java, verifica di byte code. Il CLR di .Net e il protocollo SOAP. Questa parte
è corredata da esercitazioni in laboratorio su: rmi, class loading (lo sviluppo di semplice
applicazioni client-server e peer-to-peer) e uso del protocollo SOAP per la realizzazione di una
applicazione simile a quella fatta in Java ma con componenti scritte in linguaggi diversi.
Linguaggi di coordinazione: Linda.
Testi consigliati
Abitebul, Buneman, Suciu. Data on the Web. Morgan Kaufmann Publisher, 2000
XML tutorial: www.brics.dk/~amoeller/XML
The Java Virtual Machine Specification
D. Gelernter. Generative Communication in Linda. ACM Transaction on Programming Languages
and Systems, 1985, Vol 7. pag. 80-112.
LINGUAGGI DI PROGRAMMAZIONE: TRADUTTORI I
Docente: Prof. TERENZIANI Paolo
e-mail:[email protected]
Numero CFU: 5
Anno: 3
Periodo di insegnamento: 1
Codice della disciplina: S0377
Programma del corso e testi consigliati:
Programma
Il corso affronta alcune tematiche di base concernenti la teoria dei linguaggi, con particolare
riferimento agli aspetti sintattici. Vengono presentate differenti classi di linguaggi, considerando sia
le grammatiche che gli automi riconoscitori. L’ultima parte del corso introduce inoltre le nozioni di
base relative al parsing LR.
Modalità d’esame: scritto (orale solo su richiesta)
Argomenti trattati: Nozioni di base di teoria dei linguaggi e terminologia. Linguaggi regolari ed
espressioni regolari. Linguaggi e grammatiche context free. Grammatiche lineari e corrispondenza
con i linguaggi regolari. Grammatiche context sensitive (cenni). Principali strutture sintattiche e
regole grammaticali per generarle. Automi a stati finiti e loro relazione con i linguaggi regolari.
Automi a pila (deterministici e non) e loro relazioni con i linguaggi context free. Teoria di base del
parsing bottom up, con particolare riferimento al parsing LR (LR(0), SLR(1), LR(1), LALR(1)).
Testi consigliati
Stefano Crespi Reghizzi: “Sintassi, semantica e tecniche di compilazione Volume 1: Metodi
Sintattici”, CLUP.
LOGICA MATEMATICA
Docente: Prof. GIANNINI Paola
e-mail:[email protected]
Numero CFU: 3
Anno: 2
Periodo di insegnamento: 2
Codice della disciplina: S0500
Programma del corso e testi consigliati:
Programma
Requisiti
La frequenza produttiva al corso richiede una buona padronanza dei contenuti fondamentali di
Algebra, Analisi Matematica I e Geometria. Sono sconsigliati di frequentare coloro che non hanno
superato tutti gli esami matematici del I anno.
Argomenti trattati
1 Introduzione
- Richiami sul linguaggio dell’aritmetica.
- Richiami su algoritmi, calcolabilità, decidibilità e semidecidibilità.
2 Logica proposizionale
- Proposizioni e connettivi. Sintassi.
- Semantica. Tavole di verità.
3 Logica dei predicati
- Linguaggi del I ordine. Variabili e quantificatori. Sintassi.
- Semantica. Interpretazioni. Soddisfacibilità, validità e modelli.
- Il calcolo della deduzione naturale per la logica dei predicati.
- Teoremi di correttezza e completezza.
- Teoremi di compattezza e di Skolem-Löwenheim.
4 Risoluzione
- Risoluzione nella logica proposizionale.
- Risoluzione nella logica del I ordine. Unificazione.
Testi di riferimento
Asperti, A. , A.Ciabattoni: Logica a informatica, McGraw-Hill, 1997.
Lolli, G.: Introduzione alla logica formale, il Mulino, 1991.
Modalità d’esame
L’esame prevede una prova scritta e un colloquio.
PROGRAMMAZIONE
E
LABORATORIO:
PROGRAMMAZIONE
Docente: Dr. MICALIZIO Roberto
e-mail: [email protected]
Numero CFU: 5
LABORATORIO
DI
INFORMATICA:
Anno: 1
Periodo di insegnamento: 1
Codice della disciplina: S0359
Programma del corso e testi consigliati:
Introduzione alla programmazione in C:
tipi di dato: integer, float, double, caratteri e stringhe
espressioni logiche, condizionali, cast
costrutti per il controllo del flusso: if, if else, while, do while, for, switch
funzioni e passaggio dei parametri per valore o per riferimento
tipi di dato strutturati: array e struct.
Testi consigliati:
Kerningham e Ritchie - Linguaggio C (seconda edizione) della Jackson. Il riferimento classico dai
progetttatori del linguaggio
Kelley Pohl - C Didattica e Programmazione della Addison Wesley.
Tricky C (disponibile sulla pagina moodle del corso)
PROGRAMMAZIONE E LABORATORIO: PROGRAMMAZIONE I
Docenti: Prof.ssa GIANNINI Paola – Dr.ssa MONTANI Stefania
e-mail: [email protected] - [email protected]
Numero CFU: 5
Anno: 1
Periodo di insegnamento: 1
Codice della disciplina: S0359
Programma del corso e testi consigliati:
Programma
Il corso ha lo scopo di introdurre i fondamenti della programmazione dei calcolatori elettronici,
partendo dal concetto di algoritmo e dalla descrizione delle componenti basilari di un programma
per il calcolo automatico, per arrivare a concetti avanzati di strutture dati e di controllo dei linguaggi
di programmazione. Questi concetti saranno applicati in alcuni algoritmi fondamentali.
In particolare saranno presentati i seguenti argomenti:
Richiami di logica
Introduzione alla programmazione: problemi, algoritmi, programmi
Correttezza ed invarianti di ciclo
Introduzione alla complessità, notazione O(.)
Elementi del linguaggio di programmazione C: programmi, espressioni, istruzioni, dichiarazioni
Tipi di dato semplice: int, float, char
Tipi di dato strutturato: array e stringhe
Funzioni, modello di esecuzione dei programmi C, puntatori e gestione della memoria
Algoritmi su arrays: cancellazione, ricerca sequenziale e binaria, ordinamento per selezione,
inserzione e bubble sort
Testi consigliati
Wirth, Principi di programmazione strutturata, ISEDI
Batini e altri, Fondamenti di programmazione dei calcolatori elettronici, Franco Angeli editore
Kelley, Pohl, C, didattica e programmazione, Addison-Wesley
PROGRAMMAZIONE II
Docente: Prof. TERENZIANI Paolo
e-mail:[email protected]
Numero CFU: 5
Anno: 1
Periodo di insegnamento: 2
Codice della disciplina: S0363
Programma del corso e testi consigliati:
Programma
Il corso affronta alcuni aspetti di base della programmazione, con particolare riferimento alle
strutture di dati dinamiche (liste) ed all’uso della ricorsione. Il linguaggio di programmazione
utilizzato è il C.
Nel seguito, il testo (vedi in fondo) è indicato per brevità come “Cruse”.
Il tipo struct in C.
Il tipo lista
- Introduzione: Cruse, sezione 2.2.1 pag. 40-44; 5.1 pag. 188-189
- Implementazione contigua: Cruse: 2.3.1, pag. 55-56; 5.2.1, pag. 190-191
- Implementazione linkata con array: Cruse 5.5, pag. 214-221
- Puntatori C e liste linkate: Cruse: 4.5 pag. 152-160, 5.2.2, pag. 191-195
- Esercizi iterativi su liste (realizzate tramite puntatori) in C
(si veda anche: Note del corso: Iterazione su Liste)
- Liste doppiamente linkate: Cruse: 5.2.4 pag. 197-201
Ricorsione
- Introduzione generale: Cruse: 3.2.1, 3.2.2, 3.2.3, pag. 91-95; 3.4, pag. 110-122.
- Complessita' in spazio e tempo delle procedure\funzioni ricorsive: Note
- Record di attivazione per procedure e funzioni ricorsive: Note
- Esercizi di programmazione ricorsiva in C (si veda anche: Note)
- Le torri di Hanoi: Cruse: 3.2.4, 95-100
- Esercizi di programmazione ricorsiva su liste in C (si veda anche: Note)
- Ricorsione lineare, ricorsione di coda (cenni)
- Algoritmi ricorsivi di ordinameto: Quicksort, Mergesort: Cruse: 7.6, 7.7, 7.8 pag. 298-318
Modalità di esame: esame scritto (orale solo su richiesta)
Testi consigliati
"Data Structures and Program Design in C", Robert L. Cruse, Clovis L. Tondo, Bruce P. Leung, II
edizione, Prentice Hall International Editions. Il testo è integrato da una serie aggiuntiva di note
disponibili su Web.
PROGRAMMAZIONE: SERVIZI WEB
Docente: Prof. PORTINALE Luigi
e-mail:[email protected]
Numero CFU: 5
Anno: 3
Periodo di insegnamento: 1
Codice della disciplina: S0460
Programma del corso e testi consigliati:
Programma
Scopo del corso è acquisire alcune capacità di base per realizzare siti e servizi sul World Wide
Web costituiti da testi, immagini e programmi.
Verranno illustrati i concetti di base sull'utilizzo di markup languages come XHTML, dei fogli di stile
e le nozioni piu' importanti per la programmazione WEB lato client.
Argomenti trattati:
- Introduzione al WWW
- Linguaggio XHTML
- Cascading Style Sheets (CCS)
- Programmazione Client Side: Javascript, Dynamic HTML, cenni di Flash e ActionScript.
Testo di riferimento:
Deitel, Deitel, Nieto: Internet and WWW: How to Program (3 ed.), Prentice Hall, 2004.
Testo complementare:
D. Flanagan: Javascript: the definite guide (4th edition), O'Reilly, 2001.
SISTEMI DI ELABORAZIONE: RETI DI CALCOLATORI I
Docente: Prof. GIORDANA Attilio
e-mail:[email protected]
Numero CFU: 5
Anno: 2
Periodo di insegnamento: 3
Codice della disciplina: S0372
Programma del corso e testi consigliati:
Programma
Il tema del corso è la rete Internet, affrontato secondo un approccio che partendo dalle applicazioni
di rete scende via via in profondità, descrivendo il livello "trasporto" e quindi il livello "rete" dei
protocolli TCP/IP.
Più specificamente, il corso tratta i seguenti argomenti:
− Introduzione intuitiva alla rete, descrivendone in modo qualitativo la struttura e le funzionalità.
− Livello applicazione: protocolli per la gestione della posta elettronica, del WEB e del DNS.
− Livello sessione: i socket, programmazione dei socket.
− Livello trasporto: protocolli TCP e UDP
− Livello rete: protocolli IP e ICMP.
− Protocolli di instradamento: algoritmi di instradamento, nozione di Sistema Autonomo,
protocolli RIP, OSPF, BGP.
Oltre alla descrizione dei protocolli succitati, il corso si propone di fornire allo studente anche
un'esperienza diretta delle problematiche connesse con la gestione delle reti informatiche.
Pertanto, durante il percorso di studio, vengono tenute anche lezioni pratiche in cui vengono
assegnati esercizi da svolgere in aula o a casa.
Testo di riferimento: James F. Kurose, Keith W. Ross, Reti di Calcolatori e Internet - Un approccio
top-down , Terza Edizione, Addison Wesley (2005), ISBN 88-7192-225-5.
SISTEMI DI ELABORAZIONE: RETI DI CALCOLATORI II
Docente: Prof. GIORDANA Attilio
e-mail:[email protected]
Numero CFU: 5
Anno: 3
Periodo di insegnamento: 1
Codice della disciplina: S0379
Programma del corso e testi consigliati:
Programma
Il corso continua lo studio delle reti di calcolatori iniziato con il corso di Sistemi di Elaborazione:
Reti di Calcolatori I secondo l'approccio "top-down".
Nel corso si distinguono due fasi di studio. Nella prima fase si completa lo studio della pila TCP/IP
analizzando i protocolli del livello dati e del livello fisico (sia wireless che su cavo). Nella seconda
fase si studiano le problematiche ed i protocolli inerenti la comunicazione multimediale su rete IP
(IP-Phone, Streaming...).
Argomenti trattati:
− Interfacciamento tra il livello rete e il livello dati: protocolli ARP, RARP
− Livello dati: protocolli per l'accesso al mezzo (Ethernet), tecniche per il rilevamento e la
correzione degli errori di trasmissione.
− Componenti utilizzati a livello dati: bridge, switch.
− Reti WIRELESS: reti WI-FI e Reti Cellulari
− Comunicazione multimediale: architetture e protocolli di streaming
− Comunicazione interattiva su reti IP: IP-PHONE, Video-conferenza su IP, protocolli RTP, SIP,
H323.
− Evoluzione futura di Internet: qualità del servizio, IP-V6, servizi integrati e servizi differenziati
Come nel corso precedente vengono tenute anche lezioni pratiche in cui vengono assegnati
esercizi da svolgere in aula o a casa.
Testo di riferimento: James F. Kurose, Keith W. Ross, Reti di Calcolatori e Internet - Un approccio
top-down , Terza Edizione, Addison Wesley (2005), ISBN 88-7192-225-5.
SISTEMI DI ELABORAZIONE: SICUREZZA
Docente: Prof. EGIDI Lavinia
e-mail:[email protected]
Numero CFU: 5
Anno: 1
Periodo di insegnamento: 3
Codice della disciplina:
Programma del corso e testi consigliati:
Programma
Introduzione dei principi fondamentali di sicurezza delle reti e di crittografia, descrizione delle
tecniche fondamentali, ed esempi di applicazioni e protocolli.
In particolare:
- Introduzione alla sicurezza.
- Tecniche crittografiche e tecniche di reti
- Crittografia a chiave simmetrica. Sistemi di cifratura a blocchi e a flusso. Sistemi di cifratura di
Feistel. DES, AES. Modes of operation dei sistemi di cifratura a blocchi.
- Crittografia a chiave pubblica. Diffie-Hellman e RSA.
- Confronto tra i sistemi di crittografia a chiave pubblica e a chiave segreta. Uso dei sistemi di
cifratura a chiave pubblica e a chiave segreta.
- Funzioni di hash crittograficamente sicure. Definizione e proprieta'. Tipi di attacchi. Struttura
delle funzioni hash. Esempi di funzioni hash.
- Firma elettronica. RSA e DSA. Non rinnegabilita'.
- Message Authentication Codes. Confronto con le funzioni hash. Attacchi. HMAC.
- Il tempo: nonce, timestamp, cookies. Sincronizzazione. Attacchi syn-flood e di Morris.
- Scambio di chiavi segrete e chiavi pubbliche. Certificati. Autorita'di certificazione e Certificate
Revocation List. Protocollo OCSP. Registration Authority.
- Autenticazione e autorizzazione. Autenticazione: tecniche a chiave segreta e a chiave pubblica.
Uso di nonce e di timestamp.
- Firewall. Architettura di un firewall. Principi fondamentali. Bastion Host. DMZ.
- Packet Filtering statici e dinamici. Access list. Laboratorio: configurazione di un packet filter.
- Proxy.
Testi consigliati
- Stallings, Cryptography and Network Security, quarta edizione, Prentice Hall
- Zwicky, Cooper, Chapman, Building Internet Firewall, O' Reilly
Libri di consultazione
- Cheswick, Bellovin, Firewalls and Internet Security, Addison-Wesley (per approfondimento)
- Stevens, TCP/IP Illustrated, Volume 1, Addison-Wesley (per richiamo delle nozioni di Reti)
SISTEMI DI ELABORAZIONE: SIMULAZIONE
Docente: Prof. FRANCESCHINIS Giuliana
e-mail:[email protected]
Numero CFU: 5
Anno: 3
Periodo di insegnamento: 2
Codice della disciplina: S0456
Programma del corso e testi consigliati:
Programma
La simulazione ad eventi discreti, metodologia fondamentale per la valutazione delle prestazioni di
sistemi complessi (di calcolo, di telecomunicazione, di traffico, ecc) è la materia su cui verte questo
corso. Pur essendo di carattere introduttivo, il corso ha come obiettivo di rendere lo studente in
grado di affrontare lo studio di casi reali avendo conoscenza del metodo da seguire e delle
potenzialita' delle tecniche disponibili.
Gli argomenti trattati possono essere raggruppati nei seguenti tre punti:
1. Costruzione di un modello di un sistema reale: verranno discussi i concetti di livello di
astrazione e adeguatezza di un modello, e illustrate alcune metodologie per la costruzione dei
modelli. Gli esempi verranno sviluppati utilizzando due formalismi molto noti: le reti di code e le reti
di Petri. Saranno inoltre discusse alcune semplici leggi operazionali che servono per la definizione
degli indici di prestazione dei modelli.
2. "Esecuzione" di un modello di simulazione: verrà spiegato cosa significa eseguire un modello di
simulazione e come si può realizzare un programma di simulazione ad eventi discreti. I modelli di
simulazione che saranno trattati sono modelli probabilistici, ovvero modelli la cui evoluzione è
governata da leggi casuali. Questo richiederà un piccolo ripasso del calcolo delle probabilità.
Verranno inoltre presentati metodi per la generazione di istanze di variabili casuali. Sarà richiesto
agli studenti di svolgere alcuni esercizi pratici per verificare la comprensione di quanto esposto a
lezione: lo svolgimento di tali esercizi sarà utile anche per lo svolgimento del progettino finale
3. Interpretazione dei risultati della simulazione: i risultati prodotti da un simulatore ad eventi
discreti di tipo Montecarlo costituiscono le componenti di un campione statistico e come tali devono
essere utilizzati per la conferma della loro validità. Il corso include il richiamo di alcuni elementi
fondamentali di statistica utili per la presentazione dei metodi che permettono la stima intervallare
degli indici di prestazione dei modelli studiati.
Libri di riferimento: M. Ajmone Marsan, G. Balbo, G. Conte, S. Donatelli, and G. Franceschinis.
Modelling with Generalized Stochastic Petri Nets. J. Wiley, 1995.
J. Banks, J.S. Carson II, B.L. Nelson, D.N. Nicol Discrete-Event System Simulation, 3rd Ed.
Prentice Hall, 2000.
G. Balbo, Appunti per il corso di Simulazione.
G. Iazeolla, Introduzione alla Simulazione Discreta Ed. Bollati-Boringhieri.
Durante il corso verranno distribuite dispense aggiuntive. Per il reperimento dei libri usati nel corso,
rivolgersi alla docente.
SISTEMI OPERATIVI E LABORATORIO:
LABORATORIO DI INFORMATICA: SISTEMI
OPERATIVI
Docente: Prof. THESEIDER DUPRE' Daniele
e-mail:[email protected]
Numero CFU: 5
Anno: 2
Periodo di insegnamento: 1
Codice della disciplina: S0368
Programma del corso e testi consigliati:
Il corso ha lo scopo di illustrare in un sistema reale molte delle nozioni generali del corso di Sistemi
Operativi I e di introdurre l'ambiente di programmazione del sistema operativo Unix, in particolare
per quanto riguarda le chiamate di sistema (system call).
Argomenti trattati: Richiami sull'ambiente di programmazione in Unix: comandi, funzioni di libreria,
manuale on-line, compilazione separata e utilities di sviluppo (make). Processi e ambiente run-time
nel sistema Unix. File system di Unix. Interfaccia tra linguaggio C e Unix. Generalità sull'utilizzo
delle chiamate di sistema; chiamate di sistema per gestione di processi, sincronizzazione e
comunicazione tra processi, gestione di file. Implementazione di interpreti di comandi. Librerie per
threads, specie per sincronizzazione e comunicazione fra threads.
Modalità di esame: orale, preceduto da esercizi e progetti assegnati durante il corso.
Prerequisiti: è indispensabile aver acquisito esperienza di programmazione nel linguaggio C, come
nel caso sia già stata svolta l'attività dei corsi di Programmazione del I anno.
Testi consigliati
Oltre alla documentazione on-line si può fare riferimento a:
C. Brown: "Unix - Distributed Programming", Prentice-Hall 1994, capitolo 2
V.R. Stevens, "Advanced Programming in the Unix environment", Addison-Wesley 1993
SISTEMI OPERATIVI E LABORATORIO: SISTEMI OPERATIVI I
Docente: Prof. FRANCESCHINIS Giuliana
e-mail:[email protected]
Numero CFU: 5
Anno: 2
Periodo di insegnamento: 1
Codice della disciplina: S0368
Programma del corso e testi consigliati:
Programma
Il corso di Sistemi Operativi I ha lo scopo di fornire le nozioni fondamentali sull'architettura del
sistema operativo di un elaboratore multiutente in isolamento (non in rete). Al corso è associato
quello di Laboratorio di Informatica: Sistemi Operativi. Vengono affrontati i seguenti argomenti
principali:
- organizzazione del kernel
- gestione dei processi
- elementi di programmazione concorrente
- gestione della memoria
- gestione delle periferiche
- file system e tecniche di protezione
- tecniche di rilevamento e prevenzione dello stallo
- elementi di programmazione concorrente
Esempi di soluzioni reali verranno tratti dai sistemi operativi correnti (Unix, Windows).
Prerequisiti: Si consiglia di seguire il corso solo dopo aver seguito i due corsi di Architettura degli
Elaboratori I e II.
Testi consigliati:
A. Silberschatz, P.B. Galvin: "Operating System Concepts", V ed., Addison-Wesley 1998.
Tanenbaum: "Sistemi Operativi Moderni", Ed. Jackson, 2° ed.
SISTEMI OPERATIVI II
Docente: Prof. ANGLANO Cosimo
e-mail:[email protected]
Numero CFU: 5
Anno: 2
Periodo di insegnamento: 2
Codice della disciplina: S0375
Programma del corso e testi consigliati:
Programma
Il corso è focalizzato sullo studio delle architetture e delle implementazioni di sistemi operativi reali.
Le nozioni di base introdotte nel corso di Sistemi Operativi 1 sono riprese ed estese in funzione del
loro impiego nei sistemi operativi reali.
L'applicazione di tali nozioni viene esemplificata mediante lo studio del sistema operativo Minix 3,
in termini della sua architettura, delle sue funzionalità e dell'implementazione di meccanismi e
politiche di gestione.
Vengono affrontati i seguenti argomenti principali:
- Richiamo sui concetti di base dei sistemi operativi: processi, file system, system calls,
paradigmi architetturali
- L'architettura del sistema operativo Minix 3
- Concetto ed implementazione dei processi: aspetti generali e specifici di Minix 3
- Gestione dell'Input/Output: aspetti generali e specifici di Minix 3
- Il File System: aspetti generali e specifici di Minix 3
In aggiunta alle lezioni in aula, il corso prevede alcune esercitazioni di laboratorio durante le quali
saranno applicate concretamente le nozioni teoriche.
Testo di riferimento: A.S. Tanenbaum, A.S. Woodhull. Operating Systems Design and
Implementation, Terza edizione, Prentice Hall, 2006.
STATISTICA
Docente: Prof. BOBBIO Andrea
e-mail:[email protected]
Numero CFU: 4
Anno: 2
Periodo di insegnamento: 3
Codice della disciplina: S0376
Programma del corso e testi consigliati:
Programma
Il corso ha lo scopo di avviare lo studente ai principi e alle metodologie di base della statistica. Il
corso si articola sui seguenti argomenti.
Richiamo sulle variabili aleatorie, Cdf, densità, momenti. Statistica descrittiva: tabelle di frequenze,
istogrammi, distribuzioni cumulative empiriche, misure di locazione, misure di dispersione.
Stimatori e proprietà degli stimatori. Media e varianza campionaria. Teorema del limite centrale.
Distribuzione Chi-2 con esempi. Distribuzione t-Student con esempi. Distribuzione F-Fisher.
Intervalli di confidenza. Intervallo di confidenza sulla media di una popolazione normale con
varianza nota e incognita, Intervallo di confidenza sulla proporzione .
Generalità sui test di ipotesi. Test sulla media campionaria e sulla proporzione.
Test di adattamento (cenni).
Testi consigliati:
S. Ross: Probabilità e Statistica per l’Ingegneria e le Scienze, Apogeo 2003.
Scarica