View syllabus
COMPUTING METHODS FOR EXPERIMENTAL PHYSICS AND DATA ANALYSIS
ANDREA RIZZI
Academic year2022/23
CoursePHYSICS
Code360BB
Credits9
PeriodSemester 1
LanguageItalian

ModulesAreaTypeHoursTeacher(s)
COMPUTING METHODS FOR EXPERIMENTAL PHYSICS AND DATA ANALYSISFIS/01LEZIONI54
LUCA BALDINI unimap
GIANLUCA LAMANNA unimap
ALBERTO MANFREDA unimap
ALESSANDRA RETICO unimap
ANDREA RIZZI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

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
  •     tecniche e librerie per calcolo parallelo e su GPU
  •     conoscenze dei concetti fondamentali in machine learning e per sviluppo di reti neurali
  •     reti feed-forward,  reti convolutive e reti ricorsive 
  •     reti generative (GAN e autoencoders) e graph networks    
  •     strumenti specifici per applicazioni in fisica delle particelle e/o fisica medica  (*)

(*) non disponibile per la versione da 6 CFU del corso

 

 

 

 
Knowledge

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
  •     tecnhiques and libraries for parallel computing and computing on GPU
  •     fundamental tools and definitions in machine learning 
  •     feedforward networks, CNN, recurrent networks
  •     generative networks (GAN and autoencoders), graph networks
  •     specific tools for particles physics or medical physics (*)

(*) not available in the 6 credits version of the course

 

 

 

 
Modalità di verifica delle conoscenze

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

 

 

 

 
Assessment criteria of knowledge

Specific knowledge will be verified in the oral exams with questions starting from the project realized and presented by the students.

 

 

 

 
Capacità

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
  •   Scrivere programmi che sfruttino architetture di calcolo parallelo
  •   Progettare reti neurali per analisi dati
  •   Sviluppare reti neurali per calcolo scientifico
  •   Sviluppare progetti di analisi di dati di fisica delle particelle o di fisica medica (*)

(*) non disponibile per la versione da 6 CFU del corso

 

 

 

 
Skills

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 environment
  •  Write programs exploiting parallel computing architectures
  •  Design neural networks for  data analysis
  •  Develop neural networks for scientific computing
  •  Develop analysis projects in the context of particle physics or medical physics (*)

 

(*) not available in the 6 credits version of the course

 

 

 

 
Modalità di verifica delle capacità

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.

 

 

 

 
Assessment criteria of skills

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 

 

 

 

 
Comportamenti

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.

 

 

 

 
Behaviors

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.

 

 

 

 
Modalità di verifica dei comportamenti

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.

 

 

 

 
Assessment criteria of behaviors

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.

 

 

 

 
Prerequisiti (conoscenze iniziali)

E' necessaria la conoscenza minima di funzionamento di un computer.

Sarebbe inoltre consigliabile possedere conoscenze, anche rudimentali, di programmazione in alti linguaggi (es. C)

 

 

 

 
Prerequisites

Basic knowledge of computers.

Minimal knowledge of some programming language (e.g. C) would be an added benefit.

 

 

 

 
Corequisiti

 

 

 
Co-requisites

 

 

 
Prerequisiti per studi successivi

 

 

 
Prerequisites for further study

 

 

 
Indicazioni metodologiche

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.

 

 

 

 
Teaching methods

 

 

 

 

 
Programma (contenuti dell'insegnamento)

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

 

 

 

 
Syllabus

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

 

 

 

 
Bibliografia e materiale didattico

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

 
Bibliography

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

 

 

 
Indicazioni per non frequentanti

 

 

 

 

 
Non-attending students info

 

 

 

 

 
Modalità d'esame

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

 

 

 

 
Assessment methods

 

 

 

 

 
Stage e tirocini

 

 

 
Work placement

 

 

 
Altri riferimenti web

 

 

 

 

 
Additional web pages

 

 

 

 

 
Note

 

 

 

 

 
Notes

 

 

 

 

 
Updated: 24/10/2022 16:57