Alla fine del corso lo studente avra' acquisito dimestichezza con i seguenti strumenti per il calcolo scientifico e l'analisi dati:
(*) non disponibile per la versione da 6 CFU del corso
By the end of the course the student will know the following tools for scientific computing and data analysis
(*) not available in the 6 credits version of the course
Sara' effettuata una verifica delle conoscenze acquisite attraverso domande specifiche in sede di esame orale partendo da un progetto di calcolo scientifico realizzato e presentato dagli studenti
Specific knowledge will be verified in the oral exams with questions starting from the project realized and presented by the students.
Al termine del corso lo studente sapra':
(*) non disponibile per la versione da 6 CFU del corso
At the end of the course the student will have the following skills:
(*) not available in the 6 credits version of the course
Le capacita' saranno verificate richiedendo allo studente lo sviluppo di un progetto di software per analisi dati e/o l'analisi di un set di dati attraverso le tecniche apprese nel corso.
The skills will be verified requiring the students to develop a software project for data analysis and/or to perform the analysis of some specific datasets with the techinques learned
Il corso ha una parte interamente dedicata alle best practice nello sviluppo di codice specialmente in un'ottica di collaborazioni scientifiche. Il corso insegnera' come documentare e condividere gli strumenti di calcolo scientifico sviluppati.
The lectures include a part dedicated to best practice in code development with focus on scientific collaboration. A topic in the course is about documenting and sharing the scientific tools developed.
La verifica delle capacita' acquisite sara' fatta sia richiedendo l'utilizzo degli strumenti di collaborazione per la presentazione degli elaborati, sia verificando l'attenziene nella parte di documentazione dei progetti presentati.
Students will be required to collaborate in the development of some of the tools and the level of documentation in the presented project will be checked as an estimator of the collaborative attitude.
E' necessaria la conoscenza minima di funzionamento di un computer.
Sarebbe inoltre consigliabile possedere conoscenze, anche rudimentali, di programmazione in alti linguaggi (es. C)
Basic knowledge of computers.
Minimal knowledge of some programming language (e.g. C) would be an added benefit.
Il corso sara' composto da lezioni frontali teoriche e da lezioni frontali in cui si affronta un problema mostrando come esercizio lo sviluppo di un particolare algoritmo, la realizzazione di un programma o l'analisi di un set di dati con una particolare tecnica. Inoltre saranno fatte esercitazioni in cui gli studenti dovranno sviluppare sul proprio computer alcuni gli esercizi proposti.
Automazione delle operazioni (shell), Version control, introduzione al python, algoritmi e complessita, contenitori python, algoritmi standard, iteratori, funzioni lambda, classi e oggetti, overload, scipy/numpy e gestione array, matplotlib, tecniche classiche di ML, issue tracking e ambienti collaborativi, unit test, gestione delle memoria e profiling. Performance CPU/GPU, I/O verso varie periferiche e latenza, evoluzione dell'hardware per calcolo scientifico, programmazione su GPU, vettorizzazione, reti neurali, CNN, RNN, keras e tensorflow, metodi di training, autoencoders, GANs, GraphNetworks. Introduzione al C++, STL, C++11 and C++14, ROOT toolkit, PyROOT, Medical data processing and feature extraction, handling standard-format medical data (DICOM), data anonymization, visualization, Deriving features form images, Image segmentation,Data quality control pipelines, outlier removal, dimensionality reduction, Data analysis and classification, figures of merit, cross-validation, permutation test, Machine-learning and deep-learning tools for segmentation and classification (specific platforms for medical data),Data augmentation, transfer learning, retrieving localization information
Autotion of shell operations, Version control, introduction to python, algorithms and complexity, python containers, standard algorithms, iterators, lambda functions, classes and objects, overload, scipy/numpy and data array, matplotlib, classical ML, issue tracking and collaborative environments, unit test, memory handling and profiling. Performance CPU/GPU, I/O and latency, evolution of scientific computing hardware, GPU coding, vectorization, neural networks, CNN, RNN, keras and tensorflow, training methods, autoencoders, GANs, GraphNetworks. Introduction to C++, STL, C++11 and C++14, ROOT toolkit, PyROOT, Medical data processing and feature extraction, handling standard-format medical data (DICOM), data anonymization, visualization, Deriving features form images, Image segmentation,Data quality control pipelines, outlier removal, dimensionality reduction, Data analysis and classification, figures of merit, cross-validation, permutation test, Machine-learning and deep-learning tools for segmentation and classification (specific platforms for medical data),Data augmentation, transfer learning, retrieving localization information
https://www.deeplearningbook.org/
https://www.learncpp.com/cpp-tutorial/introduction-to-cplusplus/
The Hundred-Page Machine Learning Book, A.Burkov
Graph Representation Learning, William L. Hamilton
https://www.deeplearningbook.org/
https://www.learncpp.com/cpp-tutorial/introduction-to-cplusplus/
The Hundred-Page Machine Learning Book, A.Burkov
Graph Representation Learning, William L. Hamilton
Presentazione di un elaborato su un progetto concordato con i docenti ed esame orale di discussione dell'elaborato e verifica della conoscenza teorica degli strumenti utilizzati nel progetto, nonche' delle scelte operate nella realizzazione del progetto