78185 - LABORATORIO DI INFORMATICA PER LA MECCANICA T

Anno Accademico 2022/2023

  • Docente: Niccolò Moggi
  • Crediti formativi: 3
  • SSD: ING-IND/18
  • Lingua di insegnamento: Italiano
  • Modalità didattica: Convenzionale - Lezioni in presenza
  • Campus: Bologna
  • Corso: Laurea in Ingegneria meccanica (cod. 0927)

Conoscenze e abilità da conseguire

Al termine del corso lo studente - è in grado di sviluppare programmi di calcolo con interfaccia grafica - ha familiarità con l'utilizzo e l'inclusione di librerie grafiche - è in grado di risolvere problemi numerici avanzati che richiedono l'output grafico su diverse piattaforme (sia Windows che Linux)

Contenuti

Parte I, in cui si imparano le basi del linguaggio.
Come interagire col sistema operativo Linux e come usare un editor.
Cenni sui comandi Linux. L'"editor". Installare Python/Anaconda sul proprio pc.
La filosofia di Python
Introduzione a Python3. L'interprete.
Dove trovare la documentazione online.
La grammatica e la sintassi di Python.
Gli operatori aritmetici. Tipi. Oggetti. Conversioni.
Riferimenti ad oggetti. Manipolazione di stringhe.
Costrutti If, While, For. Funzioni e metodi. Ricorsione.
La struttura di un programma: moduli, sharing di variabili.
Oggetti di uso comune specifici di Python:
Contenitori: liste, tuple, dizionari, set.

Parte II, in cui ci si diverte ad usare Python per la soluzione di problemi pratici.
La Libreria numerica. Numpy arrays. Aritmetica degli array Numpy.
Libreria Matplotlib. Generare e visualizzare grafici.
Primi approcci alla analisi scientifica dei dati.
Istorgrammi, distribuzioni normalizzate, densità di probabilità. Il metodo Montecarlo e le simulazioni.Generatori di numeri pseudorandom. Calcolo numerico delle probabilità. L'algoritmo di Metropolis.
Il pacchetto Scipy per il calcolo scientifico.                             
Metodi numerici di approssimazione.
Approssimazione numerica di funzioni.
Cenni sugli errori di macchina e algoritmici.
Algoritmi di integrazione numerica con Montecarlo. Integrazione numerica di funzioni di più variabili.

Testi/Bibliografia

Il corso e' strutturato in modo che un testo di studio non sia necessario. Tuttavia puo' fare comodo un manuale generico di Python3 ed un testo di fisica computazionale. Alcuni suggerimenti:

- Hans Petter Langtangen, "A Primer on Scientific Programming with Python"

- "How to Think Like a Computer Scientist" (http://openbookproject.net/thinkcs/python/english3e/)

- "Pensare da informatico" (https://www.python.it/doc/Howtothink/HowToThink_ITA.pdf)

Durante il corso verra' consigliato del materiale disponibile online.

Metodi didattici

Se possibile le lezioni si svolgeranno in laboratorio. Dopo una introduzione teorica, si passera' ad esercitazioni pratiche al calcolatore nelle quali, proposto un problema, si chiede di implementare un algoritmo per risolverlo.
Il materiale didattico presentato a lezione sara’ a disposizione degli studenti in formato elettronico.

Modalità di verifica e valutazione dell'apprendimento

Le conoscenze e capacità acquisite verranno verificate mediate valutazione di alcune delle prove pratiche di programmazione svolte in laboratorio durante il corso e con una prova pratica finale.

Strumenti a supporto della didattica

Videoproiettore, PC dei laboratori informatici (Linux). Per chi lo desidera è possibile utilizzare il proprio laptop (Windows, Linux, macOS)

Orario di ricevimento

Consulta il sito web di Niccolò Moggi