- Oggetto:
- Oggetto:
Tecniche Informatiche per la Fisica A-B-C-D
- Oggetto:
Computational Tecniques for Physics A-B-C-D
- Oggetto:
Anno accademico 2019/2020
- Codice dell'attività didattica
- MFN1309
- Docente
- Prof. Ezio Maina (Titolare del corso)
- Corso di studi
- 008703 Laurea in Fisica
- Anno
- 1° anno
- Periodo didattico
- Primo semestre
- Tipologia
- F= Altro
- Crediti/Valenza
- 3
- SSD dell'attività didattica
- INF/01 - informatica
- Modalità di erogazione
- Tradizionale
- Lingua di insegnamento
- Italiano
- Modalità di frequenza
- Facoltativa
- Tipologia d'esame
- Prova pratica
- Prerequisiti
-
Avere un account sul server degli studenti di Fisica.
Una ragionevole conoscenza dell'inglese scientifico.
Scaricate e installate la distribuzione Anaconda da https://www.anaconda.com/distribution/ (Window,Linux,Mac) sul vostro laptopYou need an account on the physics student server.
Download and install the Anaconda distribution from https://www.anaconda.com/distribution/ (Window,Linux,Mac) on your laptop - Oggetto:
Sommario insegnamento
- Oggetto:
Obiettivi formativi
Il Corso di Tecniche Informatiche per la Fisica si pone l'obiettivo di familiarizzare gli studenti con l'uso del linguaggio Python e con le principali librerie utilizzate in ambito scientifico: Simpy, Numpy, Scipy e Matplotlib.The course aims to get students acquainted with the Python programming and the libraries commonly used in science: Simpy, Numpy, Scipy e Matplotlib.- Oggetto:
Risultati dell'apprendimento attesi
Capacità di usare Python in semplici applicazioni scientifiche: calcolo numerico e simbolico, produzione di grafici.Ability to use Python to solve simple scientific problems: numerical and symbolic calculations, generating plots.- Oggetto:
Modalità di insegnamento
Lezioni frontali ed esercitazioni in aula informatica.
Traditional lectures and computer laboratory sessions.
- Oggetto:
Modalità di verifica dell'apprendimento
Nell'ultima parte di ciascuna esercitazione in aula informatica, sarà distribuito una prova contenente 1-2 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 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 each laboratory session there will be a test, containing 1-2 execises, 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, solving exercises in the computer lab.
- 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
Simpy: calcolo simbolico in Python
- Simboli
- Derivazione/Integrazione
- Equazioni differenziali ordinarie
- Sviluppi in serie
- Equazioni lineari e matrici
- Equazioni non lineari
Numpy: calcolo numerico in Python
- Gli array
- Algebra Lineare
- Fit polinomiale a una curva
- Numpy per la Statistica: media, varianza, istogrammi delle frequenze
- Fit Lineare
- Fit quadratico
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
- Interpolazione
- Fit di una curva
- 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 od 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
Simpy: symbolical calculations in Python
- Symbols
- Derivation/Integration
- Ordinary differential equations
- Series expansion
- Linear equations
- Non-linear equations
Numpy: numerical calculations in Python
- Arrays
- Linear Algebra
- Polynomial Fit of a curve
- Numpy for Statistics: mean, variance, frequency histograms
- Linear Fit
- Quadratic Fit
Matplotlib: plots in Python
- Scatter plots
- Multiple plost and multiple curves
- Logarithmic plots
- Histograms
- Legends, Annotations
Scipy: numerical methods in Python
- Numerical integration
- Ordinary differential equations
- Finding roots
- Interpolation
- Fitting a curve
- Random Numbers
Testi consigliati e bibliografia
- Oggetto:
I notebooks Jupyter delle lezioni sono disponibili su: http://personalpages.to.infn.it/~maina/didattica/TIF_2019
- in formato html (sola lettura)
- in formato ipynb (eseguibili)
Tra la miriade di pagine dedicate a Python sul web, queste sono le più utili:
Hans Fanghor - Python for Computational Science and Engineering su cui è basato questo corso.
The Jupyter notebooks for all lectures are available at: http://personalpages.to.infn.it/~maina/didattica/TIF_2019
- in html format (read-only)
- in ipynb format (executable)
Among the staggering amount of Python related documents available on the web, these are most useful:
Hans Fanghor - Python for Computational Science and Engineering on which this course is based.
- Oggetto:
Orario lezioni
Lezioni: dal 23/09/2019 al 15/11/2019
- Oggetto:
Note
Nessuna propedeuticità obbligatoria. Frequenza non obbligatoria, ma fortemente consigliata.
Suddivisione:
- CORSO A: studenti con cognome dalla lettera A alla C
- CORSO B: studenti con cognome dalla lettera D alla L
- CORSO C: studenti con cognome dalla lettera M alla P
- CORSO D: studenti con cognome dalla lettera Q alla Z
No previous knowledge required. Attendance not mandatory but strongly encouraged.
- COURSE A: for students with the first letter of theri family name in the A-C range
- COURSE B: for students with the first letter of theri family name in the D-L range
- COURSE C: for students with the first letter of theri family name in the M-P range
- COURSE D: for students with the first letter of theri family name in the Q-Z range
- Oggetto: