Vai al contenuto principale
Oggetto:
Oggetto:

Tecniche Informatiche per la Fisica A-B

Oggetto:

Computational Tecniques for Physics A-

Oggetto:

Anno accademico 2022/2023

Codice dell'attività didattica
MFN1309
Docente
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/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 E CAPACITÀ DI COMPRENSIONE

Conoscenza degli elementi fondamentali della programmazione in Python 3 e delle principali librerie per il calcolo scientifico.

KNOWLEDGE AND UNDERSTANDING

Basic knowledge Python programming and of the libraries most commonly used in science.

Oggetto:

Risultati dell'apprendimento attesi

CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE

Al termine del corso gli studenti dovranno essere in grado di scrivere semplici programmi in Python per applicazioni scientifiche: calcolo numerico e  produzione di grafici usando le librerie Numpy, Scipy e Matplotlib.

APPLYING KNOWLEDGE AND UNDERSTANDING  

At the end of the course students will be able to write simple programs in Python to solve scientific problems: numerical calculations and generating plots using the libraries Numpy, Scipy e Matplotlib.

 

Oggetto:

Modalità di insegnamento

Durante l'a.a. 2022-23, le lezioni e le esercitazioni saranno svolte in presenza.

L'insegnamento utilizzerà il metodo dell'insegnamento capovolto https://it.wikipedia.org/wiki/Insegnamento_capovolto.

Il programma e il metodo dell'insegnamentoverranno 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.

Gli studenti dovranno consultare 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_2022/

Alternativamente può essere scaricato da https://github.com/mainaezio/TIF_2022_Introduction_to_Python cliccando "Code" e poi "Download ZIP"

In 2022-23, lectures will be delivered in person.

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

Alternatively, it can be downloaded from https://github.com/mainaezio/TIF_2022_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 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 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 session, there will be a test, containing 1-2 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, 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

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

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

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 



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

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

- 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

Oggetto:
Ultimo aggiornamento: 11/09/2022 16:25
Location: https://fisica.campusnet.unito.it/robots.html
Non cliccare qui!