Insegnamento: Sistemi Intelligenti
Corso di laurea dell’insegnamento (specificare anche se triennale o magistrale): Corso di
laurea SPECIALISTICA in INFORMATICA
Codifica: SSD (Settore scientifico disciplinare):
Docente Responsabile: Francesco Calimeri
Eventuali altri docenti coinvolti:
Orario di ricevimento: Martedì 15:30-17:00 e su Appuntamento
Crediti Formativi (CFU):
Ore di lezione: Ore riservate allo studio individuale:
Ore di laboratorio:
Il corso di studio, per i quali lo stesso costituisce un’attività di base o caratterizzante:
Facoltà competente:
Lingua d’insegnamento:
Anno di corso:
Propedeuticità: Nessuna all’interno del corso di laurea specialistica in Informatica.
Sono indispensabili conoscenze di base di informatica e di programmazione avanzata.
Sono utili conoscenze di base di matematica, logica, intelligenza artificiale.
Organizzazione della didattica (lezioni, esercitazioni, laboratorio, ecc.):
Modalità di frequenza (obbligatoria, facoltativa):
Modalità di erogazione (tradizionale, a distanza, mista):
Metodi di valutazione (Prova scritta, orale, ecc): Progetti durante il corso, progetto di fine
forso, prova orale, tutto obbligatorio.
Risultati di apprendimento attesi: Alla fine del corso gli studenti dovrebbero acquisire la
capacità di progettare e sviluppare sistemi intelligenti/basati su agenti intelligenti/multiagente.
Programma/Contenuti:
I. Intelligenza Artificiale e Agenti
1. Introduzione
AI
Fondamenti dell’AI
Storia dell’AI
Stato dell’arte
2. Agenti Intelligenti
Introduzione
Come dovrebbero agire gli agenti
Struttura di agenti intelligenti
Ambienti
II. Risoluzione di Problemi (problem solving)
1. Risolvere i Problemi con la ricerca
Agenti risolutori di problemi
Formulazione di problemi
Esempi di problemi
Cercare soluzioni
Strategie di ricerca
Evitare ripetizioni di stati
Ricerca con soddisfacimento di vincoli
III. Conoscenza e ragionamento
1. Agenti che ragionano logicamente
Agenti basati su conoscenza
Rappresentazione, ragionamento e logica
Il mondo del Wumpus
Agenti logici per il mondo del Wumpus
La rappresentazione dei cambiamenti nel mondo
La deduzione di proprietà nascoste del mondo
Preferenza fra azioni
Verso un agente basato su obiettivi
Agire logicamente: un semplice agente di pianificazione
(planning)
IV. Comunicazione, percezione, azione
1. Agenti che comunicano
La comunicazione come azione
Tipi di agenti che comunicano
Analisi sintattica (parsing)
L’interpretazione semantica
Ambiguità e disambiguazione
V. Agenti intelligenti e AOSE (Agent Oriented Software Engineering)
1. Sistemi basati sugli agenti intelligenti
Caratteristiche fondamentali di un agente intelligente
La comunicazione fra agenti
Gli agenti come interfacce pro-attive
La programmazione orientata agli agenti
Le trappole della programmazione orientata agli agenti
Gli Agenti Software per il Web
2. Le metodologie dell'AOSE
MaSe (Multiagent System Engineering)
Cassiopeia
Estensioni di UML
Gaia
PASSI (a Process fo Agent Societies Specification and
Implementation)
3. Standard per i sistemi multi agente
KSE (Knowledge Sharing Effort)
MASIF (Mobile Agent System Interoperability)
Specifiche FIPA (Foundation For Intelligent Physical Agents)
1. Cos'è FIPA
2. Agent Management Specification
3. Agent Communication Language
4. Agent Software Integration
5. Le specifiche informative<
VI. Tool e piattaforme per lo sviluppo di sistemi agent-based
1. Tool e piattafomrme FIPA-compliant
JADE (Java Agent DEvelopment framework)
1. L'architettura della Agent Platform
2. Il sistema di comunicazione
3. Il modello di esecuzione degli agenti
4. L'RMA (Remote Monitoring Agent) e tool grafici di
sviluppo
5. Aspetti implementativi
FIPA OS
2. Implementazioni di KQML
3. GRASSHOPPER, una piattaforma MASIF compliant
4. Approcci indipendenti dagli standard
5. Un tool basato sulla logica: OntoDLV
Le eventuali attività di supporto alla didattica (tipi e orari): -
Date inizio e termine e il calendario delle attività didattiche:
Il calendario delle prove d’esame:
Bibliografia:
S. Russell, P. Norvig, "Intelligenza artificiale. Un approccio moderno" Volumi 1 e 2. Pearson
Education Italia, 3a ed., 2010. link
In alternativa: S. Russell, P. Norvig, "Artificial Intelligence: A modern approach", Prentice
Hall, Englewood Cliffs, NJ, 3rd ed., 2009. link
Matt Ginsberg, "Essentials of Artificial Intelligence", Morgan Kaufmann Ed., 1993. link al sito
dell'autore
M.Ghallab, D. Nau, P. Traverso, "Automated Planning - Theory and Practice", Morgan
Kaufmann Ed., 2004. link
Insegnamento: Informatica Grafica
Corso di laurea dell’insegnamento (specificare anche se triennale o magistrale):
Informatica – Laurea Magistrale
Codifica: SSD (Settore scientifico disciplinare):
Docente Responsabile: Donato D’Ambrosio
Eventuali altri docenti coinvolti:
Orario di ricevimento: Mercoledì dalle ore 12:30 alle ore 13:30
Crediti Formativi (CFU):
Ore di lezione: Ore riservate allo studio individuale:
Ore di laboratorio:
Il corso di studio, per i quali lo stesso costituisce un’attività di base o caratterizzante:
Facoltà competente:
Lingua d’insegnamento:
Anno di corso:
Propedeuticità: ---
Organizzazione della didattica (lezioni, esercitazioni, laboratorio, ecc.):
Modalità di frequenza (obbligatoria, facoltativa):
Modalità di erogazione (tradizionale, a distanza, mista):
Metodi di valutazione (Prova scritta, orale, ecc): Prova scritta e prova di laboratorio
Risultati di apprendimento attesi:
- Conoscenza dei fondamenti della Computer Graphics
- Conoscenza di librerie per la grafica 3D interattiva a basso e alto livello
- Sviluppo di applicazioni grafiche 3D interattive in OpenGL
- Conoscenza degli algoritmi più importanti della Computer Graphics
Programma/Contenuti:
Introduzione all’Informatica Grafica
- Cos’è
- Le origini
- Sistemi di grafica vettoriale e raster
- Hardware per grafica raster
- Librerie grafiche
- Esempi
Introduzione a OpenGL
- La libreria grafica OpenGL
- Cosa può fare OpenGL
- Sintassi dei comandi OpenGL
- OpenGL come macchina a stati
- Librerie supplementari di OpenGL: GLU e GLUT
- Schema di un’applicazione GLUT
- Gestione degli eventi in un’applicazione GLUT
- Compilazione
Stati e Primitive Grafiche di OpenGL
- Colore di sfondo e di disegno
- Shading
- Il sistema di coordinate
- Il volume visibile
- Aspect ratio
- Disegno di punti, segmenti (linee) e poligoni
- Poligoni planari e non planari
- Specificare i vertici
- Disegnare punti linee e poligoni
- Costrutti all’interno di glBegin() e glEnd()
- Gli stati di OpenGL
- Disegno di poligoni non convessi
- Vettori normali
- Calcolo delle normali per superfici analitiche
- Calcolo delle normali per poligoni
Trasformazioni geometriche in OpenGL
- Composizione della scena e trasformzioni
- Coordinate dell’osservatore (Eye coordinates)
- Trasformazione di Viewing
- Trasformazione di modeling
- La dualità modelview
- La trasformazione di proiezione
- La matematica delle trasformazioni
- Il frustum
Modelli di colori in OpenGL
- Cos’è il colore
- Il modello RGB
- Come funziona il monitor
- Risoluzione e profondità di colore
- Uso dei colori in OpenGL
- Modelli di illuminazione
- Materiali
- Aggiungere la luce alla scena
- Definire il tipo di materiale
- Sorgenti di luce
Effetti speciali in OpenGL
- Blending
- Antialiasing
- Multisampling
- Fog
- Accumulation Buffer
Curve e superfici in OpenGL
- Quadric Objects
- Curve e superfici di Bézier
- Evaluators
- Calcolo automatico delle Normali
- NURBS
Algoritmi di rasterizzazione e clipping
- Rasterizzazione
- Clipping
- L’approccio object-oriented vs image-oriented
- Scan Conversion dei segmenti
L'algoritmo di scan conversion DDA
L'algoritmo di Bresenham
Scan Conversion del cerchio
Scan Conversion dei poligoni
Flood fill
Algoritmo Scan-line
- Clipping
Algoritmo di Cohen-Sutherland
- Antialiasing
Unweighted area sampling
Weighted area sampling
Rimozione delle superfici nascoste
- Approcci object-space e image-space
- Eliminazione delle back face
- L’algoritmo z-buffer
- L’algoritmo depth sort
- L’algoritmo scan line
Selezione di oggetti in OpenGL
- Selezione
- Cambio del modo di rendering
- Funzionamento del selection buffer
Texture Mapping in OpenGL
- Texture in OpenGL
- Caricamento e Mappatura
- Mipmapping
- Texture coordinates generation
object linear mapping
eye linear mapping
sphere mapping
cube mapping
Le eventuali attività di supporto alla didattica (tipi e orari):
Date inizio e termine e il calendario delle attività didattiche:
Il calendario delle prove d’esame:
Bibliografia:
R. Scateni, P. Cignoni, C. Montani, R. Scopigno. Fondamenti di grafica
tridimensionale interattiva. McGraw-Hill.
Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis. The OpenGL Programming
Guide - The Redbook. Liberamente scaricabile dal sito
http://www.opengl.org/documentation/red_book/
Insegnamento: Knowledge Management
Corso di laurea dell’insegnamento (specificare anche se triennale o magistrale):
Informatica magistrale
Codifica: SSD (Settore scientifico disciplinare):
Docente Responsabile: Wolfgang Faber
Eventuali altri docenti coinvolti:
Orario di ricevimento: Lunedì 17:00-18:00
Crediti Formativi (CFU):
Ore di lezione: Ore riservate allo studio individuale:
Ore di laboratorio:
Il corso di studio, per i quali lo stesso costituisce un’attività di base o caratterizzante:
Facoltà competente:
Lingua d’insegnamento:
Anno di corso:
Propedeuticità: nessuna
Organizzazione della didattica (lezioni, esercitazioni, laboratorio, ecc.):
Modalità di frequenza (obbligatoria, facoltativa):
Modalità di erogazione (tradizionale, a distanza, mista):
Metodi di valutazione (Prova scritta, orale, ecc): Prova scritta, prova orale
Risultati di apprendimento attesi: Conoscenza di formalismi logici e semantic web,
capacità di utilizzarli per risolvere problemi pratici.
Programma/Contenuti:
Logica classica (logica proposizionale, logica booleana quantificata, logica del primo
ordine, calcoli ), linguaggi logici per basi di dati (calcolo relazionale, datalog, answer set
programming), Semantic Web (XML, XPath, Xschema, RDF, OWL)
Le eventuali attività di supporto alla didattica (tipi e orari): nessuna
Date inizio e termine e il calendario delle attività didattiche:
Il calendario delle prove d’esame:
Bibliografia:
Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997
Foundations of Databases (Serge Abiteboul, Richard Hull, Victor Vianu) Addison-
Wesley, 1995
XML in a Nutshell (Elliotte Rusty Harold, W. Scott Means) O'Reilly, 2004
Semantic Web for the Working Ontologist (Dean Allemang, Jim Hendler) Morgan
Kaufmann, 2008
Insegnamento: Ricerca Operativa
Corso di laurea dell’insegnamento (specificare anche se triennale o magistrale):
Laurea Magistrale in Informatica
Codifica: SSD (Settore scientifico disciplinare):
Docente Responsabile: Antonio Fuduli
Eventuali altri docenti coinvolti:
Orario di ricevimento: giovedì
Crediti Formativi (CFU):
Ore di lezione: Ore riservate allo studio individuale:
Ore di laboratorio:
Il corso di studio, per i quali lo stesso costituisce un’attività di base o caratterizzante:
Facoltà competente:
Lingua d’insegnamento:
Anno di corso:
Propedeuticità: nessuna
Organizzazione della didattica (lezioni, esercitazioni, laboratorio, ecc.):
Modalità di frequenza (obbligatoria, facoltativa):
Modalità di erogazione (tradizionale, a distanza, mista):
Metodi di valutazione (Prova scritta, orale, ecc): prova scritta
Risultati di apprendimento attesi: Apprendimento delle tecniche di ottimizzazione di
base nel campo della programmazione matematica continua e intera e nelle reti di
flusso.
Programma/Contenuti:
1. Modelli e decisioni.
Introduzione alla Ricerca Operativa. Scopi e metodologie della Ricerca Operativa. I problemi decisionali.
Classificazione dei problemi decisionali. Un esempio di problema decisionale con più decisori: il dilemma
dei prigionieri. I problemi di ottimizzazione. Formulazione matematica dei problemi di ottimizzazione:
funzione obiettivo e vincoli. Introduzione alla Programmazione Lineare (PL). Esempi di modelli di
Programmazione Lineare.
2. Geometria della programmazione lineare.
Cenni di geometria convessa. Rappresentazione dei vincoli e della funzione obiettivo. Soluzione
grafica dei problemi di PL.
3. Il metodo del simplesso.
Forma standard di un problema di PL. Riduzione alla forma standard. Definizione di soluzione di base.
Interpretazione geometrica delle soluzioni di base. Forma canonica e riduzione alla forma canonica. Il
teorema fondamentale della programmazione lineare. L’algoritmo del simplesso. Degenerazione e regole
anticiclaggio. Il simplesso a due fasi.
4. Teoria della dualità.
Duale di un problema di PL. Legami fra primale e duale. Dualità debole. Dualità forte. Condizioni
di scarto complementare.
5. Programmazione lineare intera.
Definizione di un problema di Programmazione Lineare Intera (PLI). Interpretazione geometrica.
Matrici unimodulari e totalmente unimodulari. Algortitmo di Branch & Bound. Cenni sulla
Programmazione Lineare Mista.
6. Elementi di teoria dello scheduling.
Introduzione ai problemi di scheduling. Classificazione dei problemi di scheduling. Problemi di
scheduling su singola macchina. Problemi di scheduling su macchine parallele e identiche.
Macchine eterogenee: cenni sui problemi di “flow shop” e “job shop”.
7. Problemi di ottimizzazione su rete.
Richiami di teoria dei grafi. Matrici di adiacenza e di incidenza. Unimodularità e totale
unimodularità di matrici. Formulazione del problema di flusso a costo minimo. Alberi ricoprenti e
soluzioni di base. Il simplesso su rete. Formulazione del problema del massimo flusso. Il teorema
del massimo flusso e minimo taglio. L’algoritmo di Ford & Fulkerson per il problema del massimo
flusso. Il problema del cammino di costo minimo: formulazione e algoritmi risolutivi.
Formulazione del problema dei trasporti e del problema dell’assegnamento. Risoluzione del
problema dei trasporti e del problema dell’assegnamento.
8. Laboratorio.
Uso dell’EXCEL per la risoluzione dei problemi di ottimizzazione. Uso dei principali software per la
Ricerca Operativa: LINGO (Linear, INteractive and General Optimizer). Cenni di AMPL (A
Mathematical Programming Language). Uso di Cplex.
Le eventuali attività di supporto alla didattica (tipi e orari):nessuna
Date inizio e termine e il calendario delle attività didattiche:
Il calendario delle prove d’esame:
Bibliografia: Appunti forniti dal docente.
F. Shoen - Teoria e metodi di ottimizzazione lineare: il metodo del simplesso.- La Nuova Italia Scientifica, 1991.
M. Pinedo – Scheduling: theory, algorithms and systems – Second Edition - Prentice Hall, Englewood Cliffs, New Jersay, 2002.
F.S. Hillier, G.J. Lieberman - Introduction to Operations Research – McGraw Hill, 2005.
M.S. Bazaraa, J.J. Jarvis, H.D. Sherali – Linear Programming and Network Flows – John Wiley, 2005.
D.P. Bertsekas - Network Optimization - Athena Scientific, 1998.
M. Fischetti - Lezioni di Ricerca Operativa – Edizioni Libreria Progetto Padova, 1995.
B. Taylor - Introduction to Management Science - Prentice Hall, 1995.
F.S. Hillier, G.J. Lieberman - Introduction to Operations Research – McGraw Hill, 2005.
Insegnamento: Tecniche di Ottimizzazione
Corso di laurea dell’insegnamento (specificare anche se triennale o magistrale):
Laurea Magistrale in Informatica
Codifica: SSD (Settore scientifico disciplinare):
Docente Responsabile: Antonio Fuduli
Eventuali altri docenti coinvolti:
Orario di ricevimento: giovedì
Crediti Formativi (CFU):
Ore di lezione: Ore riservate allo studio individuale:
Ore di laboratorio:
Il corso di studio, per i quali lo stesso costituisce un’attività di base o caratterizzante:
Facoltà competente:
Lingua d’insegnamento:
Anno di corso:
Propedeuticità: nessuna
Organizzazione della didattica (lezioni, esercitazioni, laboratorio, ecc.):
Modalità di frequenza (obbligatoria, facoltativa):
Modalità di erogazione (tradizionale, a distanza, mista):
Metodi di valutazione (Prova scritta, orale, ecc): prova scritta seguita da prova orale.
Risultati di apprendimento attesi: approfondimento delle tecniche di ottimizzazione
nel campo della programmazione matematica continua e intera.
Programma/Contenuti:
1. Programmazione lineare multiobiettivo.
Introduzione alla programmazione lineare multiobiettivo. Soluzioni efficienti e debolmente efficienti. Il
teorema fondamentale della programmazione multiobiettivo. Spazio dei risultati: convessità e trasformati
dei punti estremi. Risoluzione grafica di un problema di programmazione lineare multiobiettivo. Il metodo
Goal Programming. Il metodo STEM.
2. Rilassamento lagrangiano.
Introduzione al concetto di rilassamento di un problema di ottimizzazione. I concetti di lower
bound e upper bound. Il rilassamento lagrangiano nella programmazione lineare intera. Il duale
lagrangiano. Il duale lagrangiano nella programmazione lineare. Relazioni fra il rilassamento
lagrangiano e il rilassamento continuo. La proprietà di interezza.
3. Problemi di set covering e set partitioning.
Formulazione del problema di set covering. Formulazione del problema di set partitioning. Applicazioni dei
problemi di set covering e set partitioning. Tecniche euristiche di risoluzione per il problema di set
covering: l’algoritmo di Chvatal e l’algoritmo di aggiustamento dei moltiplicatori. Dominanza di righe e di
colonne. Trasformazione di un problema di set partitioning in un problema di set covering.
4. Problemi di vehicle routing.
Introduzione ai problemi di vehicle routing. Problemi di node routing e arc routing. Il problema
del commesso viaggiatore asimmetrico. L’algoritmo di patching. Il problema del commesso
viaggiatore simmetrico. L’algorirtmo Nearest Neighbour. L’algoritmo dell’albero. L’algoritmo di
Christofides.. Il problema del postino cinese diretto. Il problema del postino cinese indiretto.
Le eventuali attività di supporto alla didattica (tipi e orari):nessuna
Date inizio e termine e il calendario delle attività didattiche:
Il calendario delle prove d’esame:
Bibliografia: Appunti forniti dal docente.
C. H. Papadimitriou, K. Steiglitz. Combinatorial optimization: algorithms and complexity. Dover, 1998.
A.K. Ahuja, T.L. Magnanti, J.B. Orlin, Network Flows -- Theory, Algorithms, and Applications, Prentice Hall, 1993.
G. Ghiani, G. Laporte, R. Musmanno. Introduction to Logistics Systems Planning and Control. Wiley, 2004.
Insegnamento: Applicazioni Enterprise (Sviluppo di Applicazioni Web)
Corso di laurea dell’insegnamento (specificare anche se triennale o magistrale):
Corso di Laurea Magistrale in Informatica
Codifica: SSD (Settore scientifico disciplinare):
Docente Responsabile: Lorenzo Gallucci
Eventuali altri docenti coinvolti:
Orario di ricevimento: su richiesta
Crediti Formativi (CFU):
Ore di lezione: Ore riservate allo studio individuale:
Ore di laboratorio:
Il corso di studio, per i quali lo stesso costituisce un’attività di base o caratterizzante:
Facoltà competente:
Lingua d’insegnamento:
Anno di corso:
Propedeuticità: Nessuna – E’ tuttavia consigliabile, per via dei contenuti del corso, che
lo studente abbia ben assimilato i contenuti dei precedenti corsi di sviluppo software,
in particolar modo: Programmazione ad Oggetti, Programmazione Avanzata, Basi di
Dati Relazionali
Organizzazione della didattica (lezioni, esercitazioni, laboratorio, ecc.):
Modalità di frequenza (obbligatoria, facoltativa):
Modalità di erogazione (tradizionale, a distanza, mista):
Metodi di valutazione (Prova scritta, orale, ecc): Progettino/Prova scritta/Prova orale
Risultati di apprendimento attesi:Conoscenza approfondita delle architetture multi-
tier, con particolare riferimento a quelle three-tier in ambito Web 2.0. Capacità di
sviluppare e padroneggiare architetture complesse e flessibili usando linguaggi OOP,
con il supporto del paradigma AOP.
Programma/Contenuti:
- Revisione delle conoscenze di OOP e Design by Contract
- Test Driven Development
- Framework per l’Object/Relational Mapping (ORM): Hibernate
- Framework per l’Inversion of Control (IoC): Spring
- Programmazione orientata agli aspetti (AOP) con Spring e AspectJ
- Interfacce utente per il Web 2.0: il Google Web Toolkit
- Applicazioni Web interoperanti, Mashups
Le eventuali attività di supporto alla didattica (tipi e orari):---
Date inizio e termine e il calendario delle attività didattiche:
Il calendario delle prove d’esame:
Bibliografia:
Java Persistence with Hibernate – Manning Ed.
Hibernate Reference Guide
Spring in Action – Manning Ed.
Spring Reference Guide
GWT in Action – Manning Ed.
GWT Reference Guide
Developing with Ext GWT
Insegnamento: ANALISI NUMERICA
Corso di laurea dell’insegnamento (specificare anche se triennale o magistrale):
INFORMATICA Magistrale
Codifica: SSD (Settore scientifico disciplinare):
Docente Responsabile: GUALTIERI MARIA ITALIA
Eventuali altri docenti coinvolti:
Orario di ricevimento: MARTEDI’ 10:30-12:30
Crediti Formativi (CFU):
Ore di lezione: Ore riservate allo studio individuale:
Ore di laboratorio:
Il corso di studio, per i quali lo stesso costituisce un’attività di base o caratterizzante:
Facoltà competente:
Lingua d’insegnamento:
Anno di corso:
Propedeuticità: NESSUNA
Organizzazione della didattica (lezioni, esercitazioni, laboratorio, ecc.):
Modalità di frequenza (obbligatoria, facoltativa):
Modalità di erogazione (tradizionale, a distanza, mista):
Metodi di valutazione (Prova scritta, orale, ecc): PROVA SCITTA+COLLOQUIO
ORALE
Risultati di apprendimento attesi: Conoscenza dei principali metodi di approssimazione e
ricostruzione di curve. Realizzazione di algoritmi in Matlab
Programma/Contenuti: Programmazione in Matlab. Approssimazione continua di
funzioni: interpolazione. Approssimazione mediante curve parametriche. Spline
parametriche. Polinomi di Bernstein. Curve di Bézier. B-Spline.
Le eventuali attività di supporto alla didattica (tipi e orari):
Date inizio e termine e il calendario delle attività didattiche:
Il calendario delle prove d’esame:
Bibliografia: D. Rogers, J, Adams: Mathematical elements for Computer Graphics,
McGraw-Hill, G. Farin Curves and surfaces for computer aided geometric design,
Academic Press, Dispense a cura del docente
Insegnamento: Reti e sicurezza informatica
Corso di laurea dell’insegnamento (specificare anche se triennale o magistrale): Laurea
Magistrale in Informatica
Codifica: SSD (Settore scientifico disciplinare): INF/01
Docente Responsabile: Prof. Giovambattista Ianni
Eventuali altri docenti coinvolti: Dr. Alessandra Martello (Esercitatore)
Orario di ricevimento: Lunedì, h. 15:00-17:00
Crediti Formativi (CFU): 10 (di cui 4 di attività di laboratorio)
Ore di lezione: 48 Ore riservate allo studio individuale: 154
Ore di laboratorio: 48
Il corso di studio, per i quali lo stesso costituisce un’attività di base o caratterizzante:
Facoltà competente: Facoltà di Scienze Matematiche Fisiche e Naturali
Lingua d’insegnamento: Italiano
Anno di corso: 2010-2011
Propedeuticità: Nessuna
Organizzazione della didattica (lezioni, esercitazioni, laboratorio, ecc.): Lezioni frontali,
esercitazioni condotte in laboratorio.
Modalità di frequenza (obbligatoria, facoltativa): obbligatoria
Modalità di erogazione (tradizionale, a distanza, mista): tradizionale
Metodi di valutazione (Prova scritta, orale, ecc): Progetto didattico e prova orale
Risultati di apprendimento attesi:
Capacità di mettere in sicurezza un sistema informatico (distribuito e non) a livello
applicazione, trasporto, rete e link;
Conoscenza delle principali modalità di intrusione nei sistemi informatici e delle relative
contromisure;
Conoscenze delle metodologie e dei sistemi di sicurezza basati su crittografia asimmetrica,
con particolare attenzione ai requisiti di riservatezza e autenticità nella trasmissione dati;
Programma/Contenuti:
Prima parte (Modulo I)
Obiettivo del modulo è di introdurre alcune nozioni di base legate ai requisiti che un sistema
informatico sicuro deve avere. Vengono inoltre illustrati i principali strumenti di crittografia
oggi disponibili.
Lezioni:
Parte I - Internet e Sicurezza
Requisiti di un sistema sicuro: autenticità, riservatezza, garanzia del servizio
Cenni agli algoritmi a chiave simmetrica: DES, 3DES, AES, RC4. Modalità di
cifratura. Generazione di numeri casuali e pseudocasuali.
Cenni agli algoritmi a chiave asimmetrica: RSA
Algoritmi di handshake sicuro: Diffie-Helmann, RSA
Certificati digitali: cenni alle implicazioni legali, autorità di certificazione, PKI.
Funzioni MAC (Message Authentication Code) e Hash.
Cenni ai principali algoritmi MAC e Hash: MD5, SHA.
Firma digitale, Firma di un documento.
Metodologie di autenticazione: RADIUS, Kerberos.
Laboratorio
Implementazione di conversazioni dati riservate
Installazione e messa in opera di un server SSL.
Installazione e messa in opera di una semplice Certification Authority
Generazione coppia chiavi pubblica/privata
Richiesta, Firma e Installazione di certificati digitali
Seconda Parte (Modulo II)
In questo modulo viene ripreso in esame lo stack ISO/OSI (con particolare riferimento allo
stack TCP/IP), discutendo i problemi di sicurezza e riservatezza su ciascun livello.
Richiami alle principali modalità di intrusione e contraffazione: MAC/IP Spoofing,
DNS spoofing. Sniffing, man-in-the-middle. Attacchi DOS.
Sicurezza a livello di rete - protocollo IPsec. Protocollo DNSSec. Proxy servers,
NAT.
Sicurezza a livello di trasporto - protocollo SSL, Virtual Private Networks.
Sicurezza a livello applicazione - HTTPS, POP3/IMAP/SMTP over SSL.
Virus Informatici: Modalità di propagazione, allegati non sicuri, falle di sicurezza,
buffer overflow, trojans, javascript, controlli activeX, modifica di entry point in
codice binario. Tipologie di payload: keyloggers, dialers, web server spoofing,
spyware.
Social engineering, SQL injection e defacing.
LIBRI DI TESTO
SLIDES:
https://www.mat.unical.it/informatica/Reti%20e%20sicurezza%20informatica
Le eventuali attività di supporto alla didattica (tipi e orari): I docenti ricevono negli
orari previsti dalla scheda didattica personale. Sono previste attività di supporto e incontro
con i tutors in base all’orario fissato dal corso di laurea.
Date inizio e termine e il calendario delle attività didattiche:
Il calendario delle prove d’esame:
Bibliografia:
Stallings & Brown. Computer Security: Principles and Practice, Prentice Hall, 2007
William Stallings, Crittografia e sicurezza delle reti, 2/E italiana (corrispondente alla
4/E inglese), McGrawHill, 2007 (http://www.ateneonline.it/stallings/home.asp).
Insegnamento: Informatica Teorica
Corso di laurea dell’insegnamento: Corso di Laurea Magistrale in Informatica
Codifica: SSD: INF/01
Docente Responsabile: prof. Nicola Leone
Eventuali altri docenti coinvolti: Marco Manna
Orario di ricevimento: Lunedi` 17.30
Crediti Formativi (CFU): 10
Ore di lezione: Ore riservate allo studio individuale:
Ore di laboratorio:
Il corso di studio, per i quali lo stesso costituisce un’attività di base o caratterizzante:
Facoltà competente:
Lingua d’insegnamento:
Anno di corso:
Propedeuticità: nessuna
Organizzazione della didattica (lezioni, esercitazioni, laboratorio, ecc.):
Modalità di frequenza (obbligatoria, facoltativa):
Modalità di erogazione (tradizionale, a distanza, mista):
Metodi di valutazione (Prova scritta, orale, ecc): prova scritta + prova orale
Risultati di apprendimento attesi:
La prima parte del corso si propone di fornire le conoscenze di base dell’Informatica
Teorica con particolare attenzione alla teoria della calcolabilità ed alla teoria della
complessità. Al termine, gli studenti saranno in grado di capire cos’è un problema
indecidibile o intrinsecamente difficile ed eventualmente dimostrarne tali proprietà
mediante l’applicazione dei teoremi studiati durante il corso o mediante l’uso di
tecniche basate sulla riduzione tra problemi. Nella seconda parte del corso, l’accento è
posto sulle tecniche per la risoluzione di problemi difficili. Gli studenti saranno,
quindi, in grado di comprendere, formalizzare e risolvere problemi reali adottando di
volta in volta la tecnica più adeguata.
Programma/Contenuti:
Introduzione (problemi ed algoritmi: Reachability, MST, TSP)
Insiemi, relazioni, e linguaggi (insiemi, relazioni, funzioni, grafi, insiemi infiniti,
cardinalità di insiemi infiniti, numerabilità, notazione asintotica, alfabeti,
linguaggi, rappresentazioni finite di linguaggi, automi a stati finiti e linguaggi
regolari, linguaggi context-free)
Macchine di Turing (MT a nastro singolo, MT deterministiche, calcolabilità
secondo Turing, MT multi nastro, MT non deterministiche)
Decidibilità (tesi di Church-Turing, descrizione linearizzata delle MT; TM
universale, il problema della terminazione; Linguaggi indecidibili)
Indecidibilità in logica (assiomi per la teoria dei numeri, indecidibilità ed
incompletezza)
Teoria generale della calcolabilità (Enumerazione di ricorsive, Proprietà di
enumerazioni di funzioni ricorsive, Funzioni non calcolabili, Indecidibilità in
matematica ed informatica, Teoremi di Kleene e di Rice, Insiemi decidibili e
semidecidibili)
Teoria della complessità (Valutazioni di complessità, tipi di problemi,
complessità temporale e spaziale, classi di complessità, teoremi di gerarchia,
Relazioni tra misure di complessità, riducibilità tra problemi)
Trattabilità ed intrattabilità (L, problemi L-completi, NL, problemi NL-completi,
P, problemi P-completi, NP, problemi NP-completi, PH, PSPACE)
Tecniche risolutive per problemi di ricerca difficili (backtracking, backjumping)
Soluzioni efficienti per problemi di ottimizzazione difficili (tecniche greedy,
algoritmi di approssimazione)
Le eventuali attività di supporto alla didattica (tipi e orari):
Date inizio e termine e il calendario delle attività didattiche:
Il calendario delle prove d’esame:
Bibliografia:
Elaine A. Rich. Automata, Computability and Complexity: Theory and
Applications. Addison-Wesley.
Giorgio Ausiello, Fabrizio d’Amore, Giorgio Gambosi. Linguaggi, Modelli,
Complessità. Franco Angeli.
Harry R. Lewis, Christos H. Papadimitriou. Elements of the Theory of
Computation. Prentice Hall PTR.
Christos H. Papadimitriou. Computational Complexity. Addison Wesley.
Sanjeev Arora, Boaz Barak. Computational Complexity: A Modern Approach.
Cambridge University Press.
Carlo Ghezzi, Dino Mandrioli. Informatica Teorica, UTET.
Insegnamento: Algoritmi Paralleli e Sistemi Distribuiti
Corso di laurea dell’insegnamento (specificare anche se triennale o magistrale):
Corso di Laurea in Magistrale in Informatica
Codifica: SSD (Settore scientifico disciplinare):
Docente Responsabile: Dott. William Spataro
Eventuali altri docenti coinvolti:
Orario di ricevimento: giovedì 15:30 – 17 presso studio docente (cubo 22B o 31B)
Crediti Formativi (CFU):
Ore di lezione: Ore riservate allo studio individuale:
Ore di laboratorio:
Il corso di studio, per i quali lo stesso costituisce un’attività di base o caratterizzante:
Facoltà competente:
Lingua d’insegnamento:
Anno di corso:
Propedeuticità: NESSUNA
Organizzazione della didattica (lezioni, esercitazioni, laboratorio, ecc.):
Modalità di frequenza (obbligatoria, facoltativa):
Modalità di erogazione (tradizionale, a distanza, mista):
Metodi di valutazione (Prova scritta, orale, ecc): prova scritta, prova laboratorio,
valutazione progetto.
Risultati di apprendimento attesi: Il corso si propone di fornire agli studenti del Corso
Specialistica di Informatica :
- conoscenze dei fondamenti e aspetti applicativi del calcolo parallelo;
- conoscenze delle tecniche e metodi di progettazione e realizzazione di algoritmi paralleli;
- conoscenza approfondita dei principi, strutture e utilizzo dei sistemi di elaborazione paralleli e, in
particolare, delle Tecniche di Message Passing;
- conoscenza di diversi settori di applicazione del calcolo parallelo e, in particolare, della HPC
(High Performance Computing).
Programma/Contenuti:
TEORIA
Introduzione al Calcolo Parallelo
Scopi, Concetti e Terminologie
Tassonomia di Flynn
Architetture Parallele
Panoramica sulle macchine parallele
Memoria Condivisa (Multiprocessors)
Memoria Distribuita (Multicomputers)
Cache Coherence
Architetture Ibride
Modelli di Programmazione Paralleli
Modello a Threads
Modello a Memoria Condivisa
Modello a Memoria Distribuita
Modelli Data Parallel
Altri Modelli
Disegno di Programmi Paralleli
Parallelizzazione automatica e manuale
Partizionamento
Comunicazioni
Sincronizzazione
Load Balancing
Granularità
I/O parallelo
MPI - Il linguaggio di riferimento per la programmazione in ambienti a memoria distribuita
Concetti Generali
Routine di Gestione Ambiente
Comunicazioni Punto-Punto: MPI_Recv e MPI_Send
Comunicazioni Non-bloccanti
Comunicazioni Collettive
Tipi di Dati derivati
Comunicatori e Gruppi
Topologie virtuali
OpenMP - Il linguaggio di riferimento per la programmazione in ambienti a memoria
condivisa/data parallel
Concetti generali
Loop paralleli
Variabili tipo private
Sezioni critiche
Parallelismo funzionale
Analisi delle Performance
Parallel Overhead
Speedup e Efficienza
Speedup superlineare
Effetto della Granularità sulle Performance
Scalabilità
Legge di Amdahl
Isoefficienza
Algoritmi Paralleli
Calcolo Matriciale
Integrazione numerica
Algoritmi di ricerca e ordinamento
Analisi delle prestazioni di algoritmi paralleli
LABORATORIO
Sviluppo di elementi di software parallelo in ambiente MPI su calcolatori paralleli
Misurazione delle prestazioni
Le eventuali attività di supporto alla didattica (tipi e orari): NESSUNA
Date inizio e termine e il calendario delle attività didattiche:
Il calendario delle prove d’esame:
Bibliografia: - Peter Pacheco, Parallel Programming with MPI. Morgan Kaufmann, 1997
- Ananth Grama et al., Introduction to Parallel Computing, 2/E, Addison-Wesley.
- G. Spezzano, D. Talia “Calcolo parallelo, automi cellulari e modelli per sistemi complessi”,
Franco Angeli, Milano, 1999.
- I. Foster. Designing and Building Parallel Programs. Addison-Wesley, 1995, Versione online
disponibile presso http://www-unix.mcs.anl.gov/dbpp
- Materiale del Docente (Reperibile sul sito web personale)
Insegnamento: Data Warehouse e Data Mining
Corso di laurea dell’insegnamento (specificare anche se triennale o magistrale):
Magistrale in Informatica
Codifica: SSD (Settore scientifico disciplinare):
Docente Responsabile: Giorgio Terracina
Eventuali altri docenti coinvolti:
Orario di ricevimento: Giovedì ore 17.00 e su appuntamento
Crediti Formativi (CFU):
Ore di lezione: Ore riservate allo studio individuale:
Ore di laboratorio:
Il corso di studio, per i quali lo stesso costituisce un’attività di base o caratterizzante:
Facoltà competente:
Lingua d’insegnamento:
Anno di corso:
Propedeuticità: nessuna
Organizzazione della didattica (lezioni, esercitazioni, laboratorio, ecc.):
Modalità di frequenza (obbligatoria, facoltativa):
Modalità di erogazione (tradizionale, a distanza, mista):
Metodi di valutazione (Prova scritta, orale, ecc): Prova scritta e orale
Risultati di apprendimento attesi: Capacità di analisi e progettazione di sistemi per
l’integrazione e per il data warehousing
Programma/Contenuti:
# Introduzione ai database distribuiti
# DDBMS omogenei ed eterogenei: Database Federati, Data Warehouse, Sistemi
Informativi Cooperativi
# Integrazione Intensionale di Schemi di Basi di Dati
# Definizione formale di un sistema di integrazione con gestione di dati incompleti e
inconsistenti
# Specifiche funzionali ed Architettura del sistema INFOMIX
# Frammentazione dei dati e Querying
# Il sistema DLVDB
# Data Warehouse: introduzione e architetture
# Il modello multidimensionale
# Modellazione Concettuale: Il modello DFM
# Progettazione Concettuale: dallo schema ER allo schema di Fatto
# Modellazione logica: Schemi a Stella e Snowflake
# Progettazione logica: dallo schema di Fatto allo schema a Stella.
Le eventuali attività di supporto alla didattica (tipi e orari):
Date inizio e termine e il calendario delle attività didattiche:
Il calendario delle prove d’esame:
Bibliografia: M. Golfarelli, S. Rizzi, “Data Warehouse – Teoria e pratica della progettazione”, McGraw Hill, Seconda edizione H. Garcia-Molina, J. D. Ullman, J. Widom, “Database Systems, the complete book”, Prentice Hall, 2002
Insegnamento: Crittografia e teoria dei codici
Corso di laurea dell’insegnamento (specificare anche se triennale o magistrale):
magistrale in Informatica
Codifica: SSD (Settore scientifico disciplinare):
Docente Responsabile: J. van Bon
Eventuali altri docenti coinvolti:
Orario di ricevimento:
Crediti Formativi (CFU):
Ore di lezione: Ore riservate allo studio individuale:
Ore di laboratorio:
Il corso di studio, per i quali lo stesso costituisce un’attività di base o caratterizzante:
Facoltà competente:
Lingua d’insegnamento:
Anno di corso:
Propedeuticità:
Organizzazione della didattica (lezioni, esercitazioni, laboratorio, ecc.):
Modalità di frequenza (obbligatoria, facoltativa):
Modalità di erogazione (tradizionale, a distanza, mista):
Metodi di valutazione (Prova scritta, orale, ecc): scritto con orale facoltativo
Risultati di apprendimento attesi: Al termine del corso lo studente dovrebbe aver acquisito
padronanza dei concetti aglebrici che formano la base della crittografia e teoria dai codici.
Programma/Contenuti:
Algebra: Cenni di teoria dei nummeri, gruppi, annelli e campi.
Crittografia: RSA, El Gamal, Diffie-Hellman. Logaritmi discreti, Pohlig-Hellman algorithm e
generazione di numeri primi (Miller-Rabin test).
Teoria dei codici (solo se il tempo la permette): Spazi vettoriali e matrici su campi fini, codici lineari,
parity check, syndrome, codici prefetto, codici di Hamming, codici ciclici, codici BCH, codici Reed-
Muller.
Le eventuali attività di supporto alla didattica (tipi e orari):
Date inizio e termine e il calendario delle attività didattiche:
Il calendario delle prove d’esame:
Bibliografia:
J.A. Buchmann, Introduction to cryptography (second edition), Springer Verlag, 2003
R. Hill, A first course in coding theory, Claredon Press, Oxford, 1986
D.R. Stinton, Crypthography, theory and practise, CRC Press, 1995
W. Trappe and L. Washington, Introduction to Cryptography with Coding theory, Prentice Hall,
2005
N. Kobliz, A course in Number Theory and Cryptography, Springer Verlag, 1998
L. Childs, A concrete introduction to higher algebra, Springer Verlag, 1995