Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata...

29
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)

Transcript of Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata...

Page 1: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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)

Page 2: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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)

Page 3: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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

Page 4: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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

Page 5: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

- 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

Page 6: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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

Page 7: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

- 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/

Page 8: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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

Page 9: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

Kaufmann, 2008

Page 10: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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.

Page 11: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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:

Page 12: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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.

Page 13: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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

Page 14: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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.

Page 15: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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:

Page 17: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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

Page 18: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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

Page 19: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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:

Page 20: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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).

Page 21: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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

Page 22: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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.

Page 23: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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)

Page 24: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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

Page 25: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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)

Page 26: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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.

Page 27: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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

Page 28: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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:

Page 29: Insegnamento: Sistemi Intelligenti - unical.it · Logica a Informatica (Andrea Asperti, Agata Ciabattoni ), McGraw-Hill, 1997 Foundations of Databases (Serge Abiteboul, Richard Hull,

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