en
Politecnico di Torino
Anno Accademico 2017/18
03NMVMQ
Programmazione e calcolo scientifico
Corso di Laurea in Matematica Per L'Ingegneria - Torino
Docente Qualifica Settore Lez Es Lab Tut Anni incarico
Berrone Stefano ORARIO RICEVIMENTO O2 MAT/08 50 10 20 0 9
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05
MAT/08
3
5
F - Altre attività (art. 10)
B - Caratterizzanti
Abilità informatiche e telematiche
Formazione modellistico-applicativa
Presentazione
Il corso si propone di approfondire le conoscenze su linguaggi e tecniche di programmazione, algoritmi e struttre dati utili per il calcolo scientifico.
Risultati di apprendimento attesi
Il corso si propone di far acquisire agli studenti:
- una conoscenza approfondita di programmazione C/C++ e Matlab,
- una conoscenza di base delle problematiche connesse all'utilizzo del calcolatore per eseguire simulazioni accurate ed efficienti,
- una conoscenza dei principali algoritmi e delle fondamentali strutture di dati dell'informatica.
Prerequisiti / Conoscenze pregresse
Buona conoscenza di un linguaggio di programmazione e del funzionamento del calcolatore.
Buona conoscenza degli argomenti dei corsi di base di analisi matematica e geometria.
Programma
- Approfondimenti su aritmetica del calcolatore e problematiche connesse al calcolo scientifico: affidabilita` delle soluzioni numeriche.
- Richiami su condizionamento di un problema e stabilita` di un algoritmo numerico; analisi degli effetti dell'aritmetica di macchina sull'affidabilita` delle simulazioni numeriche: esempi di situazioni problematiche facilmente riscontrabili nelle simulazioni.
- Introduzione alla programmazione avanzata di algoritmi numerici in Matlab.
- Richiami di programmazione in C per il calcolo scientifico: richiami su puntatori, allocazione statica e dinamica e analisi approfondita in termini di efficienza delle diverse scelte nell'ambito del calcolo scientifico.
- Introduzione alla programmazione ad oggetti nel linguaggio C++, librerie utili per la risoluzione numerica di vari problemi.
- Complessità computazionale, ricorsione, strutture dati (liste, code, pile, alberi, grafi)
- Algoritmi elementari (ordinamento, attraversamento di alberi e grafi, ricerca di percorsi tra nodi nei grafi) e loro implementazione in C/C++; analisi dell'applicabilita` di questi paradigmi in diversi contesti di simulazione e approssimazione delle soluzioni di problemi ingegneristici.
- Breve introduzione alla parallelizzazione con MPI, OpenMP e Matlab.
- Introduzione alla risoluzione di problemi numerici con Python e descrizione delle librerie numeriche piu` diffuse basate su Python.
- Principali librerie numeriche di pubblico dominio per la risoluzione di sistemi lineari in C, C++ e Python.
Organizzazione dell'insegnamento
L’insegnamento consta di lezioni, esercitazioni in aula ed esercitazioni presso un laboratorio informatico.
Criteri, regole e procedure per l'esame
L'esame consiste in uno scritto con esercizi e domande teoriche che dura di norma 2 ore, un piccolo progetto consistente nello sviluppo di un codice per risolvere al calcolatore semplici problemi assegnati dal docente, un orale con domande di tipo teorico, discussione dello scritto e discussione del progetto.
Durante l’esame scritto non è consentito l’uso di materiali didattici, calcolatrice e cellulari.
Orario delle lezioni
Statistiche superamento esami

Programma definitivo per l'A.A.2017/18
Indietro



© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
WCAG 2.0 (Level AA)
Contatti