Algoritmi e strutture dati II
Giancarlo Mauri
III anno
1 modulo
Obiettivi
Il corso si prefigge di presentare alcune tecniche speciali di elaborazione, in particolare in relazione
a problemi complessi di ottimizzazione, apprendimento e controllo, affrontandone sia gli aspetti
teorici che i risvolti applicativi.
Contenuti
1.
Oltre l’NP-completezza: soluzione approssimata di problemi di ottimizzazione classi di
approssimazione, ottimizzazione stocastica, tecniche di ricerca locale (algoritmo di Metropolis,
annealing simulato).
2.
Programmazione evolutiva: teoria degli algoritmi genetici, operatori e parametri critici, esempi
e applicazioni a problemi reali, prospettive e limiti.
3.
Reti neurali: il paradigma connessionista; l'ispirazione biologica; il percettrone senza e con
strati nascosti; cenni ad altri modelli; dinamica delle reti neurali; apprendimento nelle reti
neurali; parametri critici, esempi e applicazioni a problemi reali, prospettive e limiti
4.
Apprendimento automatico: .modelli formali, tecniche e strategie di base, strumenti e
applicazioni; ambienti software per il learning; tecniche di learning debole e boosting.
5.
Teoria computazionale dell'apprendimento: confronto tra modelli formali (modello PAC e
varianti, modelli bayesiani)
6.
Tecniche fuzzy e loro applicazioni
7.
Sviluppi futuri: computazione quantistica e computazione molecolare.
Libri di testo
M. Mitchell, Introduzione agli algoritmi genetici, Apogeo
T. Mitchell, Machine Learning, McGraw Hill
Modalità di esame
L’esame consiste in una prova orale, che include la discussione di un progetto realizzato dallo
studente, anche in gruppo con altri, con l’uso delle tecniche presentate nel corso.
Carico didattico
Il corso comporta 32 ore di lezione e circa 120 ore di studio individuale e preparazione del progetto
(= 6 crediti).
Analisi Numerica
Prof. Alessandro Russo
a.a. 2002-3
Durante il Corso di Analisi Numerica verranno approfonditi alcuni argomenti
del Corso di Calcolo Numerico, con particolare riferimento ai metodi
iterativi per i sistemi lineari e ai metodi adattivi per l'approssimazione di
equazioni differenziali.
Architetture (Tecnologie Informatiche per la Comunicazione)
Crediti: 6
Conoscenze: Inquadramento e stato dell’arte delle tecnologie per la comunicazione tramite Web.
Concetti di linguaggi di markup, elementi fondamentali dello standard XML, metodi per la
progettazione di applicazioni XML
Abilità: Valutare diverse tecnologie per la costruzione di applicazioni Web, progettare e
implementare sistemi client server molto semplici in ambiente Web fisso. Costruire i DTD e i
documenti XML. Usare le tecnologie relative ad XML per la costruzione di applicazioni per la
gestione di documenti in Internet.
Docente/i: H. LeVan
Programma:
1)
Introduzione, motivazioni, Internet, Web technologies, Web Services, modelli
architetturali
2)
Linguaggi di markup
3)
Introduzione al linguaggio HTML
4)
Elementi fondamentali di XML - Costruzione di DTD e documenti XML
5)
Programmazione con XML – Il modello DOM
6)
Costruzione di applicazioni client-server con servlet
7)
Applicazioni con XML e database
Testi consigliati:
1) Harvey M. Deitel et al., XML Corso di programmazione, Agogeo (orig. XML How to
Program, Prentice Hall), 2001
2) St Laurent and Cerami, Building XML Application, McGraw Hill, 1999
3) Harvey M. Deitel et al., Internet & WWW – How to Program, Prentice Hall, 2000
Modalità di esame:
Progetti e prova scritta
Link al corso: http://linux.disco.unimib.it/~levan/corsoXML
Elaborazione delle immagini AA 2002/03 (1 semestre)
Raimondo Schettini - [email protected]
Il corso ha l'obiettivo di fornire i fondamenti teorici e pratici per l’elaborazione delle immagini
Contenuti del corso
•
Acquisizione di immagini
•
Percezione, colorimetria e riproduzione di immagini
•
Operazioni su immagini, miglioramento, filtraggio e restauro
•
Estrazione di regioni Estrazione dei contorni
•
Descrizione di regioni e contorni.
•
Classificazione e riconoscimento.
•
Casi studio ed applicazioni (Ricerca per contenuto in database di immagini, videosorveglianza, fotografia digitale,...)
Homepage del corso
http://www.itim.mi.cnr.it/Staff/Schettini/corsoEI-2002-3/index.htm
Fisica Generale 1 ( Complementi )
Crediti : 6
Conoscenze : Padronanza dei concetti base relativi ai fenomeni oscillatori e ondulatori sia in
meccanica sia in elettromagnetismo. Abilita` : Analisi e soluzione di semplici problemi riguardanti
la fisica dei fenomeni oscillatori e ondulatori. Docente : Mirella Enriotti Programma : - Oscillazioni
meccaniche ( l'oscillatore armonico semplice; l'oscillatore armonico smorzato. L'oscillatore
armonico forzato. Il fattore di qualita`. La risonanza. Spazio delle fasi : introduzione) - Oscillazioni
elettromagnetiche ( il circuito LC, il circuito RLC in serie. Circuiti in c.a. Analisi energetica :
potenza attiva e reattiva.) - Onde meccaniche e onde sonore ( derivazione dell'equazione d'onda
unidimensionale e studio delle soluzioni. Onde viaggianti e onde stazionarie. Pacchetti d'onda e
analisi di Fourier. Dispersione : velocita` di fase e di gruppo. L'energia in un'onda meccanica.) Onde elettromagnetiche ( le equazioni di Maxwell in forma locale; derivazione dell'equazione
d'onda. Studio delle onde piane e sferiche. Analisi energetica : il teorema di Poynting ) - Elementi di
ottica fisica ( interferenza e polarizzazione ). Testi consigliati : D. Halliday, R. Resnick, K.S. Krane
Fisica 1 & 2 (C.E.A.) La Fisica di Feynman (Zanichelli) R. Baierlein Newtonian dynamics (
McGraw Hill) A.P. French Vibration and waves (Chapman & Hall) G. Bekefi, A.H. Barrett
Electromagnetic vibrations, waves and radiation (MIT Press) Modalita` di esame : l'esame consiste
di una prova scritta che prevede domande a risposta multipla su tutto il programma svolto.Durante il
corso gli studenti sono periodicamente invitati a svolgere alcuni problemi a casa. Al momento della
valutazione finale si tiene conto dei risultati positivi.
FISICA GENERALE II
Corso del IV anno del Vecchio Ordinamento
Corso del I anno della Laurea Specialistica
Secondo modulo - Elettricitá e Magnetismo, Ottica
Introduzione - Nozione di misura in Fisica. La legge fisica.
La carica elettrica e la legge di Coulomb. – La carica elettrica. Conduttori
e isolanti. La legge di Coulomb. La carica e’ quantizzata. La carica si
conserva.
Il campo elettrico. - Il campo elettrico E di cariche puntiformi. Le linee
di forza. Campo elettrico generato da distribuzioni continue. Carica
elettrica puntiforme in un campo elettrico. Dipolo.
La legge di Gauss. – Il flusso di un campo vettoriale. Il flusso del campo
elettrico. La legge di Gauss. Un conduttore carico isolato. Applicazioni
della legge di Gauss. Prove sperimentali della legge di Gauss e della legge
di Coulomb.
Il potenziale elettrico. – Le forze elettrostatiche. L’energia potenziale
elettrica. Il potenziale elettrico. Calcolo del potenziale dato il campo.
Esempi di calcolo del potenziale elettrico. Superfici equipotenziali. Il
calcolo del campo dato il potenziale. Il conduttore isolato.
Condensatori e dielettrici. – La capacita’ di un conduttore. Calcolo della
capacita’. Condensatori in serie e in parallelo. L’energia immagazzinata
in un campo elettrico. Condensatore con dielettrico.
Corrente e resistenza. – Correnti elettriche. Densità di corrente.
Resistenza, resistività, conducibilitá. La legge di Ohm. Trasferimenti di
energia in un circuito elettrico.
Circuiti in corrente continua (DC). – La forza elettromotrice. Calcolo
della corrente in una singola maglia. Differenze di potenziale. Resistori in
serie e in parallelo. Circuiti a molte maglie: leggi di Kirckoff. Circuiti
RC: la costante di tempo.
Il campo magnetico. – Il campo magnetico B. La forza magnetica su una
carica in moto. Cariche in moto circolare. L’effetto Hall. Forza
magnetica agente su una corrente. Momento agente su una spira percorsa
da corrente. Il dipolo magnetico.
La legge di Ampére. – La legge di Biot-Savart. Esempi di applicazioni.
Le linee di forza di B. Due conduttori paralleli. La legge di Ampére.
Solenoidi e toroidi.
La legge dell’induzione di Faraday. - Gli esperimenti di Faraday. La
legge di Faraday. La legge di Lenz. Forze elettromotrici derivanti dal
moto. Campi elettrici indotti.
Proprietá magnetiche della materia. - (Cenni.)
L’induttanza. - L’induttanza. Calcolo dell’induttanza. Circuiti RL.
Energia immagazzinata nel campo magnetico. Oscillazioni in un circuito
LC: trattazioni qualitativa e quantitativa.
Circuiti in corrente alternata. - Le correnti alternate. Il circuito RLC
serie: descrizione del comportamento con l’uso dei fasori. Potenza nei
circuiti in corrente alternata.
Le equazioni di Maxwell. - Le equazioni fondamentali dell’elettromagnetismo. Campi magnetici indotti e corrente di spostamento. Le equazioni
di Maxwell in forma integrale. Forma differenziale delle equazioni di
Maxwell.
Onde elettromagnetiche. - Lo spettro elettromagnetico. Generazione di
un’onda elettromagnetica. Onde elettromagnetiche ed equazioni di
Maxwell. Trasporto di energia e vettore di Poynting.
La natura e la propagazione della luce. - La luce visibile. La velocitá
della luce. L’effetto Doppler per la luce.
Riflessione e rifrazione sulle superfici piane. - Ottica geometrica e ottica
ondulatoria. Riflessione e rifrazione. Principio di Huygens. Derivazione
della legge della riflessione. Formazione dell’immagine su specchi piani.
Derivazione della legge della rifrazione. Riflessione totale.
Specchi sferici e lenti. - Specchi sferici. Superfici rifrangenti sferiche.
Lenti sottili. Cenno ai sistemi ottici composti e agli strumenti ottici.
Interferenza, Diffrazione, Polarizzazione. - (Trattazione elementare.)
Luce e Fisica dei quanti. - Radiazione termica. Legge dell’irraggiamento
di Planck. Quantizzazione dell’energia. L’effetto fotoelettrico. La teoria
dei fotoni di Einstein.
La natura ondulatoria della materia. - L’onda di De Broglie. Esperimenti
sull’ipotesi di De Broglie.
La struttura dell’atomo d’idrogeno. - La teoria di Bohr (cenni).
Testo di riferimento
Resnik, Halliday, Krane - FISICA 2 - Casa Editrice Ambrosiana
FISICA GENERALE II
Corso del IV anno del Vecchio Ordinamento
Corso del I anno della Laurea Specialistica
Primo modulo - Elettronica digitale
Introduzione - Sistemi numerici e codici.
Circuiti digitali - Elementi logici. Famiglie logiche.
Logica combinatoria - Principi di Progetto di Logica Combinatoria.
Progetto di Logica Combinatoria con PLD.
Logica sequenziale sincrona - Principi di Progetto della Logica
Sequenziale Sincrona. Progetto di una logica sequenziale sincrona con
macchine a stati. Esempi di progetto di macchine sequenziali sincrone.
Progetto di Logica Sequenziale sincrona con PLD (con uso di linguaggi
evoluti). Limiti di velocità dei sistemi sequenziali sincroni (metastabilità).
Logica sequenziale asincrona - Elementi.
Logica cablata versus logica programmata - I microcontrollori. Esempio
di progetto di un sistema a microcontroller con l’uso dell’assembler.
La progettazione del silicio - Gli ASIC.
Aspetti pratici della progettazione digitale.
Testo di riferimento:
J. F. Wakerly - “DIGITAL DESIGN – Principles and Practices” - Prentice Hall Int
Fondamenti Logico-Matematici dell'Informatica (Complementi)
Crediti: 6
Conoscenze: Il corso si propone di analizzare alcuni argomenti di logica matematica legati alla
teoria della dimostrazione in logiche non classiche (intuizionismo e logiche modali). Verranno
presentati per tali logiche sistemi deduttivi a tableaux.
Abilità: Si prevede che lo studente acquisisca capacità nel sintetizzare algoritmi, nella
formalizzazione e costruzione di dimostrazioni e loro verifica.
Docente: Ugo Moscato
Programma:
1.
Riepilogo dei principali risultati del corso di Logica Matematica I.
2.
Sintesi logica degli algoritmi
3.
Introduzione alla logica intuizionista; sintassi a tableaux e semantica con modelli di Kripke.
4.
Teoremi di validità e completezza.
5.
Introduzione alla logica modale S4; sintassi a tableaux e semantica con modelli di Kripke.
6.
Teoremi di validità e completezza.
7.
Rapporti fra S4 e la logica intuizionista
8.
Cenni a estensioni dell'intuizionismo e di S4.
Testi consigliati: verranno segnalati durante il corso
Modalità di esame: l’esame consiste in una prova scritta propedeutica all'ammissione alla prova
orale.
Link al corso: Fondamenti Logico-Matematici dell'Informatica (Elementi)
Fondamenti Logico-Matematici dell'Informatica (Complementi)
Crediti: 6
Conoscenze: Il corso si propone di analizzare alcuni argomenti di logica matematica legati alla
teoria della dimostrazione in logiche non classiche (intuizionismo e logiche modali). Verranno
presentati per tali logiche sistemi deduttivi a tableaux.
Abilità: Si prevede che lo studente acquisisca capacità nel sintetizzare algoritmi, nella
formalizzazione e costruzione di dimostrazioni e loro verifica.
Docente: Ugo Moscato
Programma:
1.
Riepilogo dei principali risultati del corso di Logica Matematica I.
2.
Sintesi logica degli algoritmi
3.
Introduzione alla logica intuizionista; sintassi a tableaux e semantica con modelli di Kripke.
4.
Teoremi di validità e completezza.
5.
Introduzione alla logica modale S4; sintassi a tableaux e semantica con modelli di Kripke.
6.
Teoremi di validità e completezza.
7.
Rapporti fra S4 e la logica intuizionista
8.
Cenni a estensioni dell'intuizionismo e di S4.
Testi consigliati: verranno segnalati durante il corso
Modalità di esame: l’esame consiste in una prova scritta propedeutica all'ammissione alla prova
orale.
Fondamenti Logico-Matematici dell'Informatica (elementi)
Crediti: 6
Conoscenze: Nella parte istituzionale del corso verranno esaminati i concetti fondamentali della
logica proposizionale e del prim'ordine, sia sul piano sintattico che su quello semantico. Nella parte
monografica, verranno sviluppate le corrispondenze tra dimostrazioni formalizzate in sistemi di
logica costruttiva e programmi funzionali con tipi da un lato, e tra tipi o formule ed oggetti in
opportune categorie. Questa parte del corso si propone di servire come prima introduzione ad un
insieme di problematiche che sono alla base di molte ricerche nell'ambito della sintassi e della
semantica dei linguaggi di programmazione funzionali con tipi.
Abilità: Lo studente acquisterà familiarità con le principali tecniche di formalizzazione della
deduzione, e con alcuni comuni metodi di dimostrazione (in particolare, il principìo di induzione
matematica). La parte monografica del corso introdurrà lo studente alla teoria delle categorie, un
linguaggio usato largamente nella ricerca teorica recente.
Docente: Felice Cardone
Programma:
1.
2.
3.
4.
5.
6.
Logica proposizionale classica: linguaggio e calcolo della deduzione naturale.
Semantica mediante tavole di verità e tableaux.
Teorema di completezza.
Logica dei predicati: linguaggio e calcolo della deduzione naturale.
Cenni sui tableaux e la nozione di interpretazione di un linguaggio predicativo.
Parte monografica: Il frammento positivo del calcolo proposizionale intuizionista. Calcolo
dei sequenti e teorema di eliminazione del taglio. Relazioni con le categorie cartesiane
chiuse e il lambda-calcolo con tipi semplici.
Testi consigliati:
Per la parte istituzionale: Gabriele Lolli: Introduzione alla Logica Formale, il Mulino, Bologna,
1991.
Si vedano anche:
Jeremy Avigad, Logic and Computation, Lecture Notes, Carnegie Mellon University, 2001,
http://www.andrew.cmu.edu/~avigad/Teaching/landc_notes.pdf
Nuel Belnap, Notes on the Art of Logic, University of Pittsburgh, 1998,
ftp://ftp.pitt.edu/users/b/e/belnap/Main Text of NAL.pdf
Per la parte monografica:
1.
Andrea Asperti e Giuseppe Longo: Categories, Types and Structures, MIT Press, Foundations
of Computing Series, 1991, capitolo 8. http://www.di.ens.fr/users/longo/download.html
2.
Magnan, F. & Reyes, G. E.: Category Theory as a Conceptual Tool in the Study of Cognition.
In J. Macnamara & G. E. Reyes (Eds) The Logical Foundations of Cognition. Oxford
University Press, New York, pagg. 57-90
http://www.aminet.org/doc/techreports/mcgill.ca/math/reyes/cognitio.ps
Modalità di esame: Due compiti scritti durante il corso e una eventuale prova orale con la
possibilità di approfondire argomenti particolari attraverso pubblicazioni di ricerca concordate con
il docente.
Informatica applicata (Bioinformatica)
Crediti: 6
Conoscenze:
il corso si propone di introdurre lo studente ad un recente settore di applicazione dell'Infomatica
noto come Bioinformatica o Biologia Computazionale:
questa nuova disciplina è nata dalla crescente necessità nell'ambito della Biologia Molecolare di
sviluppare adeguati strumenti computazionali per la
soluzione di molteplici problemi, principalmente derivanti dall'analisi di sequenze biologiche
(DNA, RNA). L'obiettivo principale del corso è quello
di fornire allo studente le conoscenze algoritmiche per poter affrontare la soluzione e lo studio di
problemi classici su sequenze, grafi ed alberi in Bioinformatica.
Abilità:
capacità di disegnare algoritmi esatti o approssimanti per la soluzione di semplici problemi di
ottimizzazione su sequenze, alberi e grafi che vengono utilizzati per risolvere problematiche in
bioinformatica. Capacità di utilizzo dei programmi disponibili in rete per lo studio delle sequenze
biologiche (DNA, RNA).
Docente: Paola Bonizzoni
Programma:
1.Introduzione alla biologia computazionale: motivazioni e metodologie.
2.Nozioni introduttive di teoria degli algoritmi: problemi NP-completi, problemi di ottimizzazione,
algoritmi di approssimazione.
3.La ricerca di un pattern in un testo: il problema generale del matching esatto.
4.Gli alberi suffisso e la loro applicazione nella ricerca di ripetizioni nelle sequenze biologiche.
Palindromi, ripetizioni e tandem repeats: algoritmi.
5.L'importanza del confronto di sequenze biologiche. La distanza di edit tra due sequenze.
Allineamento di due sequenze, allineamento multiplo di
sequenze. La programmazione dinamica per la costruzione dell'allineamento. Allineamento con
alberi.
6.Alberi evoluzionari. Ricostruzione della storia evolutiva di specie con alberi evoluzionari:
metodi principali.
7.Riarrangiamento genomico. La ricostruire dell'evoluzione genomica tramite lo studio di
problemi combinatori di ordinamento. Ordinamento per
inversione e trasposizione: algoritmi e complessità
8. Le banche dati e i principali programmi per il confronto sequenze e la ricostruzione di alberi
evoluzionari (FAST, BLAST, PHYLIP).
Testi consigliati:
D. Gusfield Algorithms on Strings, Trees and Sequences: Computer Science and Computational
Biology. Cambridge Univ. Press. 1997
J. Setubal, J. Meidanis, Introduction to Computational Molecular Biology, PWS, 1997.
Altro materiale: appunti del docente.
M. Attimonelli, G. Pesole, E. Quagliarello, E.C. Saccone Principi di Bioinformatica Editore
Gnocchi, 1997.
Appunti distribuiti dal docente.
Modalità di esame:
L'esame consiste nello svolgimento di homework o di un progetto da concordare individualmente.
Link al corso:
http://bioinformatics.bio.disco.unimib.it/~bonizzoni/corso_bioinformatica.html
INFORMATICA APPLICATA
BUSINESS INTELLIGENCE
Crediti: 6
Conoscenze: Lo studente apprenderà i modelli computazionali e le architetture software impiegate
nell’ambito della Business Intelligence. In particolare, verranno affrontate problematiche di
Customer Relationship Management (CRM) quali a titolo esemplificativo: customer profiling,
customer segmentation, cross-selling, protezione da intrusioni software, ricerca semantica
dell’informazione in ambiente WEB, call center management, ... Il corso è organizzato in modo
tale da fornire dapprima una concettualizzazione architetturale, una formulazione in termini
algoritmico-computazionali per giungere fino al corrispondente deplyement software della
problematica affrontata. Le metodologie di base che verranno apprese includono il Text Mining
ed il WEB Mining.
Abilità: Lo studente acquisirà competenze specifiche che lo porranno in grado di formulare e
risolvere problemi di Business Intelligence, ed in termini operativi, di progettare ed
implementare algoritmi e sistemi software per la gestione delle relazioni con i clienti on-line,
l’analisi di dati aziendali e le decisioni di marketing in condizioni di incertezza.
Docente: Stella
Programma:
1. Introduzione
- Motivazioni
- Prospettive
- Customer Relationship Management
4. Text Mining
- Preprocessing
- Importazione e lettura
- Customer profiling
- Parsing e stemming
- Segmentation e cross selling
- Feature selection e construction
- Antiintrusione
- Learning
- WEB information retrieval
- Classificazione supervisionata
- WEB structure analysis
- Reti di neuroni artificiali
- Call center management
- Support Vector Machines
2. Classificazione
- Introduzione
- Classificazione supervisionata
- Classificazione binaria
- Performance Evaluation
- Recall
- Precision
- Precision Recall Break Even Point
- Classificazione multiclasse
- Tasso di errore
- Modello concettuale di sistemi di
classificazione
- Teoria Bayesiana delle Decisioni
- Regola di decisione Bayesiana
- Classificazione a minimio tasso di errore
5. Progettazione ed Implementazione
- Accuratezza e
Precisione
- Hold Out
- K-folds cross validation
- Sensitivity e Specificity
- Sistemi Software
- Matlab
- Funzioni di perdita
- Precision Recall Break Even Point
3. Modelli Computazionali
- Reti di Neuroni
Artificiali
- Feedforward neural networks
- Bayesian confidence propagation neural
networks
- Polyanalyst
6. Casi di Studio
- Personal Mail Assistant
- Call Center Management
- Customer Profiling
- Antiintrusione
- Customer Segmentation
- Cross Selling
- Support Vector
Machines
- Linear Hard-Limit
- Soft Limit
- Non Linear
Testi consigliati:
Slide del docente
Modalità di esame:
Progetto software e discussione orale
Link al corso:
www.cnds.disco.unimib.it
Informatica applicata (Data Mining)
Crediti: 6
Conoscenze: Lo studente apprenderà i principali metodi di determinazione strutturale per la
costruzione di reti causali, attraverso gli algoritmi più noti, e i principali algoritmi inferenziali.
Inoltre apprenderà metodi atti alla risoluzione di problemi di classificazione, con esempi tratti
da vari contesti applicativi, e metodi per la modellizzazione di fenomeni multivariati.
Abilità: Lo studente acquisirà competenze specifiche che lo porranno in grado di affrontare e
risolvere, in termini operativi, problemi di classificazione, supevisionata e no, e di
modellizzazione di fenomeni attraverso metodi di regressione e di reti neurali. Inoltre, lo
studente apprenderà l’uso di software specifici, come Hugin, Genie, MLC**, Weka, BNPS e
JMP, Matlab .
Docente: Enrico Fagiuoli
Programma:
1. Algoritmi per inferenza su reti Bayesiane
-
4. Classificazione non supervisionata:
metodi di Clustering
-
Definizioni
- Algoritmo di Pearl per reti singolarmente
connesse
- Metodi di clustering e conditioning per
reti a
-
Software per inferenza: Hugin, Genie
2. Learning strutturale di reti
-
Metodi di aggregazione: distancebased (K-means, K-medoids)
-
connessione multipla
Metodi simulativi: Gibbs sampler
Trattamento di variabili continue,
nominali, binarie, ordinali
-
- Metodo di Lauritzen- Spiegelhalter per
reti a
-
-
-
connessione multipla
5.
Generalità
Metodi gerarchici: Ward
Metodi probabilistici: finite mixtures,
EM, metodi di densità.
Software per clustering_ JMP.
Modelli regressivi multivariati:
complementi
-
Distribuzioni t e F
Analisi della varianza
-
Algoritmo di Cheng
-
-
Software per learning e analisi: BNPC.
-
3. Classificazione supervisionata
-
Analisi dei residui: normal quantile
plot, Kolmogorov-Smirnov, ShapiroWilk
Analisi degli outliers: residui
studentizzati, D di Cook
-
Naive Bayes
Metodi risolutivi: OLS, WLS
-
Test per lack of fit
Tree augmented Naive Bayes
- Cenno alla teoria delle probabilità
imprecise
-
-
-
Collinearità: componenti principali,
VIF.
Classificatori credali:
-
Software per regressione: JMP.
Naive Credal classifier
6.
Reti neurali
Tree-augmented Credal classifier
- Learning strutturale mediante algoritmo
di ChowLiu
-
Multi net classifier
-
Software per classificazione: MLC**,
Weka, BNPP
Generalità
-
Software per reti neurali: Matlab
Testi consigliati: Slide pdf disponibili sul sito
Modalità di esame: Applicazione a casi di studio delle tecniche apprese (con report dei risultati) e
prova orale
Link al corso: www.cnds.disco.unimib.it
UNIVERSITÀ DEGLI STUDI DI MILANO- BICOCCA
CORSO DI LAUREA E DIPLOMA IN INFORMATICA
INFORMATICA APPLICATA (INFORMATICA MEDICA)
2° SEMESTRE
Docente: prof. Francesco Sicurello
Programma
1. Concetti di Informatica Medica
-
Dati, informazioni e conoscenza in medicina
-
Nomenclatura medica e il problema della codifica
-
Sistemi di classificazione in medicina (ICD9-CM,SNOMED, ecc.)
2. Record medico e Patient Data Card
-
Libretto sanitario individuale
-
Cartelle cliniche
-
Schede ambulatoriali
-
Multimedialità del record medico
-
Tecnologie di smart card
3. Data base clinico-sanitari
-
Archivi di reparto
-
Archivi di laboratorio
-
Archivi ambulatoriali
-
Archivi radiologici
-
Archivi del medico di base
-
Archivi epidemiologici
4. DBMS e ambienti di sviluppo orientati al mondo sanitario
-
Relazionalità e gerarchicità
-
Struttura data base clinici
-
Data base multimediali
-
Generatori di applicazioni sanitarie
-
4 GL (es. M – SQL)
-
Programmazione ad oggetti in Informatica Medica
5. Sistemi informativi in medicina
-
Sistemi informativi ospedalieri
-
Sistemi informativi clinici
-
Sistemi informativi in radiologia (PACS/RIS)
-
Workstation cliniche multimediali
-
Sistemi informativi sanitari (ASL, distretti, epidemiologici)
6. Telemedicina e Internet in sanità
-
Definizione e applicazioni di telemedicina
-
Teleconsulto/telediagnosi medica
-
Telemonitoraggio/teleassistenza sanitaria
-
Sistemi di Telemedicina in: Telecardiologia, teleradiologia, telepatologia,ecc.
-
Siti web in medicina e portali in sanità (es. Neuroweb)
-
Motori di ricerca orientati alle specialità mediche
7. Analisi Dati e Intelligenza Artificiale in medicina
-
Elementi su metodi statistici in bio-medicina ed epidemiologia
-
Software statistici in bio-medicina
-
Reti neurali e loro applicazioni in campo medico
-
Cenni su data mining
-
Conoscenza e strutturazione del sapere medico
-
Rappresentazione della conoscenza medica
-
Sistemi esperti in medicina
-
Integrazione di sistemi di basi di dati e di conoscenza medica
8. Interrelazione ed integrabilità tra Informatica Medica, Bio e Neuroinformatica
-
Banche dati genomiche
-
Record medico ed informazioni genomiche
-
Aspetti di neuroinformatica
Complementi di Ingegneria del Software
Laurea Specialistica
(6 crediti)
professore Mauro Pezzè
a.a. 2002-2003
________________________________________________________________________________
Programma del corso
o
La gestione del processo di sviluppo del software
o
Modelli avanzati di sviluppo
o
Specifica dei requisiti: scelte e compromessi
o
Progetto e architetture software
o
Controllo di qualità del software
o
Manutenzione, evoluzione e re-ingegnerizzazione
________________________________________________________________________________
Libri consigliati
Ian Sommerville
Software Engineering
6th edition
Addison Wesley, 2001
Hans Van Vliet
Software Engineering
2nd edition
John Wiley,2000
Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli
Fundamentals of Software engineering
2nd edition
Prentice Hall, 2003
________________________________________________________________________________
Modalità d’esame
Da definire
________________________________________________________________________________
INTELLIGENZA ARTIFICIALE
Crediti: 6
Conoscenze: Nozioni di base di Logica. Programmazione Object Oriented. Architetture di sistemi.
Data Base.
Abilità: Tecniche principali di problem solving; analisi e realizzazione di sistemi tecnologici basati
sulla conoscenza.
Docente: Stefania Bandini
Programma:
Il corso di Intelligenza Artificiale si articola in tre parti.
Prima Parte – Introduzione all’Intelligenza Artificiale classica
-
Storia dell’Intelligenza Artificiale e relazioni con altre discipline (con particolare
riferimento alle Scienze Cognitive, e alla Computer Science)
-
Metodi per il problem solving: algoritmi e euristiche
-
Rappresentazione della conoscenza: conoscenza e ragionamento logico; strutture di
rappresentazione e metodi inferenziali; conoscenza e ragionamento con incertezza
-
Sviluppo e computazione di basi di conoscenza
-
Introduzione all’Ingegneria della Conoscenza
Seconda Parte – Intelligenza Artificiale Distribuita e Sistemi Multi Agente
-
Principi generali dei sistemi multiagente
-
Problemi e modelli d’interazione e di cooperazione tra agenti
-
Modelli d’organizzazione di comunità di agenti; modelli a proprietà emergenti e di vita
artificale (automi cellulari)
-
Comportamento e azioni di sistemi ad agente
-
Modelli cognitivi e simulazione di comunità di agenti artificiali: problemi e modelli di
comunicazione, coordinamento di azioni e problem solving distribuito (eco-agenti e sistemi
artificiali di coevoluzione; integrazione con modelli computazionali evolutivi, es. Algoritmi
Genetici)
Terza Parte – Progettazione e implementazione di esempi di applicazioni di sistemi basati sulla
conoscenza o di agenti intelligenti. Si prevedono lo sviluppo di semplici sistemi ad agente per la
simulazione di comportamenti collettivi di comunità di agenti artificiali o l’implementazione di
agenti intelligenti singoli in grado di compiere ricerche sul Web o di trattare temi più tradizionali di
problem solving. Per questa parte del corso è previsto l’uso di linguaggi di programmazione a
oggetti (Java) e di ambienti dedicati per lo sviluppo di applicazioni di sistemi basati sulla
conoscenza (JESS o CLIPS), che verranno direttamente introdotti durante il corso.
Testi in adozione:
S.J-. Russell, P. Norvig, Intelligenza Artificiale: un approccio moderno, UTET, (Torino), 1998 .
J. Ferber, Multi-Agent Systems: an introduction to distributed artificial intelligence, Addison Wesley, 1999.
J. M. Epstein, R. Axtell, Growing Artificial Societies, The MIT Press, 1996.
Modalità di esame: L’esame finale consta di due prove. Per la prima è previsto lo svolgimento di
un progetto da svilupparsi in un linguaggio a oggetti già noto o in un ambiente di programmazione
dedicato all’implementazione di sistemi basati sulla conoscenza (shell JESS in Java o CLIPS in C)
su temi che verranno concordati direttamente con gli esaminandi durante il corso o durante il
ricevimento studenti direttamente con il docente. La seconda prova è orale e prevede un colloquio
su argomenti trattati durante il corso e documentati nei testi in adozione.
CORSO DI INTERAZIONE UOMO MACCHINA
Prof. R.Polillo
PROGRAMMA DEL CORSO
Il corso è organizzato in una parte generale di inquadramento, e in una parte monografica:
Prima Parte: Introduzione al design dell'interazione uomo-computer
•
•
•
•
•
•
•
•
•
•
•
La nozione di usabilità: definizione di usabilità; perchè progettare sistemi usabili è difficile. Esempi
tratti dal design degli oggetti quotidiani e dal software.
User Centered Design: progettazione centrata sull'utente. Analisi dei compiti e del contesto d'uso.
Esempi. Il ciclo "compito - artefatto". Evoluzione del software e dei prodotti tecnologici.
Modelli dell'utente: chi è l'utente? Aspetti percettivi, cognitivi, culturali.
Valutazioni di usabilità: come si valuta la usabilità di una applicazione software.
L'importanza della prototipazione. Modelli di sviluppo iterativi e a waterfall.
La evoluzione dei paradigmi di interazione uomo-computer: linguaggi a comandi, interfacce a menu
e forms, la metafora del desktop, l'interfaccia web. L'evoluzione del desktop. Relazioni fra paradigmi
e tecnologie di interazione. Nuovi paradigmi: riconoscimento della scrittura, interfacce vocali,
interfacce immersive, agenti intelligenti.
La comunicazione visiva e il design del software: nozioni di psicologia della percezione; testo,
grafica e immagini nel design dell'interfaccia utente. La multimedialità. L'uso del colore. Aspetti fisici,
tecnologici, fisiologico/percettivi, cognitivi, culturali. Discussione di esempi vari.
Il design dell'interazione: le linee guida della ISO9241-10. Discussione di esempi vari.
Tempo, cambiamento, movimento. Criteri generali da seguire nella progettazione delle interfacce.
Il trattamento degli errori: la nozione di errore; vari tipi di errori; la gestione degli errori. Discussione
di esempi vari.
Aiutare l'utente: sistemi di help, esigenze e tipologia; manuali on-line. Discussione di esempi vari.
Parte Seconda: Il design delle applicazioni web
•
•
•
•
La usabilità dei web
Un modello di qualità per le applicazioni web (comunicazione, funzionalità, contenuto, usabilità,
gestione, accessibilità di un sito web)
Architettura dell'informazione
Discussione di esempi reali di applicazioni web complesse
Per maggiori informazioni vedere http://www.rpolillo.it/IUM
Linguaggi di Programmazione (complementi)
6 crediti
Prof. Carla Simone
Scopo del corso
Il corso affronta i temi della realizzazione di sistemi informatici a supporto del coordinamento di
attivita’ svolte da attori (umani e/o artificiali) in modo intrinsecamente distribuito, e che sono
caratterizzati da requisiti di flessibilita’ funzionale, adattativita’ al contesto operativo e da intefacce
uomo/macchina innovative. Il punto di vista e’ quello delle caratteristiche dei linguaggi di
programmazione necessarie a questo scopo.
Conoscenze:
Il corso si propone come naturale complemento di altri corsi, di base e specialistici, orientati alla
progettazione e alla implementazione di sistemi informatici: Programmazione, Linguaggi di
Programmazione (elem), Sistemi operativi e reti, Sistemi distribuiti, Ingegneria del Software, Basi
dati e sistemi informativi, e per alcuni aspetti, Intelligenza Artificiale, Interazione Uomo Macchina
e Realta’ Virtuale. Le conoscenze acquisite riguardano la comprensione dei problemi di
realizzazione dei sistemi informatici illustrati precedentemente e la conoscenza dei costrutti
linguistici necessari per costruirli nel rispetto dei loro requisiti fondamentali. I principali costrutti
riguardano:
-
modelli e linguaggi di coordinamento
-
uso della riflessivita’ nella programmazione
-
semplici inferenze basate su regole
-
interfacce utente 3D
Capacita':
Utilizzo degli aspetti del linguaggio Java o di sue estensioni per trattare:
-
la riflessivita’
-
sistemi a regole: JESS
-
interfacce 3D: Java3D
Programma:
Modulo 1:
Modelli e linguaggi di coordinamento: Concetti di base e criteri di classificazione
Principali linguaggi di coordinamento
Modulo 2:
Concetti di base della riflessivita’ nei linguaggi di programmazione
La riflessivita’ in Java
Modulo 3:
Concetti di base dei sistemi a regole
Il linguaggio JESS
Modulo 4:
Concetti di base della programmazione di interfacce 3D
La libreria Java3D
TESTI DI RIFERIMENTO
I materiali didattici verranno indicati durante le lezioni e pubblicati nel sito del corso a partire da
marzo: http://old.disco.unimib.it/simone/ldp_com/index.htm
MODALITA’ DI ESAME
L’esame consiste nella preparazione di un progetto che utilizza le capacita’ indicate sopra, coprendo
almeno due dei tre aspetti citati. Il progetto puo’ essere richiesto alla docente o proposto dagli
studenti, e deve essere svolto in gruppi di 2/3 studenti (salvo casi particolari da concordarsi con la
docente).
Il progetto puo’ essere valido anche per il Laboratorio di Informatica (Progettazione) tenuto dal
Prof. Tisato, se risponde a requisiti che verranno pubblicati tempestivamente.
Parte del progetto puo’ essere sostituito dallo studio di materiali, che consentono un
approfondimento teorico di un argomento del corso, concordati con la docente.
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
"Linguaggi e Traduttori"
docente : Lucia Pomello
6 crediti
Conoscenze
Vengono presentati metodi e tecniche di base per la costruzione di interpreti e compilatori
di linguaggi di programmazione, i risultati fondamentali della teoria dei linguaggi formali e
la loro applicazione ai linguaggi di descrizione di documenti.
Abilità
Lo studente dovrà essere in grado di mettere in relazione risultati della teoria dei linguaggi
formali con le tecniche di base per la costruzione di interpreti e compilatori di linguaggi di
programmazione e con l'applicazione ai linguaggi di descrizione di documenti.
Programma
1. Introduzione:
Linguaggi e macchine astratte loro associate. La struttura generale di un
compilatore/interprete e le fasi della compilazione.
Ambienti di sviluppo.
2. Analisi Sintattica:
Automi a stati finiti e espressioni regolari. Analisi lessicale e generatori di analizzatori
lessicali (Lex e Grep).
Grammatiche libere, loro proprietà, automi a pila e aspetti sintattici dei linguaggi di
programmazione.
Tecniche di analisi sintattica LL e LR, algoritmi di parsing, e generatori di analizzatori
sintattici (YACC , XML e DTD).
3. Traduzione:
Forme intermedie e traduzione diretta dalla sintassi. Cenno all'ottimizzazione del codice e
alla gestione degli errori.
Testi consigliati
* J. E. Hopcroft, R. Motwani, J.D. Ullman, Introduction to Automata Theory, Languages,
and Computation,2-nd edition, Addison Wesley, 2001. http://wwwdb.stanford.edu/~ullman/ialc.html
* A. V. Aho, R. Sethi, J. E. Hopcroft, Compilers, Principles, Techniques and Tools,
Addison Wesley, 1986.
* D. Grune, H. Bal, C. Jacobs and K. Langendoen, Modern Compiler Design, John
Wiley, 2000. http://www.cs.vu.nl/~dick/MCD.html
Modalità d'esame
Prova orale sugli argomenti trattati e presentazione di un approfondimento concordato
con il docente o di un progetto sviluppato in laboratorio.
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">"METODI
FORMALI
DELL'INFORMATICA"
Lucia Pomello
6 crediti
Conoscenze
Vengono presentati metodi e tecniche formali per la specifica e lo sviluppo di modelli di
sistemi concorrenti e l'analisi delle loro proprietà. Viene fornita una panoramica dei
principali modelli, considerando in particolare le reti di Petri, i calcoli di processi e in
generale i sistemi reattivi.
Abilità
Lo studente deve acquisire le basi metodologiche per lo sviluppo e la progettazione di
modelli di sistemi concorrenti e la verifica delle loro proprietà; ed essere in grado di
mettere in relazione e discutere i diversi approcci al modello di sistemi concorrenti.
Programma
1.
Il processo di sviluppo e progettazione di sistemi interagenti.
- L'osservatore, il modello e i punti di vista.
- Le "discipline della comunicazione" di C.A. Petri.
- Rassegna delle tecniche formali di specifica e disegno.
- La semantica della concorrenza, e l'equivalenza all'osservazione.
2.
La teoria generale delle reti di Petri:
- la struttura di un sistema e le sue proprietà (reti elementari e reti PT).
- il comportamento non sequenziale e i processi non sequenziali.
- proprietà del comportamento (vivezza, assenza di deadlock e sicurezza):
analisi e verifica.
- specifica e sintesi.
- Reti ad alto livello, reti stocastiche e reti temporizzate: cenni.
3.
Calcoli di processi e sistemi reattivi.
- i modelli di processi comunicanti (i CCS, i CSP e le algebre di processi);
- i CCS e l’equivalenza all’osservazione
- Reti di Petri e CCS: equivalenze, modularità e composizionalità.
- Introduzione ai sistemi reattivi basati su bigrafi di R. Milner.
Testi consigliati:
Verrà segnalata una selezionie di capitoli di libri, di articoli scientifici e di slides, alcuni dei
quali tratti da:
* W. Reisig, G.Rozenberg (Eds.), Lectures on Petri Nets I: Basic Models, Lectures on
Petri Nets II:Applications, Advances in Petri Nets, Lecture Notes in Computer Science vol.
1491, 1492, Springer-Verlag 1998.
*
C. Girault, R. Valk, Petri Nets for Systems Engineering, A Guide to Modeling,
Verification, and Applications, Springer Verlag, 2003.
* R. Milner, A Calculus of Communicating Systems, Lecture Notes in Computer Science
vol. 92, Springer-Verlag 1980.
Un elenco di articoli e altri testi consigliati si trova qui.
Modalità di esame:
Prova orale sugli argomenti trattati e presentazione di un approfondimento concordato con
il docente o di un progetto sviluppato in laboratorio.
METODI PER LA RAPPRESENTAZIONE DELLA CONOSCENZA
Crediti: 6
Conoscenze: Nozioni di base di Logica. Intelligenza Artificiale. Programmazione orientata agli
oggetti. Architetture di sistemi. Data Base.
Abilità: Ingegneria della conoscenza. Sviluupo di applicazioni di sistemi basati sulla conoscenza.
Ambienti di sviluppo di sistemi esperti. Knowledge Management.
Docente: Stefania Bandini
Programma
Scopo principale di questo corso è quello di presentare modelli, strutture e metodi computazionali per la
rappresentazione e il trattamento della conoscenza, secondo gli approcci dell’Intelligenza Artificiale. Questi aspetti sono
focalizzati all’analisi, alla progettazione, alla codifica e all’integrazione di sistemi basati sulla conoscenza e sistemi
esperti. Per raggiungere questo obiettivo verranno forniti strumenti di natura concettuale, computazionale e
metodologica indirizzati a una qualificazione professionale richiesta dal mercato in un settore di consolidamento
tecnologico e di espansione applicativa.
Oltre a una preparazione sui concetti base provenienti dai metodi e dalle tecnologie della
rappresentazione della conoscenza, questo corso si orienta verso problematiche applicative
mediante l’analisi delle più significative esperienze realizzate in settori cruciali dell’automazione
(sistemi di controllo, ambienti ad alta eterogeneità tecnologica), mediante la sperimentazione di
soluzioni computazionali dedicate, e attraverso strumenti di analisi e disegno progettuale che
comprendono aspetti architetturali di integrazione con strumenti di connettività (Intranet, Internet),
di retrieval (database) e di apprendimento (reti neurali, algoritmi genetici).
Particolare enfasi verrà inoltre data agli aspetti di dimensionamento dei progetti e delle applicazioni,
mediante metodi di ingegneria del software adattati alle specifiche caratteristiche dei sistemi basati
sulla conoscenza.
Infine, verranno introdotti i concetti fondamentali connessi con le tematiche di knowledge
management, con particolare riferimento al ruolo che in questo settore giocano i metodi
dell’ingegneria della conoscenza e gli strumenti dell’Intelligenza Artificiale (es., Case Based
Reasoning).
Il corso si articola su tre livelli: concettuale, computazionale e metodologico.
LIVELLO CONCETTUALE
Metodi di rappresentazione della conoscenza
-
formalismi di rappresentazione
-
Case Based Reasoning
-
trattamento dell’incertezza: concetti e strumenti (fuzzy, reti bayesiane, fattori di certezza)
Introduzione ai sistemi basati sulla conoscenza
-
breve storia e concetti di base
-
caratteristiche di rappresentazione
-
caratteristiche architetturali
-
caratteristiche computazionali
-
sistemi esperti
LIVELLO COMPUTAZIONALE
Strumenti computazionali: ambienti di sviluppo per sistemi esperti
-
presentazione e sperimentazione delle shell CLIPS e JESS
-
problematiche d’integrazione
-
sistemi basati sulla conoscenza ad architettura ibrida
Nuove generazioni di sistemi basati sulla conoscenza
-
sistemi di seconda generazione e model based
-
basi di conoscenza distribuite
-
agenti intelligenti
LIVELLO METODOLOGICO
Applicazioni di sistemi basati sulla conoscenza
-
Individuazione, analisi e valutazione di domini applicativi
-
casi paradigmatici
-
classificazione delle applicazioni e relative caratteristiche (finanza, controllo industriale,
medicina, progettazione, etc.)
Ingegneria della conoscenza
-
classificazione di problemi
-
acquisizione ed elicitazione della conoscenza
-
tecniche di acquisizione
-
strumenti automatici per l’acquisizione
Sistemi esperti e ingegneria del software
-
caratteristiche dei sistemi basati sulla conoscenza
-
dal ciclo di vita alla pianificazione progettuale
-
valutazione e dimensionamento di progetti applicativi
Dall’ingegneria della conoscenza al Knowledge Management
-
definizioni di knowledge management
-
problematiche di rappresentazione e coordinamento
-
architetture e tecnologie di supporto e di gestione
Testi in adozione
S.J-. Russell, P. Norvig, Intelligenza Artificiale: un approccio moderno, UTET, (Torino), 1998 .
P. Jackson, Introduction to Expert Systems, Addison Wesley, 1999.
F. Puppe, "Expert Systems: a Systematic Introduction", Springer Verlag, 1993.
G. Berini, G. Guida, Ingegneria della Conoscenza, Egea ed., Milano, 2000.
Modalità di esame: L’esame finale consta di due prove. Per la prima è previsto lo svolgimento di
un progetto da svilupparsi in un linguaggio di programmazione già noto o in un ambiente di
programmazione dedicato all’implementazione di sistemi basati sulla conoscenza (shell JESS in
Java o CLIPS in C) su temi che verranno concordati direttamente con gli esaminandi durante il
corso o durante il ricevimento studenti direttamente con il docente. La seconda prova è orale e
prevede un colloquio su argomenti trattati durante il corso e documentati nei testi in adozione.
Robotica, anno accademico 2002/03
Crediti
6
Conoscenze
Lo studente apprende nozioni introdutive di robotica industriale e di percezione artificiale
Abilità
Mediante il progetto, consistente in una limitata realizzazione su argomenti non coperti durante le lezioni, lo studente
apprende ad organizzare il proprio lavoro per raggiungere un preciso obiettivo e ad anteporre una fase di
modellizzazione,
anche analitica se utile, di un problema prima della sua in una realizzazione.
Docente/i
Domenico G. Sorrenti, con la collaborazione del dr. Fabio Marchese
Obiettivi e organizzazione del corso
La Robotica è una area rilevante sia per l’industria che produce mezzi di produzione sia per i settori industriali in cui
questi
mezzi vengono utilizzati. Nel futuro, con l’apparire di soluzioni robotiche per problemi più complessi, crescerà la
rilevanza
della robotica anche in altri settori come l’agricoltura, la gestione della casa, l’industria spaziale (sia per l’esplorazione
che
per le attività sulle stazioni orbitanti), l’esplorazione sottomarina, il monitoraggio di impianti ad alto rischio (impianti
chimici, centrali nucleari, etc.) e l’industria dell’intrattenimento (si pensi, ad esempio, all’iniziativa RoboCup sui robot
calciatori). Il corso, dato il limitato tempo a disposizione, ha lo scopo di illustrare alcuni dei molti argomenti connessi
con la
Robotica, che è fortemente interdisciplinare. In particolare ci si concentrerà sugli aspetti fondamentali della robotica
industriale e sui sensori tipicamente usati nella robotica, con maggior attenzione ai sistemi di visione artificiale.
Approfondimenti su tematiche più avanzate saranno possibili al di fuori del programma coperto dalle lezioni, durante lo
svolgimento di un progetto. Durante lo svolgimento del corso verrà organizzato un breve ciclo di seminari relativi ad
aspetti
teorici, tecnologici e pratici connessi con il controllo di assi di movimentazione (si veda la articolazione del corso al
punto
"Controllo del movimento con controllo indipendente dei singoli giunti"). Si cercherà di organizzare, anche
successivamente al periodo delle lezioni, alcune visite tecniche ad aziende produttrici di robot industriali e/o ad
installazioni
significative.
Prerequisiti
È suggerita, ma non obbligatoria, una precedente esposizione alle seguenti tematiche: algebra delle matrici, calcolo
delle
probabilità e statistica, teoria dei sistemi, controlli automatici, elaborazione delle immagini.
Programma
ore studio individuale
ore lezione
contenuti
robotica industriale 0 0
impiego di robot nelle applicazioni industriali: esempi, motivazioni 3 1
cinematica dei bracci: uso delle coordinate omogenee per la rappresentazione di
rototraslazioni, convenzioni di Denavit-Hartenberg
82
cinematica diretta ed inversa, con esempio relativo ad uno specifico braccio 4 2
programmazione dei robot 1 1
pianificazione delle traiettorie: cenni alla interpolazione lineare nello spazio dei giunti e
nello spazio cartesiano
11
controlli automatici e robotica: controllo indipendente dei singoli giunti di un manipolatore 12 4
percezione 0 0
percezione della distanza, della prossimità, del contatto 1.5 1
formazione dell'immagine, modelli geometrici della proiezione, calibrazione della
proiezione
92
sistemi di visione 2D binari ed a segmenti (Hyper), cenni ai sistemi di ricostruzione 3D 4.5 1
cenni ad alcune problematiche ed applicazioni di robotica mobile 1 0
sviluppo del progetto 0 90
totale ore = 150 45 105
Testi consigliati
1. K. S. Fu, R. C. Gonzales, C. S. G. Lee, "Robotics: Control, Sensing, Vision and Intelligence", McGraw-Hill, 1987
2. J. J. Craig, "Introduction to Robotics: Mechanics and Control" 2nd ed., Addison-Wesley, 1989
3 . G. Ferretti, G. Magnani, "Modellistica e controllo dei servomeccanismi di posizione con motori a magneti
permanenti", Pitagora Editrice Bologna
Modalità di esame
Per superare l’esame si sviluppa un piccolo progetto e si sostiene una prova orale sulle parti non coperte dal progetto. Il
progetto verte solitamente su tematiche più avanzate di quelle coperte nelle lezioni e può essere sviluppato in piccoli
gruppi;
l'orale è comunque individuale. Il progetto è auspicabile che venga condotto congiuntamente per più corsi (ad esempio
Laboratorio di progettazione, Elaborazione delle immagini, etc.)
Link al corso: http://old.disco.unimib.it/robotica
Teoria dell’informazione
Crediti: 6
Conoscenze: concetti di base di teoria dei codici, teoria dell’informazione e crittografia
Docente: Giancarlo Mauri
Programma:
1.
Introduzione: sorgente, canale, codifica
2.
Teoria dei codici
Codici riconoscitori e correttori di errore
Codici a lunghezza variabile
Codici di Huffman
Processi di Markov
3.
Teoria dell’informazione
Entropia
Codici di Shannon-Fano
I teorema di Shannon
Canale e informazione mutua
Capacità di canale
II teorema di Shannon
4.
Crittografia.
Crittosistemi monoalfabetici
Crittosistemi polialfabetici
Crittosistemi simmetrici: DES e AES
One time pad
Generatori pseudocasuali
Crittosistemi a chiave pubblica
RSA
Attacchi ad RSA
Aspetti teorici: dimostrazioni zero-knowledge e sistemi di prova interattivi
Libri di testo
Hamming, Coding and Information Theory, Prentice-Hall
Ferragina, Luccio, Crittografia, Bollati Boringhieri
Dispense a cura del docente
Modalità di esame
L’esame consiste in una prova orale, che include la discussione di una relazione su un tema di
approfondimento concordato col docente.
Corso: Teoria dell'Informazione (Sicurezza e Crittografia)
Crediti: 6
Docente: Claudio Ferretti
Modalita' d'esame: breve prova scritta teorica e progettino
Il corso, di nuova istituzione, verra' erogato per la prima volta
nel secondo semestre dell'anno 2002/2003.
I dettagli dei contenuti sono in fase di definizione,
ma saranno caratterizzati come segue:
- le conoscenze utili alla comprensione dei contenuti sono quelle
del corso di Teoria dell'Informazione (Elementi), assieme a cui
questo corso manterra' un coordinamento
- verranno approfonditi aluni aspetti di taglio teorico dei sistemi
crittografici, simmetrici e a chiave pubblica
- si presenteranno le caratteristiche tecnologiche di alcune implementazioni
di tali sistemi, con riferimento agli standard piu' diffusi
- si inseriranno le caratteristiche dei crittosistemi nel piu' ampio
problema della sicurezza: la crittografia offre alcune garanzie, ad esempio,
per la riservatezza dei dati e l'autenticazione, ma le architetture software
di cui questi strumenti diventano parte possono introdurre punti deboli
- si definiranno alcune categorie che classificano le vulnerabilita':
vulnerabilita' locali e remote, virus e worm, cavalli di troia, blocchi
ai servizi, ad esempio
- per ogni categoria si analizzeranno casi di studio e possibili difese,
tra cui: i buffer overflow e l'analisi del codice, l'analisi statistica
delle comunicazioni cifrate
- con maggior dettaglio, si analizzeranno i problemi di sicurezza relativi
ad alcuni sistemi di rete
- infine, si presenteranno alcune esigenze organizzative volte a tutelare
la sicurezza dei sistemi informatici; in particolare si presenteranno
le procedure di diffusione e reperimento di dati sulle vulnerabilita'.
Scarica

Programmi e siti web dei corsi