Scheda programma d'esame
COMPUTING METHODS FOR EXPERIMENTAL PHYSICS AND DATA ANALYSIS - A
ANDREA RIZZI
Anno accademico2021/22
CdSFISICA
Codice365BB
CFU6
PeriodoPrimo semestre
LinguaItaliano

ModuliSettore/iTipoOreDocente/i
COMPUTING METHODS FOR EXPERIMENTAL PHYSICS AND DATA ANALYSIS - AFIS/01LEZIONI36
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
  •     strumenti per machine learning e per sviluppo di reti neurali 

 

 

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
  •     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

 

 

 

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
  •   Progettare reti neurali per  analisi dati 

 

 

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 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

 

 

 

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.

 

 

 

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. 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. 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

 

 

 

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

 

 

 

 

Altri riferimenti web

 

 

 

 

Additional web pages

 

 

 

 

Note

 

 

 

 

Notes

 

 

 

 

Ultimo aggiornamento 27/07/2021 17:57