78185 - LABORATORIO DI INFORMATICA PER LA MECCANICA T

Anno Accademico 2020/2021

  • 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. Introduzione a "Visual Studio Code". 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, la libreria per generare grafici.
Numpy arrays. Aritmetica degli array Numpy.
Libreria Matplotlib. Generare e visualizzare grafici.
Primi approcci alla analisi scientifica dei dati.
Richiami di statistica: campione, popolazione, distribuzione.
Distribuzioni normalizzate, densità di probabilità.
Il pacchetto Scipy per il calcolo scientifico. Le basi della simulazione, i modelli della realtà. Il metodo Montecarlo.
Generatori di numeri pseudorandom, test dei generatori.
L’algoritmo di Metropolis (l’algoritmo più utilizzato al mondo!)
Metodi numerici di approssimazione.
Approssimazione numerica di funzioni.
Metodi di calcolo numerico delle derivate.
Cenni sugli errori di macchina e algoritmici.
Ricerca degli zeri di una funzione, metodi di Newton e
bisezione.
Algoritmi di integrazione numerica
Algoritmi lineari e quadratici.
Librerie di integrazione numerica.
Metodi di integrazione Montecarlo.

Se possibile: primo contatto con l'"intelligenza artificiale".

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, lavagna luminosa, laboratori informatici.

Orario di ricevimento

Consulta il sito web di Niccolò Moggi