Vai al contenuto principale
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 laptop
You 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.

Robert Johanson - Scientific Computing with Python

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. 

Robert Johanson - Scientific Computing with Python 



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:
Ultimo aggiornamento: 24/08/2019 19:44
Location: https://fisica.campusnet.unito.it/robots.html
Non cliccare qui!