Laurea Magistrale in Informatica A.A....
Transcript of Laurea Magistrale in Informatica A.A....
Scopo della Laurea Magistrale in
Informatica Approfondire alcune aree fondamentali
dell’informatica Algoritmi
Calcolabilità
Linguaggi di Programmazione
Fornire conoscenze avanzate in alcune aree con forti competenze locali Intelligenza Artificiale
Linguaggi
Sistemi
Due interi trimestri per una tesi originale, teorica o applicativa
Laurea Magistrale in Informatica
120 CFU in totale
Due insegnamenti obbligatori per tutti (2 10 CFU)
Insegnamenti di informatica
Tre insegnamenti “principali” da 8 CFU (sceglierne almeno 1)
Altri insegnamenti da 6 CFU
Insegnamenti affini (2 x 6 CFU)
Insegnamenti (alcuni mutuati dalla LM in Matematica) di
ambito matematico da 6 CFU
Insegnamento di Bioinformatica da 6 CFU
Tesi (36 CFU + 2 CFU di tirocinio)
12 CFU a libera scelta (ma coerenti)
Corsi obbligatori per tutti
Linguaggi di Programmazione (10 CFU)
Ulteriori paradigmi di programmazione e loro
trattazione generale
Docente: Gilberto Filè
Computabilità e Algoritmi (10 CFU)
Approccio sistematico alla costruzione di algoritmi
efficienti e comprensione dei limiti dell’Informatica
Docenti: Paolo Baldan, Livio Colussi
Insegnamenti nell’area “Intelligenza Artificiale”
Profilo professionale Esperti nello sviluppo e gestione di sistemi adattativi e autonomi
per la soluzione di problemi complessi
Insegnamento da 8 CFU
Intelligenza Artificiale
Insegnamenti da 6 CFU Apprendimento Automatico
Data Mining
Information Retrieval (mutuato dalla LM in Scienze Statistiche)
Sistemi con Vincoli
Analisi Numerica (affine, mutuato da Calcolo Numerico e Programmazione, LM in Astronomia)
Bioinformatica (affine)
Metodi e Modelli per l’Ottimizzazione Combinatoria (affine)
Insegnamenti nell’area “Linguaggi”
Profilo professionale
Esperti di linguaggi e tecniche per lo sviluppo, l’analisi e la
verifica di sistemi complessi
Insegnamento da 8 CFU Analisi Statica e Verifica del Software
Insegnamenti da 6 CFU Algoritmi di Approssimazione
Linguaggi e Modelli per il Global Computing
Linguaggi di Programmazione Avanzati
Crittografia (affine)
Fondamenti Logici dei Linguaggi Funzionali (affine)
Insegnamenti nell’area “Sistemi” Profilo professionale
Esperti nello sviluppo e gestione di sistemi complessi
Insegnamento da 8 CFU
Sistemi concorrenti e distribuiti
Insegnamenti da 6 CFU
Amministrazione di Sistema
Reti Wireless
Sicurezza
Sistemi Real-Time
Sistemi Ipermediali
Tecnologie Web 2
Analisi Numerica (affine, mutuato da Calcolo Numerico e Programmazione, LM in Astronomia)
Crittografia (affine)
Altri insegnamenti
Tecnologie Open-Source
Logica 2 (affine, mutuato da Logica
Matematica 2, LM in Matematica)
I anno I trimestre CFU II trimestre CFU III trimestre CFU
Linguaggi di
programmazione 10 Computabilità e algoritmi 10
Apprendimento
automatico 6
Sistemi concorrenti e
distribuiti 8 Intelligenza artificiale 8
Amministrazione
di sistema 6
Analisi statica e verifica del
software 8 Bioinformatica 6
Linguaggi di
programmazione
avanzati
6
Crittografia 6 Data mining 6 Sicurezza 6
Fondamenti logici dei
linguaggi funzionali 6
Linguaggi e modelli per il
global computing 6 Sistemi con vincoli 6
Sistemi ipermediali 6 Sistemi real-time 6 Tecnologie open-
source 6
Tecnologie Web 2 6
insegnamenti mutuati
I semestre CFU
Analisi Numerica 6
Logica 2 6
II anno
I trimestre CFU II trimestre CFU III trimestre
Algoritmi di
approssimazione 6 TESI
Metodi e modelli per
l'ottimizzazione
combinatoria
6 Corsi a libera scelta 12
Reti wireless 6
insegnamenti mutuati
Information retrieval 6
Risorse
Sito corsi di laurea
http://informatica.math.unipd.it
Siti dei corsi sulle pagine dei docenti
CCS Informatica
Rappresentanti studenti: Gasperin Gianluca
Mularoni Nicola
Pasinato Andrea
Simeoni Alberto
Ziccardi Marco
Area “Intelligenza Artificiale”
Profilo professionale Esperti nello sviluppo e gestione di sistemi adattativi e autonomi
per la soluzione di problemi complessi
Insegnamento principale (8 CFU) Intelligenza Artificiale
Altri insegnamenti (6 CFU) Information Retrieval (mutuato da LM Scienze Statistiche)
Apprendimento Automatico
Sistemi con Vincoli
Bioinformatica (affine)
Analisi Numerica (affine, mutuato da Calcolo Numerico e Programmazione, LM in Astronomia)
Data Mining
Metodi e Modelli per l’Ottimizzazione Combinatoria (affine)
Intelligenza Artificiale
Il corso si propone di fornire nozioni fondamentali su alcuni degli
approcci principali, all'interno della Intelligenza Artificiale, per la
soluzione di problemi difficili
Docenti: Francesca Rossi, Alessandro Sperduti
Apprendimento Automatico
Il corso si propone di fornire le nozioni fondamentali per la
comprensione e la progettazione di sistemi che utilizzano tecniche di
Apprendimento Automatico
Docenti: Fabio Aiolli, Alessandro Sperduti
Apprendimento Automatico
• Concetti fondamentali dell’Apprendimento Automatico
• Apprendimento di concetti, spazio delle ipotesi
• Apprendimento di alberi di decisione
• Boosting
• Valutazione qualità modelli
• Algoritmi di clustering
• Cenni Reti Neurali
• Support Vector Machine
• Apprendimento probabilistico
• Esperienze pratiche in laboratorio
Contenuti del corso
Sistemi con Vincoli
Docente: Francesca Rossi
6 crediti formativi, di cui 1 per progetto
Esame: Scritto
Progetto A gruppi
Nessun vincolo sul linguaggio di programmazione da usare
Sviluppo e test sperimentale di alcuni algoritmi su classi di problemi, o anche studio e confronto tra risolutori esistenti
Sistemi con Vincoli – di cosa tratta
Molti problemi reali si possono modellare con un insieme di vincoli sulle variabili decisionali Orario delle lezioni, sequenzializzazione DNA,
verifica circuiti, allocazione di risorse, sudoku, colorazione mappe, schedulazione attivita’, ecc.
Risolvere un problema: trovare un assegnamento di valori alle variabili che soddisfi tutti i vincoli
Anche con Criteri di ottimizzazione
Preferenze
Più agenti che specificano vincoli/preferenze
Sono tutti problemi difficili (NP hard) in generale Classi trattabili
Algoritmi esatti + euristiche
Algoritmi aprossimati
Sistemi con Vincoli – programma del corso
Nozioni di base dei problemi con vincoli
Come modellare un problema reale con un insieme di vincoli
Tecniche per risolverlo Esatte, approssimate, classi trattabili
Ricerca di una soluzione
Consistenza locale
Vincoli soft e preferenze
Sistemi multi-agente
Sistemi con Vincoli -- materiale
Libro principale: Principles of Constraint Programming, K. Apt, CUP,
2003
Parti di altri libri: Constraint processing, R. Dechter, MK, 2003
Handbook of constraint programming, Elsevier, 2006
Constraint networks, C. Lecoutre, Wiley, 2009
Lucidi delle lezioni
Sito web del corso:
www.math.unipd.it/~frossi/vincoli2013.html
(vincoli2012.html per corso in A.A. appena concluso)
Data Mining Docente: Bruno Scarpa
Il corso intende fornire una panoramica sui concetti e sulle
metodologie per l’analisi di grandi quantità di dati, con particolare attenzione alle applicazioni ai processi di
decisione aziendale
Libri di riferimento:
Data analysis and data mining, A.Azzalini e B.Scarpa, Oxford University Press,
2012
The elements of statistical learning, T.Hastie, R.Tibshirani e J.Friedman,
Springer, 2009
L’insegnamento affiancherà a lezioni frontali esercitazioni in laboratorio con
applicazioni a dati reali.
Data Mining
Contenuti del corso
• L'analisi dei dati: supporto per le decisioni e la Business Intelligence.
• I modelli statistici: la stima e l’adattamento ai dati
• Contrasto tra aderenza ai dati e complessità del modello. Tecniche generali per la selezione del modello (AIC, BIC, insieme di verifica, convalida incrociata, oltre ai test statistici classici).
• Metodi di regressione: regressione parametrica e non parametrica, modelli additivi, alberi, mars, projection pursuit, reti neurali (richiami).
• Metodi di classificazione: mediante regressione parametrica (lineare e logistica), modelli additivi, alberi, polymars, combinazione di classificatori (bagging, boosting, foreste casuali)
• Metodi di analisi interna: nozioni sui metodi di raggruppamento, analisi delle associazioni tra variabili e algoritmo Apriori. Reti sociali (cenni).
Bioinformatica (affine)
Dopo una breve introduzione ai sistemi biologici, il corso sarà suddiviso in quattro parti
principali.
Prima parte: sequenziamento di genomi. Problemi informatici relativi al sequenziamento di
genomi. Algoritmi di allineamento e di “assemblaggio” di sequenze genomiche. Sequenze
ripetute.
Seconda parte: interpretazione dell'informazione genetica. Algoritmi per l'identificazione di
geni. Predizione di elementi funzionali non codificanti proteine.
Terza Parte: annotazione genica e information retrieval. Aspetti generali. Informazioni relative
alla trascrittomica, proteomica, interattomica, genomica comparata, ecc. Integrazione dati e
systems biology.
Quarta parte: Il genoma umano. Polimorfismi e differenze individuali. Sequenziamento di
genomi “personali”: problemi informatici e prospettive.
Docente: Giorgio Valle
DECISION SUPPORT SYSTEM
Metodi e Modelli
per l’Ottimizzazione Combinatoria (affine)
Problema
decisionale
Qual è la migliore
configurazione
delle risorse
disponibili?
Modelli
Variabili decis.
funz. obiettivo
e vincoli
Strumenti
matematici e
algoritmici
Soluzioni del
problema Metodi
trovare la combinazione
ottima dei valori delle variabili
4 D A i r T r a f f i c F l o w M a n a g e m e n t 4 D A i r T r a f f i c F l o w M a n a g e m e n t
Docente: Luigi De Giovanni
MeMOC (A): contenuti del corso
Ripasso e approfondimenti di Ricerca Operativa:
modellazione in programmazione lineare (intera)
metodi del simplesso
tecniche di generazione di colonne
modellazione e ottimizzazione su grafo
Tecniche esatte di Ottimizzazione Combinatoria:
formulazioni in Programmazione Lineare Intera
metodi: Branch & Bound, piani di taglio, Branch & Cut
Meta-euristiche di Ottimizzazione Combinatoria:
tecniche di rappresentazione delle soluzioni
metodi: ricerca di vicinato, algoritmi evolutivi, ibridi
Laboratori
Implementazione con librerie di ottimizzazione (IBM-Cplex)
MeMOC (A): materiali, esame …
Materiali
Dispense fornite dal docente
Approfondimenti su articoli scientifici (in lettura)
Librerie di ottimizzazione IBM Cplex (licenza accademica)
Modalità d’esame
Progetto: implementazione di un metodo per la soluzione di un
problema pratico di ottimizzazione combinatoria
+ Orale: discussione del progetto e di argomenti del corso
Altre info
Docente: Luigi De Giovanni, primo trimestre, 6 crediti (affini)
Sul web
http://www.math.unipd.it/~luigi/courses/metmodoc/metmodoc.html
Area Linguaggi
Profilo professionale
Esperti di linguaggi e tecniche per lo
sviluppo, l’analisi e la verifica di sistemi
software
Linguaggi di programmazione
Linguaggi di Programmazione
Obiettivo gestire la complessità
nella costruzione e nell’analisi
dei sistemi software
• Design di un linguaggio
• Analisi e Verifica dei programmi Metodo
Linguaggi di Programmazione
Obiettivo
• ripensare in profondità alcuni concetti già incontrati
• descrivere e studiare un linguaggio in modo rigoroso/formale
• ragionare sui programmi in modo rigoroso/formale
gestire la complessità
nella costruzione e nell’analisi
dei sistemi software
• Design di un linguaggio
• Analisi e Verifica dei programmi Metodo
Percorso offerto dall’area:
Area Linguaggi: Insegnamenti
Insegnamento da 8 CFU
Analisi statica e Verifica del Software
Insegnamenti da 6 CFU
Linguaggi e Modelli per il Global Computing
Linguaggi di Programmazione Avanzati
Crittografia (affine)
Fondamenti Logici dei Linguaggi Funzionali (affine)
Algoritmi di Approssimazione
Analisi statica e Verifica del Sotware
• Semantica operazionale e denotazionale di programmi.
• Analisi statica di programmi mediante interpretazione astratta.
• Analisi dataflow di programmi.
• Verifica di sistemi software mediante model checking.
• Tool di analisi statica:
Docente: Francesco Ranzato
Linguaggi di Programmazione Avanzati
Tematica: presentare alcune tecniche avanzate dei
moderni linguaggi di programmazione
comprendere, ragionare e
possibilmente valutarle
tecnologia teoria
Docente: Silvia Crafa
Linguaggi di Programmazione Avanzati
1. Mini linguaggio funzionale • Semantica e sistema di tipi per ragionare sul linguaggio
2. Arricchiamo il linguaggio • Riferimenti, eccezioni
• Subtyping, Polimorfismo parametrico, type inference
3. Mini linguaggio ad oggetti: • Featherweight Java, in versione funzionale e in versione imperativa
• Aggiungiamo i thread a Featherweight Java
4. Scala: un mix efficace di paradigma funzionale e OO • A scalable language
• Functions as objects
• Mixins
• Actors
5. Troppi tipi? ….dynamic typing… oppure Contracts!!
tecnologia
teoria
Linguaggi e Modelli per il Global Computing Docente: Paolo Baldan
Global computer
Concorrenza, distribuzione, mobilità, dinamicità, open-endedness
Pb: connettività, sicurezza, flussi di informazione, controllo delle risorse, …
Tumultuosa evoluzione tecnologica: linguaggi, architetture, paradigmi …
Linguaggi e Modelli per il Global Computing
Idea generale:
approccio rigoroso/formale come strumento per dominare la complessità a livello:
Concettuale: Comprendere, classificare, sistematizzare
Pratico
Specifica, progettazione, analisi e verifica di proprietà.
Linguaggi e Modelli per il Global Computing
1. Modellazione di sistemi concorrenti, distribuiti e mobili • Linguaggi classici (Milner Hoare) …
• … ed estensioni (protocolli crittografici, mobilità di codice, ecc.)
2. Correttezza? (“Cosa fa un programma concorrente?)
3. Linguaggi di specifica di proprietà e verifica automatica • Deadlock, fairness, access control, information flow, QoS, …
• Mobility workbench
4. Linguaggi di programmazione • Google Go (concurrency) e ORC (orchestration)
• Rif. ad altri linguaggi (Erlang, Ada, …)
http://www.math.unipd.it/~baldan/Global
Algoritmi di Approssimazione
Obiettivi formativi :
Molti problemi computazionali di interesse pratico non ammettono
algoritmi efficienti per la loro risoluzione. Tali problemi si possono
quindi risolvere soltanto per istanze molto piccole ma non nei casi di
interesse pratico.
Il corso mostra come si possano ottenere algoritmi di
approssimazione i quali calcolano soltanto una "approssimazione"
della soluzione del problema in modo molto più efficiente e risultano
quindi utilizzabili effettivamente nei casi pratici.
Docente: Livio Colussi
Fondamenti logici dei linguaggi
funzionali (affine)
Scopo: fornire una introduzione teorica ai linguaggi
di programmazione funzionali tipati e non tipati.
λ
tipi programmi
logica informatica
ML
Docente: Silvio Valentini
Fondamenti logici dei linguaggi
funzionali
Contenuti:
● ll λ-calcolo tipato semplice, ed i suoi legami con la logica intuizionista ,
● λ-calcoli con sistemi di tipo piu’ generali:
● calcolo con tipi dipendenti, legame con la logica del primo ordine
● calcoli con tipi di secondo ordine, legame con l'aritmetica di Heyting al secondo ordine
● calcoli estremamente potenti che considerano entrambi i sistemi di tipi ed eventualmente anche i tipi induttivamente generati.
● Per tutti tali lambda calcoli si intendono dimostrare il teorema di
normalizzazione e di confluenza, e fornire esempi di applicazione in informatica
teorica.
Crittografia (affine)
Riferimenti: in lingua inglese, www.math.unipd.it/~languasc/Teaching.html
Obiettivi formativi Panoramica sugli aspetti teorici di base
Analisi critica delle applicazioni e dei protocolli crittografici attualmente in uso
Prerequisiti: buona conoscenza del primo corso di Algebra e di Analisi Matematica
Contenuti Analisi della teoria elementare e computazionale dei numeri alla base dei metodi crittografici moderni
Studio dei protocolli di trasmissione sicura delle informazioni
Modalità d’esame scritto (lista di domande su argomenti del corso; no esercizi)
Prospettive occupazionali Scarse nel panorama italiano, ma interesse crescente ove si trattano dati sensibili (telecomunicazioni, banche, PP.AA.)
Nettamente più avanzati i panorami europeo extraitaliano e statunitense
Docente: Alberto Tonolo
46
Area Sistemi
Profilo professionale Esperti in sviluppo, studio, gestione di sistemi complessi
Insegnamento principale da 8 CFU Sistemi Concorrenti e Distribuiti
Altri insegnamenti da 6 CFU Amministrazione di Sistema Analisi Numerica (affine) Crittografia (affine) Reti wireless Sicurezza Sistemi Ipermediali Sistemi Real-Time Tecnologie Web 2
47
Sistemi concorrenti e distribuiti
Obiettivi formativi Acquisire familiarità con le problematiche di concorrenza e
distribuzione nell’analisi, progettazione e realizzazione di sistemi software
Modalità d’esame Progetto (individuale o collaborativo), dimostrazione e
discussione di una relazione tecnica di accompagnamento
Prospettive professionali Si tratta di un argomento fondazionale alla base di molte attività
applicative e di ricerca che includono virtualizzazione, multicore processors e cloud computing
Ambiti di tesi Diversi progetti di ricerca condotti dal docente richiedono forti
conoscenze di SCD
Prevalenza di tesi all’interno di progetti di ricerca
Docente: Tullio Vardanega
48
Sistemi Real-Time
Obiettivi formativi Studiare i fondamenti teorici dello sviluppo e dell’analisi dei
sistemi software soggetti a vincoli temporali
Modalità d’esame Relazione scritta su una specifica applicazione teorico-pratica di
quanto appreso nel corso
Discussione orale
Prospettive professionali Area di conoscenza fondamentale nell’industria dei sistemi
embedded (trasporto, aero-spazio, telecomunicazioni, …)
Ambiti di tesi Diversi progetti di ricerca condotti dal docente richiedono forti
conoscenze di SRT
Prevalenza di tesi all’interno di progetti di ricerca
Spazio per attività applicative e/o divulgative
Docente: Tullio Vardanega
Riferimenti: 1 anno, III trimestre
Web: http://www.math.unipd.it/~conti/teaching.html
Insegnamento ed esame in lingua inglese
Obiettivi Formativi:
Conoscenze di sicurezza di sistema in ambiente linux/win, sicurezza di rete
wireless/wired, web-application security, gestione della sicurezza. Saper aggiornare
autonomamente le proprie competenze nel settore
Prospettive professionali
Responsabile sicurezza sistemi informatici, progettare architettura di sistemi ed
applicazioni sicure, ricerca.
Docente: Mauro Conti
"The protection provided by
encryption is based on the fact
that most people would rather eat
liver than do mathematics"
Bill Neugent
Sicurezza (1/2)
Argomenti
I parte: Computer Security Technology and
Principles; Software Security and Trusted Systems;
Management Issues; Cryptographic Algorithms;
Network Security
II parte: Cutting Edge Research Issues, inclusi
seminari con esperti internazionali
Modalità di esame: Prova Scritta / Presentazione
Tesi:
• Sicurezza/privacy in ambiente wired/wireless
networks, distributed systems, smartphone, social
networks, sensor networks, RFID, cloud computing.
Docente: Mauro Conti Sicurezza (2/2)
51
Sistemi ipermediali (1/2)
Obiettivi formativi Tecnologie e strumenti alla base del progetto di sistemi ipertestuali e
multimediali
Principali tecnologie di codifica, memorizzazione e diffusione di informazioni multimediali (audio, video, immagini).
Argomenti trattati
Le immagini: la percezione visiva, formati standard
GIF, PNG, JPEG, JPEG2000, …
L'audio digitale: la percezione acustica, i formati standard
WAV, MP3, MIDI, …
Il video digitale: la percezione visiva di immagini in movimento, differenza tra video digitale e video analogico, i formati standard
H261, H263, la famiglia MPEG, DivX, Xvid, …
La trasmissione dei dati continui. La suite di protocolli RTSP, RTCP e RTP. Concetto di qualità di sevizio (QoS)
I sistemi operativi per media continui. Gestione delle risorse.
Cenni alla programmazione su SmartPhone.
Docenti: Ombretta Gaggi, Claudio Palazzi
52
Sistemi ipermediali (1/2) Modalità d'esame
Orale oppure progetto o esercizio sperimentale con relazione e
presentazione
Riferimenti
docenti.math.unipd.it/gaggi
Ambiti di Tesi
Progetto e sviluppo di Sistemi Multimediali Complessi
Studio di nuove interfacce multimediali
53
Reti wireless (1/2)
Riferimenti: I Trimestre, www.math.unipd.it/~cpalazzi/retiwireless.html
Insegnamento erogato in lingua INGLESE
Obiettivi formativi
Panoramica dei principali protocolli, sistemi e servizi basati su tecnologia di comunicazione wireless e mobile
Problemi e soluzioni nell’interazione tra protocolli standard di rete e sistemi wireless
Visione critica di prospettive e utilizzo dei sistemi wireless
Modalità d’esame
Progetto su protocolli/applicazioni wireless (anche per smartphones)
Orale sulla parte teorica del corso
Docente: Claudio Palazzi
54
Reti wireless (2/2) Mobile lab
Progetto su smartphone (Android, iPhone, Symbian)
Prospettive professionali
Conoscenza critica delle problematiche d’uso di sistemi wireless e capacità di proporre soluzioni allo stato dell’arte
Ambiti di tesi
Proposta e analisi di nuovi protocolli di rete per contesti wireless o ibridi
Realizzazione di servizi Web Squared basati sull’integrazione Web con dispositivi pervasivi (es. smartphone)
55
Tecnologie Web 2
Obiettivi formativi
Panoramica introduttiva delle principali tecnologie web di livello avanzato AJAX, Semantic Web, Web 2.0, Social Web, …
Modalità d’esame
Scritto, orale a soglia minima
Docente: Massimo Marchiori
56
Uno sguardo sul resto
Amministrazione di sistema Introduzione al service management
Tematica di notevole rilevanza professionale e applicazione trasversale
Già oggetto di diverse tesi di laurea (relatore Vardanega)
Tecnologie open-source Visione critica sul mondo del F/OSS: genesi, applicabilità, prospettive,
criticità
Tematica di rilevanza strategica ma con ancora contenute ricadute
occupazionali
Docente: Francesco Clabot
Docente: Francesco Tapparo