Laurea Magistrale in Informatica

Didattica erogata

×
Stampa
Insegnamento
PROVA FINALE
Codice
S0069
Anno Accademico
2019/2020
Anno regolamento
2018/2019
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
CFU
37
Ore di studio individuale
629
Settore Scientifico Disciplinare (SSD)
PROFIN_S -
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
E
Anno
2
Periodo
Annuale
Sede
ALESSANDRIA
Tipo di valutazione
G
×
Stampa
Insegnamento
ULTERIORI CONOSCENZE LINGUISTICHE
Codice
MF0229
Anno Accademico
2019/2020
Anno regolamento
2018/2019
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
CFU
2
Ore di lezione
16
Ore di studio individuale
34
Settore Scientifico Disciplinare (SSD)
NN -
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
F
Anno
2
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
G
×
Stampa
Insegnamento
INFORMATION RETRIEVAL
Codice
MF0287
Anno Accademico
2019/2020
Anno regolamento
2018/2019
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
MANZINI Giovanni
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
2
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Introduzione ai principali algoritmi e strutture dati per l'Information Retrieval, cioè per il recupero, all'interno di grandi collezioni, dei documenti contenenti le informazioni desiderate.
Introduction to the main algorithms and data structures for the retrival, within a large collection, of the documents that satisfy an information need.
Testi di riferimento/Textbooks
Christopher D. Manning, Prabhakar Raghavan & Hinrich Schütze. Introduction to Information Retrieval. Cambridge University Press Ricardo Baeza-Yates, Berthier Ribeiro-Neto. Modern Information Retrieval: the concepts and technology behind search. ACM Press
Christopher D. Manning, Prabhakar Raghavan & Hinrich Schütze. Introduction to Information Retrieval. Cambridge University Press Ricardo Baeza-Yates, Berthier Ribeiro-Neto. Modern Information Retrieval: the concepts and technology behind search. ACM Press
Obiettivi formativi/Mission
Conoscenza e comprensione dei più importanti algoritmi e strutture dati per l'Information Retrieval. Capacità di applicare la conoscenza e comprensione della teoria per la realizzazione di sistemi di Information Retrieval usando gli strumenti open source disponibili. Gli studenti dovranno raggiungere l'autonomia di giudizio rispetto alle tecniche da usare per la risoluzione di problemi di information retrieval. Gli studenti dovranno essere in grado di comunicare e spiegare l'uso delle tecniche più appropriate per un determinato problema. Gli studenti dovranno acquisire quelle conoscenze metodologiche necessarie per raffinare le tecniche di base di information retrieval e imparare a usare al meglio gli strumenti software disponibili.
Knowledge and understanding: basic algorithms and data structures for Information Retrieval. Applying knowledge and understanding: students will be able to build and use an information retrieval system using available open source tools. Making judgements: students will be able to autonomously evaluate the best techniques to solve an infomation retrieval problem. Communication skills: students will learn to communicate and justify the use of the appropriate technique for a given problem. Learning skills: students will be able to autonomously learn how to refine basic techniques and how to best use the available tools.
Prerequisiti/Required background knowledge
Nessun prerequisito per gli studenti della laurea magistrale. I corsi di Programmazione 1 e 2, Algoritmi e Strutture Dati 1 e 2 per gli studenti della laurea triennale.
Advanced courses on Computer Programming and Algorithms.
Metodi didattici/Teaching methods
Lezioni frontali in aula e esercitazioni in laboratorio.
Standard lectures and practice sessions in the computer lab.
Altre informazioni/Further information
Controllo dell'apprendimento in itinere: durante il corso vengono svolte delle esercitazioni in laboratorio sotto la supervisione di un docente.
Monitoring the learning process: during the course the students will complete assignments in the computer lab under the supervision of a teacher.
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto consistente in da 2 a 4 esercizi riguardanti argomenti diversi affrontati nel corso. Esame orale consistente nella discussione degli esercizi di laboratorio assegnati durante l'anno. Il voto finale terrà conto della valutazione ottenuta dal progetto e dai singoli esercizi
Written exam consisting in 2-4 exercises on different course topics. Oral exam consisting in the discussion of the programming assignments. The final grade will be based on the score obtained on the exercises and on the project
Programma esteso/Content
Postings lists. Costruzione e compressione di indici, Vector space model. Punteggi di rilevanza. Valutazione di sistemi di information retrieval. Classificazione di testi. Clustering di documenti. Concetti di base di Web searching. Web crawling e indexing. Rilevanza basata sull'analisi di link.
Postings lists. Index construction and compression. Vector space model. Relevance scores. Evaluation of information retrieval systems. Text classification. Clustering techniques. Web search basics. Web crawling and indexes. Link analysis.
Risultati di apprendimento attesi/Intended learning objectives
Raggiungimento, in grado misurato dal voto, degli obiettivi formativi.
The achievement, up to a degree measured by grades, of the learning goals.
×
Stampa
Insegnamento
COMPUTATIONAL STATISTICS
Codice
MF0373
Anno Accademico
2019/2020
Anno regolamento
2018/2019
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
FERRERO Enrico
Docenti
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
SECS-S/01 - STATISTICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
C
Anno
2
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Nozioni avanzate di probabilità e statistica. Processi markoviani. Linguaggio di programmazione R
Advanced notions of probability and statistics. Markov processes. Programming language R
Testi di riferimento/Textbooks
Dispense del docente, Papoulis A. (1991) Probability, Random Variables and Stochastic Processes, Third edition, McGraw-Hill International Gardiner C.W. (1990) Handbook of Stochastic Methods, Springer-Verlag Iacus, Masarotto "Statistica con R" (2003) Mc Graw Hill
Dispense del docente, Papoulis A. (1991) Probability, Random Variables and Stochastic Processes, Third edition, McGraw-Hill International Gardiner C.W. (1990) Handbook of Stochastic Methods, Springer-Verlag Iacus, Masarotto "Statistica con R" (2003) Mc Graw Hill
Obiettivi formativi/Mission
Capacità di sviluppare modelli stocastici
Ability to develop stochastic models
Prerequisiti/Required background knowledge
Corsi di base di matematica e statistica
Basic mathematics and statistics courses
Metodi didattici/Teaching methods
Lezioni frontali ed esercitazioni
Frontal lessons and exercises
Modalità di verifica dell'apprendimento/Assessment methods
Relazione sulle esercitazioni svolte e risultati delle elaborazioni statistiche
Report on the exercises carried out and the results of the statistical elaborations
Programma esteso/Content
Vettori e successioni di variabili casuali. Generalità e definizioni, trasformazioni, valori attesi, funzioni caratterische, convergenza stocastica, teoremi limite. Processi stocastici: concetti generali, sistemi senza memoria, sistemi lineari, spettri di potenza, random walk, moto Browniano, segnali deterministici nel rumore, Processi di Markov, generalità, Processi omogenei, Equazione di Chapman Kolmogorov, Catene di Markov a tempo discreto, catene a tempo continuo, processi continuo, equazione di diffusione, equazione di Fokker-Planck. Esercitazioni con R
Vectors and sequences of random variables. Generalities and definitions, transformations, expected values, characteristic functions, stochastic convergence, limit theorems. Stochastic processes: general concepts, systems without memory, linear systems, power spectra, random walk, Brownian motion, deterministic signals in noise, Markov processes, generalities, homogeneous processes, Chapman Kolmogorov equation, Markov time discrete chains, chains continuous time, continuous processes, diffusion equation, Fokker-Planck equation. Exercises with R
Risultati di apprendimento attesi/Intended learning objectives
Capacità di elaborare dataset statistici e realizzazioni di modelli basati su processi stocastici
Ability to elaborate statistical datasets and realizations of models based on stochastic processes
×
Stampa
Insegnamento
DEEP LEARNING
Codice
MF0374
Anno Accademico
2019/2020
Anno regolamento
2018/2019
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
PORTINALE Luigi
CFU
3
Ore di lezione
24
Ore di studio individuale
51
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
C
Anno
2
Periodo
Annuale
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso si suddivide in due moduli: Machine Learning (6 CFU) e Deep Learning (3 CFU). MACHINE LEARNING I diversi modelli di apprendimento automatico (supervisionato e non supervisionato); Regressione e classificazione; Bias e varianza dei modelli, regolarizzazione; Metodi di clustering; Determinazione di anomalie; Valutazione dei modelli di appendimento automatico; Strumenti di sviluppo. DEEP LEARNING Teoria e pratica dell’ Apprendimento Profondo
The cours is composed of two different modules: Machine Learning (6 CFU) and Deep Learning (3 CFU) MACHINE LEARNING Supervised and unsupervised models of machine learning; Regression and classification; Bias and variance, regularization; Clustering methods; Anomaly detection; Evaluation of machine learning models; Machine learning tools. DEEP LEARNING Theory and Implementation of Deep Learning methods
Testi di riferimento/Textbooks
MACHINE LEARNING A. Geron: Hands-on Machine Learning with scikit-learn and Tensorflow. O’Reilly, 2017; P. Flach, Machine Learning, Cambridge Univ. Press, 2012; I.H. Witten, E. Frank, M.A. Hall, C.J. Pal. Data Mining: Practical Machine Learning Tools (4 ed.), Morgan Kaufmann, 2016. DEEP LEARNING Materiale bibliografico fornito dal docente
MACHINE LEARNING A. Geron: Hands-on Machine Learning with scikit-learn and Tensorflow. O’Reilly, 2017; P. Flach, Machine Learning, Cambridge Univ. Press, 2012; I.H. Witten, E. Frank, M.A. Hall, C.J. Pal. Data Mining: Practical Machine Learning Tools (4th ed.), Morgan Kaufmann, 2016. DEEP LEARNING Bibliographic material supplied by teacher
Obiettivi formativi/Mission
MACHINE LEARNING Introdurre le nozioni fondamentali dei metodi di appendimento automatico, come valutarli e come sviluppare i relativi systemi. DEEP LEARNING Ottenere una comprensione dell'apprendimento profondo tale da poterlo applicare a una vasta gamma di argomenti.
MACHINE LEARNING To introduce the fundamentals notions of ML systems, how to evaluate them and how to develop them. DEEP LEARNING Gaining an understanding of deep learning in order to be able to apply it to a wide range of topics.
Prerequisiti/Required background knowledge
MACHINE LEARNING Probabilita’ e Statistica, Analisi Matematica, Matematica Discreta (calcolo matriciale) DEEP LEARNING Analisi - Principi di base sull'Apprendimento Automatico - Principi di base sul funzionamento delle Reti Neurali
MACHINE LEARNING Probability and statistics, Calculus, Discrete mathematics (matrix calculus) DEEP LEARNING Advanced calculus - Basic principles of Machine Learning - Basic principle of natural networks
Metodi didattici/Teaching methods
MACHINE LEARNING Lezioni frontali e sviluppo di esempi prototipali DEEP LEARNING Lezioni frontali - Esercitazioni
MACHINE LEARNING Classroom lectures and development of simple prototypes. DEEP LEARNING Classroom lectures - Exercises
Altre informazioni/Further information
MACHINE LEARNING Materiale didattico a complemento dei testi suggeriti fornito dal docente, tramite piattaforma DIR. Disponibilità di lezioni registrate. DEEP LEARNING Disponibilità di corsi video
MACHINE LEARNING Lectures material to complement suggested books provided through DIR teaching platform. Availability of recorded lectures. DEEP LEARNING Availability of video courses
Modalità di verifica dell'apprendimento/Assessment methods
MACHINE LEARNING Esame orale con discussione di un semplice progetto. DEEP LEARNING Svolgimento di un progetto
MACHINE LEARNING Oral examination with discussion of a simple project. DEEP LEARNING Project development
Programma esteso/Content
MACHINE LEARNING Introduzione al machine learning: apprendimento supervisionato e non supervisionato; Regressione lineare univariata e multivariata, ridge regression; Regressione logistica; Regolarizzazione; Reti Neurali; Valutazione di un sistema ML; Support Vector Machines; Decision Trees; Bayesian Learning; Lazy Learning; Metodi di ensemble learning; Clustering; Riduzione della dimensionalita: PCA; Anomaly detection; Il tool Weka; Le API scikit-learn. DEEP LEARNING Principi teorici dell'Apprendimento Profondo Deep belief network Autoencoder Reti convolutive Reti non supervisionate Pre-Training Applicazioni Package implementativi
MACHINE LEARNING Introduction to machine learning: supervised and unsupervised learning; Linear regression (univariate and multivariate), ridge regression; Logistic regression; Regularization; Neural Networks; ML evaluation; Support Vector Machines; Decision Trees; Bayesian Learning; Lazy Learning; Ensemble learning methods; Clustering; Dimensionality reduction: PCA; Anomaly detection; The Weka tool; The scikit-learn APIs. DEEP LEARNING Deep Learning theory Deep belief network Autoencoder Convolutional networks Unsupervised networks Pre-Training Applications Implementation Packages
Risultati di apprendimento attesi/Intended learning objectives
MACHINE LEARNING Conoscere le principali metodiche di apprendimento automatico supervisionato e non supervisionato;S aper valutare un sistema di apprendimento automatico; Conoscere alcuni tra i principali tool di sviluppo. DEEP LEARNING Dato un problema di apprendimento, lo studente dovrà essere in grado di scegliere il modello di rete profonda più opportuno e di configurarla, in modo da risolvere il problema in modo efficiente
MACHINE LEARNING To know the main methodologies of machine learning; To be able to evaluate an ML system; To know some of the main tools for ML systems development. DEEP LEARNING Given a task, the student shall be able to choose the most suitable deep learning model, and to configure it in order to efficiently solve the task.
×
Stampa
Insegnamento
MACHINE LEARNING AND DEEP LEARNING
Codice
MF0375
Anno Accademico
2019/2020
Anno regolamento
2018/2019
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
PORTINALE Luigi
CFU
9
Ore di lezione
72
Ore di studio individuale
153
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
B
Anno
2
Periodo
Annuale
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso si suddivide in due moduli: Machine Learning (6 CFU) e Deep Learning (3 CFU). MACHINE LEARNING I diversi modelli di apprendimento automatico (supervisionato e non supervisionato); Regressione e classificazione; Bias e varianza dei modelli, regolarizzazione; Metodi di clustering; Determinazione di anomalie; Valutazione dei modelli di appendimento automatico; Strumenti di sviluppo. DEEP LEARNING Teoria e pratica dell’ Apprendimento Profondo
The cours is composed of two different modules: Machine Learning (6 CFU) and Deep Learning (3 CFU) MACHINE LEARNING Supervised and unsupervised models of machine learning; Regression and classification; Bias and variance, regularization; Clustering methods; Anomaly detection; Evaluation of machine learning models; Machine learning tools. DEEP LEARNING Theory and Implementation of Deep Learning methods
Testi di riferimento/Textbooks
MACHINE LEARNING A. Geron: Hands-on Machine Learning with scikit-learn and Tensorflow. O’Reilly, 2017; P. Flach, Machine Learning, Cambridge Univ. Press, 2012; I.H. Witten, E. Frank, M.A. Hall, C.J. Pal. Data Mining: Practical Machine Learning Tools (4 ed.), Morgan Kaufmann, 2016. DEEP LEARNING Materiale bibliografico fornito dal docente
MACHINE LEARNING A. Geron: Hands-on Machine Learning with scikit-learn and Tensorflow. O’Reilly, 2017; P. Flach, Machine Learning, Cambridge Univ. Press, 2012; I.H. Witten, E. Frank, M.A. Hall, C.J. Pal. Data Mining: Practical Machine Learning Tools (4th ed.), Morgan Kaufmann, 2016. DEEP LEARNING Bibliographic material supplied by teacher
Obiettivi formativi/Mission
MACHINE LEARNING Introdurre le nozioni fondamentali dei metodi di appendimento automatico, come valutarli e come sviluppare i relativi systemi. DEEP LEARNING Ottenere una comprensione dell'apprendimento profondo tale da poterlo applicare a una vasta gamma di argomenti.
MACHINE LEARNING To introduce the fundamentals notions of ML systems, how to evaluate them and how to develop them. DEEP LEARNING Gaining an understanding of deep learning in order to be able to apply it to a wide range of topics.
Prerequisiti/Required background knowledge
MACHINE LEARNING Probabilita’ e Statistica, Analisi Matematica, Matematica Discreta (calcolo matriciale) DEEP LEARNING Analisi - Principi di base sull'Apprendimento Automatico - Principi di base sul funzionamento delle Reti Neurali
MACHINE LEARNING Probability and statistics, Calculus, Discrete mathematics (matrix calculus) DEEP LEARNING Advanced calculus - Basic principles of Machine Learning - Basic principle of natural networks
Metodi didattici/Teaching methods
MACHINE LEARNING Lezioni frontali e sviluppo di esempi prototipali DEEP LEARNING Lezioni frontali - Esercitazioni
MACHINE LEARNING Classroom lectures and development of simple prototypes. DEEP LEARNING Classroom lectures - Exercises
Altre informazioni/Further information
MACHINE LEARNING Materiale didattico a complemento dei testi suggeriti fornito dal docente, tramite piattaforma DIR. Disponibilità di lezioni registrate. DEEP LEARNING Disponibilità di corsi video
MACHINE LEARNING Lectures material to complement suggested books provided through DIR teaching platform. Availability of recorded lectures. DEEP LEARNING Availability of video courses
Modalità di verifica dell'apprendimento/Assessment methods
MACHINE LEARNING Esame orale con discussione di un semplice progetto. DEEP LEARNING Svolgimento di un progetto
MACHINE LEARNING Oral examination with discussion of a simple project. DEEP LEARNING Project development
Programma esteso/Content
MACHINE LEARNING Introduzione al machine learning: apprendimento supervisionato e non supervisionato; Regressione lineare univariata e multivariata, ridge regression; Regressione logistica; Regolarizzazione; Reti Neurali; Valutazione di un sistema ML; Support Vector Machines; Decision Trees; Bayesian Learning; Lazy Learning; Metodi di ensemble learning; Clustering; Riduzione della dimensionalita: PCA; Anomaly detection; Il tool Weka; Le API scikit-learn. DEEP LEARNING Principi teorici dell'Apprendimento Profondo Deep belief network Autoencoder Reti convolutive Reti non supervisionate Pre-Training Applicazioni Package implementativi
MACHINE LEARNING Introduction to machine learning: supervised and unsupervised learning; Linear regression (univariate and multivariate), ridge regression; Logistic regression; Regularization; Neural Networks; ML evaluation; Support Vector Machines; Decision Trees; Bayesian Learning; Lazy Learning; Ensemble learning methods; Clustering; Dimensionality reduction: PCA; Anomaly detection; The Weka tool; The scikit-learn APIs. DEEP LEARNING Deep Learning theory Deep belief network Autoencoder Convolutional networks Unsupervised networks Pre-Training Applications Implementation Packages
Risultati di apprendimento attesi/Intended learning objectives
MACHINE LEARNING Conoscere le principali metodiche di apprendimento automatico supervisionato e non supervisionato;S aper valutare un sistema di apprendimento automatico; Conoscere alcuni tra i principali tool di sviluppo. DEEP LEARNING Dato un problema di apprendimento, lo studente dovrà essere in grado di scegliere il modello di rete profonda più opportuno e di configurarla, in modo da risolvere il problema in modo efficiente
MACHINE LEARNING To know the main methodologies of machine learning; To be able to evaluate an ML system; To know some of the main tools for ML systems development. DEEP LEARNING Given a task, the student shall be able to choose the most suitable deep learning model, and to configure it in order to efficiently solve the task.
×
Stampa
Insegnamento
VALUTAZIONE DELLE PRESTAZIONI
Codice
MF0168
Anno Accademico
2019/2020
Anno regolamento
2018/2019
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
FRANCESCHINIS Giuliana Annamaria
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
B
Anno
2
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso definisce una serie di requisiti non funzionali che caratterizzano vari tipi di sistemi con particolare attenzione ai sistemi di calcolo e alle reti di calcolatori. Vengono presentati alcuni modelli matematici e metodi di analisi per la valutazione di prestazioni e affidabilità a partire dai modelli, utilizzabili in fase di progettazione o in momenti successivi quando il sistema oggetto di studio è operativo. Il corso prevede la sperimentazione di alcuni pacchetti software per la creazione di modelli di sistemi e la loro analisi con metodi analitici, numerici o simulativi.
The course focuses on some non functional requirements that must be considered when designing systems, in particular computing systems and computer networks. Some mathematical models are presented allowing one to describe and analyze the performance and dependability of systems. Models can be built and analyzed either in early design phases, or later when the system under study is operational. The course also includes practical exercises using software packages supporting the design of system models and their analysis through analytical or numerical methods or simulation.
Testi di riferimento/Textbooks
J. Banks, J. S. Carson II, B. L. Nelson, David M. Nicol, Discrete-Event System Simulation , Fifth edition, Pearson Education 2010 K. Trivedi, A. Bobbio, "Reliability and Availability: Modeling, Analysis and Applications" - Cambridge University Press, 2017 Dispense o articoli scientifici scaricabili da DIR
J. Banks, J. S. Carson II, B. L. Nelson, David M. Nicol, Discrete-Event System Simulation , Fifth edition, Pearson Education 2010 K. Trivedi, A. Bobbio, "Reliability and Availability: Modeling, Analysis and Applications" - Cambridge University Press, 2017 Lecture notes or scientific publications to be downloaded from DIR
Obiettivi formativi/Mission
Conoscenza e capacità di comprensione: Conoscere alcuni formalismi per la rappresentazione di modelli matematici (esprimibili anche in forma grafica) utili all’analisi dell’affidabilità e delle prestazioni di sistemi. Conoscere i principali metodi computazionali per l’analisi dei modelli (soluzione in forma chiusa, oppure soluzione con metodi di calcolo numerico, o tramite simulazione). Conoscere alcuni modelli di base e saper fare esempi di ambiti applicativi in cui tali modelli si possono efficacemente utilizzare. Capacità di applicare conoscenza e comprensione:Capacità di interpretare un modello ed i risultati ricavabili dalla sua analisi. Capacità di costruire il modello di un sistema tramite un determinato formalismo, definire gli indici di prestazione interessanti, calcolare questi ultimi utilizzando uno strumento software esistente o implementandone uno ad-hoc. Capacità di validare un modello confrontando i risultati della sua analisi con quelli calcolati tramite modelli alternativi o con misure effettuate su sistemi reali. Gli studenti dovranno raggiungere l'autonomia di giudizio rispetto al formalismo e ai metodi di analisi più adatti per affrontare un determinato problema. Dovranno saper scegliere il livello di dettaglio corretto per la descrizione del modello e degli indici di prestazione e scegliere gli strumenti software più adatti in base al formalismo e al metodo di analisi individuati. Gli studenti dovranno essere in grado di comunicare e spiegare le basi matematiche su cui si fondano i modelli e i relativi algoritmi di analisi. Dovranno inoltre essere in grado di descrivere i modelli sviluppati, giustificare le scelte fatte e illustrare l’interpretazione dei risultati ottenuti dall’analisi dei modelli. Gli studenti dovranno acquisire le conoscenze metodologiche necessarie per apprendere nuovi formalismi o metodi di analisi proposti nella letteratura scientifica e per implementare i relativi algoritmi.
Knowledge and understanding:Know and understand: (a) some formalisms for the representation of mathematical models (which may also have a graphical representation) that can be used to study system dependability and performance properties; (b) the main computational methods for model analysis (closed form solution, numerical solution, or simulation); (c) some basic models and be able to discuss examples of application of such models. Apply knowledge and understanding: Have the ability to: (a) provide an interpretation of a model expressed in a known formalism, and of the results that can be obtained by analizing it; (b) build the model of a system using a given formalism and define its performance/reliability indices of interest; (c) compute the indices using an existing software tool or building a new ad-hoc software analysis tool. (d) validate a model comparing the analysis results again those obtained from alternative models or measured on a real system.The students will achieve autonomy in judgement about what is the most appropriate formalism and analysis method to face a given problem. Will be able to choose the most appropriate detail level in describing the model and its performance indices, and choose the software tools that better support the chosen formalism and analysis method. Finally students shall be able to communicate and explain the mathematical basis on which the models and corresponding analysis algorithms have been developed. Moreover they will be able to describe the models they have built, justify the choices made in building the model and present an interpretation of the results of model analysis. The student shall acquire the methodological knowledge to learn new formalisms and analysis methods published in the scientific literature.
Prerequisiti/Required background knowledge
Corso di base in probabilità e statistica
Basic course in probability and statistics
Metodi didattici/Teaching methods
Lezioni frontali, esercitazioni in aula e in laboratorio e esercizi da svolgere in autonomia.
Class lectures, exercises in class and in laboratory, and homeworks
Altre informazioni/Further information
Sulla piattaforma DIR sono disponibili: la copia elettronica delle slide utilizzate a lezione, esempi di testi d’esame, quiz di autovalutazione, informazioni generali sul corso e avvisi relativi allo svolgimento del corso e sugli esami.A complemento dei testi di riferimento vengono indicati articoli scientifici in lingua inglese per approfondire alcuni argomenti trattati durante il corso.
It is possible to download electronic copy of all slides of the lectures, perform self-assessment tests, read general information on the course and news about the lectures and the exam organization on the e-learning platform DIR .Besides the reference textbooks some scientific publications in English are proposed, to study in more detail some of the topics presented during the course.
Modalità di verifica dell'apprendimento/Assessment methods
La verifica dell'apprendimento viene effettuata mediante compiti scritti o colloqui orali svolti dopo la fine del corso che comprenderanno da tre a cinque domande (che possono essere articolate in più punti ed includere lo svolgimento esercizi) sugli argomenti trattati nel corso. E’ anche prevista lo svolgimento in autonomia di un esercizio pratico di modellazione di un caso di studio e relativa analisi tramite strumenti software disponibili o codice sviluppato dallo studente: la consegna di quanto prodotto completa la prova d’esame.
The achievement of learning outcomes is evaluated through a written or oral examination after the end of the course, including from three to five questions (which in turn may comprise several points and include specific exercises) on the topics studied in the course. A practical exercise is also required in order to complete the examination: it includes the modelling of a case study and the model analysis performed using existing software tools or directly developing the appropriate software artifact.
Programma esteso/Content
Ripasso delle basi di calcolo delle probabilità e statistica necessarie per comprendere i modelli matematici proposti nel corso. Definizione di requisiti non funzionali di sistemi, con particolare riferimento ai sistemi di calcolo e alle reti di calcolatori: indici di prestazione e affidabilità. Formalismi per lo studio dell’affidabilità e presentazione di alcune tecniche di analisi. Formalismi per la descrizione del comportamento di modelli dinamici e stocastici (reti di code e reti di Petri) e relative tecniche di analisi (analisi operazionale, analisi del processo stocastico corrispondente, simulazione). La simulazione ad eventi discreti: principi di base, generazione di numeri casuali realizzazione di variabili casuali, studio in transitorio e a regime di indici di prestazione o affidabilità, prove ripetute e metodo batch, analisi dell’output della simulazione tramite metodi statistici.
Review of the basics of probability theory and statistics needed to understand the mathematical models discussed within the course. Definition of non functional requirements of systems, in particular focusing on computing systems and computer networks: performance and dependability indices. Formalisms to describe and study system dependability problems and the available solution methods. Formalisms to describe and study the behavior of dynamic stochastic models (queueing networks, Petri nets) and their analysis techniques (operational analysis, underlying stochastic process analysis, simulation). Discrete event simulation: basic principles, random numbers and random variate generation, transient and steady state analysis, obtaining a sample of the measures of interest through simulation experiment repetitions or batch method; simulation output analysis through statistical methods.
Risultati di apprendimento attesi/Intended learning objectives
Saper spiegare il concetto di modello e uso dell’astrazione per focalizzare l’attenzione sui soli aspetti rilevanti rispetto ad uno specifico problema. Ideare un (semplice) modello matematico di un dato sistema e mostrare come ricreare il suo comportamento dinamico tramite la simulazione. Costruire il modello di un sistema utilizzando uno specifico formalismo (proposto nel corso). Valutare l’adeguatezza di un formalismo (tra quelli proposti nel corso) per la modellazione di uno specifico sistema. Spiegare l’utilità dell’uso di modelli e della simulazione in vari domini applicativi. Spiegare i concetti di verifica e validazione di un modello, anche attraverso esempi concreti.Presentare i risultati dell’analisi (anche tramite simulazione) di un modello. Fornire una interpretazione dei risultati quantitativi ottenuti analizzando o simulando un modello e trarre opportune conclusioni sul comportamento del sistema modellato ed eventualmente indicare possibili modifiche al modello, e di conseguenza al sistema, per migliorarne le prestazioni o l’affidabilità.
Explain the concept of modeling and the use of abstraction to focus on the aspects relevant to a given problem. Devise a (simple) mathematical model of a system and show how its dynamics can be recreated through simulation. Build the model of a system using a specific formalism (presented in the course). Evaluate the adequacy of a given formalism (among those presented in the course) to model a specific system. Explain the benefits of using models and simulation in various application domains. Explain the meaning of model verification and validation, also providing practical examples. Present the results of the analysis (possibly through simulation) of a model. Provide an interpretation of quantitative results of model analysis or simulation, drive some conclusions on the behavior of the modelled system and possibly suggest changes in the system under study to improve its performance and/or dependability indices.
×
Stampa
Insegnamento
DATA MINING PER DATI SPERIMENTALI
Codice
MF0376
Anno Accademico
2019/2020
Anno regolamento
2018/2019
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
ROBOTTI Elisa
Docenti
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
CHIM/01 - CHIMICA ANALITICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
C
Anno
2
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso ha l’obiettivo di introdurre lo studente all’analisi di dataset complessi, come quelli che vengono prodotti da molti moderni strumenti di analisi o caratteristici dei normali problemi che si incontrano nei laboratori. Verranno descritti dal punto di vista teorico-pratico diversi metodi multivariati di analisi dal pretrattamento del dato a metodi di pattern recognition, di classificazione e di regressione.
The course has the objective of introducing the statistical methods for the extraction of information from huge and complex datasets, as those commonly provided by modern instrumentation in laboratories. Several multivariate methods will be described from the theoretical-practical point of view: data pretreatment, pattern recognition methods, classification and regression methods.
Testi di riferimento/Textbooks
Verranno messe a disposizione le dispense del corso.
Notes and other material provided by the teacher.
Obiettivi formativi/Mission
Il corso ha l'obiettivo di fornire allo studente solide conoscenze dei più comuni strumenti della statistica multivariata preparare il futuro dottore in Scienze Chimiche ad affrontare il mondo del lavoro nell'ambito dell'analisi di dataset complessi o caratteristici dei normali problemi che si incontrano nei laboratori. Lo studente acquisirà capacità di senso critico, affinerà l’abilità di scegliere la miglior strategia sperimentale e di gestire problemi complessi in ambito tecnico-scientifico. Il corso ha anche lo scopo di sviluppare la capacità di apprendere autonomamente nuove tecniche di analisi multivariata. Abilità comunicative: acquisire e saper utilizzare un lessico chimico appropriato in relazione agli argomenti affrontati nel corso. Capacità di apprendimento in autonomia: lo studente sarà guidato alla soluzione di un caso studio proposto.
The course aims to provide students with solid knowledge of the most common tools of multivariate statistics to prepare the future doctor of Chemical Sciences to face the world of work in the analysis of complex or characteristic datasets of the normal problems encountered in the laboratories. The student will acquire critical sense skills, refine the ability to choose the best experimental strategy and manage complex problems in the technical-scientific field. The course also aims to develop the ability to learn new multivariate analysis techniques independently. Communication skills: acquiring and knowing how to use an appropriate chemical lexicon in relation to the topics addressed in the course. Learning skills: the student will be guided to the solution of a proposed case study.
Prerequisiti/Required background knowledge
Nessuno
None
Metodi didattici/Teaching methods
Lezioni frontali, dispense, presentazioni powerpoint, simulazioni ed esercitazioni al calcolatore.
Lectures, Powerpoint presentations, manual and computer exercitations, case studies.
Altre informazioni/Further information
Il controllo dell'apprendimento in itinere verrà effettuato attraverso esercitazioni al computer in cui verranno messi in pratica gli argomenti affrontati durante le lezioni.
The learning during the course will be evaluated by manual and computer exercitations and case studies that will be proposed to the students.
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto articolato in due parti: a) 8 domande a risposta multipla e 8 domande aperte sugli aspetti teorici dei metodi trattati; b) relazione sui risultati dell’elaborazione statistica condotta su un set di dati fornito dal docente, con commento scritto dei risultati ottenuti.
Written exam consisting in two parts: a) 8 multiple choice questions and 8 open questions about the theoretical aspects of the presented methods; b) report on the results of statistical processing carried out on a set of data provided by the teacher, with written commentary on the results obtained.
Programma esteso/Content
Il corso tratta i metodi che si possono utilizzare per estrarre informazione da dati complessi quali dati spettroscopici, dati ambientali, mappe elettroforetiche, dati industriali di processo, controllo qualità, ecc. I metodi studiati, che sono anche argomento di esercitazioni al computer su dataset reali riguardano: metodi di pretrattamento dei dati (scaling, trasformazioni non lineari delle variabili, trattamento dei dati mancanti, trattamento di dati spettroscopici), metodi di clustering (gerarchico, K-means, metody fuzzy), metodi di pattern recognition (PCA, MDS), metodi di regressione (teoria della calibrazione, MLR, PLS, PCR, Ridge e selezione delle variabili), metodi di classificazione (NMC, LDA, QDA, RDA, KNN, Ranking-PCA, PLS-DA e selezione delle variabili), reti neurali artificiali (Backward, auto associative di Kohonen, counter-propagation), algoritmo genetico. Esercitazioni al computer su software dedicati.
Statistical methods for the extraction of information from huge and complex datasets (spectroscopic, environmental, etc.). The methods include: data pretreatment (scaling, non linear transformations, missing values, spectral data treatment); clustering techniques (gerarchical, K-means, fuzzy methods), pattern recognition methods (Principal Component Analysis, Multidimensional Scaling), regression methods (calibration theory, Multiple Linear Regression, Partial Least Square, Principal Component Regression, Ridge, variable selection), classification methods (NMC, LDA, QDA, RDA, KNN, Ranking-PCA, PLS-DA, SIMCA, variable selection), artificial neural networks (back-propagatioon, Kohonen, counter - propagation) and genetic algorithms. All lessons have computer sessions with the analysis of real data with dedicated chemometric software.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e comprensione - solida conoscenza delle basi teoriche e teorico/pratiche delle più moderne tecniche di analisi multivariata dei dati (pattern recognition, classificazione, regressione, metodi non lineari) - conoscenza dei principali software per l’analisi multivariata dei dati e di come risolvere un caso studio e presentarlo Capacità di applicare conoscenza e comprensione - saper applicare mediante software dedicato le tecniche di analisi dati viste a lezione per la soluzione di casi studio proposti; - saper confrontare diversi metodi; - saper stendere una relazione tecnico-scientifica sull’analisi di dati Abilità comunicative - saper stendere una relazione tecnico-scientifica sull’analisi di dati - acquisire e saper utilizzare un lessico appropriato in relazione agli argomenti affrontati nel corso. Autonomia di giudizio - capacità di scegliere l’approccio più adatto alla soluzione di un caso studio proposto - saper confrontare criticamente diversi metodi. Capacità di apprendimento - capacità di utilizzare il materiale di studio in autonomia per risolvere casi studio proposti
Knowledge and understanding - solid knowledge of the theoretical and theoretical / practical bases of the most modern techniques of multivariate data analysis (pattern recognition, classification, regression, non-linear methods) - knowledge of the main software for multivariate data analysis and how to solve a case study and present it Ability to apply knowledge and understanding - know how to apply, through dedicated software, the data analysis techniques seen in class for the solution of proposed case studies; - know how to compare different methods; - know how to draw up a technical-scientific report on the analysis of data Communication skills - know how to draw up a technical-scientific report on the analysis of data - acquire and know how to use an appropriate vocabulary in relation to the topics addressed in the course. Autonomy of judgment - ability to choose the most suitable approach to the solution of a proposed case study - being able to critically compare different methods. Learning ability - ability to use the study material independently to solve proposed case studies
×
Stampa
Insegnamento
BIOLOGIA COMPUTAZIONALE
Codice
MF0378
Anno Accademico
2019/2020
Anno regolamento
2018/2019
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
MIGNONE Flavio
Docenti
CFU
3
Ore di lezione
24
Ore di studio individuale
51
Settore Scientifico Disciplinare (SSD)
BIO/11 - BIOLOGIA MOLECOLARE
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
C
Anno
2
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano.
Italian.
Contenuti/Content Summary
Principali algoritmi e strutture dati utilizzate per problemi di matching e allineamento di biosequenze. Allienamenti locali, globali, di interi genomi mediante programmazione dinamica, HMM e suffix tree.
Main algorithms and data structures for matching and alignment problems for biosequences. Local and global alignments, whole genomes alignment using dynamic programming, HMM and suffix tree.
Testi di riferimento/Textbooks
N. Jones, P. Pevzner. An Introduction to Bioinformatics Algorithms. MIT Press, 2004.
N. Jones, P. Pevzner. An Introduction to Bioinformatics Algorithms. MIT Press, 2004.
Obiettivi formativi/Mission
Fornire un'introduzione all'utilizzo di linguaggi di scripting per automatizzare la manipolazione di dati di interesse bioinformatico. Descrizione dei principali algoritimi e strutture dati per l'allineamento delle sequenze.
Describe bioinformatics data analysis automation through scripting languages. Describe main algorithms and data structures for sequence alignment.
Prerequisiti/Required background knowledge
Nessun prerequisito
None
Metodi didattici/Teaching methods
Lezioni frontali in aula e esercitazioni in laboratorio.
Lectures and laboratory sessions.
Altre informazioni/Further information
Durante l'anno vengono svolte delle esercitazioni di programmazione in laboratorio sugli argomenti trattati a lezione.
During the course students have to complete programming assignments on some on the topics discussed in classes.
Modalità di verifica dell'apprendimento/Assessment methods
Prova scritta con eventuale prova orale e/o progetto.
Written and optional oral exam and/or programming project
Programma esteso/Content
-Indroduzione al linguaggio PERL -Soluzione del problema del Manhattan tourist mediante programmazione dinamica -Distanza di edit e calcolo della Longest Common Subsequence -Algoritmi per l'allineamento locale e globale ( Smith-Waterman e Needleman-Wunsc) -Algoritmi di allineamento euristici: FASTA e BLAST -Introduzione agli alberi dei suffissi. Allineamento di interi genomi (MUMmer). -Introduzione agli Hidden Markov Model. Problema "Fair Bet Casino" ed estensione all'identificazione delle isole CpG.
-Introduction to PERL language -Manhattan tourist problem solved by dynamic programming -Edit distance e Longest Common Subsequence -Local and global alignment algorithms  Smith-Waterman e Needleman-Wunsc) -FASTA and BLAST heuristic algorithms -suffix tree and whole genome alignment (MUMer) -Introduction to Hidden Markov Model. "Fair Bet Casino" problem and identification of CpG islands
Risultati di apprendimento attesi/Intended learning objectives
Capacità di utilizzare il corretto algoritmo in funzione del tipo di analisi bioinformatica da eseguire. Conoscenza dei principali fattori che influenzano i risultati delle analisi di allineamento di sequenze biologiche.
Ability to choose the most suitable algorithm based on the alignment required. Knowledge of main parameters affecting the quality of results.
×
Stampa
Insegnamento
MACHINE LEARNING
Codice
MF0292
Anno Accademico
2019/2020
Anno regolamento
2018/2019
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
PORTINALE Luigi
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
B
Anno
2
Periodo
Annuale
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso si suddivide in due moduli: Machine Learning (6 CFU) e Deep Learning (3 CFU). MACHINE LEARNING I diversi modelli di apprendimento automatico (supervisionato e non supervisionato); Regressione e classificazione; Bias e varianza dei modelli, regolarizzazione; Metodi di clustering; Determinazione di anomalie; Valutazione dei modelli di appendimento automatico; Strumenti di sviluppo. DEEP LEARNING Teoria e pratica dell’ Apprendimento Profondo
The cours is composed of two different modules: Machine Learning (6 CFU) and Deep Learning (3 CFU) MACHINE LEARNING Supervised and unsupervised models of machine learning; Regression and classification; Bias and variance, regularization; Clustering methods; Anomaly detection; Evaluation of machine learning models; Machine learning tools. DEEP LEARNING Theory and Implementation of Deep Learning methods
Testi di riferimento/Textbooks
MACHINE LEARNING A. Geron: Hands-on Machine Learning with scikit-learn and Tensorflow. O’Reilly, 2017; P. Flach, Machine Learning, Cambridge Univ. Press, 2012; I.H. Witten, E. Frank, M.A. Hall, C.J. Pal. Data Mining: Practical Machine Learning Tools (4 ed.), Morgan Kaufmann, 2016. DEEP LEARNING Materiale bibliografico fornito dal docente
MACHINE LEARNING A. Geron: Hands-on Machine Learning with scikit-learn and Tensorflow. O’Reilly, 2017; P. Flach, Machine Learning, Cambridge Univ. Press, 2012; I.H. Witten, E. Frank, M.A. Hall, C.J. Pal. Data Mining: Practical Machine Learning Tools (4th ed.), Morgan Kaufmann, 2016. DEEP LEARNING Bibliographic material supplied by teacher
Obiettivi formativi/Mission
MACHINE LEARNING Introdurre le nozioni fondamentali dei metodi di appendimento automatico, come valutarli e come sviluppare i relativi systemi. DEEP LEARNING Ottenere una comprensione dell'apprendimento profondo tale da poterlo applicare a una vasta gamma di argomenti.
MACHINE LEARNING To introduce the fundamentals notions of ML systems, how to evaluate them and how to develop them. DEEP LEARNING Gaining an understanding of deep learning in order to be able to apply it to a wide range of topics.
Prerequisiti/Required background knowledge
MACHINE LEARNING Probabilita’ e Statistica, Analisi Matematica, Matematica Discreta (calcolo matriciale) DEEP LEARNING Analisi - Principi di base sull'Apprendimento Automatico - Principi di base sul funzionamento delle Reti Neurali
MACHINE LEARNING Probability and statistics, Calculus, Discrete mathematics (matrix calculus) DEEP LEARNING Advanced calculus - Basic principles of Machine Learning - Basic principle of natural networks
Metodi didattici/Teaching methods
MACHINE LEARNING Lezioni frontali e sviluppo di esempi prototipali DEEP LEARNING Lezioni frontali - Esercitazioni
MACHINE LEARNING Classroom lectures and development of simple prototypes. DEEP LEARNING Classroom lectures - Exercises
Altre informazioni/Further information
MACHINE LEARNING Materiale didattico a complemento dei testi suggeriti fornito dal docente, tramite piattaforma DIR. Disponibilità di lezioni registrate. DEEP LEARNING Disponibilità di corsi video
MACHINE LEARNING Lectures material to complement suggested books provided through DIR teaching platform. Availability of recorded lectures. DEEP LEARNING Availability of video courses
Modalità di verifica dell'apprendimento/Assessment methods
MACHINE LEARNING Esame orale con discussione di un semplice progetto. DEEP LEARNING Svolgimento di un progetto
MACHINE LEARNING Oral examination with discussion of a simple project. DEEP LEARNING Project development
Programma esteso/Content
MACHINE LEARNING Introduzione al machine learning: apprendimento supervisionato e non supervisionato; Regressione lineare univariata e multivariata, ridge regression; Regressione logistica; Regolarizzazione; Reti Neurali; Valutazione di un sistema ML; Support Vector Machines; Decision Trees; Bayesian Learning; Lazy Learning; Metodi di ensemble learning; Clustering; Riduzione della dimensionalita: PCA; Anomaly detection; Il tool Weka; Le API scikit-learn. DEEP LEARNING Principi teorici dell'Apprendimento Profondo Deep belief network Autoencoder Reti convolutive Reti non supervisionate Pre-Training Applicazioni Package implementativi
MACHINE LEARNING Introduction to machine learning: supervised and unsupervised learning; Linear regression (univariate and multivariate), ridge regression; Logistic regression; Regularization; Neural Networks; ML evaluation; Support Vector Machines; Decision Trees; Bayesian Learning; Lazy Learning; Ensemble learning methods; Clustering; Dimensionality reduction: PCA; Anomaly detection; The Weka tool; The scikit-learn APIs. DEEP LEARNING Deep Learning theory Deep belief network Autoencoder Convolutional networks Unsupervised networks Pre-Training Applications Implementation Packages
Risultati di apprendimento attesi/Intended learning objectives
MACHINE LEARNING Conoscere le principali metodiche di apprendimento automatico supervisionato e non supervisionato;S aper valutare un sistema di apprendimento automatico; Conoscere alcuni tra i principali tool di sviluppo. DEEP LEARNING Dato un problema di apprendimento, lo studente dovrà essere in grado di scegliere il modello di rete profonda più opportuno e di configurarla, in modo da risolvere il problema in modo efficiente
MACHINE LEARNING To know the main methodologies of machine learning; To be able to evaluate an ML system; To know some of the main tools for ML systems development. DEEP LEARNING Given a task, the student shall be able to choose the most suitable deep learning model, and to configure it in order to efficiently solve the task.
×
Stampa
Insegnamento
BIOLOGIA COMPUTAZIONALE
Codice
MF0378
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
MIGNONE Flavio
Docenti
CFU
3
Ore di lezione
24
Ore di studio individuale
51
Settore Scientifico Disciplinare (SSD)
BIO/11 - BIOLOGIA MOLECOLARE
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
C
Anno
1
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano.
Italian.
Contenuti/Content Summary
Principali algoritmi e strutture dati utilizzate per problemi di matching e allineamento di biosequenze. Allienamenti locali, globali, di interi genomi mediante programmazione dinamica, HMM e suffix tree.
Main algorithms and data structures for matching and alignment problems for biosequences. Local and global alignments, whole genomes alignment using dynamic programming, HMM and suffix tree.
Testi di riferimento/Textbooks
N. Jones, P. Pevzner. An Introduction to Bioinformatics Algorithms. MIT Press, 2004.
N. Jones, P. Pevzner. An Introduction to Bioinformatics Algorithms. MIT Press, 2004.
Obiettivi formativi/Mission
Fornire un'introduzione all'utilizzo di linguaggi di scripting per automatizzare la manipolazione di dati di interesse bioinformatico. Descrizione dei principali algoritimi e strutture dati per l'allineamento delle sequenze.
Describe bioinformatics data analysis automation through scripting languages. Describe main algorithms and data structures for sequence alignment.
Prerequisiti/Required background knowledge
Nessun prerequisito
None
Metodi didattici/Teaching methods
Lezioni frontali in aula e esercitazioni in laboratorio.
Lectures and laboratory sessions.
Altre informazioni/Further information
Durante l'anno vengono svolte delle esercitazioni di programmazione in laboratorio sugli argomenti trattati a lezione.
During the course students have to complete programming assignments on some on the topics discussed in classes.
Modalità di verifica dell'apprendimento/Assessment methods
Prova scritta con eventuale prova orale e/o progetto.
Written and optional oral exam and/or programming project
Programma esteso/Content
-Indroduzione al linguaggio PERL -Soluzione del problema del Manhattan tourist mediante programmazione dinamica -Distanza di edit e calcolo della Longest Common Subsequence -Algoritmi per l'allineamento locale e globale ( Smith-Waterman e Needleman-Wunsc) -Algoritmi di allineamento euristici: FASTA e BLAST -Introduzione agli alberi dei suffissi. Allineamento di interi genomi (MUMmer). -Introduzione agli Hidden Markov Model. Problema "Fair Bet Casino" ed estensione all'identificazione delle isole CpG.
-Introduction to PERL language -Manhattan tourist problem solved by dynamic programming -Edit distance e Longest Common Subsequence -Local and global alignment algorithms  Smith-Waterman e Needleman-Wunsc) -FASTA and BLAST heuristic algorithms -suffix tree and whole genome alignment (MUMer) -Introduction to Hidden Markov Model. "Fair Bet Casino" problem and identification of CpG islands
Risultati di apprendimento attesi/Intended learning objectives
Capacità di utilizzare il corretto algoritmo in funzione del tipo di analisi bioinformatica da eseguire. Conoscenza dei principali fattori che influenzano i risultati delle analisi di allineamento di sequenze biologiche.
Ability to choose the most suitable algorithm based on the alignment required. Knowledge of main parameters affecting the quality of results.
×
Stampa
Insegnamento
PROBLEM SOLVING DICHIARATIVO
Codice
MF0379
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
THESEIDER DUPRE' Daniele
CFU
3
Ore di lezione
24
Ore di studio individuale
51
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
C
Anno
1
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Rappresentazione della conoscenza e ragionamento mediante regole logiche e logiche descrittive; la programmazione logica a vincoli; l'Answer Set Programming. Problem solving dichiarativo mediante strumenti di programmazione logica e ASP.
Knowledge representation and reasoning with rules and description logics; constraint logic programming; Answer Set Programming. Declarative problem solving using logic programming and ASP tools.
Testi di riferimento/Textbooks
S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach (3rd edition), Prentice-Hall 2010. P. Hitzler, M. Krötzsch, S. Rudolph, Foundations of Semantic Web, CRC Press, 2010. K. Marriott, P. Stuckey, Programming with Constraints: an Introduction, MIT Press, 1998. M. Gebser, R. Kaminski, B. Kaufmann, and T. Schaub, Answer Set Solving in Practice, Morgan and Claypool, 2012.
S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach (3rd edition), Prentice-Hall 2010. P. Hitzler, M. Krötzsch, S. Rudolph, Foundations of Semantic Web, CRC Press, 2010. K. Marriott, P. Stuckey, Programming with Constraints: an Introduction, MIT Press, 1998. M. Gebser, R. Kaminski, B. Kaufmann, and T. Schaub, Answer Set Solving in Practice, Morgan and Claypool, 2012.
Obiettivi formativi/Mission
Capacità di applicare diversi formalismi di rappresentazione della conoscenza dichiarativa, ragionamento e problem solving, conoscendone espressività e limitazioni e giudicandone l’appropriatezza.
Being able to apply different formalisms for declarative knowledge representation, reasoning and problem solving, being aware of their expressiveness and limitations, and being able to judge whether they are appropriate.
Prerequisiti/Required background knowledge
Logica Matematica.
Mathematical logic.
Metodi didattici/Teaching methods
Lezioni frontali e sperimentazione in laboratorio. Le lezioni, oltre a descrivere i formalismi ne discutono le potenzialità e le limitazioni. Le esercitazioni permettono di conoscere strumenti software per utilizzare i diversi formalismi.
Lectures and practical activity in lab. Lectures describe the different formalism and discuss their power as well as their limitations. Practical activity allows students to know software tools for using the different formalisms.
Altre informazioni/Further information
La sperimentazione in laboratorio costituisce anche una verifica in itinere della comprensione e dell'apprendimento degli argomenti.
Lab activity is also used to verify on-the-fly the degree of knowledge and understanding of the subject.
Modalità di verifica dell'apprendimento/Assessment methods
Verifica della soluzione di esercizi pratici. Esame orale o esonero scritto. La prova prevede diverse domande, riguardanti argomenti svolti in una parte diversa del programma, , ed atte a verificare il raggiungimento degli obiettivi formativi. La valutazione complessiva terrà conto dei risultati conseguiti nelle singole domande.
Evaluation of the solutions for practical exercises. Oral or written examination. The exam involves several questions on different subjects within the course contents; the questions are suited to verifying the achievement of the learning outcomes. The evaluation takes into account the answers to individual questions.
Programma esteso/Content
Ragionamento automatico nella logica proposizionale, e cenni al caso del calcolo dei predicati del primo ordine. Rappresentazione della conoscenza e ragionamento con logiche descrittive, alla base della definizione di ontologie nel Semantic Web. Rappresentazione della conoscenza e ragionamento mediante regole logiche e logiche descrittive; la programmazione logica a vincoli; l'Answer Set Programming. Problem solving dichiarativo mediante strumenti di programmazione logica e ASP.
Automated reasoning in propositional logic, and in first-order logic. Knowledge representation and reasoning in description logics, which is the basis for the use of ontologies in the Semantic Web. Knowledge representation and reasoning with rules and description logics; constraint logic programming; Answer Set Programming. Declarative problem solving using logic programming and ASP tools.
Risultati di apprendimento attesi/Intended learning objectives
Raggiungimento, in grado misurato dal voto, degli obiettivi formativi.
The achievement, up to a degree measured by grades, of the learning goals.
×
Stampa
Insegnamento
BUSINESS INTELLIGENCE: ASPETTI TEMPORALI E SUPPORTO ALLE DECISIONI
Codice
MF0289
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
TERENZIANI Paolo
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
B
Anno
1
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano/Inglese
Italian/English
Contenuti/Content Summary
Il corso sarà articolato nelle seguenti parti: A) Datawarehousing B) Basi di dati temporali C) Supporto alle decisioni aziendali I contenuti delle varie parti si possono riassumere come segue: A) Metodologie e tecniche per reperire, analizzare, sintetizzare e ri-organizzare dati operazionali, al supporto di decisioni strategiche. B) Tecniche e metodologie per gestire il tempo nelle basi di dati relazionali. C) Metodologie e tecniche per la realizzazione di un moderno strumento di Business Intelligence;
The course will be organized into the following parts: A) Datawarehousing B) Temporal databases C) Enterprise decision support Contents of the four parts can be summarized as follows: A) Methodologies and techniques to collect, analyse, sinthetize and re-organize operational data, to support strategical decision-making B) Methodologies and techniques to deal with validity and transaction time in relational databases C) Methodologies and techniques to realize a modern Business Intelligence system;
Testi di riferimento/Textbooks
A) M. Golfarelli, S. Rizzi: “Data Warehose”, McGraw-Hill, Milano. B) La seconda parte del corso si avvale di pubblicazioni su riviste scientifiche fornite dal docente. C) Z. Michalewicz et al., Adaptive Business Intelligence, Springer.
A) M. Golfarelli, S. Rizzi: “Data Warehouse”, McGraw-Hill, Milano. B) The second part of the course (Temporal Issues) is bases of scientific journal publications provided by the teacher. C) Z. Michalewicz et al., Adaptive Business Intelligence, Springer.
Obiettivi formativi/Mission
Conoscenza e capacità di comprensione: gli studenti devono acquisire approfondita conoscenza di A) metodologie per reperire, analizzare, sintetizzare e ri-organizzare i dati operazionali; metodologie di progettazione a livello concettuale e di realizzazione livello logico in ambito relazionale di datawarehousing B) semantica delle basi di dati temporali; principali metodologie per gestire i tempi di validita' e di transazione nelle basi di dati relazionali; problematiche di base per il trattamento del tempo in basi di conoscenza C) metodologie e tecniche di rappresentazione e gestione della conoscenza, predizione, ottimizzazione, adattamento Capacita' di applicare conoscenza: A) capacita' di progettazione a livello concettuale e di realizzazione livello logico in ambito relazionale di datawarehousing, a partire dalle sorgenti di dati operazionali B) capacita' di utilizzare DBMS temporali quali TSQL2 C) capacità di valutare e/o applicare le tecniche studiate per progettare un sistema di supporto alle decisioni in un contesto aziendale, dove possono essere presenti dati e conoscenze eterogenee; Autonomia di giudizio: A) Abilita' nel determinare i fatti di interesse, la granularita', le dimensioni e le gerarchie dimensionali per un data warehouse B) Abilita' nel riconoscere l'eventuale necessita' di adottare tecniche specifiche\generali per la gestione del tempo nelle basi di dati; abilita' nell'individuare problematiche temporali (in basi di dati relazionali), e le metodologie atte a gestirle C) capacità di lavorare in maniera autonoma, anche in situazioni aziendali complesse o a fronte di informazioni incomplete Abilita, comunicative: A-B) Gli studenti devono acquisire e saper utilizzare la terminologia utilizzata nel campo del datawarehousing e delle basi di dati temporali. B) Devono saper esprimere in modo rigoroso (formale) la semantica delle basi di dati relazionali. C) devono saper giustificare le scelte progettuali o implementative fatte comunicandole in modo chiaro anche a utenti meno esperti Capacita' di apprendere: Gli studenti devono aver acquisito la capacita' di A) analizzare e modellare in modo uniforme dati provenienti da sorgenti eterogenee B) analizzare problemi temporali anche complessi nell'ambito delle basi di dati relationali C) descrivere e saper scegliere le più opportune tecniche per la realizzazione di un sistema di supporto alle decisioni aziendali
Knowledge and comprehension: students must acquire a deep knowledge about: A) the methodologies to retrieve, analyse, synthetise, and re-organise operational data; the methodologies to design at the conceptual and at the logical relational level a datawarehouse B) the semantics of temporal databases; the main methodologies to mana valid time and transaction time in temporal relational databases; the main problems when dealing with "time" in knowledge bases C) methodologies and techniques for: knowledge representation and management, prediction, optimization, adaptation. Capacity to apply knowledge and comprehension: A) ability to design (conceptual and logical level) and develop a datawarehouse in the relational context, starting from operational data sources B) capacity to properly use TSQL2-like temporal DBMS. C) ability to evaluate and/or apply the techniques studied in the course to design a decision support tool in an enterprise context, where heterogeneous data and knowledge may be available; Judgement autonomy: A) ability to identify facts of interest, granularity, dimensions and the hierarchy of dimensional attributes for a datawarehouse B) capability of recognizing the necessity of general\specific techniques to cope with time in relational DBs; ability to identify temporal problems (in DBs), and the methodologies to solve them C) ability to work in an autonomous way, and deal with complex enterprise situations or with incomplete information Communication abilities: A-B) Students must acquire and adopt the rigorous terminology used in datawarehousing and in temporal databases. B) They must also be able to express in a rigourous (formal) way the semantics of temporal databases. C) They must be able to justify their design or implementation choices and clearly communicate them also to a non expert audience. Learning capacity: students must acquire the capability of A) analysing a modeling in a uniform way data coming from heterogeneous sources B) analysing possibly complex temporal problems in temporal databases C) describing and properly choosing the correct techniques to realize an enterprise decision support system
Prerequisiti/Required background knowledge
Nozioni di base delle basi di dati relazionali, algebra relazionale, SQL
Basic notions about relational databases, relational algebra, SQL
Metodi didattici/Teaching methods
Lezione frontale in aula. Le lezioni frontali contempleranno anche la risposta a quesiti o la risoluzione di esercizi esemplificativi per lo svolgimento dell'esame. Esempi di test d'esame potranno essere forniti agli studenti. Le slide delle lezioni, i testi consigliati, ed altro materiale saranno forniti anche sulla piattaforma DIR, per consentire anche a chi non frequenta di tenersi al passo con lo svolgimento del corso.
Direct lessons in classroom. Classroom lessons will also include example questions or exercises useful for the final test. Example tests can also be provided to students. Slides, textbooks indications and additional material will be provided also through the DIR platform. In this way, the students who do not attend will be allowed to easily follow the course progression.
Modalità di verifica dell'apprendimento/Assessment methods
A) Scritto. Gli studenti devono rispondere a domande generali sul contenuto del corso, e svolgere piccoli esercizi. B) Orale C) Esame scritto. L'esame su questa parte del corso prevede un minimo di 3 domande, che verteranno su argomenti scelti tra: gestione della conoscenza, predizione, ottimizzazione, adattamento. Il voto terra' conto dei risultati parziali ottenuti nelle singole domande. Eventualmente (ad esempio, per richiesta dello studente), la stessa tipologia di esame potra' essere svolta oralmente
A) Written. Students must answer questions and do small exercises -B) Oral examination C) Written test. The test will be composed by three questions at least, focused on different course topics chosen among knowledge management, prediction, optimization, adaptation. The final score will take into account the partial scores of the different questions. Possibly (e.g., on student's request), the same exam type will be executed orally.
Programma esteso/Content
A (Data Warehousing): - Introduzione: obiettivi ed architetture - tecniche per reperire e riconciliare i dati operazionali - linguaggi di query OLAP - modelli e tecniche per l'implementazione del conceptual multidimensional data model in ambito relazionale - NOSQL (cenni) B (ASPETTI TEMPORALI): - tempi di validita' e di transazione - Un approccio generale al tempo nei DB relazionali: TSQL2 - il modello BCDM per la semantica delle basi di dati relazionali temporali - trattamento del tempo in Intelligenza Artificiale (cenni) C (Supporto alle decisioni aziendali): Nel corso l’esposizione sarà organizzata in quattro parti, ciascuna riferita alla realizzazione di uno dei quattro principali moduli che compongono la struttura di un moderno strumento di Business Intelligence: 1. gestione della conoscenza: conoscenza implicita ed esplicita; Rule-based Reasoning e Case-based Reasoning; soluzioni di Case-based Reasoning avanzate (dati in forma di serie temporali, fuzzy CBR, process-oriented CBR); 2. predizione: classificazione, regressione, serie temporali; metodi matematici, basati su distanze, logici, basati su euristiche; metodi ibridi; 3. ottimizzazione: metodi matematici, algoritmi evoluzionistici, ant systems, metodi ibridi; 4. adattamento: tecniche per migliorare le prestazioni del modulo di previsione.
A (Data Warehousing): - Introduction: goals and architectures for Data Warehousing - techniques to collect and reconcile heterogeneous operational data - languages and techniques for the conceptual design of a multidimensional data model - Advanced query languages for OLAP analysis - model and techniques for a relational implementation of the conceptual multidimensional data model – NoSQL (hints) B (Temporal issues): - Validity vs transaction time - TSQL2: a general approach coping with time in relational databases - The BCDM model for the semantics of temporal relational databases - Properties of temporal relational models - Advanced temporal issues and Artificial Intelligence (hints) C (Enterprise decision support): The subject will be organised in four parts, each one referring to the realization of a specific module in a modern Business Intelligence tool architecture: 1. knowledge management: implicit and explicit knowledge; Rule-based Reasoning and Case-based Reasoning; advanced Case-based Reasoning solutions (time series data, fuzzy CBR, process-oriented CBR); 2. prediction: classification, regression, time series; mathematical models, distance-based models, logic models, heuristic models; hybrid methods; 3. optimisation: mathematical methods, evolutionary algorithms, ant systems, hybrid methods; 4. adaptation: techniques to improve the prediction module performances.
Risultati di apprendimento attesi/Intended learning objectives
Gli studenti devono aver acquisito le seguenti conoscenze, competenze, ed abilita': A) - conoscenza delle tecniche per reperire e riconciliare i dati operazionali; - conoscenza generale dei linguaggi di query OLAP e capacita' di formulare query - conoscenza a capacita' di gestione di modelli e tecniche per l'implementazione del conceptual multidimensional data model in ambito relazionale - conoscenza generale di NOSQL (cenni) B) - conoscenza e capacita' di distinguere i tempi di validita' e di transazione - conosceza e capacita' di utilizzare l'approccio TSQL2 al tempo nei DB relazionali - conosceza e capacita' di utilizzare il modello BCDM per la semantica delle basi di dati relazionali temporali - conoscenza delle principali problematiche concernenti il trattamento del tempo in Intelligenza Artificiale (cenni) C) Le competenze da verificare, e necessarie per il superamento del corso, consistono nell'aver appreso i concetti di base relativi a: 1.gestione della conoscenza 2.predizione 3.ottimizzazione 4.adattamento Occorre inoltre essere in grado di dimostrare la capacita' di applicarli nel rispondere a quesiti di teoria, o nello svolgere alcuni esercizi.
Students must acquire the following knowledge, competences, and abilities A) - knowledge about the techniques to retrieve and reconcile operational data sources - general knowledge about OLAP query languages, and ability to formulate OLAP queries - model and techniques for a relational design and implementation of the conceptual multidimensional data model – NoSQL (hints) B) - knowledge and ability to distinguish validity vs transaction time - knowledge and ability to use TSQL2-like approaches to cope with time in relational databases - knowledge and ability to use the BCDM model to model the semantics of temporal relational databases - knowledge about the main issues concerning the treatment of time in Artificial Intelligence (hints) C) Having understood notions of: 1. knowledge management 2. prediction 3. optimisation 4. adaptation described in the lessons; being able to apply such notions in answering theoretic questions as well as exercises.
×
Stampa
Insegnamento
CALCOLABILITA' E COMPLESSITA'
Codice
S1421
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
EGIDI Lavinia
Docenti
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
B
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano.
Italian.
Contenuti/Content Summary
Il corso di calcolabilità e complessità è una sorta di pausa di riflessione sull'informatica in sé. Non propone tecniche e strumenti per realizzare sistemi e risolvere problemi, ma si concentra sul significato di computazione, attraverso l'analisi dei modelli di calcolo e della loro potenza, e sulla inerente difficoltà dei problemi (non dei singoli algoritmi), mettendoli in relazione dal punto di vista delle risorse che richiedono. In questo corso ci si domanda se con un computer si può fare tutto: la risposta è no, in alcuni casi è proprio impossibile, in altri ci vuole troppo tempo o troppa memoria. Le risposte che si ottengono sono del tutto generali, valide e significative in qualunque ambito dell'informatica. Conoscere i limiti degli strumenti che si adoperano è fondamentale per essere in grado di porsi obiettivi raggiungibili, ridimensionando le richieste, accettando soluzioni approssimate. E gli strumenti, tecnici e cognitivi, che si acquisiscono per questo tipo di studio sono potenti e di ampia applicabilità.
The essence of this course is reasoning about computer science itself. The course doesn't offer techniques and tools to implement systems and solve problems, but it rather concentrates on the meaning of computing, through the analysis of models of computation and of their power, on the inherent hardness of problems (not of single algorithms), relating them to each other from the point of view of the resources they require. The question asked in this course is whether computers can do anything: the answer is no, in some cases computer solving is utterly impossible, in others the time and memory requirements are prohibitive. The answers are completely general, valid and meaningful in any field of computer science. Being aware of the limits of the tools that one uses is essential in order to be able to set reasonable goals, resizing requests as needed, accepting approximate solutions. The technical and cognitive tools acquired in this kind of analysis are powerful and widely applicable.
Testi di riferimento/Textbooks
Testo principale: Thomas A. Sudkamp, Languages and Machines, Pearson International Edition, 2006. Per alcune (poche) parti: C. Papadimitriou, Computational Complexity, Addison-Wesley, 1994. Consultazione, per l’NP-completezza: Garey-Johnson, Computers and Intractability, Freeman, 1979. Del materiale aggiuntivo è fornito sul sito online del corso.
Main text: Thomas A. Sudkamp, Languages and Machines, Pearson International Edition, 2006. For some (few parts): C. Papadimitriou, Computational Complexity, Addison-Wesley, 1994. Reference on NP-completeness: Garey-Johnson, Computers and Intractability, Freeman, 1979. Additional material is provided on the course's online site.
Obiettivi formativi/Mission
Conoscenza e capacità di comprensione: concetto di modello di calcolo, macchine di Turing, concetto di funzione calcolabile, ricorsività e ricorsiva enumerabilità di insiemi, classi di complessità in termini di tempo, P ed NP e loro rapporto, NP-completezza, complessità in termini di spazio; tecniche di simulazione, riduzione e diagonalizzazione; esistenza di problemi non decidibili e di problemi che richiedono troppe risorse di computazione per essere trattati in pratica Capacità di applicare conoscenza e comprensione: -capacità di confrontare modelli di calcolo -capacità di applicare metodologie di analisi della inerente difficoltà dei problemi -in particolare capacità di riconoscere il contesto in cui applicare le tecniche di simulazione, riduzione e diagonalizzazione -capacità di applicare le tecniche descritte in casi semplici. Come effetto collaterale, lo studente consoliderà le proprie competenze di programmazione. Autonomia di giudizio: Lo studente acquisirà strumenti , tecnici e cognitivi, che sono potenti e di ampia applicabilità, e apprenderà a riconoscere i limiti degli strumenti che l'informatico adopera, competenza fondamentale per essere in grado di porsi obiettivi raggiungibili, ridimensionando le richieste, e accettando soluzioni approssimate. Abilità comunicative: Per ottenere tali obbiettivi, lo studente acquisirà un linguaggio formale specifico. Inoltre lo studente migliorerà la propria padronanza della lingua inglese a livello tecnico informatico. Capacità di apprendere: lo studente affinerà il rigore delle proprie capacità di ragionamento logico. Mettendo in discussione l'onnipotenza degli strumenti di calcolo, lo studente avrà un nuovo punto di vista dal quale rivedere quanto appreso fino ad ora. Infine, gli strumenti tecnici e cognitivi che vengono sviluppati in questo corso sono applicabili a tutte le aree dell'informatica e dunque sono un arricchimento a prescindere dalle specifiche nozioni affrontate nel corso.
Knowledge and understanding: concept of model of computation, Turing machine, computable function, recursive and recursively enumerable sets, time complexity classes, P and NP and their mutual relationship, NP-completeness, space complexity; simulation, reduction and diagonalization techniques; existence of undecidable problems and of problems that require too many computational resources to be feasible in practice Applying knowledge and understanding: - comparing models of computation - applying methodologies for analyzing the inherent hardness of problems - in particular: ability to discern the context in which each of the techniques (simulation, reduction and diagonalization) is best applied - ability to apply the mentioned techniques to simple cases As a by-product, students will consolidate their own programming skills. Making judgements:The student will acquire technical and cognitive tools that are powerful and of wide applicability, and will learn to recognize the limits of the tools used by computer scientists; the latter is a fundamental competence to be able to set oneself reachable objectives, appropriately reducing requests and accepting approximate solutions. Communication skills: In order to attain such objectives, the student will acquire a specific formal language. Moreover the students will increase their proficiency in the technical English of computer science. Learning skills: The students will sharpen the rigor of their own logical reasoning skills. Challenging the idea of omnipotence of computational devices, they will have a new point of view from which revisit all that they have learned so far. Finally the technical and cognitive tools developed in this course can be applied to any area of computer science and therefore constitute an enrichment independently of the specific notions around which they were introduced.
Prerequisiti/Required background knowledge
Conoscenza dei concetti fondamentali di programmazione, logica, analisi, e preferibilmente di architetture degli elaboratori e linguaggi formali. Capacità di programmare in Java.
Knowledge of the fundamental concept of programming, logic, analysis, and preferably computer architectures and formal languages. Java programming.
Metodi didattici/Teaching methods
Il corso consta di lezioni teoriche in aula e di attività in laboratorio. L' attività in laboratorio è parte integrante del corso. A lezione vengono presentati in modo formale definizioni e teoremi (con le rispettive dimostrazioni) per comunicare le nozioni, lavorare sul rigore del ragionamento logico e insegnare la terminologia formale. In particolare viene posta enfasi sulle tecniche alla base delle dimostrazioni e dei ragionamenti, confrontandone l'applicazione in vari ambiti, per aiutare lo studente nella concettualizzazione delle stesse e per stimolarli ad acquisirle come strumento di lavoro di utilizzo piú vasto. Inoltre gli studenti vengono incoraggiati a partecipare suggerendo l'applicazione di tecniche, sviluppando il ragionamento con il richiamo di concetti fondamentali e risultati già presentati nel corso. In laboratorio si richiede agli studenti la realizzazione di progetti software per approfondire la comprensione dei modelli studiati e per cogliere fino in fondo il carattere costruttivo delle dimostrazioni di quasi tutti i teoremi presentati durante il corso. La partecipazione in laboratorio trasforma per ciascuno l'eventuale frequenza passiva in esigenza di confrontarsi attivamente con le nozioni e i risultati che si studiano, e specialmente con i ragionamenti seguiti. Sulla piattaforma DIR sono a disposizione: tutte le informazioni pratiche sul corso, indicazioni sui libri di testo e il programma, materiale didattico aggiuntivo, argomenti trattati e indicazioni bibliografiche per ogni singola lezione compilati subito dopo la lezione, specifiche ed eventuale materiale aggiuntivo per l'attività che si svolge in laboratorio. In tal modo, lo studente che frequenta può rivedere e approfondire l'attività di ciascuna lezione; lo studente che non frequenta ha a disposizione tutto il materiale per mantenersi al passo con il corso oppure per prepararsi in autonomia. Poiché il libro di testo consigliato è in inglese, lo studio sarà per lo studente uno strumento per migliorare la propria padronanza del linguaggio tecnico informatico in inglese.
The course consists of theoretical classes and hands on activity in lab. In class definitions and theorems (with proofs) are presented formally in order to communicate to students the notions, to work on the rigor of reasoning and to teach the formal terminology. In particular the techniques on which proofs are based are emphasized, and their applications in different areas are compared; this serves the double aim of helping the students to conceptualize these techniques and of stimulating them to acquire the techniques as a tool for wider usage. Moreover the students are encouraged to participate suggesting the application of techniques, developing reasoning by recalling fundamental concepts and results previously presented in the course. In lab the students are requested to realize software projects in order to understand in depth the models studied and in order to fully comprehend the constructive character of almost all the proofs of the theorems presented in this course. Participation to lab activity replaces the possibly passive attendance to classes with a necessity to actively measure oneself with the notions and the results studied and especially with the arguments presented. On the DIR platform students find: all the practical information on the course, information on textbooks and the program, additional didactic material, for each class the subject treated and bibliographic references (written soon after the class), specifics and if necessary additional material for the activity in lab. This way, students that attend classes can review and consolidate subjects presented in class or activities proposed in lab; students that don't attend classes can keep abreast of the course or study autonomously. Since the recommended textbook is in English, preparing for the exam will give the students the possibility to practice the technical language of computer science.
Altre informazioni/Further information
L'attività in laboratorio richiede una partecipazione attiva e individuale degli studenti e li induce a porsi dei quesiti (e spesso di conseguenza a porne al docente); in tal modo permette una regolare verifica del modo in cui gli argomenti vengono recepiti. L'attività prevede principalmente sviluppo in linguaggio Java: quindi al di là delle funzioni ai fini degli obiettivi formativi specifici del corso, è in generale per gli studenti un ulteriore momento per consolidare le proprie competenze di programmazione e per affinare le proprie capacità di utilizzo del linguaggio Java.
Hands-on activity requires active participation of the students, and leads the latter to ask themselves questions (and, as a consequence, often to ask questions to the instructor); this way it allows a regular monitoring of the way the subject is being understood. The activity in lab fundamentally requires programming in Java: therefore, beyond its importance as a means to reach the formative objectives of the course, it is in general an additional moment to consolidate the students' programming skills and to refine their competences as Java programmers.
Modalità di verifica dell'apprendimento/Assessment methods
Esame orale L'esame orale consta in media di tre domande: una generale introduttiva sui metodi formali, una su argomenti di calcolabilità e una riguardante argomenti di complessità. Lo scopo è verificare che lo studente abbia compreso i concetti fondamentali e li sappia esporre con proprietà di linguaggio, e abbia acquisito gli strumenti metodologici e li sappia applicare. Pertanto viene richiesto da una parte di esporre definizioni e dimostrazioni, e dall'altra di ragionare su contesti leggermente modificati o di fare collegamenti tra argomenti diversi trattati nel corso, o di applicare le tecniche apprese a problemi visti durante il corso o simili. Durante il colloquio si verifica anche il livello di formalità raggiunto dallo studente nell'espressione e nel ragionamento. Il numero di domande poste all'orale è puramente indicativo perché, a seconda del modo in cui lo studente risponde (formalità, chiarezza, completezza, precisione,...), possono essere necessarie piú domande o ne possono bastare meno per verificare che gli obiettivi formativi siano stati raggiunti.
Oral exam The oral exam consists normally of three questions: one general introductory question on formal methods, one more specific on computability aspects and the third on complexity. The goal is to ascertain whether the student has understood the fundamental concepts and can present them with a formal language, and has acquired the methodological instruments and can apply them. Therefore, on one hand the student is requested to present definitions and proofs, and on the other hand the student must reason on slightly modified contexts or explore connections among different parts of the course. During the interview the level of formality, both in expression and reasoning, is also ascertained. The number of questions can vary, depending on the quality of the answers (with respect to clarity, completeness, precision, formality,...), since the final aim is to ascertain that the formative objectives have been reached.
Programma esteso/Content
Introduzione alla calcolabilità: La prima parte di programma è volta all'acquisizione di tecniche formali e di strumenti per l'analisi e la formalizzazione del concetto di calcolabilità (Macchine di Turing, definizioni formali e funzionamento. Confronto di modelli diversi di macchina. Tecnica di simulazione. Funzioni calcolabili secondo Turing.) Segue una formalizzazione basilare di classi di difficoltà di problemi in base ad aspetti puramente di calcolabilità, senza tenere conto di limiti di risorse (Insiemi ricorsivi e ricorsivamente enumerabili. Enumeratori.). Il disorso prosegue con risultati generali e fondamentali che, nel seguire l'evoluzione storica, forniscono un primo raccordo con il mondo dell'informatica attuale (Tesi di Church, Codifica di macchine di Turing e macchina universale). Seguono risultati negativi che sottolineano i limiti degli strumenti informatici e vengono contestualmente forniti strumenti per l'estensione di tali risultati negativi (Diagonalizzazione, Esistenza di funzioni non calcolabili, Dimostrazioni del fatto che un insieme non è ricorsivo o non è ricorsivamente enumerabile, Indecidibilità, problema dell'HALT e riduzioni). Infine, la parte di calcolabilità si conclude rapportando gli strumenti e i risultati appresi, ad aspetti dell'informatica che si usano tutti i giorni o noti agli studenti da altri corsi (Importanza del costrutto "while" nei linguaggi di programmazione, Confronto di macchine di Turing con modelli di calcolo piú deboli (automi a stati finiti e a pila), grammatiche illimitate e dipendenti da contesto e ricorsività). Introduzione alla complessità strutturale: la parte di complessità relativizza l'analisi e la formalizzazione fatte precedentemente, nonché gli strumenti introdotti, ad una situazione piú realistica in cui le risorse sono limitate; si focalizza in particolare sul rapporto tra la difficoltà di problemi, e il significato delle classi di complessità nondeterministiche. (Misure di complessità, modelli e rappresentazione di problemi. Teorema di accelerazione lineare. Macchine di Turing non deterministiche, significato di non determinismo. Le classi P ed NP, problemi in NP, riduzioni polinomiali, NP-completezza, SAT e il teorema di Cook. Complessità in termini di spazio, relazioni tra complessità in termini di spazio e tempo, e spazio non deterministico e tempo; teorema di Savitch. Esistenza di problemi di complessità arbitraria, teoremi della gerarchia e funzioni time e space constructible.)
Introduction to Computability: The first part of the course aims at the acquisition of formal techniques and analysis tools, and to the formalization of the concept of computability (Turing Machines, formal definitions and operation. Comparison of different machine models. Simulation technique. Turing computable functions). Following, the course offers a basilar formalization of classes of hardness of problems, based solely on computability aspects, with no reference to resource limitations. (Recursive and recursively enumerable sets. Enumerators). Then the presentation moves to general results and, following the track of historical evolution, gives a first connection to present-day computer science (Church thesis, Turing machines coding and universal Turing machine). Then negative results underline the limits of computer science tools; moreover tools for the extension of such negative results are provided (Diagonalization. Existence of non computable functions. Proofs that sets are not enumerable or not recursively enumerable. Undecidability, Halting problem and reductions). The introduction to computability is concluded relating the tools and results learned to every-day computer science or to subjects known to students from other courses (Importance of the "while" construct in programming languages. Comparison of Turing machines with weaker models of computation, such as finite state and pushdown automata, unrestricted and context sensitive grammars, and recursivity). Introduction to structural complexity: The second part of the course relativizes the analysis and the formalization carried out in the introduction to computability, to a more realistic situation in which resources are limited; it focuses in particular on the relation among classes of problems distinguished in terms of computational hardness, and on the meaning of nondeterministic classes. (Complexity measures, models and problem representation. Linear speedup theorem. Non deterministic Turing machines and the meaning of non determinism. Classes P and NP, problems in NP, polynomial time reductions, NP-completeness, SAT and Cook's theorem Space complexity, deterministic space vs. deterministic time, non deterministic space vs. time; Savitch's theorem. Existence of problems of arbitrary complexity and hierarchy theorems, time and space constructible functions).
Risultati di apprendimento attesi/Intended learning objectives
Dare una definizione formale di macchina di Turing. Spiegare il significato di modello di calcolo. Descrivere la tecnica di simulazione. Applicare la tecnica su specifiche variazioni di macchina di Turing, e sul rapporto tra macchine di Turing e grammatiche formali. Definire e spiegare i concetti di funzione calcolabile, insiemi ricorsivi e ricorsivamente enumerabili. Presentare e discutere le tecniche per dimostrare la non ricorsività o la non ricorsiva enumerabilità di un insieme. Enunciare e spiegare il significato della Tesi di Church. Definire le classi di complessità in termini di tempi e di spazio. Definire e spiegare il significato di non determinismo. Definire il concetto di NP-completezza e la sua importanza. Analizzare il rapporto tra classi di complessità in funzione della variazione di risorse. Enunciare, spiegare e dimostrare i teoremi presentati a lezione. Analizzare la funzione delle specifiche ipotesi nei teoremi presentati a lezione. Mostrare applicazioni della tecnica di riduzione nell'opportuno ambito di utilizzo nel mondo della calcolabilita e in quello della complessità. Mostrare applicazioni della tecnica di diagonalizzazione nell'opportuno ambito di utilizzo nel mondo della calcolabilita e in quello della complessità. Proporre la tecnica giusta da utilizzare in una particolare variazione di qualche problema visto a lezione.
Give a formal definition of Turing machine. Explain the meaning of computational model. Describe the simulation technique. Apply simulation to specific variations of Turing machines and on Turing machines with respect to formal grammars. Define and explain the concepts of computable function, recursive and recursively enumerable sets. Present and discuss the technique to prove non recursivity or non recursive enumerability of a set. State and explain the meaning of Church's Thesis. Define time and space complexity classes. Define and explain the concept of non determinism. Define the concept of NP-completeness and its importance. Analyze the relationship between complexity classes as a function of amounts of resources. State, explain and prove the theorems presented in class. Analyze the function of specific hypothesis in the theorems presented in class. Show an application of the reduction technique in the appropriate area of usage in computability or complexity. Show an application of the diagonalization technique in the appropriate area of usage in computability or complexity. Propose the right technique to be used on a specific variation of some problem seen in class,
×
Stampa
Insegnamento
CYBER SECURITY 2
Codice
MF0409
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
ANGLANO Cosimo Filomeno
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
B
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Introduzione ai principi fondamentali di sicurezza dei sistemi e delle applicazioni software. Studio delle principali vulnerabilitá software e delle relative contromisure. Studio e applicazione delle tecniche di pentration testing basate su tali vulnerabilità.
Introduction to the fundamental principles of system and software security. Analysis of the main software and system vulnerabilities and of the corresponding countermeasures. Analysis and applications of the penetration testing techniques based on these vulnerabilties.
Testi di riferimento/Textbooks
1) Wenliang Du. Computer Security: A Hands-On Approach. Printed by Create Space. October 2017. ISBN 978-1548367947 2) Allen Harper, Daniel Regalado, e al. Gray Hat Hacking: The Ethical Hacker's Handbook. Fifth Edition, 2018. McGraw-Hill Education. ISBN: 978-1260108415 3) M. Sikorsy, A. Honig. Practical Malware Analysis. No Starch Press, 2012. ISBN: 978-1593272906. 4) D. Andriesse. Practical Binary Analysis: Build Your Own Linux Tools for Binary Instrumentation, Analysis, and Disassembly. No Starch Press, 2018. ISBN: 978-1593279127. 5) Sean-Philip Oriyano. Penetration testing essentials, first edition. Wiley 2017. ISBN 9781119235309
1) Wenliang Du. Computer Security: A Hands-On Approach. Printed by Create Space. October 2017. ISBN 978-1548367947 2) Allen Harper, Daniel Regalado, e al. Gray Hat Hacking: The Ethical Hacker's Handbook. Fifth Edition, 2018. McGraw-Hill Education. ISBN: 978-1260108415. 3) M. Sikorsy, A. Honig. Practical Malware Analysis. No Starch Press, 2012. ISBN: 978-1593272906. 4) D. Andriesse. Practical Binary Analysis: Build Your Own Linux Tools for Binary Instrumentation, Analysis, and Disassembly. No Starch Press, 2018. ISBN: 978-1593279127. 5) Sean-Philip Oriyano. Penetration testing essentials, first edition. Wiley 2017. ISBN 978111923530
Obiettivi formativi/Mission
Conoscenza e capacità di comprensione: conoscere i principi della sicurezza informatica dei sistemi e delle applicazioni software, le tecniche di attacco basate sulle relative vulnerabilità, le contromisure che é possibile predisporre per proteggersi da tali attacchi, e le tecniche di penetration testing basate sugli attacchi in questione. Applicazione di conoscenza e comprensione: deve essere capace di identificare le vulnerabilità presenti sul sistema, e di applicare le metodologie di penetration testing al fine di valutare il livello di sicurezza dei sistemi e delle relative applicazioni, proponendo di conseguenza le opportune contromisure. Autonomia di giudizio: avere acquisito la corretta percezione dei rischi di sicurezza e del modo in cui gli aspetti di sicurezza informatica si intrecciano con l'organizzazione, la configurazione e l'uso di un sistema informatico. Abilità comunicative: deve avere acquisito terminologia tecnica specifica dell'area e deve saper discutere di aspetti di sicurezza, e di meccanismi di protezione. Inoltre lo studente migliorerà la propria padronanza della lingua inglese a livello tecnico informatico. Capacità di apprendere: avendo appreso i principi findamentali sarà in grado in futuro di apprezzare e valutare tecnologie e metodologie nuove che si basano sugli stessi principi.
Knowledge and understanding: know the basic principles of system and software security, the attack techniques based on the vulnerabilities of these systems, the countermeasures that can be put in place to protect the system from these attacks, and the penetration testing methodologies based on the above attacks. Applying knowledge and understanding: students must be able to recognize the vulnerabilities of a computer system, and to apply the penetration testing methodologies in order to assess the security level of computer systems and of the software running on it, and to propose suitable countermeasures to keep the system secure. Making judgements: They must also acquire a correct perception of security risks and of the way security issues intertwine with the organization, the configuration, and the use of a computer system. Communication skills: students must have acquired the specific technical terminology and must be able to discuss security aspects and protection mechanisms. Moreover the students will increase their proficiency in the technical English of computer science. Learning skills: having acquired the fundamental principles the student will later be able to appreaciate and evaluate new technologies and methodologies based on the same principles.
Prerequisiti/Required background knowledge
Conoscenza del funzionamento dei sistemi operativi e delle reti di calcolatori, delle problematiche e soluzioni per la sicurezza delle reti di calcolatori, nozioni di base di utilizzo di Unix, programmazione in C.
Knowledge of the principles of operation of operating systems and computer networks, principles and techniques of computer networks security, basic notions of Unix usage, C programming.
Metodi didattici/Teaching methods
Il corso è insegnato interamente in laboratorio. Ciascuna lezione è costituita da una presentazione degli argomenti nella quale gli aspetti tecnici vengono arricchiti da ampi riferimenti ad incidenti informatici recenti, seguita da attività pratica. Per la prima parte del corso, focalizzata sullo studio delle vulnerabilitá software, gli studenti sono guidati nella realizzazione di codice in grado di sfruttare vulnerablitá del sistema operativo o di applicazioni specifiche, con l'obiettivo di violarne la sicurezza del sistema, ottenendo un accesso allo stesso o l'esecuzione di codice malevolo, al fine di acquisire sensibilità riguardo alle vulnerabilità e per comprendere le caratteristiche e i limiti delle tecnologie e dei meccanismi di sicurezza presentati. Per la seconda parte di corso, focalizzata sul penetration testing, gli studenti sono guidati nell'applicazione di metodologie di penetration testing, utilizzando delle piattaforme software adatte a tali attivitá, utilizzando come bersaglio dei sistemi vulnerabili appositamente configurati, al fine di acquisire esperienza sull'applicazione concreta delle metodologie presentate nel corso. Gli argomenti trattati in ogni lezione insieme alle appropriate indicazioni bibliografiche e le indicazioni sull'attività pratica sono riportate sulla piattaforma DIR per permettere agli studenti che seguono il corso di rivedere o completare le attività proposte e di mantenersi al passo con il corso in caso perdano qualche lezione; inoltre questo permette agli studenti che non frequentano di svolgere autonomamente l'attività di laboratorio, e di seguire pur a distanza il corso delle lezioni.
The course is entirely taught in lab. Each lecture begins with a presentation of the subject, during which technical aspects are enriched with references to recent security incidents. Hands on activity follows. For the first part of the course, which is focused on the study of software vulnerabilities, students are guided in the realization of code able to exploit vulnerabilities of operating systems or of specific applications, with the goal of carrying out attacks aimed at obtaining unrestricted access to the system or the execution of malicious code, so that they gain a feeling for vulnerabilities and understand the features and limits of security technologies and mechanisms. For the second part of the course, which is focused on penetration testing, students are guided in the application of penetration testing methologies, using suitable software platforms, using as target vulnerable systems purposely built and configured, so as to gain experience on the concrete application of the methodologies taught in the course. Students will find on the DIR platform the subjects treated in each leture, along with appropriate bibliographic references, and indications on the hands-on activity. This way students that attend the course can review or complete proposed activities and keep abreast of the course when they miss a class. This also enables non attending students to experiment on their own with the hands-on activity and to follow autonomosly the class.
Altre informazioni/Further information
L'attività in laboratorio richiede una partecipazione attiva e individuale degli studenti e li induce a porsi dei quesiti (e spesso di conseguenza a porne al docente); in tal modo permette una regolare verifica del modo in cui gli argomenti vengono recepiti. L'attività in laboratorio è pensata come strumento didattico per facilitare la comprensione e lo sviluppo della necessaria sensibilità, non come mezzo per insegnare ad utilizzare strumenti di sicurezza. Però lo studente volenteroso trae dall'attività in laboratorio anche utili competenze pratiche.
Hands-on activity requires active participation of the students, and leads the latter to ask themselves questions (and, as a consequence, often to ask questions to the instructor); this way it allows a regular monitoring of the way the subject is being understood. The activity in lab is thought as a way to ease comprehension and to develop the necessary sensitivity, and not as a means to teach usage of security tools. Yet, the motivated students gains from such activity also useful practival skills.
Modalità di verifica dell'apprendimento/Assessment methods
Esame orale. L'esame prevede un colloquio orale in cui saranno discusse le soluzioni, fornite dagli studenti, ad alcuni esercizi di laboratorio, assegnati dal docente, che gli studenti dovranno svolgere durante il corso. Oltre a tale discussione, allo studente saranno poste alcune domande, incentrate sui meccanismi o tecnologie presentate nel corso, al fine di verificare che gli obiettivi formativi siano stati raggiunti.
Oral exam. The exam is oral. In the exam, students will be asked to discuss the solutions to some lab exercies, that will be assigned by the teacher and will have to be completed and submitted during the course. In addition to this discussion, students will be asked to answer a few questions, focusing on the basic principles, mechanisms and technology taught in class and has acquired the appropriate technical language, through a request to describe some of the subjects, to ascertain whether they have attained the formative objectives or not.
Programma esteso/Content
1. Software Security: Vulnerabilities, Attacks, and Countermeasures. 1.1 Privileged programs (Set-UID programs) and vulnerabilities 1.2 Buffer Overflow vulnerability and attack 1.3 Return-to-libc attack 1.4 Race Condition vulnerability and attack 1.5 Format String vulnerability and attack 1.6 Input validation 1.7 Shellshock attack 2. Web Security: Vulnerabilities, Attacks, and Coutermeasures 2.1 Same Origin Policy 2.2 Cross-Site Scripting Attack 2.3 Cross-Site Request Forgerty Attack 2.4 SQL-Injection Attack 2.5 Click-Jacking Attack 2.6 Web Tracking 3. Smartphone Security (cenni) 3.1 Access control in Android operating system 3.2 Rooting Android devices 3.3 Repackaging attacks 3.4 Attacks on apps 3.5 Whole-disk encryption 4. Penetration Testing: 4.1 Penetration testing methodologies 4.2 Gathering intelligence 4.3 Scanning and Enumeration 4.4 Vulnerability scanning 4.5 Obtaining access 4.6 Retaining access 4.7 Reporting
1. Software Security: Vulnerabilities, Attacks, and Countermeasures. 1.1 Privileged programs (Set-UID programs) and vulnerabilities 1.2 Buffer Overflow vulnerability and attack 1.3 Return-to-libc attack 1.4 Race Condition vulnerability and attack 1.5 Format String vulnerability and attack 1.6 Input validation 1.7 Shellshock attack 2. Web Security: Vulnerabilities, Attacks, and Coutermeasures 2.1 Same Origin Policy 2.2 Cross-Site Scripting Attack 2.3 Cross-Site Request Forgerty Attack 2.4 SQL-Injection Attack 2.5 Click-Jacking Attack 2.6 Web Tracking 3. Smartphone Security (cenni) 3.1 Access control in Android operating system 3.2 Rooting Android devices 3.3 Repackaging attacks 3.4 Attacks on apps 3.5 Whole-disk encryption 4. Penetration Testing: 4.1 Penetration testing methodologies 4.2 Gathering intelligence 4.3 Scanning and Enumeration 4.4 Vulnerability scanning 4.5 Obtaining access 4.6 Retaining access 4.7 Reporting
Risultati di apprendimento attesi/Intended learning objectives
Descrivere i requisiti di sicurezza di un sistema. Spiegare le principali vulnerabilitá dei sistemi software, i relativi attacchi e le possibili contromisure. Sviluppare codice in grado di sfruttare le vulnerabilitá software per compromettere la sicurezza di un sistema. Spiegare le principali vulnerabilitá dei sistemi web, i relativi attacchi e le possibili contromisure. Sviluppare codice in grado di sfruttare le vulnerabilitá dei sistemi web per comprometterne la sicurezza. Spiegare le principali vulnerabilitá dei sistemi operativi per smartphone, i relativi attacchi e le possibili contromisure. Spiegare le principali vulnerabilitá delle app per smartphone, i relativi attacchi e le possibili contromisure. Spiegare le metodologie di penetration testing, e in particolare di tutti i passaggi che esse comportano. Utilizzare una piattaforma software per effettuare il penetration testing di semplici sistemi bersaglio.
Describe the security requirements of a system. Explain the main vulnerabilities of software systems, the attacks they allow, and the possible countermeasures. Develop code able to exploit software vulnerabilities with the aim of compromising the security of a system. Explain the main vulnerabilities of web systems, the attacks they allow, and the possible countermeasures. Develop code able to exploit the vulnerabilities of web systems with the aim of compromising their security. Explain the main vulnerabilities of smartphone operating systems, the attacks they allow, and the possible countermeasures. Explain the main vulnerabilities of smartphone apps, the attacks they allow, and the possible countermeasures. Explain penetration testing methodologies, and in particular their various steps. Use a suitable software platform to carry out the penetration testing of simple target systems.
×
Stampa
Insegnamento
COMPUTATIONAL STATISTICS
Codice
MF0410
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
FERRERO Enrico
Docenti
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
MAT/06 - PROBABILITÀ E STATISTICA MATEMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
C
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Nozioni avanzate di probabilità e statistica. Processi markoviani. Linguaggio di programmazione R
Advanced notions of probability and statistics. Markov processes. Programming language R
Testi di riferimento/Textbooks
Dispense del docente, Papoulis A. (1991) Probability, Random Variables and Stochastic Processes, Third edition, McGraw-Hill International Gardiner C.W. (1990) Handbook of Stochastic Methods, Springer-Verlag Iacus, Masarotto "Statistica con R" (2003) Mc Graw Hill
Dispense del docente, Papoulis A. (1991) Probability, Random Variables and Stochastic Processes, Third edition, McGraw-Hill International Gardiner C.W. (1990) Handbook of Stochastic Methods, Springer-Verlag Iacus, Masarotto "Statistica con R" (2003) Mc Graw Hill
Obiettivi formativi/Mission
Capacità di sviluppare modelli stocastici
Ability to develop stochastic models
Prerequisiti/Required background knowledge
Corsi di base di matematica e statistica
Basic mathematics and statistics courses
Metodi didattici/Teaching methods
Lezioni frontali ed esercitazioni
Frontal lessons and exercises
Modalità di verifica dell'apprendimento/Assessment methods
Relazione sulle esercitazioni svolte e risultati delle elaborazioni statistiche
Report on the exercises carried out and the results of the statistical elaborations
Programma esteso/Content
Vettori e successioni di variabili casuali. Generalità e definizioni, trasformazioni, valori attesi, funzioni caratterische, convergenza stocastica, teoremi limite. Processi stocastici: concetti generali, sistemi senza memoria, sistemi lineari, spettri di potenza, random walk, moto Browniano, segnali deterministici nel rumore, Processi di Markov, generalità, Processi omogenei, Equazione di Chapman Kolmogorov, Catene di Markov a tempo discreto, catene a tempo continuo, processi continuo, equazione di diffusione, equazione di Fokker-Planck. Esercitazioni con R
Vectors and sequences of random variables. Generalities and definitions, transformations, expected values, characteristic functions, stochastic convergence, limit theorems. Stochastic processes: general concepts, systems without memory, linear systems, power spectra, random walk, Brownian motion, deterministic signals in noise, Markov processes, generalities, homogeneous processes, Chapman Kolmogorov equation, Markov time discrete chains, chains continuous time, continuous processes, diffusion equation, Fokker-Planck equation. Exercises with R
Risultati di apprendimento attesi/Intended learning objectives
Capacità di elaborare dataset statistici e realizzazioni di modelli basati su processi stocastici
Ability to elaborate statistical datasets and realizations of models based on stochastic processes
×
Stampa
Insegnamento
FONDAMENTI DI LINGUAGGI DI PROGRAMMAZIONE
Codice
S1422
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
GIANNINI Paola
Docenti
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
B
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano.
Italian.
Contenuti/Content Summary
Introduzione alla programmazione multiparadigma, alla definizione della semantica statica e dinamica dei linguaggi di programmazione e alla loro relazione.
Introduction to multiparadigm programming, and the definition of the static and dynamic semantics of programming languages ​​with their relationship.
Testi di riferimento/Textbooks
Pierce, Types and Programming Languages, The MIT Press.  Documentazione su Scala presente in rete.
Pierce, Types and Programming Languages, The MIT Press.  Scala documentation available on the net.
Obiettivi formativi/Mission
Conoscenza e capacità di comprensione: lo studente deve acquisire familiarità con i metodi formali di descrizioni della semantica dei linguaggi di programmazione ed essere in grado di programmare nel linguaggio Scala. Capacità di applicare conoscenza e comprensione: lo studente deve essere in grado di modellare la semantica statica e dinamica di costrutti di linguaggi programmazione e descriverne l’interazione. Deve inoltre essere in grado di usare in modo appropriato i costrutti di un linguaggio di programmazione. Autonomia di giudizio: lo studente essere in grado di scegliere, motivandone la ragione, il paradigma di programmazione più appropriato per la soluzione di un problema. Abilità comunicative: lo studente deve saper esprimere e motivare anche in forma scritta le proprie scelte. Capacità di apprendere: lo studente deve essere in grado di imparare facilmente un nuovo linguaggio di programmazione, discriminandone gli aspetti fondamentali da quelli meramente sintattici.
Knowledge and understanding: the student must become familiar with the formal methods for the description of the semantics of programming languages and being able to program in the Scale language. Applying knowledge and understanding: the student should be able to model the static and dynamic semantics of programming languages constructs and to describe their interaction. Moreover, he/she should be able to use in an appropriate way the construct of a programming language. Making judgments: the student should be able to choose, motivating the reasons, the programming paradigm most appropriate for solving a specific problem. Communication skills: the student must be able to express and motivate his/her own choices orally and in writing. Learning skills: the student must be able to learn easily a new programming language by discriminating its fundamental aspects from the merely syntactic ones.
Prerequisiti/Required background knowledge
Familiarità con il linguaggi di programmazione acquisita nei corsi triennali di programmazione e programmazione ad oggetti. 
Familiarity with programming in the imperative and object oriented paradigms.
Metodi didattici/Teaching methods
Lezioni frontali di introduzione dei concetti ed esercitazioni volte a mostrare l'uso di tali concetti nella pratica dei linguaggi di programmazione.
Lessons in classroom for introducing concepts and sessions of exercises aimed at showing the use of such concepts in the context of programming languages.
Altre informazioni/Further information
Lo studente deve acquisire familiarità con i metodi formali di descrizioni della semantica dei programmi sia dal punto di vista statico che dinamico, questo viene controllato mediante la risoluzione di esercizi che vengono proposti durante il corso. 
The student should become familiar with the methods of formal descriptions of the semantics of programs, both in terms of static and dynamic, this is controlled by the resolution of exercises that are offered during the course.
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto con 5 o 6 esercizi che coprono i contenuti svolti durante il corso e le esercitazioni. La valutazione complessiva terra' conto dei punteggi parziali conseguiti nei singoli esercizi pesati a seconda della loro difficolta'. Inoltre si richiede lo svolgimento di 6-7 esercizi in Scala che coprono i concetti introdotti in classe.
Written exam composed of 5 or 6 exercises on the topics presented during the lessons and the exercise sessions. The final grade will be given on the basis of the partial scores achieved in the individual exercises weighted on their difficulty. Moreover, it is required to has written and run 6-7 Scala programs covering the concepts introduced in class.
Programma esteso/Content
Nella prima parte del corso verrà introdotto il linguaggio di programmazione Scala che permette di integrare la programmazione funzionale con la programmazione ad oggetti. Poi si passerà alla specifica operazionale dei programmi che permette di descrivere in modo astratto la loro esecuzione ed ai sistemi di tipo che permettono di controllarne staticamente alcune proprietà. In questo modo verranno descritti i costrutti tipici dei linguaggi quali espressioni, funzioni, vettori, puntatori ed inoltre le nozioni più avanzate dei linguaggi quali la programmazione imperativa e quella ad oggetti. 
In the first part of the course we introduce the programmaing language Scala that allows the integration of functional and object oriented programming. Then we introduce the operational semantics approach to the specification of language features, and moreover it is introduced the static semantics via type systems and the properties relating the  operational semantics and the type system are established.  With this methodology are analysed some of the constructs typical of programming languages such as: expressions, functions, arrays, references and objects. 
Risultati di apprendimento attesi/Intended learning objectives
Abilità di modellare formalmente la semantica di costrutti di linguaggi, con particolare enfasi alla relazione fra semantica statica e semantica dinamica. Uso appropriato degli aspetti muti-paradigna del linguaggio Scala e capacità di riconoscere queste caratteristiche anche in altri linguaggi.
Ability to describe formally the semantics of programming languages constructs, with particular emphasis on the relationship between static semantics and dynamic semantics. Appropriate usage of the mute-paradigm aspects of the Scala programming language and ability to recognize these features in other languages as well.
×
Stampa
Insegnamento
FONDAMENTI DI WEB SEMANTICO E PROBLEM SOLVING DICHIARATIVO
Codice
MF0291
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
THESEIDER DUPRE' Daniele
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
B
Anno
1
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Rappresentazione della conoscenza e ragionamento mediante regole logiche e logiche descrittive; la programmazione logica a vincoli; l'Answer Set Programming. Problem solving dichiarativo mediante strumenti di programmazione logica e ASP.
Knowledge representation and reasoning with rules and description logics; constraint logic programming; Answer Set Programming. Declarative problem solving using logic programming and ASP tools.
Testi di riferimento/Textbooks
S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach (3rd edition), Prentice-Hall 2010. P. Hitzler, M. Krötzsch, S. Rudolph, Foundations of Semantic Web, CRC Press, 2010. K. Marriott, P. Stuckey, Programming with Constraints: an Introduction, MIT Press, 1998. M. Gebser, R. Kaminski, B. Kaufmann, and T. Schaub, Answer Set Solving in Practice, Morgan and Claypool, 2012.
S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach (3rd edition), Prentice-Hall 2010. P. Hitzler, M. Krötzsch, S. Rudolph, Foundations of Semantic Web, CRC Press, 2010. K. Marriott, P. Stuckey, Programming with Constraints: an Introduction, MIT Press, 1998. M. Gebser, R. Kaminski, B. Kaufmann, and T. Schaub, Answer Set Solving in Practice, Morgan and Claypool, 2012.
Obiettivi formativi/Mission
Capacità di applicare diversi formalismi di rappresentazione della conoscenza dichiarativa, ragionamento e problem solving, conoscendone espressività e limitazioni e giudicandone l’appropriatezza.
Being able to apply different formalisms for declarative knowledge representation, reasoning and problem solving, being aware of their expressiveness and limitations, and being able to judge whether they are appropriate.
Prerequisiti/Required background knowledge
Logica Matematica.
Mathematical logic.
Metodi didattici/Teaching methods
Lezioni frontali e sperimentazione in laboratorio. Le lezioni, oltre a descrivere i formalismi ne discutono le potenzialità e le limitazioni. Le esercitazioni permettono di conoscere strumenti software per utilizzare i diversi formalismi.
Lectures and practical activity in lab. Lectures describe the different formalism and discuss their power as well as their limitations. Practical activity allows students to know software tools for using the different formalisms.
Altre informazioni/Further information
La sperimentazione in laboratorio costituisce anche una verifica in itinere della comprensione e dell'apprendimento degli argomenti.
Lab activity is also used to verify on-the-fly the degree of knowledge and understanding of the subject.
Modalità di verifica dell'apprendimento/Assessment methods
Verifica della soluzione di esercizi pratici. Esame orale o esonero scritto. La prova prevede diverse domande, riguardanti argomenti svolti in una parte diversa del programma, , ed atte a verificare il raggiungimento degli obiettivi formativi. La valutazione complessiva terrà conto dei risultati conseguiti nelle singole domande.
Evaluation of the solutions for practical exercises. Oral or written examination. The exam involves several questions on different subjects within the course contents; the questions are suited to verifying the achievement of the learning outcomes. The evaluation takes into account the answers to individual questions.
Programma esteso/Content
Ragionamento automatico nella logica proposizionale, e cenni al caso del calcolo dei predicati del primo ordine. Rappresentazione della conoscenza e ragionamento con logiche descrittive, alla base della definizione di ontologie nel Semantic Web. Rappresentazione della conoscenza e ragionamento mediante regole logiche e logiche descrittive; la programmazione logica a vincoli; l'Answer Set Programming. Problem solving dichiarativo mediante strumenti di programmazione logica e ASP.
Automated reasoning in propositional logic, and in first-order logic. Knowledge representation and reasoning in description logics, which is the basis for the use of ontologies in the Semantic Web. Knowledge representation and reasoning with rules and description logics; constraint logic programming; Answer Set Programming. Declarative problem solving using logic programming and ASP tools.
Risultati di apprendimento attesi/Intended learning objectives
Raggiungimento, in grado misurato dal voto, degli obiettivi formativi.
The achievement, up to a degree measured by grades, of the learning goals.
×
Stampa
Insegnamento
HIGH PERFORMANCE COMPUTING
Codice
MF0294
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
ANGLANO Cosimo Filomeno
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
B
Anno
1
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso é strutturato in due parti distinte. La prima parte verte sulle architetture dei sistemi ad elevate prestazioni, e sulle relative tecniche di progettazione e realizzazione di programmi paralleli. La seconda parte invece é focalizzata sulle tecnologie e sui sistemi di Cloud Computing, e sul loro utilizzo nell'ambito dei sistemi per il calcolo ad alte prestazioni.
The course is structured in two parts. The first one focuses on the architectures of high performance computing systems, on the methodologies for the design and the implementation of parallel programs able to exploit them. The second part focuses instead on Cloud Computing technologies and systems, and on their exploitation as high performance computing platforms.
Testi di riferimento/Textbooks
1) Thomas Sterling, Matthew Anderson, Maciej Brodowicz, "High Performance Computing: Modern Systems and Practices", Morgan-Kauffman, ISBN-13: 978-0124201583 ISBN-10: 012420158X 2) Bertil Schmidt, Jorge Gonzalez-Dominguez, Christian Hundt, Moritz Schlarb, "Parallel Programming: Concepts and Practice", Morgan Kauffman, ISBN-10: 0128498900 ISBN-13:978-0128498903 3) materiale fornito a lezione dal docente
1) Thomas Sterling, Matthew Anderson, Maciej Brodowicz, "High Performance Computing: Modern Systems and Practices", Morgan-Kauffman, ISBN-13: 978-0124201583 ISBN-10: 012420158X 2) Bertil Schmidt, Jorge Gonzalez-Dominguez, Christian Hundt, Moritz Schlarb, "Parallel Programming: Concepts and Practice", Morgan Kauffman, ISBN-10: 0128498900 ISBN-13:978-0128498903 3) Handouts provided by the lecturer.
Obiettivi formativi/Mission
L'obiettivo del corso é l'apprendimento dei principi, metodologie, tecnologie e strumenti per la realizzazione ed utilizzo di sistemi ad alte prestazioni, nonché dell'impiego delle tecnologie e dei sistemi di Cloud Computing nell'ambito del calcolo ad alte prestazioni.
The goal of the course is the learning of the principles, methodologies, techniques, and tools for the implementation and use of high performance computing systems, as well as on the use of Cloud Computing technologies and systems for high performance computing.
Prerequisiti/Required background knowledge
Programmazione 1 e 2, Algoritmi 1 e 2, Sistemi Operativi 1 e 2, Architetture degli Elaboratori 1 e 2
Programmazione 1 e 2, Algoritmi 1 e 2, Sistemi Operativi 1 e 2, Architetture degli Elaboratori 1 e 2
Metodi didattici/Teaching methods
Lezioni frontali e sperimentazione in laboratorio.
Lectures and laboratory sessions.
Modalità di verifica dell'apprendimento/Assessment methods
Sia nella prima, sia nella seconda parte, l'esame si svolge in forma scritta, e verte sugli argomenti svolti a lezione. Ogni domanda ha un punteggio, il voto finale è la somma dei punti assegnati per ogni singola risposta.
Written exam for both the first and second part of the course. The exam consists of a written test with questions about the topics of the course. The final mark is the sum of the scores assigned to each answer.
Programma esteso/Content
La prima parte del corso verte sui principi, le metodologie e le soluzioni hardware e software per il calcolo ad alte prestazioni. Dopo aver introdotto i principi di base dell'elaborazione parallela, saranno trattate i principi architetturali di per i sistemi paralleli (come definiti nella tassonomia di Flynn) nonché le diverse architetture che li implementano (multiprocessori, multicomputer, sistemi multicore/manycore omogenei ed eterogenei). Saranno quindi trattati i diveri paradigmi di programmazione parallela, quali shared memory, multithreading, message passing, CUDA, ecc., e sulle tecniche di programmazione basate su di essi. La seconda parte del corso verte sul Cloud Computing. Dopo aver introdotto i concetti base, gli studenti faranno un'esperienza pratica usando le principali piattaforme per il Cloud Computing come Amazon Web Services, Google Cloud Platform e OpenStack. Oltre ai comuni problemi di queste piattaforme (ad esempio, load balancing, tolleranza ai guasti, scalabilità, etc), durante il corso verrà discusso MapReduce: un framework software per supportare la computazione distribuita su grandi quantità di dati (multi-terabyte) in cluster di computer (composti da migliaia di nodi) in modo affidabile e tollerante ai guasti.
The first part of the course focuses on the principles, methodologies, and hardware/software solution for high performance computing. After the introduction of the fundamental principles of parallel computing, the course will cover the architectural principles for parallel systems (as defined in Flynn's taxonomy), as well as the various architectures that implement them (multiprocessors, multicomputers, homogeneous and heterogeneous multicore/manycore systems). Then, the course will focus on the various parallel programming paradigms, such as shared memory, multithreading, message passing, CUDA, etc., and on the programming techniques based on them. In the second part, the course focuses on Cloud Computing. The basic concepts of Cloud Computing will be explained then the students will get practice with the main Cloud Computing platforms such as Amazon Web Services, Google Cloud Platform and OpenStack. Besides the common problems of these platform (i.e., load balancing, fault tolerance, scalability, etc), during the course it will be discussed the MapReduce programming model: a framework for easily writing applications which process vast amounts of data (multi-terabyte data-sets) in-parallel on large clusters (thousands of nodes) of commodity hardware in a reliable, fault-tolerant manner.
Risultati di apprendimento attesi/Intended learning objectives
Raggiungimento, in grado misurato dal voto, degli obiettivi formativi.
Achievement of the training objectives, as measured by the grade obtained by the student.
×
Stampa
Insegnamento
Intelligenza Artificiale
Codice
MF0057
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
PORTINALE Luigi
Docenti
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
B
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Il corso completo di INTELLIGENZA ARTIFICIALE E SUPPORTO ALLE DECISIONI si compone di due moduli: Intelligenza Artificiale (6 CFU) e Sistemi Intelligenti di Supporto alle Decisioni (3 CFU). Nel seguito le informazioni relative ai singoli moduli vengono riportate separatamente (considerare solo quelle del modulo a cui si e' interessati) INTELLIGENZA ARTIFICIALE: Algoritmi di ricerca nello spazio degli stati; Sistemi di ragionamento basato su casi; Rapresentazione di conoscenza incerta: probabilita' e Reti Bayesiane, Teoria delle decisioni e Diagrammi di Influenza. SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Richiami di teoria delle decisioni; Utilita’ multi-attributo; Diagrammi di influenza; Decisioni one-shot e sequenziali; Decision-theoretic planning (Markov Decision Processes).
The course is composed by two modules: Artificial Intelligence (6 CFU) and Intelligent Decision Support Systems (3 CFU). Please consider only the information of the module you are interested in. ARTIFICIAL INTELLIGENCE State space search; Case-Based Reasoning; Uncertain knowledge representation: probability theory and Bayesian Networks; Introduction to Decision Theory. INTELLIGENT DECISION SUPPORT SYSTEMS Decision Theory, Multi-attribute utility, Influence diagrams, One-shot and sequential decisions, Decision-theoretic planning (Markov Decision Processes)
Testi di riferimento/Textbooks
S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach (3a edizione), Prentice-Hall. Traduzione italiana pubblicata da Pearson Education.
S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach (3rd edition), Prentice-Hall.
Obiettivi formativi/Mission
INTELLIGENZA ARTIFICIALE: Introdurre le nozioni fondamentali dell’Intelligenza artificiale. SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Modellare processi decisionali one-shot e sequenziali
ARTIFICIAL INTELLIGENCE: To introduce the fundamentals notions of AI systems INTELLIGENT DECISION SUPPORT SYSTEMS: Modeling one-shot and sequential decision processes
Prerequisiti/Required background knowledge
INTELLIGENZA ARTIFICIALE: ASD-I e ASD-II (consigliati), Calcolo delle Probabilita’ (consigliato). SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Intelligenza artifciale Calcolo delle probabilita'
ARTIFICIAL INTELLIGENCE: Suggested: Algorithms I and II, Probability and Statistics. INTELLIGENT DECISION SUPPORT SYSTEMS: Artificial Intelligence, Probability
Metodi didattici/Teaching methods
Lezioni frontali in aula, esercitazioni tramite piattaforma Moodle, uso di strumenti software.
Lectures and exercises using Moodle and software tools.
Modalità di verifica dell'apprendimento/Assessment methods
INTELLIGENZA ARTIFICIALE: Esame scritto integrato da eventuale esame orale. SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Discussione di un progetto individuale
ARTIFICIAL INTELLIGENCE: Written and oral (not mandatory) exam INTELLIGENT DECISION SUPPORT SYSTEMS: Oral discussion of a project
Programma esteso/Content
INTELLIGENZA ARTIFICIALE: Introduzione e cenni storici sull'AI. Ricerca nello spazio degli stati: ricerca path-based cieca ed euristica. L'algoritmo A*. Algoritmi di miglioramento iterativo: hill-climbing e simulated annealing; Cenni su problemi CSP. Algoritmi per giochi a 2 concorrenti: minimax e alfa/beta pruning. Rappresentazione della conoscenza: cenni su formalismi logici e a regole. Sistemi di Case-Based Reasoning; Conoscenza Incerta: richiami di calcolo delle probabilità. Bayesian Belief Networks (proprietà ed algoritmi) e uso di tool per il loro sviluppo (Genie, Hugin, ecc...). Introduzione alla Teoria delle decisioni. SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Richiami di teoria delle decisioni. Utilita’ multi-attributo. Diagrammi di influenza Decisioni one-shot e sequenziali Decision-theoretic planning (Markov decision processes).
ARTIFICIAL INTELLIGENCE: Introduction and history of AI State space search: path-based blind and heuristic search. A* algorithm. Iterative improvement algorithms: hillclimbing and simulated annealing CSP problems Two players games: minimax and alpha/beta pruning Knowledge representations: hints on logical formalism. Case-Based Reasoning systems; the CBR-Works tool. Uncertain knowledge: probability theory, Bayesian Networks (properties and algorithms); BN tools (Genie, Hugin, etc...). Fundamentals of Decision theory. INTELLIGENT DECISION SUPPORT SYSTEMS: Decision Theory Multi-attribute utility Influence diagrams One-sot and sequential decisions Decision-theoretic planning (Markov Decision Processes)
Risultati di apprendimento attesi/Intended learning objectives
INTELLIGENZA ARTIFICIALE: conoscere gli algoritmi di ricerca principali usati nell' IA, saper rappresentare conoscenza in sistemi intelligenti, conoscere gli algoritmi di inferenza tipici dei sistemi intelligenti moderni. SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Saper modellare ed analizzare processi decisionali one-shot e sequenziali tramite modelli grafico-probabilistici
ARTIFICIAL INTELLIGENCE: to know main AI search algorithms, to be able to represent knowledge in intelligent systems, to know the main inference algorithms adopted in intelligent systems. INTELLIGENT DECISION SUPPORT SYSTEMS: being able to model ad analyze one-shot and sequential decision processes, using probabilistic graphical models.
×
Stampa
Insegnamento
INTELLIGENZA ARTIFICIALE E SUPPORTO INTELLIGENTE ALLE DECISIONI
Codice
MF0293
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
PORTINALE Luigi
Docenti
CFU
9
Ore di lezione
72
Ore di studio individuale
153
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
B
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Il corso completo di INTELLIGENZA ARTIFICIALE E SUPPORTO ALLE DECISIONI si compone di due moduli: Intelligenza Artificiale (6 CFU) e Sistemi Intelligenti di Supporto alle Decisioni (3 CFU). Nel seguito le informazioni relative ai singoli moduli vengono riportate separatamente (considerare solo quelle del modulo a cui si e' interessati) INTELLIGENZA ARTIFICIALE: Algoritmi di ricerca nello spazio degli stati; Sistemi di ragionamento basato su casi; Rapresentazione di conoscenza incerta: probabilita' e Reti Bayesiane, Teoria delle decisioni e Diagrammi di Influenza. SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Richiami di teoria delle decisioni; Utilita’ multi-attributo; Diagrammi di influenza; Decisioni one-shot e sequenziali; Decision-theoretic planning (Markov Decision Processes).
The course is composed by two modules: Artificial Intelligence (6 CFU) and Intelligent Decision Support Systems (3 CFU). Please consider only the information of the module you are interested in. ARTIFICIAL INTELLIGENCE State space search; Case-Based Reasoning; Uncertain knowledge representation: probability theory and Bayesian Networks; Introduction to Decision Theory. INTELLIGENT DECISION SUPPORT SYSTEMS Decision Theory, Multi-attribute utility, Influence diagrams, One-shot and sequential decisions, Decision-theoretic planning (Markov Decision Processes)
Testi di riferimento/Textbooks
S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach (3a edizione), Prentice-Hall. Traduzione italiana pubblicata da Pearson Education.
S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach (3rd edition), Prentice-Hall.
Obiettivi formativi/Mission
INTELLIGENZA ARTIFICIALE: Introdurre le nozioni fondamentali dell’Intelligenza artificiale. SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Modellare processi decisionali one-shot e sequenziali
ARTIFICIAL INTELLIGENCE: To introduce the fundamentals notions of AI systems INTELLIGENT DECISION SUPPORT SYSTEMS: Modeling one-shot and sequential decision processes
Prerequisiti/Required background knowledge
INTELLIGENZA ARTIFICIALE: ASD-I e ASD-II (consigliati), Calcolo delle Probabilita’ (consigliato). SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Intelligenza artifciale Calcolo delle probabilita'
ARTIFICIAL INTELLIGENCE: Suggested: Algorithms I and II, Probability and Statistics. INTELLIGENT DECISION SUPPORT SYSTEMS: Artificial Intelligence, Probability
Metodi didattici/Teaching methods
Lezioni frontali in aula, esercitazioni tramite piattaforma Moodle, uso di strumenti software.
Lectures and exercises using Moodle and software tools.
Modalità di verifica dell'apprendimento/Assessment methods
INTELLIGENZA ARTIFICIALE: Esame scritto integrato da eventuale esame orale. SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Discussione di un progetto individuale
ARTIFICIAL INTELLIGENCE: Written and oral (not mandatory) exam INTELLIGENT DECISION SUPPORT SYSTEMS: Oral discussion of a project
Programma esteso/Content
INTELLIGENZA ARTIFICIALE: Introduzione e cenni storici sull'AI. Ricerca nello spazio degli stati: ricerca path-based cieca ed euristica. L'algoritmo A*. Algoritmi di miglioramento iterativo: hill-climbing e simulated annealing; Cenni su problemi CSP. Algoritmi per giochi a 2 concorrenti: minimax e alfa/beta pruning. Rappresentazione della conoscenza: cenni su formalismi logici e a regole. Sistemi di Case-Based Reasoning; Conoscenza Incerta: richiami di calcolo delle probabilità. Bayesian Belief Networks (proprietà ed algoritmi) e uso di tool per il loro sviluppo (Genie, Hugin, ecc...). Introduzione alla Teoria delle decisioni. SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Richiami di teoria delle decisioni. Utilita’ multi-attributo. Diagrammi di influenza Decisioni one-shot e sequenziali Decision-theoretic planning (Markov decision processes).
ARTIFICIAL INTELLIGENCE: Introduction and history of AI State space search: path-based blind and heuristic search. A* algorithm. Iterative improvement algorithms: hillclimbing and simulated annealing CSP problems Two players games: minimax and alpha/beta pruning Knowledge representations: hints on logical formalism. Case-Based Reasoning systems; the CBR-Works tool. Uncertain knowledge: probability theory, Bayesian Networks (properties and algorithms); BN tools (Genie, Hugin, etc...). Fundamentals of Decision theory. INTELLIGENT DECISION SUPPORT SYSTEMS: Decision Theory Multi-attribute utility Influence diagrams One-sot and sequential decisions Decision-theoretic planning (Markov Decision Processes)
Risultati di apprendimento attesi/Intended learning objectives
INTELLIGENZA ARTIFICIALE: conoscere gli algoritmi di ricerca principali usati nell' IA, saper rappresentare conoscenza in sistemi intelligenti, conoscere gli algoritmi di inferenza tipici dei sistemi intelligenti moderni. SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Saper modellare ed analizzare processi decisionali one-shot e sequenziali tramite modelli grafico-probabilistici
ARTIFICIAL INTELLIGENCE: to know main AI search algorithms, to be able to represent knowledge in intelligent systems, to know the main inference algorithms adopted in intelligent systems. INTELLIGENT DECISION SUPPORT SYSTEMS: being able to model ad analyze one-shot and sequential decision processes, using probabilistic graphical models.
×
Stampa
Insegnamento
METODI DI OTTIMIZZAZIONE
Codice
MF0286
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
FRAGNELLI Vito
Docenti
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
MAT/09 - RICERCA OPERATIVA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
C
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Programmazione lineare e Teoria delle reti.
Linear Programming and Network Theory.
Testi di riferimento/Textbooks
M. Gondran, M. Minoux, Graphs and Algorithms, Wiley Interscience S. Martello, P.Toth, Knapsack Problems: Algorithms and Computer Implementation, Wiley Interscience L. Muracchini, L.Guidotti, Programmazione matematica, UTET G.L. Nemhauser, A.H.G. Rinooy Kan, M.J. Todd, Handbooks in Operation Research and Management Science, Elsevier
M. Gondran, M. Minoux, Graphs and Algorithms, Wiley Interscience S. Martello, P.Toth, Knapsack Problems: Algorithms and Computer Implementation, Wiley Interscience L. Muracchini, L.Guidotti, Programmazione matematica, UTET G.L. Nemhauser, A.H.G. Rinooy Kan, M.J. Todd, Handbooks in Operation Research and Management Science, Elsevier
Obiettivi formativi/Mission
La conoscenza degli elementi principali dell’algebra lineare, della teoria dei grafi e delle funzioni di più variabili; la capacità e abilità di applicare dette conoscenze nella risoluzione di problemi ed esercizi. Abilità comunicative: acquisire e saper utilizzare un lessico appropriato in relazione agli argomenti affrontati nel corso. Il corso ha anche lo scopo di sviluppare la capacità di apprendere autonomamente ed il senso critico che permette allo studente di trarre conclusioni su questioni attinenti agli argomenti trattati.
Knowledge of the main elements of linear algebra, graph theory and functions of several variables. The ability to apply that knowledge in solving problems and exercises. Communication skills: the students will be able to use a suitable vocabulary in relation to the topics described in the course. They will develop the ability in making judgements and autonomously deepen the arguments treated in the course.
Prerequisiti/Required background knowledge
Elementi di Analisi Matematica, Algebra lineare e Geometria.
Notions of Calculus, Linear Algebra and Geometry.
Metodi didattici/Teaching methods
Lezioni teoriche con esercitazioni.
Lectures and exercises.
Altre informazioni/Further information
Il controllo dell'apprendimento in itinere verrà effettuato attraverso l'applicazione delle tecniche viste nel corso.
Applications of the presented techniques, for checking the knowledge.
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto che consiste in 2-3 domande. Esame orale.
Written exam consisting in 2-3 questions. Oral exam.
Programma esteso/Content
Programmazione lineare: Algebra lineare - Algoritmo del simplesso – Dualità Programmazione lineare a numeri interi: Metodi branch and bound - Metodi cutting planes - Modelli lineari a numeri interi Teoria delle reti: Grafi - Reti - Minimo Spanning Tree - Cammino minimo - Flusso massimo - Flusso di costo minimo.
Linear Programming: Linear Algebra - Simplex algorithm - Duality Integer Linear Programming: Branch and Bounds Methods - Cutting Planes Methods - Linear Integer Models Network Theory: Graphs - Networks - Shortest Spanning Tree - Shortest Path Problem - Max Flow - Minimum Cost Flow.
Risultati di apprendimento attesi/Intended learning objectives
Capacità di usare gli strumenti appresi, possibilmente con un'analisi critica degli stessi, in riferimento alla soluzione.
Ability in usage of tools and instruments presented in the lectures, eventually with a critical analysis, referring to the results.
×
Stampa
Insegnamento
SICUREZZA
Codice
S1621
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
EGIDI Lavinia
Docenti
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
B
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano.
Italian.
Contenuti/Content Summary
Introduzione ai principi fondamentali di sicurezza delle reti e di crittografia, descrizione delle tecniche fondamentali, ed esempi di  applicazioni e protocolli.
Introduction to the basic principles of network security and cryptography, description of the fundamental techniques, applications and protocols.
Testi di riferimento/Textbooks
William Stallings, Cryptography and Network Security, quinta o sesta edizione, Pearson oppure Maurizio Cinotti, Internet Security, terza edizione, Hoepli Informatica, ISBN 978-88-203-3895-4 (questo libro è fuori catalogo ma ancora valido sotto molti aspetti; è disponibile presso la biblioteca del Dipartimento) Del materiale aggiuntivo è fornito sul sito online del corso.
William Stallings, Cryptography and Network Security, fifth or sixth edition, Pearson or Maurizio Cinotti, Internet Security, third edition, Hoepli Informatica, ISBN 978-88-203-3895-4 (this book is no longer printed but still valid under many respects, and can be found in DiSIT's library) Additional material is provided on the course's online site.
Obiettivi formativi/Mission
Conoscenza e capacità di comprensione: conoscere i principi basilari della sicurezza informatica, le tecniche crittografiche fondamentali e i dispositivi essenziali per la protezione di una rete di calcolatori. Applicazione di conoscenza e comprensione: saper riconoscere vulnerabilità evidenti e proporre strumenti si protezione. Come beneficio aggiuntivo, lo studente volenteroso imparerà a implementare protocolli di sicurezza in Java, ad utilizzare alcuni strumenti di sicurezza e a configurare alcuni semplici sistemi. Autonomia di giudizio: corretta percezione dei rischi di sicurezza e del modo in cui gli aspetti di sicurezza informatica si intrecciano con l'organizzazione di una rete. Abilità comunicative : acquisizione della terminologia tecnica specifica dell'area e capacità di discutere di aspetti di sicurezza, e di meccanismi di protezione. . Inoltre lo studente migliorerà la propria padronanza della lingua inglese a livello tecnico informatico. Capacità di apprendere: avendo appreso i principi findamentali sarà in grado in futuro di apprezzare e valutare tecnologie e protocolli nuovi che si basano sugli stessi principi.
Knowledge and understanding: knowledge of the basic principles of security, the fundamental cryptographic techniques and the essential devices to protect a computer network. Applying knowledge and understanding: students must be able, to a minimal extent, to recognize vulnerabilities and to propose protection tools. As an additional benefit, the motivated students will learn to implement security protocols in Java, to use some security tools and to configure some simple security systems. Making judgements: They must also acquire a correct perception of security risks and of the way security issues intertwine with the organization of a computer network. Communication skills: students must have acquired the specific technical terminology and must be able to discuss security aspects and protection mechanisms. Moreover the students will increase their proficiency in the technical English of computer science. Learning skills: having acquired the fundamental principles the student will later be able to appreciate and evaluate new technologies and protocols based on the same principles.
Prerequisiti/Required background knowledge
Conoscenza del funzionamento delle reti di calcolatori, programmazione in Java, nozioni base di utilizzo di Unix
Knowledge of the principles of operation of computer networks, Java programming, basic notions of Unix usage
Metodi didattici/Teaching methods
Il corso è insegnato interamente in laboratorio. Ciascuna lezione è costituita da una presentazione degli argomenti nella quale gli aspetti tecnici vengono arricchiti da ampi riferimenti ad incidenti informatici recenti, seguita da attività pratica; gli studenti sono guidati nella realizzazione di attacchi informatici, per acquisire sensibilità riguardo alle vulnerabilità e per comprendere le caratteristiche e i limiti delle tecnologie e dei meccanismi di sicurezza presentati; sono seguiti nell'implementazione di software crittografico, e nella configurazione di sistemi di sicurezza per acquisire familiarità con gli strumenti software e il loro utilizzo. Gli argomenti trattati in ogni lezione insieme alle appropriate indicazioni bibliografiche e le indicazioni sull'attività pratica sono riportate sulla piattaforma DIR per permettere agli studenti che seguono il corso di rivedere o completare le attività proposte e di mantenersi al passo con il corso in caso perdano qualche lezione; inoltre questo permette agli studenti che non frequentano di svolgere autonomamente l'attività di laboratorio, e di seguire pur a distanza il corso delle lezioni. Inoltre sul DIR sono presenti documenti e link aggiuntivi a protocolli in uso, a notizie di cronaca sulla sicurezza informatica, ad organizzazioni che si occupano di sicurezza ecc, per stimolare la curiosità degli studenti e mantenerli aggiornati in un campo in veloce evoluzione. Poiché tale documentazione è per la maggior parte in inglese, lo studio sarà per lo studente uno strumento per migliorare la propria padronanza del linguaggio tecnico informatico in inglese. Infine gli studenti hanno a disposizione sul DIR un quiz di autovalutazione che ha lo scopo di incoraggiarli a ragionare in autonomia sugli argomenti presentati.
The course is entirely taught in lab. Each lesson begins with a presentation of the subject, during which technical aspects are enriched with references to recent security incidents. Hands on activity follows: students are guided in the realization of proof-of-concept security exploits, so that they acquire a feeling for vulnerabilities and understand the features and limits of security technologies and mechanisms; they are also guided in the implementation of cryptographic software, and in the configuration of security systems so that they acquire familiarity with software instruments and their use. Students can find on the DIR platform the subjects treated in each lesson, along with appropriate bibliographic references, and indications on the hands-on activity. This way students that attend the course can review or complete proposed activities and keep abreast of the course when they miss a class. This also enables non attending students to experiment on their own with the hands-on activity and to follow autonomously the class. Moreover on DIR students can find additional material such as (pointers to) documents about protocols, links to security news, and links to sites of organizations that work on security etc, in order to stimulate the curiosity of the students and to keep them up-to-date in a field that changes quickly. Since most of such material is written in English, preparing for the exam will give the students the possibility to practice the technical language of computer science. Finally on DIR, students have access to a self-evaluation quiz that aims at encouraging the students to reason about the subjects taught in class.
Altre informazioni/Further information
L'attività in laboratorio richiede una partecipazione attiva e individuale degli studenti e li induce a porsi dei quesiti (e spesso di conseguenza a porne al docente); in tal modo permette una regolare verifica del modo in cui gli argomenti vengono recepiti. L'attività in laboratorio è pensata come strumento didattico per facilitare la comprensione e lo sviluppo della necessaria sensibilità, non come mezzo per insegnare ad utilizzare strumenti di sicurezza . Però lo studente volenteroso trae dall'attività in laboratorio anche utili competenze pratiche.
Hands-on activity requires active participation of the students, and leads the latter to ask themselves questions (and, as a consequence, often to ask questions to the instructor); this way it allows a regular monitoring of the way the subject is being understood. The activity in lab is thought as a way to ease comprehension and to develop the necessary sensitivity, and not as a means to teach usage of security tools. Yet, the motivated students gains from such activity also useful practical skills.
Modalità di verifica dell'apprendimento/Assessment methods
Esame orale L'esame prevede un colloquio orale. Vengono poste tre domande allo studente (il numero di domande può variare ove necessario in base alle risposte, per verificare che gli obiettivi formativi siano stati raggiunti). Il colloquio si basa su due strumenti di verifica: la richiesta di descrizione di meccanismi o tecnologie presentate nel corso, al fine di verificare che lo studente abbia appreso i principi e i meccanismi fondamentali; la richiesta di discussione di semplici problemi di sicurezza o di variazioni di protocolli noti, per verificare che lo studente abbia acquisito la sensibilità ai rischi di sicurezza e una certa autonomia e senso critico nell'utilizzo degli strumenti appresi.
Oral exam The exam is oral. Students must in general answer three questions (although the number of questions can vary depending on the quality of the answers, since the goal is to ascertain that the student has attained the formative objectives). The interview uses basically two tools: it is verified that the student has learned the basic principles, mechanisms and technology taught in class and has acquired the appropriate technical language, through a request to describe some of the subjects; in order to verify that the student has acquired a feeling for security risks along with autonomy and critical skills in the use of security tools, the student is submitted simple security problems or minimal variations of known protocols and is asked to discuss them.
Programma esteso/Content
-Introduzione alla sicurezza. Vulnerabilità e requisiti di sicurezza. - Politica di sicurezza - Crittografia a chiave simmetrica. Sistemi di cifratura a blocchi e a flusso. Principi di confusione e diffusione. DES e 3DES, AES, RC4. Cifratura di messaggi lunghi. - Crittografia a chiave pubblica. RSA, Diffie-Hellman e DSA: uso, attacchi, protocolli e standard.Introduzione alla crittografia a curve ellittiche: ECDH ed ECDSA. - Confronto tra i sistemi di crittografia a chiave pubblica e a chiave simmetrica. Schema ibrido. Scambio di segreti e generazione di chiavi simmetriche. IES ed ECIES. - Funzioni di hash crittograficamente sicure. Collisioni. Struttura delle funzioni hash. Esempi di funzioni hash. - Message Authentication Codes. Confronto con le funzioni hash. HMAC. - Autenticazione di messaggi a chiave pubblica e non ripudiabilità. - Il tempo: nonce e timestamp. Sincronizzazione. - Certificati digitali. Autorità di certificazione e Registration Authority. Liste di revoca. Protocollo OCSP. - Schema Autentication Authorization Accounting (AAA). Autenticazione: paradigmi login/password, challenge/response e timestamp. - VPN. Cenni su IPsec. Come applicazione dei principi studiati: SSL/TLS, SSH. - Firewall. Architettura di un firewall. Principi fondamentali. Bastion Host. DMZ. - Filtri di pacchetti statici e dinamici. Access list. Proxy.
- Introduction to network and computer security. Vulnerabilities and security requirements. - Security policy - Symmetric key cryptography. Block and stream ciphers. Confusion and diffusion principles. DES and 3DES, AES, RC4. Modes of operation of block ciphers. - Public key cryptography. RSA, Diffie-Hellman and DSA: usage, attacks, protocols and standards. Introduction to Elliptic Curve Cryptography: ECDH and ECDSA. - Symmetric key ciphers vs. public key ciphers. Hybrid scheme. Exchange of a secret and symmetric key derivation. IES and ECIES. - Cryptographic hash functions. Properties and structure. Collisions. Examples. - Message Authentication Codes. Comparison with hash functions. - Public key message authentication. Non repudiability - Time: nonces and timestamps. Synchronization. - Public key certificates. Certification and Registration authorities. Certificate revocation lists. OCSP protocol. - Authentication Authorization and Accounting scheme (AAA). Authentication paradigms: login/password, challenge/response and timestamp - VPNs. Hints on IPsec. As an application of the principles introduced in the course: SSL/TLS and SSH. - Firewalls. Firewall architectures. Fundamental principles. Bastion Hosts. DMZ. - Static and dynamic packet filtering. Access lists. Proxies.
Risultati di apprendimento attesi/Intended learning objectives
Descrivere i requisiti di sicurezza Descrivere i tipi di attacchi Spiegare le differenze tra la crittografia a chiave simmetrica e quella a chiave pubblica Spiegare cos'è un cifrario e saper distinguere tra le varie classi di cifrari Spiegare la funzione e i requisiti delle funzioni hash in crittografia Spiegare come si ottengono meccanismi per garantire l'integrità Spiegare le caratteristiche e il funzionamento della firma digitale Spiegare cosa sono i certificati digitali e illustrarne la funzione Spiegare i meccanismi per l'autenticazione (identificazione sicura) Spiegare i principi di sicurezza delle reti e illustrare gli strumenti che si utilizzano in questo ambito Analizzare i requisiti di sicurezza garantiti da un protocollo proposto Proporre un protocollo per garantire requisiti di sicurezza (anche ispirandosi a protocolli reali) Analizzare le funzionalità e i limiti di strumenti diversi come filtri di pacchetto a livello rete e proxy o filtri di pacchetti a livello applicativo
Describe security requirements Describe kinds of attacks Explain the differences between symmetric key and public key cryptography Explain what is a cipher and distinguish among different classes of ciphers Explain the utility of and requirements for hash functions in cryptography Explain how to obtain a mechanism to guarantee integrity Explain the characteristics of digital signatures and how they work Explain what are digital certificates and what is their function Explain the mechanisms for authentication (secure identification) Explain the principles of network security and illustrate the tools that are used in this area Analyze the security services guaranteed by a proposed protocol Propose a protocol to guarantee specified security requirements (also borrowing from real protocols) Analyze functionalities and limits of different tools such as network level packet filters and proxies or application level packet filters
×
Stampa
Insegnamento
SISTEMI MULTIMEDIALI
Codice
S0596
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
LEONARDI GIORGIO
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
B
Anno
1
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso ha lo scopo di introdurre i principi base della creazione ed elaborazione di prodotti multimediali quali immagini e audio. In particolare, si affrontano la codifica di segnali analogici, la compressione dati sia lossless che lossy, la rappresentazione e l'elaborazione di immagini raster e di segnali audio.
The course aims at introducing the basic principles of the creation and development of multimedia products, such as images and audio. In particular, this course addresses the encoding of analog signals, lossless and lossy data compression, the representation and processing of raster images and audio signals.
Testi di riferimento/Textbooks
Fundamentals of Multimedia, Ze-Nian Li and Mark S. Drew, Casa Editrice Prentice Hall 2003.
Fundamentals of Multimedia, Ze-Nian Li and Mark S. Drew, Casa Editrice Prentice Hall 2003.
Obiettivi formativi/Mission
Conoscenza e capacità di comprensione: Familiarità con il concetto di segnale, sua trasformazione in formato digitale, compressione di immagini e di segnali audio attraverso tecniche con e senza perdita di dati, tecniche di elaborazione di immagine sia pxel-based che filter-based. Capacità di applicare conoscenza e comprensione: Acquisizione di prodotti multimediali da fonti analogiche, mantenendo il controllo del tradeoff tra qualità desiderata e dimensione del prodotto in formato digitale - uso delle tecniche di compressione per adattare il prodotto digitale alle caratteristiche del supporto di memorizzazione e/o trasmissione - applicazione di algoritmi e filtri per migliorare la resa del prodotto multimediale - applicazione di effetti per miscelare prodotti da fonti diverse. Le tecniche apprese a lezione forniscono la base per l'ideazione di nuovi effetti da applicare ad audio e immagini. Come aspetto collaterale il corso sviluppa le competenze di programmazione (in particolare nel linguaggio Java). Autonomia di giudizio: analizzare in modo critico i prodotti multimediali, decidendo autonomamente le migliori tecniche da utilizzare per acquisizione, compressione ed elaborazione a seconda delle caratteristiche e della destinazione d'uso del prodotto stesso Abilità comunicative: aver acquisito e saper utilizzare la terminologia formale specifica relativa alle aree citate, in modo da motivare e documentare opportunamente la pipeline utilizzata per le elaborazioni effettuate. Capacità di apprendere: lo studio di tecniche di acquisizione, compressione e processing di segnali fornisce la base per la costruzione di software di elaborazione di audio e di immagini
Knowledge and understanding: Familiarity with the concept of signal, its transformation into digital format, compression of images and audio signals through techniques with and without loss of data, image processing techniques both pxel-based and filter-based. Applying knowledge and understanding: Acquisition of multimedia products from analogue sources, maintaining tradeoff control between desired quality and size in digital format - Use of compression techniques to adapt the digital product to storage and / or Transmission media features - application of algorithms and filters to improve the quality of the multimedia product - application of effects and of techniques for mixing products from different sources. The learned techniques provide the basis for new effects to be applied to audio and images. As a collateral aspect, the course develops programming skills (especially in Java). Making judgements: critically analyze multimedia products by deciding independently the best techniques to be used for acquisition, compression, and processing, on the basis of the product's characteristics and intended use Communication Skills: Learning and usage of the specific formal terminology for the areas mentioned, in order to motivate and document appropriately the pipeline used for acquisition and processing. Learning skills: the study of capture, compression and signal processing techniques provides the basis for building complex audio and image processing software
Prerequisiti/Required background knowledge
Basi di programmazione e di Algoritmi.
Basic programming skills and algorithms.
Metodi didattici/Teaching methods
Lezioni frontali (36 ore circa) e sessioni pratiche in laboratorio (12 ore circa). Nelle lezioni in aula vengono esposte le nozioni teoriche per ogni argomento affrontato, con esempi ed esercizi svolti sia dal docente, sia in collaborazione con gli studenti. Sulla piattaforma DIR sono indicati i libri di testo suggeriti ed è a disposizione degli studenti tutto il materiale studiato a lezione, sottoforma di slide dettagliate e di materiale integrativo, utili per uno studio approfondito anche a chi non riuscisse a seguire il corso in aula. Sono inoltre forniti esercizi e temi d’esame. Nelle lezioni in laboratorio, gli argomenti del corso vengono rivisti dal punto di vista implementativo e, lezione dopo lezione, si implementerà una pipeline completa in grado di acquisire, comprimere e processare immagini applicando diversi effetti. Si presenta inoltre il progetto che dev'essere consegnato come parte dell'esame. Sul DIR sono a disposizione le slide che presentano ogni passo della pipeline da implementare e le relative tecniche implementative, come riferimento e guida sia per chi ha seguito la lezione che per gli assenti.
Face-to-face lessons (36 hours, about) and practical laboratory sessions (12 hours, about). Face-to-face lessons present the theoretical notions for each topic, with examples and exercises carried out both by the professor and in collaboration with the students. The DIR platform indicates the suggested textbooks, and students are provided with all the material studied in the lessons, in the form of detailed slides and supplementary material, useful for a thorough study also for those who could not attend the class. Exercises and past exam are also provided. In the lectures in the lab, the course topics are reviewed from the implementation point of view and, at the end, a complete pipeline will be implemented, able to capture, compress and process images by applying different effects. The last lesson is devoted to the presentation of the final project that must be delivered as part of the exam. DIR also provides the slides featuring every component of the pipeline to be implemented and their implementation steps, as a reference and guide for those who can not attend the lessons.
Modalità di verifica dell'apprendimento/Assessment methods
L'esame prevede una parte scritta e un progetto di laboratorio. Scritto: almeno 3 domande, ognuna delle quali su un diverso argomento del corso. Ogni domanda contiene sia un esercizio da svolgere, sia un quesito teorico a risposta aperta. Progetto: implementazione di algoritmi visti a lezione, con aggiunta di modifiche migliorative o customizzazioni. Il punteggio finale sarà calcomato come media pesata dei due contributi (0.66 per il voto dello scritto; 0.34 per il progetto di laboratorio), se e solo se sono entrambi positivi.
The exam includes a written part and a laboratory project. Written part: at least 3 questions, each of which on a different topic of the course. Each question contains both an exercise to be solved, and a theoretical question to be answered. Project: Implementation of multimedia algorithms, furtherly improvemed or customized. The final score will be calculated as the weighted average of the two contributions (0.66 for the vote of the script, 0.34 for the lab project) if and only if they are both positive.
Programma esteso/Content
- Basi matematiche per l'elaborazione delle immagini - Codifica dei segnali: campionamento, quantizzazione, analisi in frequenza - Codifica delle immagini (immagini Raster, La percezione e la codifica dei colori, la codifica delle immagini raster, immagini GIF, JPEG, PNG) - Basi di elaborazione delle immagini (correzione dei colori, filtraggio ed elaborazione, algoritmi di fotoritocco) - Codifica del suono: formati (PCM, MP3) - Elaborazione del suono e applicazione di effetti (riduzione del rumore, effetto riverbero, ecc.)
- Basics of image-manipulation-oriented mathematics - Signal coding: sampling and quantization. - Image coding (Raster images, Perception and coding of colors, raster images coding, GIF, JPEG and PNG standards) - Image manipulation (Color correction, filtering, photo-editing) - Sound Coding and formats (PCM, MP3) - Sound manipulation and processing (noise reduction, echo, etc.)
Risultati di apprendimento attesi/Intended learning objectives
- Comprensione dei concetti e dei teoremi visti a lezione - Analisi critica di sorgenti multimediali e scelta delle tecniche di acquisizione più adeguate - Applicazione delle tecniche di compressione ai segnali digitali, con valutazione critica del miglior formato di compressione per ogni tipo di segnale proposto - Valutazione della qualità di un prodotto multimediale e applicazione delle tecniche di recupero/miglioramento sulla base dei difetti rilevati - Capacità di implementazione delle tecniche viste a lezione e delle loro estensioni
- Understanding concepts and theorems studied in the lesson - Critical analysis of multimedia sources and selection of the most appropriate acquisition techniques - Application of compression techniques to digital signals, with critical evaluation of the best compression format for each type of signal proposed - Evaluation of the quality of a multimedia product and application of recovery / improvement techniques based on detected defects - Ability to implement all the mentioned techniques and their extensions
×
Stampa
Insegnamento
TEORIA DEI GIOCHI
Codice
MF0377
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
FRAGNELLI Vito
Docenti
CFU
3
Ore di lezione
24
Ore di studio individuale
51
Settore Scientifico Disciplinare (SSD)
SECS-S/06 - METODI MATEMATICI DELL'ECONOMIA E DELLE SCIENZE ATTUARIALI E FINANZIARIE
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
C
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Introduzione alla Teoria dei Giochi, sia non cooperativi che cooperativi e alle soluzioni più comuni.
Introduction to Game Theory, both non-cooperative and cooperative, and to the most used solutions.
Testi di riferimento/Textbooks
R.J. Aumann, S. Hart, Handbook of Game Theory with Economic Applications (Vol. 1), Elsevier R.J. Aumann, S. Hart, Handbook of Game Theory with Economic Applications (Vol. 2), Elsevier R.J. Aumann, S. Hart, Handbook of Game Theory with Economic Applications (Vol. 3), Elsevier G. Costa, P.A. Mori, Introduzione alla Teoria dei Giochi, Il Mulino R. Gibbons, Primo Corso di Teoria dei Giochi, Il Mulino R.B. Myerson, Game Theory: Analysis of Conflict, Harvard University Press M.J. Osborne, A. Rubinstein, A Course in Game Theory, MIT Press G. Owen, Game Theory, Academic Press F. Patrone, Decisori (razionali) interagenti, Edizioni PLUS
R.J. Aumann, S. Hart, Handbook of Game Theory with Economic Applications (Vol. 1), Elsevier R.J. Aumann, S. Hart, Handbook of Game Theory with Economic Applications (Vol. 2), Elsevier R.J. Aumann, S. Hart, Handbook of Game Theory with Economic Applications (Vol. 3), Elsevier G. Costa, P.A. Mori, Introduzione alla Teoria dei Giochi, Il Mulino R. Gibbons, Primo Corso di Teoria dei Giochi, Il Mulino R.B. Myerson, Game Theory: Analysis of Conflict, Harvard University Press M.J. Osborne, A. Rubinstein, A Course in Game Theory, MIT Press G. Owen, Game Theory, Academic Press F. Patrone, Decisori (razionali) interagenti, Edizioni PLUS
Obiettivi formativi/Mission
La conoscenza degli elementi principali della teoria dei giochi; la capacità e abilità di applicare dette conoscenze nella risoluzione di problemi ed esercizi. Abilità comunicative: acquisire e saper utilizzare un lessico appropriato in relazione agli argomenti affrontati nel corso. Il corso ha anche lo scopo di sviluppare la capacità di apprendere autonomamente ed il senso critico che permette allo studente di trarre conclusioni su questioni attinenti agli argomenti trattati.
Knowledge of the main elements of game theory. The ability to apply that knowledge in solving problems and exercises. Communication skills: the students will be able to use a suitable vocabulary in relation to the topics described in the course. They will develop the ability in making judgements and autonomously deepen the arguments treated in the course.
Prerequisiti/Required background knowledge
Elementi di Analisi Matematica, Algebra lineare e Ricerca Operativa
Notions of Calculus, Linear Algebra and Operations Research.
Metodi didattici/Teaching methods
Lezioni teoriche con esercitazioni.
Lectures and exercises.
Altre informazioni/Further information
Il controllo dell'apprendimento in itinere verrà effettuato attraverso l'applicazione delle tecniche viste nel corso.
Applications of the presented techniques, for checking the knowledge.
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto che consiste in 2-3 domande. Esame orale.
Written exam consisting in 2-3 questions. Oral exam.
Programma esteso/Content
Giochi non cooperativi e cooperativi; equilibrio di Nash, nucleo, valore di Shapley e nucleolo. Giochi originati da problemi di Ricerca Operativa e giochi di bancarotta. Proprietà dal punto di vista della complessità computazionale.
Non-cooperative and cooperative games; Nash equilibrium, core, Shapley value and nucleollus. Operations Research Games and Bankruptcy games. Computazional complexity properties.
Risultati di apprendimento attesi/Intended learning objectives
Capacità di usare gli strumenti appresi, possibilmente con un'analisi critica degli stessi, in riferimento alla soluzione.
Ability in usage of tools and instruments presented in the lectures, eventually with a critical analysis, referring to the results.
×
Stampa
Insegnamento
VALUTAZIONE DELLE PRESTAZIONI
Codice
MF0168
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
FRANCESCHINIS Giuliana Annamaria
CFU
6
Ore di lezione
48
Ore di studio individuale
102
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
B
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso definisce una serie di requisiti non funzionali che caratterizzano vari tipi di sistemi con particolare attenzione ai sistemi di calcolo e alle reti di calcolatori. Vengono presentati alcuni modelli matematici e metodi di analisi per la valutazione di prestazioni e affidabilità a partire dai modelli, utilizzabili in fase di progettazione o in momenti successivi quando il sistema oggetto di studio è operativo. Il corso prevede la sperimentazione di alcuni pacchetti software per la creazione di modelli di sistemi e la loro analisi con metodi analitici, numerici o simulativi.
The course focuses on some non functional requirements that must be considered when designing systems, in particular computing systems and computer networks. Some mathematical models are presented allowing one to describe and analyze the performance and dependability of systems. Models can be built and analyzed either in early design phases, or later when the system under study is operational. The course also includes practical exercises using software packages supporting the design of system models and their analysis through analytical or numerical methods or simulation.
Testi di riferimento/Textbooks
J. Banks, J. S. Carson II, B. L. Nelson, David M. Nicol, Discrete-Event System Simulation , Fifth edition, Pearson Education 2010 K. Trivedi, A. Bobbio, "Reliability and Availability: Modeling, Analysis and Applications" - Cambridge University Press, 2017 Dispense o articoli scientifici scaricabili da DIR
J. Banks, J. S. Carson II, B. L. Nelson, David M. Nicol, Discrete-Event System Simulation , Fifth edition, Pearson Education 2010 K. Trivedi, A. Bobbio, "Reliability and Availability: Modeling, Analysis and Applications" - Cambridge University Press, 2017 Lecture notes or scientific publications to be downloaded from DIR
Obiettivi formativi/Mission
Conoscenza e capacità di comprensione: Conoscere alcuni formalismi per la rappresentazione di modelli matematici (esprimibili anche in forma grafica) utili all’analisi dell’affidabilità e delle prestazioni di sistemi. Conoscere i principali metodi computazionali per l’analisi dei modelli (soluzione in forma chiusa, oppure soluzione con metodi di calcolo numerico, o tramite simulazione). Conoscere alcuni modelli di base e saper fare esempi di ambiti applicativi in cui tali modelli si possono efficacemente utilizzare. Capacità di applicare conoscenza e comprensione:Capacità di interpretare un modello ed i risultati ricavabili dalla sua analisi. Capacità di costruire il modello di un sistema tramite un determinato formalismo, definire gli indici di prestazione interessanti, calcolare questi ultimi utilizzando uno strumento software esistente o implementandone uno ad-hoc. Capacità di validare un modello confrontando i risultati della sua analisi con quelli calcolati tramite modelli alternativi o con misure effettuate su sistemi reali. Gli studenti dovranno raggiungere l'autonomia di giudizio rispetto al formalismo e ai metodi di analisi più adatti per affrontare un determinato problema. Dovranno saper scegliere il livello di dettaglio corretto per la descrizione del modello e degli indici di prestazione e scegliere gli strumenti software più adatti in base al formalismo e al metodo di analisi individuati. Gli studenti dovranno essere in grado di comunicare e spiegare le basi matematiche su cui si fondano i modelli e i relativi algoritmi di analisi. Dovranno inoltre essere in grado di descrivere i modelli sviluppati, giustificare le scelte fatte e illustrare l’interpretazione dei risultati ottenuti dall’analisi dei modelli. Gli studenti dovranno acquisire le conoscenze metodologiche necessarie per apprendere nuovi formalismi o metodi di analisi proposti nella letteratura scientifica e per implementare i relativi algoritmi.
Knowledge and understanding:Know and understand: (a) some formalisms for the representation of mathematical models (which may also have a graphical representation) that can be used to study system dependability and performance properties; (b) the main computational methods for model analysis (closed form solution, numerical solution, or simulation); (c) some basic models and be able to discuss examples of application of such models. Apply knowledge and understanding: Have the ability to: (a) provide an interpretation of a model expressed in a known formalism, and of the results that can be obtained by analizing it; (b) build the model of a system using a given formalism and define its performance/reliability indices of interest; (c) compute the indices using an existing software tool or building a new ad-hoc software analysis tool. (d) validate a model comparing the analysis results again those obtained from alternative models or measured on a real system.The students will achieve autonomy in judgement about what is the most appropriate formalism and analysis method to face a given problem. Will be able to choose the most appropriate detail level in describing the model and its performance indices, and choose the software tools that better support the chosen formalism and analysis method. Finally students shall be able to communicate and explain the mathematical basis on which the models and corresponding analysis algorithms have been developed. Moreover they will be able to describe the models they have built, justify the choices made in building the model and present an interpretation of the results of model analysis. The student shall acquire the methodological knowledge to learn new formalisms and analysis methods published in the scientific literature.
Prerequisiti/Required background knowledge
Corso di base in probabilità e statistica
Basic course in probability and statistics
Metodi didattici/Teaching methods
Lezioni frontali, esercitazioni in aula e in laboratorio e esercizi da svolgere in autonomia.
Class lectures, exercises in class and in laboratory, and homeworks
Altre informazioni/Further information
Sulla piattaforma DIR sono disponibili: la copia elettronica delle slide utilizzate a lezione, esempi di testi d’esame, quiz di autovalutazione, informazioni generali sul corso e avvisi relativi allo svolgimento del corso e sugli esami.A complemento dei testi di riferimento vengono indicati articoli scientifici in lingua inglese per approfondire alcuni argomenti trattati durante il corso.
It is possible to download electronic copy of all slides of the lectures, perform self-assessment tests, read general information on the course and news about the lectures and the exam organization on the e-learning platform DIR .Besides the reference textbooks some scientific publications in English are proposed, to study in more detail some of the topics presented during the course.
Modalità di verifica dell'apprendimento/Assessment methods
La verifica dell'apprendimento viene effettuata mediante compiti scritti o colloqui orali svolti dopo la fine del corso che comprenderanno da tre a cinque domande (che possono essere articolate in più punti ed includere lo svolgimento esercizi) sugli argomenti trattati nel corso. E’ anche prevista lo svolgimento in autonomia di un esercizio pratico di modellazione di un caso di studio e relativa analisi tramite strumenti software disponibili o codice sviluppato dallo studente: la consegna di quanto prodotto completa la prova d’esame.
The achievement of learning outcomes is evaluated through a written or oral examination after the end of the course, including from three to five questions (which in turn may comprise several points and include specific exercises) on the topics studied in the course. A practical exercise is also required in order to complete the examination: it includes the modelling of a case study and the model analysis performed using existing software tools or directly developing the appropriate software artifact.
Programma esteso/Content
Ripasso delle basi di calcolo delle probabilità e statistica necessarie per comprendere i modelli matematici proposti nel corso. Definizione di requisiti non funzionali di sistemi, con particolare riferimento ai sistemi di calcolo e alle reti di calcolatori: indici di prestazione e affidabilità. Formalismi per lo studio dell’affidabilità e presentazione di alcune tecniche di analisi. Formalismi per la descrizione del comportamento di modelli dinamici e stocastici (reti di code e reti di Petri) e relative tecniche di analisi (analisi operazionale, analisi del processo stocastico corrispondente, simulazione). La simulazione ad eventi discreti: principi di base, generazione di numeri casuali realizzazione di variabili casuali, studio in transitorio e a regime di indici di prestazione o affidabilità, prove ripetute e metodo batch, analisi dell’output della simulazione tramite metodi statistici.
Review of the basics of probability theory and statistics needed to understand the mathematical models discussed within the course. Definition of non functional requirements of systems, in particular focusing on computing systems and computer networks: performance and dependability indices. Formalisms to describe and study system dependability problems and the available solution methods. Formalisms to describe and study the behavior of dynamic stochastic models (queueing networks, Petri nets) and their analysis techniques (operational analysis, underlying stochastic process analysis, simulation). Discrete event simulation: basic principles, random numbers and random variate generation, transient and steady state analysis, obtaining a sample of the measures of interest through simulation experiment repetitions or batch method; simulation output analysis through statistical methods.
Risultati di apprendimento attesi/Intended learning objectives
Saper spiegare il concetto di modello e uso dell’astrazione per focalizzare l’attenzione sui soli aspetti rilevanti rispetto ad uno specifico problema. Ideare un (semplice) modello matematico di un dato sistema e mostrare come ricreare il suo comportamento dinamico tramite la simulazione. Costruire il modello di un sistema utilizzando uno specifico formalismo (proposto nel corso). Valutare l’adeguatezza di un formalismo (tra quelli proposti nel corso) per la modellazione di uno specifico sistema. Spiegare l’utilità dell’uso di modelli e della simulazione in vari domini applicativi. Spiegare i concetti di verifica e validazione di un modello, anche attraverso esempi concreti.Presentare i risultati dell’analisi (anche tramite simulazione) di un modello. Fornire una interpretazione dei risultati quantitativi ottenuti analizzando o simulando un modello e trarre opportune conclusioni sul comportamento del sistema modellato ed eventualmente indicare possibili modifiche al modello, e di conseguenza al sistema, per migliorarne le prestazioni o l’affidabilità.
Explain the concept of modeling and the use of abstraction to focus on the aspects relevant to a given problem. Devise a (simple) mathematical model of a system and show how its dynamics can be recreated through simulation. Build the model of a system using a specific formalism (presented in the course). Evaluate the adequacy of a given formalism (among those presented in the course) to model a specific system. Explain the benefits of using models and simulation in various application domains. Explain the meaning of model verification and validation, also providing practical examples. Present the results of the analysis (possibly through simulation) of a model. Provide an interpretation of quantitative results of model analysis or simulation, drive some conclusions on the behavior of the modelled system and possibly suggest changes in the system under study to improve its performance and/or dependability indices.
×
Stampa
Insegnamento
SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI
Codice
S1429
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
PORTINALE Luigi
Docenti
CFU
3
Ore di lezione
24
Ore di studio individuale
51
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
C
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Il corso completo di INTELLIGENZA ARTIFICIALE E SUPPORTO ALLE DECISIONI si compone di due moduli: Intelligenza Artificiale (6 CFU) e Sistemi Intelligenti di Supporto alle Decisioni (3 CFU). Nel seguito le informazioni relative ai singoli moduli vengono riportate separatamente (considerare solo quelle del modulo a cui si e' interessati) INTELLIGENZA ARTIFICIALE: Algoritmi di ricerca nello spazio degli stati; Sistemi di ragionamento basato su casi; Rapresentazione di conoscenza incerta: probabilita' e Reti Bayesiane, Teoria delle decisioni e Diagrammi di Influenza. SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Richiami di teoria delle decisioni; Utilita’ multi-attributo; Diagrammi di influenza; Decisioni one-shot e sequenziali; Decision-theoretic planning (Markov Decision Processes).
The course is composed by two modules: Artificial Intelligence (6 CFU) and Intelligent Decision Support Systems (3 CFU). Please consider only the information of the module you are interested in. ARTIFICIAL INTELLIGENCE State space search; Case-Based Reasoning; Uncertain knowledge representation: probability theory and Bayesian Networks; Introduction to Decision Theory. INTELLIGENT DECISION SUPPORT SYSTEMS Decision Theory, Multi-attribute utility, Influence diagrams, One-shot and sequential decisions, Decision-theoretic planning (Markov Decision Processes)
Testi di riferimento/Textbooks
S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach (3a edizione), Prentice-Hall. Traduzione italiana pubblicata da Pearson Education.
S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach (3rd edition), Prentice-Hall.
Obiettivi formativi/Mission
INTELLIGENZA ARTIFICIALE: Introdurre le nozioni fondamentali dell’Intelligenza artificiale. SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Modellare processi decisionali one-shot e sequenziali
ARTIFICIAL INTELLIGENCE: To introduce the fundamentals notions of AI systems INTELLIGENT DECISION SUPPORT SYSTEMS: Modeling one-shot and sequential decision processes
Prerequisiti/Required background knowledge
INTELLIGENZA ARTIFICIALE: ASD-I e ASD-II (consigliati), Calcolo delle Probabilita’ (consigliato). SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Intelligenza artifciale Calcolo delle probabilita'
ARTIFICIAL INTELLIGENCE: Suggested: Algorithms I and II, Probability and Statistics. INTELLIGENT DECISION SUPPORT SYSTEMS: Artificial Intelligence, Probability
Metodi didattici/Teaching methods
Lezioni frontali in aula, esercitazioni tramite piattaforma Moodle, uso di strumenti software.
Lectures and exercises using Moodle and software tools.
Modalità di verifica dell'apprendimento/Assessment methods
INTELLIGENZA ARTIFICIALE: Esame scritto integrato da eventuale esame orale. SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Discussione di un progetto individuale
ARTIFICIAL INTELLIGENCE: Written and oral (not mandatory) exam INTELLIGENT DECISION SUPPORT SYSTEMS: Oral discussion of a project
Programma esteso/Content
INTELLIGENZA ARTIFICIALE: Introduzione e cenni storici sull'AI. Ricerca nello spazio degli stati: ricerca path-based cieca ed euristica. L'algoritmo A*. Algoritmi di miglioramento iterativo: hill-climbing e simulated annealing; Cenni su problemi CSP. Algoritmi per giochi a 2 concorrenti: minimax e alfa/beta pruning. Rappresentazione della conoscenza: cenni su formalismi logici e a regole. Sistemi di Case-Based Reasoning; Conoscenza Incerta: richiami di calcolo delle probabilità. Bayesian Belief Networks (proprietà ed algoritmi) e uso di tool per il loro sviluppo (Genie, Hugin, ecc...). Introduzione alla Teoria delle decisioni. SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Richiami di teoria delle decisioni. Utilita’ multi-attributo. Diagrammi di influenza Decisioni one-shot e sequenziali Decision-theoretic planning (Markov decision processes).
ARTIFICIAL INTELLIGENCE: Introduction and history of AI State space search: path-based blind and heuristic search. A* algorithm. Iterative improvement algorithms: hillclimbing and simulated annealing CSP problems Two players games: minimax and alpha/beta pruning Knowledge representations: hints on logical formalism. Case-Based Reasoning systems; the CBR-Works tool. Uncertain knowledge: probability theory, Bayesian Networks (properties and algorithms); BN tools (Genie, Hugin, etc...). Fundamentals of Decision theory. INTELLIGENT DECISION SUPPORT SYSTEMS: Decision Theory Multi-attribute utility Influence diagrams One-sot and sequential decisions Decision-theoretic planning (Markov Decision Processes)
Risultati di apprendimento attesi/Intended learning objectives
INTELLIGENZA ARTIFICIALE: conoscere gli algoritmi di ricerca principali usati nell' IA, saper rappresentare conoscenza in sistemi intelligenti, conoscere gli algoritmi di inferenza tipici dei sistemi intelligenti moderni. SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI: Saper modellare ed analizzare processi decisionali one-shot e sequenziali tramite modelli grafico-probabilistici
ARTIFICIAL INTELLIGENCE: to know main AI search algorithms, to be able to represent knowledge in intelligent systems, to know the main inference algorithms adopted in intelligent systems. INTELLIGENT DECISION SUPPORT SYSTEMS: being able to model ad analyze one-shot and sequential decision processes, using probabilistic graphical models.
×
Stampa
Insegnamento
BUSINESS INTELLIGENCE: DATA WAREHOUSE, ASPETTI TEMPORALI E SUPPORTO ALLE DECISIONI
Codice
MF0288
Anno Accademico
2019/2020
Anno regolamento
2019/2020
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
TERENZIANI Paolo
CFU
9
Ore di lezione
72
Ore di studio individuale
153
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
B
Anno
1
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano/Inglese
Italian/English
Contenuti/Content Summary
Il corso sarà articolato nelle seguenti parti: A) Datawarehousing B) Basi di dati temporali C) Supporto alle decisioni aziendali I contenuti delle varie parti si possono riassumere come segue: A) Metodologie e tecniche per reperire, analizzare, sintetizzare e ri-organizzare dati operazionali, al supporto di decisioni strategiche. B) Tecniche e metodologie per gestire il tempo nelle basi di dati relazionali. C) Metodologie e tecniche per la realizzazione di un moderno strumento di Business Intelligence;
The course will be organized into the following parts: A) Datawarehousing B) Temporal databases C) Enterprise decision support Contents of the four parts can be summarized as follows: A) Methodologies and techniques to collect, analyse, sinthetize and re-organize operational data, to support strategical decision-making B) Methodologies and techniques to deal with validity and transaction time in relational databases C) Methodologies and techniques to realize a modern Business Intelligence system;
Testi di riferimento/Textbooks
A) M. Golfarelli, S. Rizzi: “Data Warehose”, McGraw-Hill, Milano. B) La seconda parte del corso si avvale di pubblicazioni su riviste scientifiche fornite dal docente. C) Z. Michalewicz et al., Adaptive Business Intelligence, Springer.
A) M. Golfarelli, S. Rizzi: “Data Warehouse”, McGraw-Hill, Milano. B) The second part of the course (Temporal Issues) is bases of scientific journal publications provided by the teacher. C) Z. Michalewicz et al., Adaptive Business Intelligence, Springer.
Obiettivi formativi/Mission
Conoscenza e capacità di comprensione: gli studenti devono acquisire approfondita conoscenza di A) metodologie per reperire, analizzare, sintetizzare e ri-organizzare i dati operazionali; metodologie di progettazione a livello concettuale e di realizzazione livello logico in ambito relazionale di datawarehousing B) semantica delle basi di dati temporali; principali metodologie per gestire i tempi di validita' e di transazione nelle basi di dati relazionali; problematiche di base per il trattamento del tempo in basi di conoscenza C) metodologie e tecniche di rappresentazione e gestione della conoscenza, predizione, ottimizzazione, adattamento Capacita' di applicare conoscenza: A) capacita' di progettazione a livello concettuale e di realizzazione livello logico in ambito relazionale di datawarehousing, a partire dalle sorgenti di dati operazionali B) capacita' di utilizzare DBMS temporali quali TSQL2 C) capacità di valutare e/o applicare le tecniche studiate per progettare un sistema di supporto alle decisioni in un contesto aziendale, dove possono essere presenti dati e conoscenze eterogenee; Autonomia di giudizio: A) Abilita' nel determinare i fatti di interesse, la granularita', le dimensioni e le gerarchie dimensionali per un data warehouse B) Abilita' nel riconoscere l'eventuale necessita' di adottare tecniche specifiche\generali per la gestione del tempo nelle basi di dati; abilita' nell'individuare problematiche temporali (in basi di dati relazionali), e le metodologie atte a gestirle C) capacità di lavorare in maniera autonoma, anche in situazioni aziendali complesse o a fronte di informazioni incomplete Abilita, comunicative: A-B) Gli studenti devono acquisire e saper utilizzare la terminologia utilizzata nel campo del datawarehousing e delle basi di dati temporali. B) Devono saper esprimere in modo rigoroso (formale) la semantica delle basi di dati relazionali. C) devono saper giustificare le scelte progettuali o implementative fatte comunicandole in modo chiaro anche a utenti meno esperti Capacita' di apprendere: Gli studenti devono aver acquisito la capacita' di A) analizzare e modellare in modo uniforme dati provenienti da sorgenti eterogenee B) analizzare problemi temporali anche complessi nell'ambito delle basi di dati relationali C) descrivere e saper scegliere le più opportune tecniche per la realizzazione di un sistema di supporto alle decisioni aziendali
Knowledge and comprehension: students must acquire a deep knowledge about: A) the methodologies to retrieve, analyse, synthetise, and re-organise operational data; the methodologies to design at the conceptual and at the logical relational level a datawarehouse B) the semantics of temporal databases; the main methodologies to mana valid time and transaction time in temporal relational databases; the main problems when dealing with "time" in knowledge bases C) methodologies and techniques for: knowledge representation and management, prediction, optimization, adaptation. Capacity to apply knowledge and comprehension: A) ability to design (conceptual and logical level) and develop a datawarehouse in the relational context, starting from operational data sources B) capacity to properly use TSQL2-like temporal DBMS. C) ability to evaluate and/or apply the techniques studied in the course to design a decision support tool in an enterprise context, where heterogeneous data and knowledge may be available; Judgement autonomy: A) ability to identify facts of interest, granularity, dimensions and the hierarchy of dimensional attributes for a datawarehouse B) capability of recognizing the necessity of general\specific techniques to cope with time in relational DBs; ability to identify temporal problems (in DBs), and the methodologies to solve them C) ability to work in an autonomous way, and deal with complex enterprise situations or with incomplete information Communication abilities: A-B) Students must acquire and adopt the rigorous terminology used in datawarehousing and in temporal databases. B) They must also be able to express in a rigourous (formal) way the semantics of temporal databases. C) They must be able to justify their design or implementation choices and clearly communicate them also to a non expert audience. Learning capacity: students must acquire the capability of A) analysing a modeling in a uniform way data coming from heterogeneous sources B) analysing possibly complex temporal problems in temporal databases C) describing and properly choosing the correct techniques to realize an enterprise decision support system
Prerequisiti/Required background knowledge
Nozioni di base delle basi di dati relazionali, algebra relazionale, SQL
Basic notions about relational databases, relational algebra, SQL
Metodi didattici/Teaching methods
Lezione frontale in aula. Le lezioni frontali contempleranno anche la risposta a quesiti o la risoluzione di esercizi esemplificativi per lo svolgimento dell'esame. Esempi di test d'esame potranno essere forniti agli studenti. Le slide delle lezioni, i testi consigliati, ed altro materiale saranno forniti anche sulla piattaforma DIR, per consentire anche a chi non frequenta di tenersi al passo con lo svolgimento del corso.
Direct lessons in classroom. Classroom lessons will also include example questions or exercises useful for the final test. Example tests can also be provided to students. Slides, textbooks indications and additional material will be provided also through the DIR platform. In this way, the students who do not attend will be allowed to easily follow the course progression.
Modalità di verifica dell'apprendimento/Assessment methods
A) Scritto. Gli studenti devono rispondere a domande generali sul contenuto del corso, e svolgere piccoli esercizi. B) Orale C) Esame scritto. L'esame su questa parte del corso prevede un minimo di 3 domande, che verteranno su argomenti scelti tra: gestione della conoscenza, predizione, ottimizzazione, adattamento. Il voto terra' conto dei risultati parziali ottenuti nelle singole domande. Eventualmente (ad esempio, per richiesta dello studente), la stessa tipologia di esame potra' essere svolta oralmente
A) Written. Students must answer questions and do small exercises -B) Oral examination C) Written test. The test will be composed by three questions at least, focused on different course topics chosen among knowledge management, prediction, optimization, adaptation. The final score will take into account the partial scores of the different questions. Possibly (e.g., on student's request), the same exam type will be executed orally.
Programma esteso/Content
A (Data Warehousing): - Introduzione: obiettivi ed architetture - tecniche per reperire e riconciliare i dati operazionali - linguaggi di query OLAP - modelli e tecniche per l'implementazione del conceptual multidimensional data model in ambito relazionale - NOSQL (cenni) B (ASPETTI TEMPORALI): - tempi di validita' e di transazione - Un approccio generale al tempo nei DB relazionali: TSQL2 - il modello BCDM per la semantica delle basi di dati relazionali temporali - trattamento del tempo in Intelligenza Artificiale (cenni) C (Supporto alle decisioni aziendali): Nel corso l’esposizione sarà organizzata in quattro parti, ciascuna riferita alla realizzazione di uno dei quattro principali moduli che compongono la struttura di un moderno strumento di Business Intelligence: 1. gestione della conoscenza: conoscenza implicita ed esplicita; Rule-based Reasoning e Case-based Reasoning; soluzioni di Case-based Reasoning avanzate (dati in forma di serie temporali, fuzzy CBR, process-oriented CBR); 2. predizione: classificazione, regressione, serie temporali; metodi matematici, basati su distanze, logici, basati su euristiche; metodi ibridi; 3. ottimizzazione: metodi matematici, algoritmi evoluzionistici, ant systems, metodi ibridi; 4. adattamento: tecniche per migliorare le prestazioni del modulo di previsione.
A (Data Warehousing): - Introduction: goals and architectures for Data Warehousing - techniques to collect and reconcile heterogeneous operational data - languages and techniques for the conceptual design of a multidimensional data model - Advanced query languages for OLAP analysis - model and techniques for a relational implementation of the conceptual multidimensional data model – NoSQL (hints) B (Temporal issues): - Validity vs transaction time - TSQL2: a general approach coping with time in relational databases - The BCDM model for the semantics of temporal relational databases - Properties of temporal relational models - Advanced temporal issues and Artificial Intelligence (hints) C (Enterprise decision support): The subject will be organised in four parts, each one referring to the realization of a specific module in a modern Business Intelligence tool architecture: 1. knowledge management: implicit and explicit knowledge; Rule-based Reasoning and Case-based Reasoning; advanced Case-based Reasoning solutions (time series data, fuzzy CBR, process-oriented CBR); 2. prediction: classification, regression, time series; mathematical models, distance-based models, logic models, heuristic models; hybrid methods; 3. optimisation: mathematical methods, evolutionary algorithms, ant systems, hybrid methods; 4. adaptation: techniques to improve the prediction module performances.
Risultati di apprendimento attesi/Intended learning objectives
Gli studenti devono aver acquisito le seguenti conoscenze, competenze, ed abilita': A) - conoscenza delle tecniche per reperire e riconciliare i dati operazionali; - conoscenza generale dei linguaggi di query OLAP e capacita' di formulare query - conoscenza a capacita' di gestione di modelli e tecniche per l'implementazione del conceptual multidimensional data model in ambito relazionale - conoscenza generale di NOSQL (cenni) B) - conoscenza e capacita' di distinguere i tempi di validita' e di transazione - conosceza e capacita' di utilizzare l'approccio TSQL2 al tempo nei DB relazionali - conosceza e capacita' di utilizzare il modello BCDM per la semantica delle basi di dati relazionali temporali - conoscenza delle principali problematiche concernenti il trattamento del tempo in Intelligenza Artificiale (cenni) C) Le competenze da verificare, e necessarie per il superamento del corso, consistono nell'aver appreso i concetti di base relativi a: 1.gestione della conoscenza 2.predizione 3.ottimizzazione 4.adattamento Occorre inoltre essere in grado di dimostrare la capacita' di applicarli nel rispondere a quesiti di teoria, o nello svolgere alcuni esercizi.
Students must acquire the following knowledge, competences, and abilities A) - knowledge about the techniques to retrieve and reconcile operational data sources - general knowledge about OLAP query languages, and ability to formulate OLAP queries - model and techniques for a relational design and implementation of the conceptual multidimensional data model – NoSQL (hints) B) - knowledge and ability to distinguish validity vs transaction time - knowledge and ability to use TSQL2-like approaches to cope with time in relational databases - knowledge and ability to use the BCDM model to model the semantics of temporal relational databases - knowledge about the main issues concerning the treatment of time in Artificial Intelligence (hints) C) Having understood notions of: 1. knowledge management 2. prediction 3. optimisation 4. adaptation described in the lessons; being able to apply such notions in answering theoretic questions as well as exercises.
Stampa guida
Stampa
Anno Codice Insegnamento Docenti Settore Scientifico Disciplinare (SSD) Curriculum Sede CFU
1 MF0378 BIOLOGIA COMPUTAZIONALE Mignone Flavio BIO/11 Tutti ALESSANDRIA 3
1 MF0289 BUSINESS INTELLIGENCE: ASPETTI TEMPORALI E SUPPORTO ALLE DECISIONI Terenziani Paolo, Montani Stefania INF/01 Tutti ALESSANDRIA 6
1 MF0288 BUSINESS INTELLIGENCE: DATA WAREHOUSE, ASPETTI TEMPORALI E SUPPORTO ALLE DECISIONI Terenziani Paolo, Montani Stefania INF/01 Tutti ALESSANDRIA 9
1 S1421 CALCOLABILITA' E COMPLESSITA' Egidi Lavinia INF/01 Tutti ALESSANDRIA 6
1 MF0410 COMPUTATIONAL STATISTICS Ferrero Enrico MAT/06 Tutti ALESSANDRIA 6
1 MF0409 CYBER SECURITY 2 Anglano Cosimo Filomeno INF/01 Tutti ALESSANDRIA 6
1 S1422 FONDAMENTI DI LINGUAGGI DI PROGRAMMAZIONE Giannini Paola INF/01 Tutti ALESSANDRIA 6
1 MF0291 FONDAMENTI DI WEB SEMANTICO E PROBLEM SOLVING DICHIARATIVO Giordano Laura, Theseider Dupre' Daniele INF/01 Tutti ALESSANDRIA 6
1 MF0294 HIGH PERFORMANCE COMPUTING Anglano Cosimo Filomeno, Canonico Massimo INF/01 Tutti ALESSANDRIA 6
1 MF0293 INTELLIGENZA ARTIFICIALE E SUPPORTO INTELLIGENTE ALLE DECISIONI Portinale Luigi INF/01 Tutti ALESSANDRIA 9
1 MF0057 Intelligenza Artificiale Portinale Luigi INF/01 Tutti ALESSANDRIA 6
1 MF0286 METODI DI OTTIMIZZAZIONE Fragnelli Vito MAT/09 Tutti ALESSANDRIA 6
1 MF0379 PROBLEM SOLVING DICHIARATIVO Giordano Laura, Theseider Dupre' Daniele INF/01 Tutti ALESSANDRIA 3
1 S1621 SICUREZZA Egidi Lavinia INF/01 Tutti ALESSANDRIA 6
1 S1429 SISTEMI INTELLIGENTI DI SUPPORTO ALLE DECISIONI Portinale Luigi INF/01 Tutti ALESSANDRIA 3
1 S0596 SISTEMI MULTIMEDIALI Leonardi Giorgio INF/01 Tutti ALESSANDRIA 6
1 MF0377 TEORIA DEI GIOCHI Fragnelli Vito SECS-S/06 Tutti ALESSANDRIA 3
1 MF0168 VALUTAZIONE DELLE PRESTAZIONI Franceschinis Giuliana Annamaria INF/01 Tutti ALESSANDRIA 6
2 MF0378 BIOLOGIA COMPUTAZIONALE Mignone Flavio BIO/11 Tutti ALESSANDRIA 3
2 MF0373 COMPUTATIONAL STATISTICS Ferrero Enrico SECS-S/01 Tutti ALESSANDRIA 6
2 MF0376 DATA MINING PER DATI SPERIMENTALI Robotti Elisa CHIM/01 Tutti ALESSANDRIA 6
2 MF0374 DEEP LEARNING Saitta Lorenza, Portinale Luigi INF/01 Tutti ALESSANDRIA 3
2 MF0287 INFORMATION RETRIEVAL Manzini Giovanni INF/01 Tutti ALESSANDRIA 6
2 MF0292 MACHINE LEARNING Saitta Lorenza, Portinale Luigi INF/01 Tutti ALESSANDRIA 6
2 MF0375 MACHINE LEARNING AND DEEP LEARNING Saitta Lorenza, Portinale Luigi INF/01 Tutti ALESSANDRIA 9
2 S0069 PROVA FINALE PROFIN_S Tutti ALESSANDRIA 37
2 MF0229 ULTERIORI CONOSCENZE LINGUISTICHE NN Tutti ALESSANDRIA 2
2 MF0168 VALUTAZIONE DELLE PRESTAZIONI Franceschinis Giuliana Annamaria INF/01 Tutti ALESSANDRIA 6
Dati aggiornati al: 06/11/2023, 14:16