Corso di laurea

data science

Università degli studi di Bari · 30 materie · 1 file condivisi

Il Corso di Laurea Magistrale intende far acquisire ai futuri laureati conoscenze e competenze specifiche nell'ambito della Data Science. Più precisamente, il percorso di studio è teso a formare professionisti in grado di utilizzare tecniche matematico-statistiche e informatiche all'interno di aziende e amministrazioni pubbliche e private, inclusi enti o istituti di ricerca scientifica e tecnologica, in particolare per quel che riguarda l'acquisizione, gestione, trattamento, analisi e utilizzo di grandi moli di dati, anche affiancando efficacemente esperti di specifici settori applicativi.
In particolare, i laureati in Data Science dovranno
- avere una preparazione che comprenda sia conoscenze tecniche specifiche, sia conoscenze fondanti ndi contesto aziendale, giuridico, sociale ed umanistico;
- saper coniugare tecnologie e metodologie matematico-statistiche e informatiche con metodi e tecniche specifiche dell'ambito in cui si troveranno ad operare;
- saper usare le tecniche e metodologie apprese per formulare, anche in modo innovativo, risposte quantitative e qualitative a problemi complessi o che richiedono un approccio interdisciplinare, in particolare quando riguardati grandi moli di dati;
-essere in grado di coadiuvare efficacemente il cambiamento e l'innovazione tecnologica e organizzativa nelle aziende e in enti o amministrazioni pubbliche e private, in particolare negli aspetti coinvolgenti l'uso e il trattamento di grandi moli di dati, strutturati o non strutturati.
Il percorso formativo è strutturato in modo tale da fornire ai laureati una formazione avanzata e in linea con lo stato dell'arte in relazione alle metodologie e soluzioni in ambito Data Science.
Le attività formative saranno svolte attraverso lezioni frontali, esercitazioni, prove di laboratorio e mediante ulteriori strumenti di supporto alla didattica. Il corso prevede anche lo svolgimento di un tirocinio presso aziende del settore, enti pubblici o privati o laboratori dell'Università al fine non solo di redigere un elaborato finale che dovrà essere presentato in seduta di laurea ma anche di condurre una esperienza formativa significativa.
Il laureato in Data Science potrà proseguire gli studi nell'ambito di Dottorati di Ricerca o Master di secondo livello.

Ecco tutti i dettagli sul corso di laurea selezionato. Sul UniDocs troverai gli appunti condivisi dagli altri studenti del tuo corso di laurea, ordinati per materia. Ricordati che per poter visualizzare il materiale devi essere registrato al sito e possedere un numero di crediti sufficiente.

Sfoglia il materiale didattico

Con UniDocs hai l'opportunità di studiare insieme a tutto il tuo corso di laurea. Guadagna subito dei crediti, carica il materiale del tuo ultimo esame!
Più condividi, più tempo avrai per studiare con tutta la community!

Materie del corso

APPRENDIMENTO AUTOMATICO 1° anno · 2° semestre · 9 CFU · IINF-05/A · 0 file

L’insegnamento si propone di fornire solide competenze teorico-pratiche nell'ambito dell’Apprendimento Automatico e specificamente capacità di svolgimento di compiti e risoluzione di problemi complessi attraverso…

Scheda dell'insegnamento

Obiettivi formativi

L’insegnamento si propone di fornire solide competenze teorico-pratiche nell'ambito dell’Apprendimento Automatico e specificamente capacità di svolgimento di compiti e risoluzione di problemi complessi attraverso metodi per l’apprendimento di modelli predittivi.
Capacità di astrazione e, al contempo, di applicazione dei modelli a specifici problemi, nonché la valutazione quantitativa delle loro implementazioni, rappresentano obiettivi non meno importanti dell’insegnamento.

Lo studente dovrà acquisire competenze che, facendo leva sulle conoscenze acquisite nel I ciclo di studi, le estendano in modo da arrivare a una piena consapevolezza sotto il profilo teorico delle possibilità e dei limiti dei modelli e delle metodologie della disciplina, rendendolo capace di concepire autonomamente soluzioni appropriate ad affrontare specifici problemi e che possano risultare originali anche rispetto al contesto di ricerca.

Lo studente sarà capace di applicare le conoscenze teoriche acquisite, avendo imparato a comprendere e proporre soluzioni a problemi relativi anche a tematiche nuove o non familiari, inserite in contesti più ampi, comprendenti anche altre discipline non strettamente connesse al settore di studio.

Autonomia di giudizio
Lo studente acquisirà la capacità di integrare le conoscenze, gestire la complessità, e formulare giudizi anche a fronte di dati limitati o incompleti.
Sarà altresì in grado di riflettere sulle responsabilità sociali ed etiche legate all’applicazione delle conoscenze e dei giudizi espressi.
Abilità comunicative
Lo studente avrà imparato a comunicare in modo chiaro e privo di ambiguità conoscenze e idee-guida sottese alle stesse, nonché opinioni e conclusioni personali, sia a specialisti della materia sia ad altri interlocutori esperti in discipline diverse.
Capacità di apprendere in modo autonomo
Lo studente svilupperà capacità di apprendimento che gli consentano di continuare ad approfondire lo studio in modo indipendente seguendo propri interessi e inclinazioni.

Programma

  • Introduzione
  • Fondamenti
    ◦ Stima dei Parametri
    ◦ Teoria dell’Informazione
    ◦ Misture e Modelli Grafici
  • Modelli Lineari
    ◦ Discriminazione Lineare
    ◦ Regressione Logistica
    ◦ Regressione Lineare
  • Reti Neurali
  • Modelli Non Parametrici
    ◦ Metodi Basati su Prototipi
    ◦ Metodi Basati su Kernel
    ◦ Alberi, Foreste, Bagging e Boosting
  • Oltre i Modelli Supervisionati
    ◦ Clustering
    ◦ Riduzione della Dimensionalità
    ◦ Apprendimento con Pochi Esempi Etichettati
    Per maggiori dettagli si vedano anche i siti dell’insegnamento.

Modalità d'esame

Prova unica articolata in due momenti successivi (ciascuno della durata di circa 30’) che mira ad accertare l’acquisizione di competenze

  • pratiche: esercizio (in lab. o su proprio dispositivo) che dimostri la capacità di costruire un workflow per un problema dato, dall’acquisizione del dataset alla valutazione finale dei modelli appresi;
  • teoriche: colloquio che, partendo dalla discussione dei risultati della prima parte, si estende ad altri aspetti tecnici riguardanti problematiche generali e/o i diversi task, i modelli e le metodologie nel programma dell’insegnamento.
    Valutazione in trentesimi ottenuta approssimativamente come media ponderata (in proporzione alla tipologia dei cfu) del grado di acquisizione delle competenze accertato nelle due parti.
    Prova in itinere (scritta) facoltativa a metà corso:
  • valore esonerante per la parte iniziale del programma

Testi di riferimento

Testi base:

  • K. Murphy: Probabilistic Machine Learning: An Introduction. MIT Press
  • E. Alpaydin: Introduction to Machine Learning. MIT Press. 4E
    Manuali consigliati per le esercitazioni pratiche:
  • A. Gèron: Hands-on machine learning with Scikit-Learn. 2e, O'Reilly
  • Raschka & Mirjalili: Python Machine Learning. 3e. Packt
    Gli studenti che lo desiderano possono ottenere i testi in prestito dalla Biblioteca.
    Può convenire verificarne la disponibilità mediante il Sistema Bibliotecario di Ateneo https://opac.uniba.it/easyweb/w8018/index.php? e contattare la biblioteca per concordare il prestito.

Codice insegnamento P622562435

DATA MINING 1° anno · 2° semestre · 6 CFU · IINF-05/A · 0 file

Acquisizione di adeguate conoscenze dei processi di scoperta della conoscenza nei dati (KDD). Acquisizione di competenza nell'analisi di un dataset con strumenti di data mining. ● Conoscenze teoriche o Comprendere i…

Scheda dell'insegnamento

Obiettivi formativi

Acquisizione di adeguate conoscenze dei processi di scoperta della conoscenza nei dati (KDD). Acquisizione di competenza nell'analisi di un dataset con strumenti di data mining.

● Conoscenze teoriche
o Comprendere i principi fondamentali della scoperta di conoscenza nelle basi di dati (KDD).
o Conoscere le fasi del processo CRISP-DM e il loro ruolo nell’analisi dei dati (business understanding, data understanding, data preparation, modelling, evaluation, deployment).
o Conoscere le principali misure di similarità e distanza per dati quantitativi, qualitativi, testuali e temporali.
o Comprendere le implicazioni metodologiche e applicative delle diverse metriche di similarità in contesti reali.
● Capacità di comprensione
o Interpretare e valutare dataset complessi, riconoscendo le problematiche legate alla qualità dei dati e alla loro preparazione.
o Analizzare criticamente i risultati di un processo di data mining, valutandone la validità e l’applicabilità.
o Selezionare e giustificare l’uso di misure di similarità/distanza adeguate in funzione della tipologia di dati e del problema da risolvere.
o Collegare concetti teorici a casi pratici, comprendendo come le tecniche di KDD e le metriche di similarità supportino decisioni basate sui dati.

● Progettazione e realizzazione di un processo di KDD:
o Capacità di impostare e condurre un semplice progetto di scoperta di conoscenza su una collezione di dati.
o Utilizzo e/o sviluppo di strumenti per la selezione, pre-elaborazione e trasformazione dei dati, con attenzione alla qualità e alla coerenza delle informazioni.
o Validazione dei pattern estratti mediante metriche e tecniche di valutazione appropriate.
● Applicazione di strumenti di Data Mining:
o Uso di algoritmi e software di data mining per l’estrazione di conoscenza.
o Capacità di interpretare i risultati ottenuti e di contestualizzarli in diversi ambiti applicativi, sia aziendali (supporto alle decisioni, analisi di mercato) sia scientifici (analisi di dati sperimentali, bioinformatici, sociali).
● Gestione delle misure di similarità e distanza e delle misure di associazione:
o Applicazione pratica di metriche sia di similarità/distanza e sia di misure di associazione su dati quantitativi, qualitativi, testuali e temporali.
o Capacità di scegliere la misura più adeguata in funzione del problema e di giustificarne l’utilizzo.
● Competenze trasversali:
o Capacità di integrare conoscenze teoriche e pratiche per affrontare problemi reali di analisi dei dati.
o Sviluppo di un approccio critico e consapevole all’uso degli strumenti, con attenzione alle implicazioni metodologiche e applicative.

Autonomia di giudizio
o Gli studenti sono in grado di apprezzare l'uso di algoritmi di data mining nei processi di scoperta della conoscenza.
o L'autonomia di giudizio viene acquisita attraverso lo studio e l’interpretazione critica dei testi.
o Il raggiungimento dell’adeguata autonomia è verificato attraverso le esercitazioni, che si tengono durante il corso, e con l’esame finale di profitto.
Abilità comunicative
Gli studenti sono in grado di esporre le tematiche incluse nel programma del corso mediante il lessico specifico della disciplina, e sono in grado di comunicare in modo chiaro e privo di ambiguità le loro conclusioni nell'analisi di un dataset, a interlocutori specialisti e non specialisti.
Capacità di apprendere in modo autonomo
o Gli studenti sono in grado di approfondire in autonomia le tematiche incluse nel programma del corso anche ricorrendo a risorse (articoli su algoritmi di data mining e/o strumenti di analisi) non direttamente utilizzate nelle ore di lezione/laboratorio.

Programma

1. Scoperta di conoscenza nelle basi di dati: il processo. (42 ore con laboratorio)
La scoperta di conoscenza nelle basi di dati: definizione. Il processo della scoperta di conoscenza nelle basi di dati. Il processo CRISP-DM: business understanding, data understanding, data preparation, modelling, evaluation, deployment.
2. Similarità e distanze. (16 ore con laboratorio)
Similarità/distanze per dati qualitativi e quantitativi, misure di similarità di testi, misure di similarità temporale.
3. Associazioni di variabili (4 ore con laboratorio)

Modalità d'esame

o Prova scritta sulla parte teorica.
Discussione dell'analisi di un dataset assegnato dal docente, mediante l'applicazione della metodologia CRISP-DM vista nel corso e di strumenti scelti dallo studente, al fine di scoprire pattern e cluster di interesse.
La prova scritta è propedeutica alla discussione dell'analisi del dataset.
La votazione finale è in trentesimi. Ad essa contribuiscono il voto della prova scritta e la valutazione della discussione dell'analisi del dataset.
Durante la prova scritta è possibile utilizzare una calcolatrice, mentre nella discussione dell'analisi del dataset è possibile utilizzare il proprio PC dove sono installati gli ambienti utilizzati per l'analisi del dataset.
A metà corso è prevista la verifica in itinere a carattere non esonerante e per valutare l'andamento del corso.
Criteri di valutazione
Conoscenza e capacità di comprensione:
o esposizione critica dei concetti appresi relativi al processo di scoperta della conoscenza e capacità di affrontare semplici esercizi di data mining.
Conoscenza e capacità di comprensione applicate:
o analisi di dataset con applicazione di algoritmi di data mining e comprensione dei risultati ottenuti, in un ciclo finalizzato al miglioramento delle prestazioni
Autonomia di giudizio:
o Capacità di svolgere semplici esercizi assegnati durante il corso delle lezioni
Abilità comunicative:
o Uso del lessico specifico della disciplina informatica
Capacità di apprendere:
o sviluppo di argomenti su data mining non direttamente trattati nel corso ma assegnati dal docente
Criteri di misurazione dell'apprendimento e di attribuzione del voto finale
Il voto finale sarà attribuito sulla base della valutazione comparativa di tutti i criteri di valutazione sopra citati

Testi di riferimento

Charu C. Aggarwal
Data Mining
Springer 2015
(disponibile in biblioteca e su piattaforma Ada)
Gli studenti che lo desiderano possono ottenere i testi in prestito dalla Biblioteca. Può convenire verificarne la disponibilità mediante il Sistema Bibliotecario di Ateneo https://opac.uniba.it/easyweb/w8018/index.php? e contattare la biblioteca per concordare il prestito.

Codice insegnamento P114630621

Elementi di Biochimica 1° anno · 2° semestre · 6 CFU · BIOS-07/A · 0 file

L'insegnamento si propone di fornire agli studenti le conoscenze fondamentali dei meccanismi alla base del flusso dell’informazione genetica e della sua regolazione, della struttura e proprietà degli acidi nucleici.

Scheda dell'insegnamento

Obiettivi formativi

L'insegnamento si propone di fornire agli studenti le conoscenze fondamentali dei
meccanismi alla base del flusso dell’informazione genetica e della sua regolazione,
della struttura e proprietà degli acidi nucleici.

Programma

  • Parte I: la cellula e strutture fondamentali delle cellule. Cellule procariotiche ed eucariotiche. DNA come depositario dell’informazione genetica. Ciclo Cellulare in Procarioti ed Eucarioti. Struttura del DNA
  • Parte II: Impacchettamento del DNA in eucarioti e procarioti. Replicazione del DNA
  • Parte III: genomica. Caratteristiche dei genomi eucariotici e procariotici. Sequenziamento del genoma umano
  • Parte IV: Meccanismo di Trascrizione del DNA. Maturazione degli mRNA eucariotici. Splicing alternativo
  • Parte V: Codice genetico. Struttura dei Ribosomi. Meccanismo della traduzione
  • Parte VI: Tecnologie di sequenziamento massivo del DNA. Analisi di dati omici

Testi di riferimento

Francesco Amaldi, Piero Benedetti, Graziano Pesole, Paolo Plevani, Biologia Molecolare
Terza edizione | 2018 | Casa Editrice Ambrosiana. Distribuzione esclusiva Zanichelli

Codice insegnamento magistrale/data-science::Elementi di Biochimica

Fondamenti di Matematica per la Data Science 1° anno · 1° semestre · 9 CFU · MATH-05/A · 0 file

Padroneggiare sia i concetti fondamentali che quelli avanzati di algebra lineare numerica per la modellistica di problemi reali. Abilità nello sviluppo di algoritmi efficienti per le applicazioni nell’image-processing…

Scheda dell'insegnamento

Obiettivi formativi

Padroneggiare sia i concetti fondamentali che quelli avanzati di algebra lineare numerica per la modellistica di problemi reali. Abilità nello sviluppo di algoritmi efficienti per le applicazioni nell’image-processing e nel data-mining.

Conoscere e comprendere le tecniche di algebra lineare numerica utili per il trattamento di dati strutturati.
Applicare metodi di ottimizzazione per risolvere problemi nei contesti di data-mining, image-processing e information-retrival.

Acquisire le tecniche fondamentali dell’algebra lineare numerica per il trattamento di problemi reali. Capacità di sviluppo di codici numerici efficienti ed accurati per l’analisi di problemi nel contesto dell’image- processing, data mining e information retrieval.
Padronanza delle tecniche fondamentali e delle tecniche avanzate dell’algebra lineare numerica per modellare problemi reali.

Autonomia di giudizio:
-Studio critico ed individuale.
-Esercizi mirati durante il corso.
Abilità comunicative:

  • Uso del lessico tecnico appropriato per la descrizione degli argomenti trattati.
    Capacità di apprendere in modo autonomo:
  • Apprendimento della metodologia e del problem-solving attraverso lo studio dei testi consigliati e l’implmentazione pratica delle tecniche teoriche presentate durante il corso.

Programma

  • Algebra lineare numerica:
    Spazi vettoriali e sottospazi. Matrici e operazioni. I 4 sottospazi
    fondamentali. Rango. Connettività. Determinante di una matrice e
    sue proprietà. Trasformazioni lineari. Sistemi lineari e consistenza.
    Similarità. Norme, prodotti interni ed esterni. Ortogonalità.
    Algoritmo di ortonormalizzazione di Gram-Schmidt. Fattorizzazione
    QR. Decomposizione ai valori singolari (SVD) e proprietà. SVDTroncata. Teorema di Eckart-Young. Analisi delle componenti
    principali (PCA). Applicazioni all’image-processing e al textmining.
  • Autovalori e Autovettori:
    Numeri complessi (cenni)
    Definizione di autovalore e autovettore. Calcolo degli autospazi
    associati. Calcolo di autovalori per matrici 2x2. Molteplicità
    algebrica e geometrica.
    Diagonalizzabilità. Forma di Jordan. Teoremi di Schur. Metodo
    delle potenze. Matrici stocastiche, catene di Markov. Teoria di
    Perron-Frobenius per matrici non negative (cenni).
    Applicazioni: algoritmo di Google Page-Ranking, clustering
    spettrale, algoritmo HITS.
  • Minimi quadrati:
    Introduzione al problema dei minimi quadrati. Regressione lineare e non. Tecniche di linearizzazione. Studio del sistema normale e sue proprietà di consistenza. Uso della fattorizzazione QR e della regressione alle componenti principali. Esempi su dataset reali per problemi di fitting e forecasting.
  • Analisi di segnali (cenni): Trasformata discreta di Fourier,
    convoluzione.
  • Ottimizzazione (cenni):
    Calcolo vettoriale. Minimi e massimi. Estremi vincolati e teorema
    dei moltiplicatori di Lagrange.

Modalità d'esame

Durante le lezioni verranno discussi, in modo partecipato, diversi quesiti ed esercizi simili per tipologia a quelli comunemente somministrati durante gli esami e gli esoneri. La finalità è duplice: monitorare in tempo reale lo stato di preparazione degli studenti frequentanti, perfezionandone la preparazione in vista dell'esame o degli esoneri; agevolare lo studio in itinere degli aspetti pratici della disciplina, motivando concretamente i corsisti a sostenere l'esame in tempi brevi, sfruttando possibilmente
la modalità degli esoneri. Sono previste due prove parziali scritte per facilitare la preparazione all’esame. Entrambe le date per le prove parziali sono concordate, nei limiti consentiti, con gli studenti frequentanti. Di seguito sono elencati ulteriori
vantaggi riservati ai frequentanti:

  • La partecipazione alle prove parziali consente di avere informazioni sulle parti di programma che vanno approfondite e quindi migliorare la preparazione all’esame finale.
  • Le prove parziali sono prese in considerazione per i tre appelli che seguono la fine delle attività didattiche.
    Lo studente che non ha sostenuto le prove parziali sosterrà l’esame scritto completo.
    In entrami i casi (con prove parziali o non) l’orale risulta opzionale.
    Il punteggio massimo conseguibile con solo la parte scritta è 25. L’orale è accessibile solo con un punteggio dello scritto maggiore o uguale a 18, inoltre, la prova orale consente di migliorare il punteggio ottenuto con lo scritto. La parte orale prevede anche la discussione di codici assegnati una settimana precedente la data dell’esame. Gli esercizi proposti sono simili a quelli svolti a lezione e disponibili sulle piattaforme Teams e/o ADA.

Testi di riferimento

1. C. Meyer, Matrix Analysis and Applied Linear Algebra, SIAM,
2003.
2. Lars Eldèn, Matrix Methods in Data Mining and Pattern
Recognition, SIAM 2007
3. Gilbert Strang, Calculus, Wellesley-Cambridge press, 1991
(Chapter 13)
4. Jorge Nocedal, Stephen Wright - Numerical Optimization. Springer
Series in Operations Research and Financial Engineering, Second
Edition (2006, Springer) (Chapters 1-2)

Codice insegnamento UC229945

Fondamenti di Programmazione per la Data Science 1° anno · 1° semestre · 9 CFU · INFO-01/A · 0 file

L’insegnamento si propone di introdurre i fondamenti della programmazione in Python finalizzata alla realizzazione di script e notebook per attività di gestione, elaborazione, analisi e visualizzazione dei dati in ambito…

Scheda dell'insegnamento

Obiettivi formativi

L’insegnamento si propone di introdurre i fondamenti della programmazione in Python finalizzata alla realizzazione di script e notebook per attività di gestione, elaborazione, analisi e visualizzazione dei dati in ambito Data Science. Il corso mira a fornire conoscenze e abilità di base per utilizzare in modo consapevole strumenti e librerie ampiamente adottati nel contesto dell’analisi dei dati.

Al termine dell’insegnamento lo studente dovrà conoscere:
i fondamenti della programmazione in Python;
gli ambienti di sviluppo utilizzati nel corso;
le principali strutture dati e i meccanismi base del linguaggio;
i concetti fondamentali per il trattamento e l’analisi dei dati in Python.

Al termine dell’insegnamento lo studente dovrà essere in grado di:
scrivere script e notebook in Python per risolvere problemi semplici di Data Science;
utilizzare NumPy e pandas per manipolare dati strutturati;
caricare, salvare, pulire, trasformare e aggregare dati;
produrre visualizzazioni di base dei risultati ottenuti.

Descrittore di Dublino 3 - Autonomia di giudizio
Al termine dell’insegnamento lo studente dovrà essere in grado di:
analizzare in modo autonomo un problema e selezionare una soluzione adeguata;
confrontare alternative implementative;
valutare la correttezza e l’efficacia di un risultato;
motivare in modo critico le scelte effettuate.
Descrittore di Dublino 4 - Abilità comunicative
Al termine dell’insegnamento lo studente dovrà essere in grado di:
comunicare in modo chiaro la soluzione di un problema attraverso un notebook ben organizzato;
utilizzare correttamente la terminologia tecnica di base;
rendere comprensibile il proprio lavoro a interlocutori specialisti e non specialisti.
Descrittore di Dublino 5 - Capacità di apprendere in modo autonomo
Al termine dell’insegnamento lo studente dovrà essere in grado di:
proseguire autonomamente nello studio di Python e delle librerie per l’analisi dei dati;
consultare documentazione ufficiale e materiali di approfondimento;
affrontare nuovi strumenti e problemi applicativi con un adeguato grado di autonomia.

Programma

Il programma dell’insegnamento comprende:
Introduzione alle tecnologie informatiche e alla Data Science.
Introduzione all’ecosistema Python.
Fondamenti del linguaggio Python, IPython e Jupyter Notebooks.
Strutture dati, funzioni e file.
Nozioni di base di NumPy Array e programmazione vettoriale.
Introduzione a pandas.
Caricamento, archiviazione e formati di file dei dati.
Pulizia e preparazione dei dati.
Gestione dei dati: unione, combinazione e rimodellamento.
Aggregazione di dati e operazioni di gruppo.
Plotting e visualizzazione.
I contenuti sono presentati in sequenza progressiva, dalle basi dell’ambiente di sviluppo e del linguaggio fino agli strumenti per la manipolazione e la rappresentazione dei dati.

Modalità d'esame

La verifica dell’apprendimento avviene mediante una prova di laboratorio svolta al computer. La prova consiste nello sviluppo di un notebook in Python, nel quale lo studente deve rispondere a un insieme di quesiti assegnati dal docente.
Durante la prova è consentita la consultazione del materiale didattico, del libro di testo, della documentazione ufficiale di Python e delle librerie utilizzate, nonché di eventuale altro materiale autorizzato dal docente. La durata della prova è definita dal docente e comunicata con congruo anticipo.
Non sono previste modalità di verifica differenziate tra studenti frequentanti e non frequentanti. Salvo diversa indicazione del docente in coerenza con il regolamento del Corso di Studio, non sono previste prove intermedie.
Criteri di valutazione
La valutazione è finalizzata ad accertare il raggiungimento dei risultati di apprendimento attesi e tiene conto dei seguenti aspetti:
Conoscenza e capacità di comprensione: padronanza dei concetti fondamentali della programmazione in Python e degli strumenti trattati nel corso.
Conoscenza e capacità di comprensione applicate: capacità di utilizzare correttamente Python, NumPy e pandas per risolvere problemi pratici di gestione e analisi dei dati.
Autonomia di giudizio: capacità di scegliere soluzioni adeguate, motivare le decisioni assunte e interpretare criticamente i risultati ottenuti.
Abilità comunicative: capacità di presentare in modo chiaro, ordinato e comprensibile il lavoro svolto nel notebook.
Capacità di apprendere: capacità di consultare autonomamente documentazione, esempi e risorse tecniche per approfondire strumenti e contenuti non trattati in dettaglio.
Criteri di misurazione e attribuzione del voto finale
Il voto finale è espresso in trentesimi. L’esame si intende superato con una votazione pari o superiore a 18/30.
La prova di laboratorio è valutata in relazione a:
correttezza della soluzione proposta;
qualità, chiarezza e leggibilità del codice;
uso appropriato degli strumenti di programmazione e delle librerie richieste;
completezza delle risposte ai quesiti;
capacità di organizzare e commentare in modo efficace il lavoro svolto.
Per il conseguimento di una valutazione elevata è necessario dimostrare non solo competenza tecnica, ma anche autonomia di giudizio, precisione nell’esposizione e capacità di elaborare soluzioni corrette e ben strutturate. La lode può essere attribuita in presenza di una prova eccellente, completa e particolarmente accurata.

Testi di riferimento

McKinney, W. (2022). Python for Data Analysis: Data Wrangling with pandas, NumPy, and Jupyter. O’Reilly. ISBN 978-1098104030.
Il testo di riferimento è anche liberamente disponibile online nella versione indicata dal docente. Durante il corso saranno inoltre rese disponibili slide di supporto, esercizi con soluzioni e altro materiale didattico sulla piattaforma del corso.

Codice insegnamento UC229946

GESTIONE DEI DATI STRUTTURATI E NON STRUTTURATI 1° anno · 0 file
Gestione di Dati Strutturati e non Strutturati 1° anno · 1° semestre · 6 CFU · IINF-05/A · 0 file
Inglese Professionale per la Data Science 1° anno · 2° semestre · 3 CFU · ANGL-01/C · 0 file
MODELLI DECISIONALI E OTTIMIZZAZIONE 1° anno · 2° semestre · 6 CFU · MATH-05/A · 0 file

Acquisizione degli strumenti di base della modellazione di problemi decisionali basati sui dati e delle principali tecniche numeriche di ottimizzazione matematica necessarie per la loro risoluzione. Il corso si propone…

Scheda dell'insegnamento

Obiettivi formativi

Acquisizione degli strumenti di base della modellazione di problemi decisionali basati sui dati e delle principali tecniche numeriche di ottimizzazione matematica necessarie per la loro risoluzione.

Il corso si propone di introdurre il discente alle tematiche relative alla determinazione di modelli decisionali che permettano di risolvere le diverse problematiche in cui sono coinvolti dati di tipo numerico.
Saranno anche studiati diversi modelli di ottimizzazione matematica per fornire al discente la capacità di utilizzare codici numerici efficienti che forniscano soluzioni approssimate dei modelli analizzati.

Il discente sarà in grado di acquisire le conoscenze teoriche per comprendere le potenzialità e i limiti dei metodi di ottimizzazione tradizionali utilizzati in vasta parte della soluzione numerica di modelli decisionali (e modelli di apprendimento) nello specifico contesto della Data Science.

Autonomia di giudizio
Maturare capacità di giudizio e di prendere decisioni relative alla scelta del modello decisionale opportuno per risolvere problemi un assegnato problema di data science. Abilità comunicative
Acquisizione del linguaggio e del formalismo matematico avanzato necessario per la consultazione e comprensione dei testi, l’esposizione delle conoscenze acquisite, la descrizione, l’analisi e la risoluzione di alcuni problemi in data science.
Capacità di apprendere in modo autonomo
Il discente apprenderà concetti teorici e pratici che lo metteranno nella posizione di comprendere e utilizzare gli strumenti della ottimizzazione matematica per risolvere i modelli decisionali costruiti a partire da gradi moli di dati numerici, acquisendo inoltre un metodo di studio autonomo basato sulla consultazione di testi e dalla implementazione al calcolatore delle tecniche esposte durante il corso per costruire e risolvere in maniera autonoma nuove soluzioni per le problematiche di data science.

Programma

Modelli di decisione: Esempi di problemi di decisione e loro formalizzazione matematica
Lezione frontale h:2

  • Programmazione lineare
    ◦ Introduzione ai modelli decisionali di programmazione lineare. Esempi. Modellazione di un problema di programmazione lineare in forma canonica. PL in forma canonica e in forma standard. Variabili di slack e di surplus. Esempi
    Lezione frontale h:3
    ◦ Teorema fondamentale della PL. Esempio introduttivo al metodo del simplesso. Lemmi del simplesso e Metodo delle due Fasi.
    Lezioni frontali h: 5
    ◦ Risoluzione di un modello di programmazione lineare intera intera mediante l'algoritmo di Branch and Bound. Costruzione dell'albero delle decisioni. Operazioni di branching (idea del branching binario). Operazioni di bounding e soluzione del Rilassamento lineare. Approssimazione per difetto delle soluzioni non intere. Operazioni di Potatura e criterio di stop. Esempi del funzionamento del B&B
    Lezioni frontali h: 5.
  • Review dei metodi iterativi per sistemi non lineari e loro utilizzo nei problemi di ottimizzazione non vincolata.
    ◦ Sistemi di equazioni non lineari: esempi per funzioni unidimensionali.
    Metodo di Newton: caso unidimensionale. Metodo di Newton: caso multidimensionale. Ordine del metodo di Newton e sue caratteristiche. Cenni sugli algoritmi numerici.
    Lezioni frontali h: 5
  • Introduzione alla programmazione non lineare.
    ◦Relazione con il problema di ricerca delle soluzioni di sistemi di equazioni non lineari. Il problema del calcolo delle soluzioni di grad(f)(x) = 0. Direzioni di ricerca possibili. Condizioni necessarie e sufficienti del primo e secondo ordine.
    Lezioni frontali h: 2
    Metodi di tipo gradiente per problemi di programmazione nonlineare non vincolati. Metodo del gradiente discendente e ottimizzazione di modelli di apprendimento basati sui dati. Metodo dello steepest descent. Caso particolare: funzione quadratiche.
    Lezioni frontali h: 4
    Il metodo di Newton (per l'ottimizzazione). Cenni su convergenza e ordine di convergenza.
    Lezioni frontali h: 2
  • Introduzione alla Programmazione nonlineare con vincoli funzionali
    ◦ Esempi di modelli decisionali con vincoli funzionali. Definizione della funzione Lagrangiane, condizioni Khum-Karush-Tucker (KKT)
    ◦ Esempi di applicazione delle condizioni KKT
    ◦ Approcci di penalizzazione e metodi di barriera.
    Lezioni frontali h: 6
    Ottimizzazione e Machine Learning
    ◦ Formalizzazione matematica di un modello di apprendimento basato sui dati ed esempi.
    ◦ Formalizzazione dei modelli decisionali di tipo “finite sum”
    ◦ Metodo del gradiente stocastico.
    ◦ Calcolo della funzione gradiente su un campione random. Concetto di Batch e mini-batch. Varianti del metodo del gradiente stocastico
    ◦ I modelli di ottimizzazione per l’apprendimento basato sui dati: Support vector machine e percettrone e loro formalizzazione come problemi di ottimizzazione vincolata.
    Lezioni frontali h: 8
    Cenni sui modelli di ottimizzazione evolutiva.
    ◦ Algoritmi evolutivi idee di base. Gli operatori di selezione e crossover. Gli
    algoritmi genetici e il teorema degli schemi. Particle swarm optimization.
    Lezioni frontali h: 6

Modalità d'esame

L’esame consiste in una prova orale e di una eventuale discussione di un modello decisionale assegnato come caso di studio. La prova orale è costituita da domande riguardanti gli argomenti di natura teorica trattati durante il corso. Qualora il discente abbia optato per approfondire un caso di studio proposto tra gli esempi discussi durante le lezioni frontali unadomanda verterà sull’approfondimento effettuato.

Testi di riferimento

l corso non adotta un testo di riferimento; tuttavia, i contenuti didattici possono essere integrati da alcune parti presenti nei seguenti testi:

  • Modelli e decisioni. Strumenti e metodi per le decisioni aziendali. Vercellis Carlo. ISBN: 9788886524193
  • The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Seconda edizione. 2009. T. Hastie, R. Tibshirani, J. Friedman
    Numerical Optimization, Jorge Nocedal, Stephen J. Wright, Springer, ISBN: 978-0-387-30303-1

Codice insegnamento P352788114

MODELLIZZAZIONE STATISTICA 1° anno · 2° semestre · 6 CFU · STAT-01/A · 0 file

Il corso si propone di fornire agli studenti le conoscenze teoriche e metodologiche necessarie per comprendere e applicare i principali metodi di modellizzazione statistica e di apprendimento automatico. Particolare…

Scheda dell'insegnamento

Obiettivi formativi

Il corso si propone di fornire agli studenti le conoscenze teoriche e metodologiche necessarie per comprendere e applicare i principali metodi di modellizzazione statistica e di apprendimento automatico. Particolare attenzione sarà dedicata ai fondamenti dell'inferenza statistica, sia in ambito frequentista sia Bayesiano, ai metodi numerici per la stima dei parametri e la selezione dei modelli, nonché alle tecniche Monte Carlo per l'inferenza computazionale. Il corso approfondirà inoltre i principi teorici dell'apprendimento supervisionato, della generalizzazione e della valutazione delle prestazioni dei modelli predittivi.
Le attività di laboratorio completeranno la formazione teorica attraverso l'utilizzo del linguaggio R. Gli studenti acquisiranno competenze nell'importazione e manipolazione dei dati, nello sviluppo e nella validazione di modelli statistici e di Machine Learning.

Acquisizione di conoscenze nell'ambito dell'inferenza statistica frequentista e Bayesiana, della modellizzazione statistica e della teoria dell'apprendimento statistico.

Capacità di applicare gli strumenti teorici appresi a situazioni concrete che richiedono l’applicazione degli algoritmi di Machine Learning all’interno dell’ambiente di lavoro della Data Science.

Autonomia di giudizio
o Individuare il metodo risolutivo più appropriato per problemi legati alla Data Science.
o Acquisire autonomia di giudizio nella scelta delle metodologie da utilizzare.
Abilità comunicative
o Essere in grado di esporre e comunicare le conoscenze acquisite nell’ambito della modellizzazione statistica.
o Sviluppare le capacità di reportistica attraverso l’utilizzo di Tidyverse.
Capacità di apprendere in modo autonomo
o Acquisire un metodo di studio adeguato con il supporto di esercitazioni pratiche proposte durante le attività laboratoriali.
o La prova finale permetterà di accertare il livello di apprendimento raggiunto.

Programma

Teoria: Richiami di calcolo delle probabilità – Metodi Monte Carlo – Inferenza frequentista e stime di massima verosimiglianza - Inferenza Bayesiana e modelli gerarchici – Metodi computazionali per l’inferenza Bayesiana: Gibbs sampling e Markov Chain Monte Carlo (MCMC) – Modelli di regressione di classificazione – Regressione lineare semplice e multipla: inferenza frequentista e Bayesiana – Regressione logistica semplice e multinomiale – Metodi numerici per la stima dei parametri: discesa del gradiente, IRLS e cenni sull'inferenza Bayesiana – Interpretazione dei parametri: odds ratio – Classificazione logistica – Analisi discriminante lineare, quadratica e kNN – Classificatori generativi e discriminativi – Regressione non parametrica: basi polinomiali e splines, smoothing splines – Selezione automatica del parametro di smoothing – Modelli additivi generalizzati (GAM) – Apprendimento supervisionato e non-supervisionato – Teoria delle decisioni – Il teorema di trade-off bias-varianza per i modelli di regressione – Il trade-off bias-varianza nei problemi di classificazione – Inferenza per l’errore di generalizzazione: Cp di Mallows, AIC e BIC, Cross-Validation, Bootstrap – Regolarizzazione: Ridge Regression, LASSO ed Elastic Net – La determinazione del modello ottimale in un'ottica Bayesiana – Il framework PAC e la dimensione di Vapnik-Chervonenkis – Metriche per la valutazione dell’accuratezza sul test set.
Laboratorio: Fondamenti di programmazione in R – RStudio/Tidyverse – Le librerie di Tidyverse - La libreria caret per l'automazione dei flussi di lavoro – R Markdown e
Quarto per la reportistica – Stan e Greta per l’inferenza Bayesiana in R.

Modalità d'esame

Prova scritta e prova di laboratorio

Testi di riferimento

1. James G., Witten D., Hastie T., Tibshirani R. (2021) An Introduction to Statistical
learning, 2nd Edition, Springer Nature. ISBN-10/ASIN: ISBN-10: 8829930946.
ISBN–13: 978-1071614174. https://www.statlearning.com/
2. Murphy K.P. (2022) Probabilistic Machine Learning: An Introduction. The MIT
Press. ISBN–13: 978-0262046824. https://probml.github.io/pml-book/book1.html
3. G. Grolemund, H. Wickam (2023). R for Data Science: Import, Tidy, Transform,
Visualize, and Model Data, 2nd Edition, O’Reilly Media. ISBN–13: 978-
1492097402

Codice insegnamento P420923049

TRATTAMENTO DEI DATI SENSIBILI 1° anno · 1° semestre · 6 CFU · GIUR-01/A · 0 file
Analisi e Modellazione dei Dati Biomedici 2° anno · 1° semestre · 6 CFU · INFO-01/A · 0 file
Attività formative ulteriori (tirocini, seminari) 2° anno · 15 CFU · 0 file
Data Mining II 2° anno · 1° semestre · 6 CFU · IINF-05/A · 0 file

Sviluppare competenze in merito all’utilizzo di tecniche di Data Mining con diverse tipologie di dato quali per esempio, dati non etichettati, data stream e log di eventi. Lo studente acquisirà la conoscenza delle…

Scheda dell'insegnamento

Obiettivi formativi

Sviluppare competenze in merito all’utilizzo di tecniche di Data Mining con diverse tipologie di dato quali per esempio, dati non etichettati, data stream e log di eventi.

Lo studente acquisirà la conoscenza delle tecniche di Data Mining per l’analisi di data stream, dati non etichettati e log di eventi e la capacità di identificare le tecniche di Data Mining più appropriate per risolvere problemi quali concept drift, distribuzione sbilanciata, presenza di correlazione, disponibilità di dati multi vista, dati derivanti da modelli di processo spaghetti-like.

Lo studente acquisirà la capacità di utilizzare correttamente le tecniche di Data Mining in riferimento a problemi di scoperta di
conoscenza da data stream, serie temporali e log di eventi fino ad arrivare a sintetizzare o adattare nuove soluzioni di Data Mining a partire da quelle esistenti.

Autonomia di giudizio:
Lo studente acquisirà̀ la capacità di valutare in maniera autonoma la tipologia di dato collezionato in un problema reale e come applicare tecniche di analisi e valutazione di data mining.
Abilità comunicative:
Lo studente migliorerà le sue conoscenze rispetto alla capacità di usare o sintetizzare tecniche e strumenti di data mining su diverse tipologie di dato. Tali conoscenze saranno valutate durante l’esame.

Programma

1) Unsupervised machine learning: l'algoritmo k-means, analisi dei cluster, valutazione della qualità dei cluster.
2) Analisi di associazione. regola di associazione, itemset frequenti, principali esempi di pattern di associazione.
3) Mining data streams: Introduzione ai concetti preliminari sullo stream, gestione del cambiamento nei dati derivanti dallo stream, algoritmi per l’identificazione del cambiamento nello stream dei dati, algoritmi di classificazione nella versione online, esercizi con la libreria River.
4) Process mining: Introduzione al Process Mining, scoperta dei modelli di processo (Process Discovery), verifica della conformità dei processi (Conformance Checking), analisi delle varianti di processo, monitoraggio predittivo dei processi (Predictive Process Monitoring), esercizi con la libreria PM4PY
Laboratorio: Python.

Modalità d'esame

Prova scritta + Progetto
Prova scritta in aula, domande a risposta aperta su teoria e esercizi in merito ad argomenti del sillabo; tempo assegnato 90 minuti; votazione massima 33/33. La prova scritta si ritiene superata se lo studente consegue una votazione maggiore uguale di 18/33.
Progetto: la consegna deve avvenire almeno una settimana prima la data dell’appello segnata su Esse3 e deve essere trasmesso tramite WeTransfer all’e-mail istituzionale del docente di riferimento. Il progetto consiste in una relazione (in PDF o Word) su un’applicazione delle tecniche di data mining in linguaggio Python. L’applicazione scelta per il progetto dovrà̀ essere concordata
preventivamente con il docente di riferimento. Il progetto sarà̀ valutato dal docente e discusso con lo studente durante l’appello.
La valutazione del progetto avverrà solo dopo il superamento della prova scritta.
Il progetto assegnato è valido solo per gli appelli erogati nell’AA 2026-2027.
Il progetto si ritiene superato se lo studente consegue una votazione maggiore uguale di 18/33 all’atto della sua discussione.

Testi di riferimento

  • Aggarwal, Charu C. Data mining: the textbook. Vol. 1. New York: Springer, 2015. for parts 1,2,3.
  • van der Aalst, Wil MP, and Josep Carmona. Process mining handbook. Springer Nature, 2022. for part 4 of the programme

Codice insegnamento magistrale/data-science::Data Mining II

Deep Learning 2° anno · 6 CFU · IINF-05/A · 0 file

L’insegnamento si propone di fornire una solida preparazione teorica e pratica sui principali concetti, metodologie e strumenti del Deep Learning, una disciplina in rapida evoluzione con applicazioni trasversali in…

Scheda dell'insegnamento

Obiettivi formativi

L’insegnamento si propone di fornire una solida preparazione teorica e pratica sui principali concetti, metodologie e strumenti del Deep Learning, una disciplina in rapida evoluzione con applicazioni trasversali in numerosi ambiti, dalla computer vision all’elaborazione del linguaggio naturale, dai modelli generativi ai sistemi multimodali.

Al termine del corso, gli studenti avranno acquisito una solida conoscenza dei fondamenti teorici del Deep Learning e sapranno riconoscere e comprendere le principali architetture di rete neurale, valutandone il funzionamento, le potenzialità e le limitazioni. Saranno in grado di orientarsi nel panorama delle soluzioni esistenti e di individuare i modelli più adatti per diversi contesti applicativi.

Gli studenti saranno in grado di progettare e implementare soluzioni di Deep Learning per affrontare problemi concreti, scegliendo le metodologie più appropriate e lavorando sia con dati strutturati che con dati non strutturati. Sapranno sviluppare pipeline complete, dall’analisi e pre-elaborazione dei dati fino alla valutazione delle prestazioni dei modelli.

Durante il corso, gli studenti svilupperanno la capacità di condurre in autonomia un progetto di Deep Learning: dalla formulazione delle ipotesi iniziali alla definizione della metodologia, fino all’interpretazione critica dei risultati ottenuti. Impareranno a redigere una documentazione tecnica chiara e accurata e a esporre le proprie soluzioni in modo efficace, sia a un pubblico specialistico sia a interlocutori non esperti. Saranno inoltre incoraggiati a confrontarsi con problemi di ricerca aperti, a coltivare curiosità verso le tematiche più avanzate e ad acquisire consapevolezza delle implicazioni etiche connesse all’uso delle reti neurali, riflettendo sulle potenzialità e sui rischi della disciplina.

Programma

Reti neurali lineari: modelli lineari rivisitati dal punto di vista dell’ottimizzazione numerica, trade-off bias-varianza, workflow universale del Machine Learning.
Multilayer perceptron: nozioni di base, backpropagation, panoramica delle principali architetture di rete neurale, raccomandazioni pratiche, autoencoder, workflow rivisitato dal punto di vista del Deep Learning.
Deep Learning per le immagini: convolutional neural network, modelli popolari, applicazioni in Computer Vision.
Deep Learning per le sequenze: recurrent neural network e varianti, word embedding, modelli seq2seq, transformer.
Modelli generativi: LLM, diffusion model, modelli multimodali.

Modalità d'esame

La verifica dell’apprendimento prevede la realizzazione di un caso di studio, che gli studenti potranno svolgere individualmente o in gruppo, concordandone l’argomento con il docente. Il progetto dovrà includere codice, dataset, una documentazione tecnica dettagliata e una presentazione dei risultati. La discussione avverrà in sede di prova orale e consentirà di valutare la capacità degli studenti di applicare in maniera corretta e critica i concetti teorici e pratici appresi durante il corso. Il caso di studio potrà essere avviato già durante le lezioni e potrà evolversi in una tesi di laurea sperimentale.

Testi di riferimento

Il corso non adotta un testo di riferimento; tuttavia, i contenuti didattici possono essere integrati da alcune parti dei seguenti testi:
Russel, S., & Norvig, P. (2013). Artificial Intelligence: A modern approach (capitolo 18)
Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning (principalmente le parti I e II)
Zhang, A., Lipton, Z.C., Li, M., & Smola, A.J. (2020). Dive into Deep Learning (esclusi i capitoli 17, 18 e 21)
Géron, A. (2022). Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, tools, and techniques to build intelligent systems (principalmente la parte II)
Prince, S.J.D. (2023). Understanding Deep Learning (la parte sui modelli generativi—capitoli da 14 a 18—è più approfondita che altrove)
Bishop, C., & Bishop, H. (2024). Deep Learning: Foundations and concepts

Codice insegnamento magistrale/data-science::Deep Learning

GESTIONE E ANALISI DI BIG DATA 2° anno · 1° semestre · 6 CFU · INFO-01/A · 1 file

Acquisizione di capacità di gestione e analisi di dati complessi, in termini di volume, di eterogeneità, di veridicità e di velocità di generazione. Acquisizione di capacità di progettazione di datawarehouse e di basi di…

Scheda dell'insegnamento

Obiettivi formativi

Acquisizione di capacità di gestione e analisi di dati complessi, in termini di volume, di eterogeneità, di veridicità e di velocità di generazione. Acquisizione di capacità di progettazione di datawarehouse e di basi di dati basate su modelli NoSQL. Acquisizione di competenze relative alla progettazione e implementazione di algoritmi in grado di analizzare grandi moli di dati in ambienti distribuiti.

Il corso si propone di introdurre il discente alle tematiche della gestione di grandi moli di dati e alla loro analisi attraverso algoritmi distribuiti. Per la gestione saranno studiati modelli di memorizzazione basati su datawarehouse e database NoSQL, mentre per l’analisi distribuita sarà introdotto il paradigma di programmazione MapReduce, adottato dal framework Apache Spark.

Il discente sarà in grado di comprendere i limiti delle tecnologie tradizionali e di applicare paradigmi all’avanguardia volti a superarli. Tali paradigmi, in particolare, riguardano l’analisi di grandi moli di dati, slegandosi dal paradigma SQL classico e dalla restrizione all’uso di una singola macchina di calcolo. Queste competenze sono trasferite attraverso lezioni teoriche ed esercitazioni pratiche.

Autonomia di giudizio
Maturare capacità di giudizio e di prendere decisioni ponderate è esattamente lo scopo della progettazione di un’applicazione di Big Data Analytics. Pertanto, l’autonomia di giudizio è maturata durante l’applicazione pragmatica di scelte progettuali e l’analisi dei risultati ottenuti.
Abilità comunicative
Analogamente, per rendere fruibile, anche ai non esperti, la conoscenza estratta da una grande mole di dati, il discente deve apprendere a interpretarla, formalizzarla e presentarla nella maniera più chiara e adeguata possibile. Questo è un passaggio fondamentale di un processo di Big Data Analytics, come, peraltro, di un processo di KDD.
Capacità di apprendere in modo autonomo
Il discente apprenderà concetti teorici e pratici che lo metteranno nella posizione di comprendere e utilizzare strumenti utili all’estrazione di conoscenza da grandi moli di dati, anche differenti, in maniera autonoma.

Programma

1) Business Intelligence & Datawarehouse:

  • Introduzione agli obiettivi della business intelligence
  • Caratteristiche dei datawarehouse
  • OLTP vs. OLAP
  • Architettura dei datawarehouse
  • Il modello multidimensionale
  • Modelli logici per i datawarehouse
  • Progettazione di un datawarehouse
    2) Big Data: introduzione e storage
  • Introduzione
  • Definizioni
  • Caratteristiche e sfide dei big data
  • Metodologie di analisi dei big data
  • Memorizzazione dei dati tramite sistemi NoSQL
    o Concetti preliminari
    o Rilassamento delle garanzie di consistenza
    o Tipi di sistemi NoSQL
  • Memorizzazione dei dati in database decentralizzati: la Blockchain
    o Concetti preliminari
    o Protocolli di consenso: il Proof of Work
    o Introduzione agli Smart Contract in Ethereum
    3) Big Data: analisi
  • Il paradigma di programmazione MapReduce
  • Il framework Apache Spark
  • Analisi dei dati in Apache Spark
    Esercitazioni e laboratorio:
  • DBMS NoSQL MongoDB
  • Smart contract in Ethereum
  • Algoritmi distribuiti in Apache Spark

Modalità d'esame

L’esame consiste in una prova scritta e nella discussione di un caso di studio. La prova scritta è costituita da domande aperte che possono riguardare sia argomenti di natura teorica che lo sviluppo di una soluzione a problemi analoghi a quelli trattati durante il corso.
Si richiede che lo studente sia in grado di individuare scenari tipici dei Big Data e affrontare le relative problematiche, in termini di memorizzazione e analisi degli stessi. Lo studente deve essere in grado di individuare le soluzioni tecniche più appropriate, tra quelle studiate. Sul piano pratico, lo studente dovrà dimostrare di saper progettare e implementare datawarehouse, progettare un database seguendo modelli NoSQL, e progettare e implementare algoritmi distribuiti in Apache Spark.
Il voto finale è attribuito in trentesimi. L’esame si intende superato quando il voto finale è maggiore o uguale a 18. L’accesso alla discussione del caso di studio richiede il superamento della prova scritta con un voto maggiore o uguale a 18.

Testi di riferimento

Viktor Mayer-Schonberger, Kenneth Cukier. Big Data: A Revolution That Will Transform How We Live, Work, and Think, John Murray, 2013
Gli studenti che lo desiderano possono ottenere i testi in prestito dalla Biblioteca. Può convenire verificarne la disponibilità mediante il Sistema Bibliotecario di Ateneo https://opac.uniba.it/easyweb/w8018/index.php? e contattare la biblioteca per concordare il prestito.
I libri di testo sono integrati con le slide fornite dal docente ed eventuale materiale di approfondimento, resi disponibili sulla piattaforma (vedi sopra “sede virtuale”). Sulla medesima piattaforma sono anche disponibili esempi di tracce di prove scritte e di laboratorio, alcune corredate da esempi di svolgimento.

Codice insegnamento P145156625

Insegnamenti a scelta 2° anno · 1° semestre · 12 CFU · 0 file
MODELLI ECONOMICI PER L'INNOVAZIONE GUIDATA DAI DATI 2° anno · 0 file
Modellistica Molecolare 2° anno · 1° semestre · 6 CFU · BIOS-07/A · 0 file

Gli obiettivi formativi del corso di modellistica prevedono l'acquisizione di competenze bioinformatiche per l'analisi di sequenze proteiche, l'interrogazione di database strutturali, la creazione di modelli…

Scheda dell'insegnamento

Obiettivi formativi

Gli obiettivi formativi del corso di modellistica prevedono l'acquisizione di competenze bioinformatiche per l'analisi di sequenze proteiche, l'interrogazione di database strutturali, la creazione di modelli comparativi 3D di proteine, l'analisi di interazioni proteina-ligando e la relativa misura dell'affinità di un ligando per le proteine modellate o scaricate dai database strutturali.

Acquisizione di conoscenze avanzate nell'ambito dell’ingegneria proteica e modellistica delle macromolecole biologiche
o Gestione di database di strutture;
o Teoria alla base dell’analisi comparativa di famiglie proteiche;
o Teoria alla base della creazione di modelli proteici;
o Teoria alla base delle analisi di interazione tra macromolecole biologiche

Utilizzazione di metodologie e piattaforme tecnologiche specifiche (bioinformatica, modellistica molecolare ingegneria proteica e metabolica) per l’identificazione e la modificazione di bersagli molecolari di interesse farmacologico e biotecnologico.
o Programmi per l’editing di file di sequenze e di file di strutture di macromolecole biologiche (text editor e blastp)
o Programmi per l’analisi comparativa di sequenze (JalView/ClustalW/Bioedit)
o Programmi per l’analisi e la creazione di modelli proteici (PyMOL; SPDBV; Chimera)
o Programmi per lo studio di interazioni tra macromolecole e/o con piccole molecole (SwissDOCK; Autodock; GrammX)
o Programmi per l’analisi di dinamica molecolare (NAMD)

**Descrittore di Dublino 3 – Autonomia di giudizio**
Al termine dell’insegnamento lo/la studente/studentessa dovrà essere in grado di:

  • integrare le conoscenze acquisite nei diversi ambiti della biochimica, mettendo in relazione struttura e funzione delle biomolecole, metabolismo, bioenergetica e meccanismi molecolari;
  • integrare le conoscenze biochimiche con quelle acquisite in altre discipline biologiche, chimiche e farmacologiche;
  • interpretare criticamente semplici dati e problematiche di carattere biochimico sulla base delle conoscenze acquisite;
  • valutare le conseguenze di alterazioni dei processi biochimici e metabolici sulle funzioni cellulari.
    **Descrittore di Dublino 4 – Abilità comunicative**
    Al termine dell’insegnamento lo/la studente/studentessa dovrà essere in grado di:
  • descrivere con chiarezza e rigore strutture, processi e meccanismi biochimici, utilizzando un linguaggio scientifico appropriato;
  • utilizzare correttamente la terminologia scientifica e biochimica;
  • descrivere le principali vie metaboliche e i relativi meccanismi di regolazione in maniera logica e coerente;
  • discutere le relazioni tra struttura e funzione delle biomolecole e tra i diversi processi biochimici utilizzando una terminologia scientifica appropriata.
    **Descrittore di Dublino 5 – Capacità di apprendimento**
    Al termine dell’insegnamento lo/la studente/studentessa dovrà essere in grado di:
  • utilizzare le conoscenze e i metodi di studio acquisiti durante il corso per approfondire autonomamente argomenti di biochimica;
  • consultare e comprendere libri di testo e altre fonti scientifiche nell’ambito della biochimica;
  • utilizzare le conoscenze fondamentali acquisite come base per il successivo approfondimento di discipline biologiche, biotecnologiche e farmacologiche;
  • aggiornare e integrare autonomamente le proprie conoscenze sui principali processi biochimici e molecolari.

Programma

Introduzione al problema del Protein Folding. Metodi ab initio per la predizione della struttura di una proteina. Introduzione alla modellistica molecolare comparativa. Cenni di bioinformatica; campionamento di sequenze su NCBI; editor di testo e di sequenze; campionamento di sequenze via blast e analisi comparativa per gruppi tassonomici; editor di sequenze (Jalview; Bioedit) per lo sviluppo di multi allineamenti tramite ClustalW; webservices per la predizione di struttura secondaria (psipred) e fold recognition (pgenthreader); webservices per 3D protein modeling; introduzione ad AlphaFold; Intelligenza Artificiale per la predizione della struttura; introduzione al modeling 3D manuale; SwissPDBViewer/PyMOL/VMD – Visualizzazione e mutagenesi in silico; SwissPDBViewer MODELLER – Creazione modelli 3D di proteine; SwissDOCK; Docking con SwissDOCK e Autodock per lo studio di interazioni proteine-ligando; Autodock per il virtual screening di librerie chimiche. Visualizzatori molecolari per lo studio di interazioni Proteina-Proteina, e Proteina-Acidi Nucleici. GRAMM-X per il modelling proteinaproteina; HNADOCK per il modelling tra acidi nucleici o proteina-acidi nucleici. FOLDX/PRODIGY per il caclolo della binding affinity tra macromolecole biologiche e/o tra macromolecole e small molecules. Introduzione alla Dinamica Molecolare: VMD e NAMD.

Modalità d'esame

Colloquio orale di circa 60 minuti con presentazione di un elaborato nella forma di un articolo scientifico e di una presentazione con diapositive che riassumano il contenuto dell’elaborato, relative a un progetto di modellistica molecolare sviluppato durante lo svolgimento del corso (applicazioni su famiglie proteiche di interesse).

  • Conoscenza e capacità di comprensione:
    o piena padronanza nell’individuare e applicare le tecniche di modellistica più opportune, tra quelle esaminate, per rispondere a vari quesiti biotecnologici
  • Conoscenza e capacità di comprensione applicate:
    o chiarezza e completezza nell’esposizione orale dei contenuti del programma
  • Autonomia di giudizio:
    o Chiarezza e completezza nella redazione delle relazioni sulle analisi computazionali portate avanti;
  • Abilità comunicative:
    o capacità di operare collegamenti con i contenuti di altri corsi;
  • Capacità di apprendere:
    o capacità di valutazione critica dei risultati delle procedure computazionali e di integrazione di tali risultati al fine di ottenere una visione completa dell’informazione funzionale ricavata dalle analisi strutturali e del suo utilizzo in un sistema complesso quale quello macromolecolare

Testi di riferimento

I principi di biochimica di Lehninger;
Textbook of structural biology;
DeepView Manual https://spdbv.vital-it.ch/manual_guide.html;
Autodock tutorials http://autodock.scripps.edu/faqs-help/tutorial;
Sono disponibili come supporto le presentazioni (powerpoint) delle lezioni.

Codice insegnamento magistrale/data-science::Modellistica Molecolare

Programmazione per la Bioinformatica 2° anno · 1° semestre · 6 CFU · BIOS-08/A · 0 file

Acquisire le conoscenze di base relative agli approcci per lo sviluppo di applicazioni specificatamente disegnate per la gestione e l’analisi di dati biologici, attraverso lo sviluppo con linguaggio di programmazione…

Scheda dell'insegnamento

Obiettivi formativi

Acquisire le conoscenze di base relative agli approcci per lo sviluppo di applicazioni specificatamente disegnate per la gestione e l’analisi di dati biologici, attraverso lo sviluppo con linguaggio di programmazione Python

-Lo studente dovrà essere in grado di distinguere le diverse tipologie di dati omici e contestualmente definirne l’approccio analitico più appropriato;
o Capacità di distinguere i dati biologici secondo natura (e.g. sequenze nucleotidiche e amminoacidiche) e principali formati;
o Capacità di comprensione delle principali caratteristiche dei dati in analisi.

Lo studente dovrà essere in grado di definire, disegnare e sviluppare l’approccio bioinformatico più appropriato sulla base delle caratteristiche del dato in analisi
o Capacità di applicare le metodologie acquisite con il percorso di studi

  • Autonomia di giudizio: Lo studente dovrà essere in grado di applicare le conoscenze acquisite con il corso, alla definizione di nuovi percorsi applicativi indipendenti o alternativi alle tipologie di dati e problematiche differenti da quelle mostrate durante il corso di studio.
  • Abilità comunicative: Gli studenti acquisiranno adeguate competenze e strumenti di comunicazione scritta e orale, in lingua italiana e in inglese, finalizzata allo scambio di idee, informazioni, dati e metodologie con interlocutori specialisti e non specialisti. In particolare, acquisiranno abilità comunicative specifiche per confrontarsi e lavorare in gruppo con esperti sia in ambito clinico che tecnologico (informatici, ingegneri, etc.) allo scopo di sviluppare gli approcci multidisciplinari.
  • Capacità di apprendere in modo autonomo: Gli studenti acquisiranno adeguate capacità di apprendimento e approfondimento di ulteriori competenze tramite consultazione di materiale bibliografico o comunque disponibile in rete per un aggiornamento continuo sullo sviluppo delle conoscenze e metodologie bioinformatiche per l’analisi di dati biologici

Programma

Lezioni Frontali (6 CFU)
Basi di programmazione in Python:

  • Tipologie di variabili
  • Manipolazione delle variabili
  • Utilizzo di funzioni e importazione di moduli
  • Cicli for, if, while
  • Definizione di funzioni disegnate dall’utente
  • Definizione di classi definite dall’utente
  • Utilizzo di decoratori
    Definizione di algoritmi per l’analisi di dati biologici:
  • Astrazione del problema e definizione di pseudo-codice e/o flowchart
  • Disegno e sviluppo di codice Python
    Utilizzo di Python per replicare algoritmi ampiamente utilizzati in ambito biologico
    Esercitazioni (3 CFU)
  • Acquisizione di dati omici in Python
  • Scripting per il parsing di dati omici
  • Scripting per la realizzazione di algoritmi di analisi

Modalità d'esame

Valutazione dell’acquisizione dei contenuti del corso e della proprietà di linguaggio nella loro esposizione tramite esame orale.
Lo studente dovrà, inoltre, presentare un progetto attraverso il quale dovrà dimostrare di aver acquisito le nozioni di base di programmazione e la capacità critica necessaria per gestire ed analizzare i dati omici.

Testi di riferimento

Bioinformatics Algorithms - Design and Implementation in Python
1st Edition - June 8, 2018. Authors: Miguel Rocha, Pedro G. Ferreira

Codice insegnamento UC229961

Prova finale 2° anno · 15 CFU · 0 file
Semantic Technologies and Knowledge Graphs 2° anno · 6 CFU · INFO-01/A · 0 file
Sentiment Analysis 2° anno · 6 CFU · INFO-01/A · 0 file
Tecnologica 2° anno · 6 CFU · PHIL-03/A · 0 file
Tirocini e Seminari 2° anno · 15 CFU · 0 file
Visualizzazione dei Dati, Visual Analytics e Reporting 2° anno · 1° semestre · 6 CFU · INFO-01/A · 0 file

Gli strumenti automatici di trattamento dei dati consentono di accelerare le operazioni di calcolo, ma la componente umana resta fondamentale per il processo di calcolo perché è quella che si prende la responsabilità del…

Scheda dell'insegnamento

Obiettivi formativi

Gli strumenti automatici di trattamento dei dati consentono di accelerare le operazioni di calcolo, ma la componente umana resta fondamentale per il processo di calcolo perché è quella che si prende la responsabilità del risultato.
Attraverso la visualizzazione dei dati, e con una corretta rappresentazione visuale, si aiuta gli analisti a comprendere i risultati del calcolo automatico.
Il corso ha l’obiettivo di introdurre lo studente alla disciplina della visualizzazione dei dati. Il corso è focalizzato sulla scienza dei dati e sulla visualizzazione efficace dei dati in modo da consentire all’analista di comprendere in tempi più rapidi il contenuto di insiemi di dati e quindi ridurre il tempo per prendere decisioni.

Principi fondamentali della visualizzazione dei dati, della Visual Analytics e della reportistica.
Paradigmi fondamentali di questa disciplina, la loro evoluzione e le applicazioni di tecniche interattive per analisi efficaci ed efficienti.

Capacità di sviluppo e implementazione di tecniche interattive che mostrano i dati di interesse per scopi analitici.
Esercizi guidati e individuali contribuiscono al rinforzo dei concetti appresi.

Autonomia di giudizio
Autonomia di giudizio e gestione delle problematiche relative alla progettazione dell’analisi dei dati e all’uso delle tecniche visuali e degli strumenti di visualizzazione di dati.
Abilità comunicative
Illustrare in modo appropriato le caratteristiche delle tecniche, degli strumenti e delle metodologie specifiche dell’ambito della visualizzazione dei dati.
Presentazioni dei progressi dello studio, supportate da slide e strumenti di visualizzazione.
Capacità di apprendere in modo autonomo
Dimostrazione delle abilità acquisite per apprendere e orientarsi tra gli strumenti di progettazione e le tecniche interattive della data analysis.
A fine di ciascuna lezione saranno assegnati esercizi da svolgere a casa, da consegnare entro la lezione successiva, per rinforzare l’auto-apprendimento e auto-valutazione rispetto agli argomenti trattati a lezione.

Programma

Dati e visualizzazione delle informazioni (8h).
Definizioni. Aree di applicazione. Tassonomie. Storia. Il ruolo dell’utente. Processi per la visualizzazione dei dati. Fondamenti.
Problemi (6h).
Natura dei problemi, compiti, utenti, dati. Caratteristiche di eccellenza nelle visualizzazioni.
Rappresentazioni (8h).
Tipi di dati. Complessità del dato. Percezione e attività cognitive. Metriche. Preprocessing. Codifica del dato. Codifica delle relazioni tra dati. Visualizzazione quantitativa.
Presentazione (6h).
Il problema della presentazione. Vincoli nello spazio. Vincoli nel tempo. Variabili visuali.
Interazione (2h).
Scenari. Interazione continua, step-by-step, passiva, dinamica.
Tecniche di visualizzazione (10h).
Multivariate. Gerarchiche, reticolari. Ipergrafi dinamici. Visualizzazione di testo e documenti. Tecniche Spaziali e Geospaziali.
Confronto e valutazione delle tecniche di visualizzazione.
Compiti e caratteristiche degli utenti. Caratteristiche dei dati. Caratteristiche degli schermi. Strutture per la valutazione. Sistemi di visualizzazione dei dati.
Sistemi basati su tipi di dati. Sistemi basati sul tipo di analisi. Analisi del testo con le visualizzazioni. Sistemi integrati (2h).
Strumenti e toolkit (18h).
Ambiti di ricerca in visualizzazione di dati, visual analytics, reportistica. Sfide aperte (2h).

Modalità d'esame

L’esame si svolge con una prova orale durante la quale lo studente presenta il caso di studio sviluppato.
Durante la presentazione lo studente deve dimostrare l’acquisizione delle nozioni trattate durante il corso facendo esplicito riferimento a tecniche, strumenti e contenuti.
Il caso di studio si svolge individualmente, ma sono ammessi casi di studio svolti in coppia o in gruppo purché adeguatamente motivati.
La valutazione è in trentesimi. Il voto tiene anche conto delle esercitazioni svolte durante il corso. Tali esercitazioni possono essere valutate con un punteggio aggiuntivo che comunque non supera i 3 punti.
L’esito della prova è comunicato seduta stante e registrato direttamente su Esse3.
L’impegno previsto per lo svolgimento del caso di studio rientra nelle 88 ore di studio individuale a casa. Pertanto, lo studente che segue assiduamente e svolge gli esercizi a casa è in grado di superare l’esame al primo appello.
Per questo, i casi di studio sono concordati con il docente entro la settimana di interruzione delle lezioni.

Testi di riferimento

Visualization Analysis and Design. T. Munzner. AK Peters Visualization Series CRC Press, (2015).
Il testo di riferimento è integrato con slide e dispense che il docente mette a disposizione nella piattaforma di e-learning UNIBA.
In piattaforma sono anche disponibili dati e report di esempio.
Il caso di studio è concordato con il docente e si può concentrare sui dati a disposizione in piattaforma oppure su dati scelti dallo studente, opportunamente motivati.

Codice insegnamento UC229956

Etica Nell’Innovazione Tecnologica 6 CFU · M-FIL/03 · 0 file
Recommender Systems 6 CFU · INF/01 · 0 file
Trattamento Dell’Incertezza Nell’Informazione 6 CFU · INF/01 · 0 file
e Biologia Molecolare 2° semestre · 6 CFU · BIOS-08/A · 0 file

Recensioni del corso

Studi qui? Accedi per lasciare la tua recensione e aiutare altri studenti a scegliere.

★

Nessuna recensione per ora — e la prima è la più preziosa. Condividi la tua esperienza e orienta le future matricole.