- Oggetto:
- Oggetto:
Tecniche Informatiche per la Fisica A-B
- Oggetto:
Computational Tecniques for Physics A-B
- Oggetto:
Anno accademico 2024/2025
- Codice attività didattica
- MFN1309
- Docente
- Ezio Maina (Titolare del corso)
- Corso di studio
- 008703 Laurea in Fisica
- Anno
- 1° anno
- Periodo
- Primo semestre
- Tipologia
- F= Altro
- Crediti/Valenza
- 3
- SSD attività didattica
- INF/01 - informatica
- Erogazione
- Tradizionale
- Lingua
- Italiano
- Frequenza
- Facoltativa
- Tipologia esame
- Prova pratica
- Prerequisiti
-
Avere un account sul server degli studenti di Fisica per potersi collegare al Wi-Fi.
Una ragionevole conoscenza dell'inglese scientifico.
Scaricate e installate la distribuzione Anaconda da https://www.anaconda.com/products/individual (Windows,Linux,Mac) sul vostro laptop
You need an account on the physics student server.
Download and install the Anaconda distribution from https://www.anaconda.com/products/individual (Windows,Linux,Mac) on your laptop - Oggetto:
Sommario insegnamento
- Oggetto:
Obiettivi formativi
Conoscenza degli elementi fondamentali della programmazione in Python 3 e delle principali librerie per il calcolo scientifico.
Basic knowledge of Python 3 programming and of the libraries most commonly used in scientific computation.
- Oggetto:
Risultati dell'apprendimento attesi
Conoscenza e capacità di comprensione:
Comprensione dei principi della programmazione e conoscenza degli elementi fondamentali della programmazione in Python 3 e delle principali librerie per il calcolo scientifico: Numpy, Scipy e Matplotlib.
Capacità di applicare conoscenza e comprensione:
al termine dell'insegnamento gli studenti e le studentesse dovranno essere in grado di scrivere semplici programmi in Python per applicazioni scientifiche
Knowledge and understanding:
Understanding of the fundamentals of programming and basic knowledge of Python 3 programming and of the libraries most commonly used in scientific computation: Numpy, Scipy e Matplotlib
Applying knowledge and understanding:
at the end of the course, students should be able to write simple programs in Python to solve scientific problems.
- Oggetto:
Programma
Nozioni fondamentali
- I notebook Jupyter
- Operazioni e funzioni matematiche elementari
- Uso di variabili
- Definizione e chiamata di funzioni
- Input e return values
- Valori di default e parametri opzionali
- Tipi di dati e contenitori di dati: numeri, liste, stringhe, ntuple, dizionari
- Indici e slicing
- Copia di oggetti in Python
- Uguaglianza e identita'
- Input e output
- Formattazione
- Lettura e scrittura di file
- Valori logici
- if-then-else
- for loops
- while loops
Numpy: calcolo numerico in Python
- Gli array
- Algebra Lineare
- Numpy per la Statistica: media, varianza, istogrammi delle frequenze
- Fit di un set di dati a una curva
Matplotlib: grafici in Python
- Scatter plot
- Plot multipli e curve multiple
- Plot logaritmici
- Istogrammi
- Legende, Annotazioni
Scipy: metodi numerici in Python
- Integrazione numerica
- Equazioni differenziali ordinarie
- Ricerca delle radici
- Ricerca degli estremi
- Numeri casuali
Basics
- Jupyter notebooks
- Elementary mathematical operations and functions
- Variables
- Function definition and calling
- Input and return values
- Default values and optional parameters
- Type of data and data containers: numbers, lists, strings, ntuples, dictionaries
- Indices and slicing
- Copying objects in Python
- Equality and identity
- Input and output
- Formatting
- Reading and writing files
- Logical values
- if-then-else
- for loops
- while loops
Numpy: numerical calculations in Python
- Arrays
- Linear Algebra
- Numpy for Statistics: mean, variance, frequency histograms
- Fit of a curve through a set of data points
Matplotlib: plots in Python
- Scatter plots
- Multiple plots and multiple curves
- Logarithmic plots
- Histograms
- Legends, Annotations
Scipy: numerical methods in Python
- Numerical integration
- Ordinary differential equations
- Finding roots
- Finding extrema
- Random Numbers
- Oggetto:
Modalità di insegnamento
Il corso si compone di due ore di lezione frontale e di ventidue ore di laboratorio.
È possibile e consigliato utilizzare il proprio portatile. In alternativa sono a disposizione i terminali delle aule informatiche.
L'insegnamento utilizzerà il metodo dell'insegnamento capovolto https://it.wikipedia.org/wiki/Insegnamento_capovolto.
Il programma e il metodo dell'insegnamento verranno presentati in una lezione introduttiva.
La prima lezione sarà il 26/09 per il Corso A e il 27/09 per il Corso B. Le lezioni successive si svolgeranno nelle Aule Informatiche F e G al primo piano interrato.
Ciascuno studente dovrà studiare autonomamente il contenuto dei notebook prima di ogni incontro. Gli incontri serviranno per approfondimenti, chiarimento dei concetti, esercitazioni in gruppi.
Il materiale didattico, sotto forma di Notebooks Jupyter, è disponibile su:
http://personalpages.to.infn.it/~maina/didattica/TIF_2023/
Alternativamente può essere scaricato da https://github.com/mainaezio/TIF_2023_Introduction_to_Python cliccando "Code" e poi "Download ZIP"
The course consists of two hours of formal lectures and twenty-two laboratory hours.
You are encouraged to bring your own laptop to class. Alternatively, terminals are available in the classrooms.
The course will adopt the flipped classroom approach https://en.wikipedia.org/wiki/Flipped_classroom.
The syllabus and the method of the course will be presented in an introductory lecture.
The first lecture will take place on 26/09 for Corsa A and on 27/09 for Corso B. All other lectures will take place in Aule Informatiche F e G on the first underground floor.
The students are expected to learn the material in the notebooks before each meeting. The meetings will provide an in-depth discussion of the most relevant topics and of issues in need of clarification. Activity learning and homework exercises will be performed in small groups.
All teaching materials are available as Jupyter Notebook in:
http://personalpages.to.infn.it/~maina/didattica/TIF_2023/
Alternatively, it can be downloaded from https://github.com/mainaezio/TIF_2023_Introduction_to_Python clicking "Code" and then "Download ZIP"
- Oggetto:
Modalità di verifica dell'apprendimento
Nell'ultima parte di alcune esercitazioni, sarà distribuita una prova contenente 3-4 esercizi da eseguire seduta stante. L'esame sarà superato se almeno il 60% degli esercizi verrà completato in modo corretto.
Durante le sessioni d'esame successive sarà possibile, ma fortemente scoraggiato, sostenere un esame, della durata di un'ora, che consisterà di esercizi da risolvere in laboratorio.
In the last part of some laboratory sessions, there will be a test, containing 3-4 exercises, to be completed on the spot. If at least 60% of the exercises are correct, the course is passed.
During regular exam sessions it will be possible, but strongly discouraged, to take exams. It will require solving exercises in the computer lab.
- Oggetto:
Attività di supporto
Gli studenti/studentesse possono richiedere appuntamenti individuali attraverso la posta elettronica.
Students can make an appointment by email.
Testi consigliati e bibliografia
- Oggetto:
- Altro
- Titolo:
- Jupyter Notebooks
- URL:
- Obbligatorio:
- No
- Oggetto:
- :
Tra la miriade di pagine dedicate a Python sul web, queste sono fra le più utili:
Hans Fanghor - Python for Computational Science and Engineering
Robert Johanson - Scientific Computing with Python
Sven Linge, Hand Petter Langtangen - Programming for Computations
Among the staggering amount of Python related documents available on the web, these are among the most useful:
Hans Fanghor - Python for Computational Science and Engineering
Robert Johanson - Scientific Computing with Python
Sven Linge, Hand Petter Langtangen - Programming for Computations
- Oggetto:
Note
Nessuna propedeuticità obbligatoria. Frequenza non obbligatoria, ma fortemente consigliata.
Suddivisione:
- CORSO A1: studenti con cognome dalla lettera A alla C
- CORSO A2: studenti con cognome dalla lettera D alla F
- CORSO B1 studenti con cognome dalla lettera G alla P
- CORSO B2: studenti con cognome dalla lettera Q alla Z
Gli/le studenti/esse con DSA o disabilità, sono pregati di prendere visione delle modalità di supporto (https://www.unito.it/servizi/lo-studio/studenti-e-studentesse-con-disabilita) e di accoglienza (https://www.unito.it/accoglienza-studenti-con-disabilita-e-dsa) di Ateneo, ed in particolare delle procedure necessarie per il supporto in sede d’esame (https://www.unito.it/servizi/lo-studio/studenti-e-studentesse-con-disturbi-specifici-di-apprendimento-dsa/supporto)
No previous knowledge is required. Attendance is not mandatory but strongly encouraged.
- COURSE A1: for students with the first letter of their family name in the A-C range
- COURSE A2: for students with the first letter of their family name in the D-F range
- COURSE B1: for students with the first letter of their family name in the G-P range
- COURSE B2: for students with the first letter of their family name in the Q-Z range
- Registrazione
- Aperta
- Oggetto: