|
Insegnamento
|
CFU
|
SSD
|
Ore Lezione
|
Ore Eserc.
|
Ore Lab
|
Ore Studio
|
Attività
|
Lingua
|
|
8065623 -
CALCOLO DELLE PROBABILITA' E STATISTICA
(obiettivi)
OBIETTIVI FORMATIVI: ’L'insegnamento si inserisce nell’'area tematica della matematica, in particolare della probabilità e statistica. Si propone il duplice obiettivo di fornire allo studente sia la conoscenza e la capacità di comprensione dei fenomeni di natura aleatoria sia gli strumenti metodologici e analitici correlati, che siano di supporto per i corsi successivi ma anche di valore intrinseco. L’'introduzione ai concetti di rischio e di probabilità fornisce gli strumenti analitici e modellistici per la trattazione di eventi casuali. L'’introduzione alla statistica fornisce gli strumenti metodologici per trattare con le quantità aleatorie rilevabili. CONOSCENZA E CAPACITÀ DI COMPRENSIONE: Si richiede la capacità di comprendere la teoria e di svolgere esercizi. CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: Si richiede la capacità di capire come usare la teoria per svolgere gli esercizi. AUTONOMIA DI GIUDIZIO: Si richiede di motivare i procedimenti utilizzati nella soluzione degli esercizi, con eventuale riferimento ad argomenti di teoria. ABILITÀ COMUNICATIVE: Si richiede la capacità di avere padronanza dei concetti matematici utilizzati. CAPACITÀ DI APPRENDIMENTO: Si richiede di capire la teoria, sapendo collegare dove serve diversi argomenti.
-
MACCI CLAUDIO
( programma)
Spazi di probabilità. Probabilità condizionata. Formula delle probabilità totali. Formula di Bayes. Eventi indipendenti. Cenni di calcolo combinatorio. Introduzione alle variabili aleatorie. Funzione di distribuzione. Variabili aleatorie discrete e distribuzioni discrete di uso comune (ipergeometrica, binomiale, geometrica, binomiale negativa, Poisson). Variabili aleatorie discrete multidimensionali. Variabili aleatorie discrete indipendenti. Speranza matematica, momenti, varianza e covarianza per variabili aleatorie discrete. Disuguaglianza di Cebichev. Regressione lineare. Variabili aleatorie continue e distribuzioni continue di uso comune (uniforme, esponenziale, normale, Gamma). Processo di Poisson. Speranza matematica, momenti e varianza per variabili aleatorie continue. Legge dei grandi numeri. Teorema limite centrale. Approssimazione normale.
 P. Baldi, Introduzione alla probabilità con elementi di statistica, McGraw-Hill, 2012 (seconda edizione). ISBN: 9788838667862
|
6
|
MAT/06
|
48
|
-
|
-
|
-
|
Attività formative affini ed integrative
|
ITA |
|
8066825 -
LINGUAGGI E METODOLOGIE DI PROGRAMMAZIONE
(obiettivi)
OBIETTIVI FORMATIVI: Il corso intende fornire allo studente una panoramica dettagliata dei linguaggi di programmazione che implementano paradigmi diversi dal solo modello procedurale visto nei corsi precedenti. CONOSCENZA E CAPACITÀ DI COMPRENSIONE: Conoscenza di modelli non procedurali alla programmazione. CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: Ricerca di soluzioni basate su modelli di programmazione non esplicitamente procerurale. AUTONOMIA DI GIUDIZIO: Comprensione di quale sia l'approccio di programmazione migliore dato l'ambito di applicazione. ABILITÀ COMUNICATIVE: Lo studente avrà la capacità di descrive i modelli non procedurali. CAPACITÀ DI APPRENDIMENTO: Richesta una rivoluzione nella modalità di pensare a chi è abituato a pensare proceduralmente.
|
|
|
M-4737 -
MODULO I
(obiettivi)
OBIETTIVI FORMATIVI: Il corso intende fornire allo studente una panoramica dettagliata dei linguaggi di programmazione che implementano paradigmi diversi dal solo modello procedurale visto nei corsi precedenti.CONOSCENZA E CAPACITÀ DI COMPRENSIONE: Conoscenza di modelli non procedurali alla programmazione. CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: Ricerca di soluzioni basate su modelli di programmazione non esplicitamente procerurale. AUTONOMIA DI GIUDIZIO: Comprensione di quale sia l'approccio di programmazione migliore dato l'ambito di applicazione. ABILITÀ COMUNICATIVE: Lo studente avrà la capacità di descrive i modelli non procedurali. CAPACITÀ DI APPRENDIMENTO: Richesta una rivoluzione nella modalità di pensare a chi è abituato a pensare proceduralmente.
-
ZANZOTTO FABIO MASSIMO
( programma)
Paradigma Dichiarativo: In questa parte del corso, si vuole introdurre lo studente alla programmazione dichiarativa basata sulla logica. Dopo una prima analisi delle differenze dei paradigmi di programmazione procedurali e dichiarativi, viene introdotto il Prolog come un linguaggio dichiarativo. Il linguaggio verrà descritto dal punto di vista sintattico e verranno introdotti i principali tipi di dati e gli operatori. Verranno descritte delle applicazioni nell'ambito dell'intelligenza artificiale e dell'elaborazione del linguaggio naturale. Verrà infine introdotta il legame con la logica dei predicati e con la logica del prim'ordine. Paradigma Funzionale: In questa parte del corso, lo studente verrà introdotto ai principi di programmazione funzionale. Il linguaggio utilizzato è il Python che è un linguaggio ibrido che contiene alcuni di questi principi.
 Paradigma Dichiarativo: I. Bratko, Prolog Programming for Artificial Intelligence, Addison Wesley
|
6
|
ING-INF/05
|
48
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ITA |
|
8067266 -
BASI DI DATI E DI CONOSCENZA
(obiettivi)
OBIETTIVI FORMATIVI: conoscere i modelli di basi di dati. progettare e utilizzare una base di dati.Aspetti transazionali e basi di dati NoSQL CONOSCENZA E CAPACITÀ DI COMPRENSIONE: Modelli CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: Standard AUTONOMIA DI GIUDIZIO: Standard ABILITÀ COMUNICATIVE: Standard CAPACITÀ DI APPRENDIMENTO: Aspetti transazionali e basi di dati NoSQL
-
VOCCA PAOLA
( programma)
Introduzione alle basi di dati e modello relazionale dove sono affrontati i seguenti argomenti: Introduzione al corso; Basi di Dati e Sistemi di Gestione di Basi di Dati; Modelli dei Dati e Linguaggi delle Basi di Dati; Modello Relazionale dei Dati. Progettazione concettuale e logica dove sono affrontati i seguenti argomenti: progettazione concettuale di una base dati; progettazione logica di una base dati Esercitazione: Progettazione di un modello E-R a partire da un caso di studio Algebra relazionale dove sono affrontati i seguenti argomenti: l'Algebra Relazionale come Linguaggio per la scrittura di Interrogazioni. Calcolo relazionale dove sono affrontati i seguenti argomenti: Calcolo Relazionale come linguaggio d’interrogazione. Esercitazione: Progettazione concettuale e logica di una base dati a partire dal modello E-R derivante da un caso di studio, interrogazioni in algebra relazionale. Linguaggio SQL ed intro alla progettazione dove sono affrontati i seguenti argomenti: introduzione al linguaggio SQL; caratteristiche evolute del SQL; SQL per le applicazioni; metodologie e modelli per la progettazione di una base dati. Progettazione fisica e normalizzazione dove sono affrontati i seguenti argomenti: progettazione fisica di una base dati, normalizzazione. Esercitazione: Progettazione fisica e normalizzazione di una base dati a partire dal progetto concettuale e logico derivante da un caso di studio. Interrogazioni e transazioni dove sono affrontati i seguenti argomenti: organizzazione fisica e gestione delle interrogazioni; gestione delle transazioni. Esercitazione sul linguaggio SQL: installazione del software DBMS, creazione e popolamento di un database, interrogazioni semplici ed annidate. Sviluppo applicazioni dove sono affrontati i seguenti argomenti: metodi e librerie per lo sviluppo di applicazioni fondate su basi di dati. Ottimizzazione delle prestazioni: Il processo di ottimizzazione delle query SQL, Tecniche di accesso ai dati dei DBMS relazionali, Tecniche di ottimizzazione, Interpretazione dei piani di esecuzione. Calcolo del costo di esecuzione per query SQL. Basi di dati distribuite: Concetti di basi di dati distribuite, controllo della concorrenza e recovery delle base di dati distribuite. Architetture delle basi di dati distribuite. Basi di dati NoSQL. Modelli dati non relazionali (Document-based, Graph-based, Column oriented). Architetture per DBMS non relazionali. Cluster, Sharding e persistenza. Modellazione dei dati in DBMS NoSQL. Gestione dei Big Data. Trattamento di grandi quantità di dati. Map Reduce e Hadoop. Hadoop Distributed File System. Spark SQL.
 - Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di dati -Modelli e Linguaggi di interrogazione- ed. McGraw-Hill 4nd edition
materiale del corso è disponibile alla pagina del corso
|
12
|
INF/01
|
96
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ITA |
|
8067331 -
ALGORITMI E STRUTTURE DATI
(obiettivi)
OBIETTIVI FORMATIVI: Questo corso introduce gli studenti all'analisi e alla progettazione di algoritmi. CONOSCENZA E CAPACITÀ DI COMPRENSIONE: Al termine del corso, gli studenti saranno in grado di: - analizzare la complessità asintotica di algoritmi; - dimostrare familiarità con i principali algoritmi e strutture dati; - applicare i più importanti paradigmi di progettazione algoritmica e usare i principali metodi di analisi; - progettare algoritmi efficienti in tipici contesti pratici in cui è richiesta una soluzione algoritmica. CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: Mi aspetto che uno studente sia in grado di riconoscere problemi algoritmici in contesti applicativi reali e sia in grado di applicare soluzioni algoritmiche a tali problemi. AUTONOMIA DI GIUDIZIO: Mi aspetto che uno studente sia capace di giudicare la qualità di una soluzione algoritmica. ABILITÀ COMUNICATIVE: Mi aspetto che uno studente sia in grado di descrivere formalmente problemi, algoritmi e analisi. CAPACITÀ DI APPRENDIMENTO: Mi aspetto che uno studente migliori le sue capacità di apprendimento.
|
|
|
M-5639 -
ALGORITMI E STRUTTURE DATI A
(obiettivi)
OBIETTIVI FORMATIVI: Questo corso introduce gli studenti all'analisi e alla progettazione di algoritmi. CONOSCENZA E CAPACITÀ DI COMPRENSIONE: Al termine del corso, gli studenti saranno in grado di: - analizzare la complessità asintotica di algoritmi; - dimostrare familiarità con i principali algoritmi e strutture dati; - applicare i più importanti paradigmi di progettazione algoritmica e usare i principali metodi di analisi; - progettare algoritmi efficienti in tipici contesti pratici in cui è richiesta una soluzione algoritmica. CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: Mi aspetto che uno studente sia in grado di riconoscere problemi algoritmici in contesti applicativi reali e sia in grado di applicare soluzioni algoritmiche a tali problemi. AUTONOMIA DI GIUDIZIO: Mi aspetto che uno studente sia capace di giudicare la qualità di una soluzione algoritmica. ABILITÀ COMUNICATIVE: Mi aspetto che uno studente sia in grado di descrivere formalmente problemi, algoritmi e analisi. CAPACITÀ DI APPRENDIMENTO: Mi aspetto che uno studente migliori le sue capacità di apprendimento.
-
GUALA' LUCIANO
( programma)
Il corso riguarda l'analisi e la progettazione di algoritmi. L'enfasi è sugli algoritmi efficienti. Saranno presentati i principali strumenti teorici utili per l'analisi e le principali tecniche di progettazione algoritmica (tecnica greedy, divide-et-impera, programmazione dinamica). Il corso è diviso in due parti. La prima parte copre: notazione asintotica, diversi metodi per stimare la complessità computazionale di algoritmi ricorsivi, il problema dell'ordinamento, strutture dati efficienti per implementare dizionari e code con priorità, e il problema del calcolo della distanza di edit fra due parole. La seconda parte riguarda problemi e algoritmi su grafi. Saranno presentati algoritmi efficienti per visitare un grafo, calcolare cammini minimi (in grafi pesati), trovare un minimo albero di copertura, e calcolare il flusso massimo di una rete con vincoli di capacità sugli archi.
 Algoritmi e Strutture Dati, Demetrescu, Finocchi, Italiano, McGraw-Hill Algorithm Design, Jon Kleinberg e Eva Tardos, Addison Wesley (2005)
|
6
|
INF/01
|
48
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ITA |
|
8065625 -
SISTEMI OPERATIVI E RETI
(obiettivi)
OBIETTIVI FORMATIVI: gli obiettivi del corso consistono principalmente nel fornire agli studenti una preparazione di base sui sistemi operativi e sulle reti di calcolatori, in particolare sulla rete Internet. Gli argomenti trattati saranno sia di tipo teorico che applicativo. A livello teorico, si descriveranno le varie architetture e strutture di sistemi, i principali componenti che costituiscono un sistema operativo e i protocolli che governano il funzionamento della rete Internet. A livello applicativo si introdurranno la programmazione multi processo e multi thread, la programmazione delle socket e nozioni per la progettazione di reti LAN sia nell'aspetto hardware che software. CONOSCENZA E CAPACITÀ DI COMPRENSIONE: Lo studente acquisirà le conoscenze fondamentali sulla struttura e funzionalità dei sistemi operativi. Conoscerà le tipologie di sistemi operativi esistenti e le attuali architetture di elaborazione. Conoscerà i principali componenti di un sistema operativo; le operazioni sui processi, comprese le tecniche per la comunicazione e sincronizzazione; i principi sulla programmazione multi processo e multi thread e l'uso delle principali funzioni, in linguaggio C, dello standard POSIX e della libreria PTHREAD. Conoscerà I più diffusi algoritmi di gestione delle risorse; varie tecniche di gestione della memoria; la gestione del file system e dell'I/0; aspetti legati alla sicurezza dei sistemi operativi. Per la parte reti, conoscerà il funzionamento della rete Internet; la commutazione di pacchetto; l'architettura dello stack TCP/IP e tutti i protocolli fondamentali che governano oggi il funzionamento della rete Internet. CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: Lo studente acquisirà conoscenze per la realizzazione di applicazioni multi processo e multi thread concorrenti in ambiente C/POSIX. Sarà in grado di utilizzare le principali funzioni di sistema per la gestione dei processi e dei thread compresi gli strumenti di sincronizzazione quali mutex, semafori e variabili condizione. Nella parte reti, acquisirà conoscenze di base per lo sviluppo di applicazioni di rete, mediante programmazione delle socket in linguaggio Java. Inoltre, sarà in grado di progettare semplici reti LAN sia a livello hardware, mediante dispositivi di interconnessione e mezzi trasmissivi, sia a livello software sviluppando il piano d'indirizzamento. AUTONOMIA DI GIUDIZIO: Lo studente sarà in grado di valutare le performance degli algoritmi di gestione delle risorse dei sistemi operativi, di comprendere e risolvere problemi tipici della programmazione concorrente e di operare scelte adeguate nella progettazione di reti intranet. ABILITÀ COMUNICATIVE: Lo studente acquisirà la capacità di esprimere i concetti fondamentali trattati nel corso con terminologia appropriata. Imparerà a descrivere i problemi inerenti la programmazione concorrente e la programmazione delle socket e le metodologie adottate per la loro soluzione. CAPACITÀ DI APPRENDIMENTO: Lo studente acquisirà la capacità di studiare ed apprendere argomenti più avanzati sui sistemi operativi e sulle reti di calcolatori.
-
CROCE DANILO
( programma)
Parte I (I semestre) Introduzione ai sistemi operativi. Classificazione dei sistemi operativi. Principali modelli strutturali. Gestione dei processi. Thread. Sincronizzazione dei processi. Scheduling della CPU. Deadlocks. Gestione della memoria. Gestione dell'I/O. Gestione del file system. Casi di studio: Unix e Linux Parte II (II semestre) Reti di calcolatori e Internet. Strato di applicazione. Strato di trasporto. Strato di rete e instradamento. Strato di collegamento e reti di area locale. Reti wireless.
 Sistemi Operativi, X ed. - A. Silberschatz, P. Galvin, G. Gagne. Pearson. Reti di Calcolatori e Internet: un approccio top-down, VII ed. - J. F. Kurose, K. W. Ross - Pearson.
|
12
|
INF/01
|
96
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ITA |
|
8066834 -
FONDAMENTI DI INFORMATICA
(obiettivi)
OBIETTIVI FORMATIVI: acquisizione di conoscenze relative ai concetti fondanti dell'informatica e della teoria degli algoritmi, con particolare riferimento alla loro analisi, alla teoria degli automi e dei linguaggi formali, alla calcolabilità e alla complessità computazionale. CONOSCENZA E CAPACITÀ DI COMPRENSIONE: acquisizione di conoscenze di tecniche di analisi che inducano una capacità di comprensione approfondita dei problemi e dei procedimenti risolutivi; CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: abbiano capacità di applicare la conoscenza e comprensione acquisite al fine di individuare i punti critici dei problemi allo scopo di progettare soluzioni quanto più efficienti possibile; AUTONOMIA DI GIUDIZIO: abbiano la capacità di raccogliere e interpretare i dati ritenuti utili a derivare giudizi autonomi circa la effettiva risolubilità/irrisolubilità di problemi; ABILITÀ COMUNICATIVE: l’utilizzo di linguaggio logico e formalismo porterà ad una capacità di comunicare con elevato grado di chiarezza informazioni, idee, problemi e soluzioni a interlocutori specialisti e non specialisti; CAPACITÀ DI APPRENDIMENTO: sviluppo di capacità di approfondire autonomamente gli argomenti trattati, che è prerogativa necessaria alla possibilità di intraprendere con successo il percorso magistrale.
|
|
|
M-4748 -
MODULO I
(obiettivi)
OBIETTIVI FORMATIVI: acquisizione di conoscenze relative ai concetti fondanti dell'informatica e della teoria degli algoritmi, con particolare riferimento alla loro analisi, alla teoria degli automi e dei linguaggi formali, alla calcolabilità e alla complessità computazionale. CONOSCENZA E CAPACITÀ DI COMPRENSIONE: acquisizione di conoscenze di tecniche di analisi che inducano una capacità di comprensione approfondita dei problemi e dei procedimenti risolutivi; CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: abbiano capacità di applicare la conoscenza e comprensione acquisite al fine di individuare i punti critici dei problemi allo scopo di progettare soluzioni quanto più efficienti possibile; AUTONOMIA DI GIUDIZIO: abbiano la capacità di raccogliere e interpretare i dati ritenuti utili a derivare giudizi autonomi circa la effettiva risolubilità/irrisolubilità di problemi; ABILITÀ COMUNICATIVE: l’utilizzo di linguaggio logico e formalismo porterà ad una capacità di comunicare con elevato grado di chiarezza informazioni, idee, problemi e soluzioni a interlocutori specialisti e non specialisti; CAPACITÀ DI APPRENDIMENTO: sviluppo di capacità di approfondire autonomamente gli argomenti trattati, che è prerogativa necessaria alla possibilità di intraprendere con successo il percorso magistrale.
-
GAMBOSI GIORGIO
( programma)
Introduzione al corso: algoritmi, problemi, modelli di calcolo. Caratteristiche elementari dei linguaggi. Grammatiche di Chomsky e loro gerarchia. Generazione ed accettazione di linguaggi. Riconoscimento di linguaggi: automi. Automi a stati finiti deterministici e non deterministici; equivalenza tra essi. Relazioni tra automi a stati finiti e grammatiche di tipo 3 (regolari). Pumping lemma per i linguaggi regolari. Proprietà di chiusura dei linguaggi regolari. Predicati decidibili sui linguaggi regolari. Espressioni regolari e loro equivalenza con gli automi a stati finiti e con le grammatiche regolari. Minimizzazione di automi a stati finiti.. Linguaggi context free - Grammatiche di tipo 2: forme ridotte e forme normali (Chomsky, Greibach). Propreità di chiusura dei linguaggi CF. Decidibilità di predicati su linguaggi CF. Pumping lemma per i linguaggi context free. Automi a pila e linguaggi context free. Automi a pila deterministici. Ambiguità e sua indecidibilità. L'algoritmo CYK. Analisi sintattica in un compilatore, linguaggi LL(k) e LR(k) (cenni).
 G. Ausiello, F. D'Amore, G. Gambosi, L. Laura "Linguaggi, Modelli, Complessità" nuova edizione. Franco Angeli, 2014. ISBN 978-88-917-0553-2. Dispense a cura del docente disponibili sul sito del corso.
|
6
|
INF/01
|
48
|
-
|
-
|
-
|
Attività formative di base
|
ITA |