CdSFISICA
Codice365BB
CFU6
PeriodoPrimo semestre
LinguaItaliano
Moduli | Settore/i | Tipo | Ore | Docente/i | |
COMPUTING METHODS FOR EXPERIMENTAL PHYSICS AND DATA ANALYSIS - A | FIS/01 | LEZIONI | 36 |
|
Alla fine del corso lo studente avra' acquisito dimestichezza con i seguenti strumenti per il calcolo scientifico e l'analisi dati:
- comandi avanzati shell unix per automazione di operazioni
- linguaggio python e principali moduli di sistema
- librerie python per calcolo scientifico
- strumenti per la gestione e documentazione del software
- strumenti per machine learning e per sviluppo di reti neurali
By the end of the course the student will know the following tools for scientific computing and data analysis
- advanced shell commands for automation of operations
- python language and main system modules
- python scientific libraries
- tools for authoring, versioning and documentation of the software
- tools for machine learning and artificial neural network development
- specific tools for particles physics or medical physics (*)
(*) 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':
- Automatizzare le operazioni di calcolo nelle analisi dati
- Scrivere programmi per calcolo scientifico in linguaggio python
- Sviluppare software in ambienti altamente collaborativi
- Progettare reti neurali per analisi dati
At the end of the course the student will have the following skills:
- Automate computing operations in data analysis
- Write python programs for scientific applications
- Develop software in collaborative environments
- Design neural networks for scientific data analysis
- Develop analysis projects in the context of particle physics or medical physics (*)
(*) 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. 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. 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/
https://www.deeplearningbook.org/
https://www.learncpp.com/cpp-tutorial/introduction-to-cplusplus/
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