LABORATORIO DI CALCOLO

Obiettivi formativi

Obiettivi generali: acquisire competenza di programmazione informatica in C/C++, che è uno dei linguaggi più utilizzati dagli sviluppatori, e applicare le abilità informatiche acquisite alla risoluzione di problemi matematici. Obiettivi specifici: Conoscenza e comprensione: gli studenti che abbiano superato l'esame avranno una conoscenza di base della programmazione e della aritmetica della macchina e saranno capaci di capire come strutturare algoritmi relativamente semplici per risolvere effettivamente problemi matematici. Applicare conoscenza e comprensione: al temine del corso gli studenti saranno in grado di risolvere, attraverso algoritmi adeguati, problemi matematici relativamente semplici. Saranno anche capaci di progettare e implementare programmi informatici che interagiscano in modo appropriato con un potenziale utente. Capacità critiche e di giudizio: gli studenti avranno le basi per analizzare algoritmi matematici elementari dal punto di vista della efficienza computazionale, della stabilità e della accuratezza. Saranno inoltre in grado di capire che risultati matematici teorici devono essere riformulati per renderli utilizzabili nella pratica del calcolo in aritmetica finita. Capacità comunicative: capacità di esporre e motivare la risoluzione proposta a certi problemi scelti in sessioni di esercitazioni in aula e alla prova orale prevista alla fine del corso. Capacità di apprendimento: gli studenti dovranno prendere familiarità e praticità con diversi elementi informatici come il linguaggio di programmazione informatica, le librerie, i compilatori, i diversi software disponibili in rete che offrono un ambiente di sviluppo integrato sotto diversi sistemi operativi, etc. Queste abilità permetteranno loro sicuramente di imparare con più facilità l’utilizzo di altri software di interesse per il calcolo scientifico e il mondo del lavoro.

Canale 1
SILVIA NOSCHESE Scheda docente

Programmi - Frequenza - Esami

Programma
I due moduli del corso, Laboratorio di programmazione e Laboratorio di calcolo, si svolgeranno in parallelo. Le esercitazioni del laboratorio di programmazione si concentreranno sull’implementazione degli algoritmi studiati in Laboratorio di calcolo.   Laboratorio di programmazione (32 ore in aula e 24 in laboratorio)   Come scrivere ed eseguire un programma di base in C++ Aritmetica della macchina, nozione e propagazione degli errori Algoritmi: Costo computazionale ed efficienza Programmazione in pseudocodice e introduzione alle istruzioni per il controllo del flusso Compilatori e ambienti di sviluppo integrato Struttura di base dei programmi in C Variabili, tipo, istruzioni di INPUT/OUTPUT Operatori aritmetici, cicli Operatori relazionali, logici, espressioni condizionali Libreria math.h Linee di guida per lavorare in ambiente Linux Arrays e allocazione della memoria Ordinamento di vettori Funzioni C++ Visualizzazione grafica di funzioni e dati   Laboratorio di calcolo: Introduzione all'Analisi Numerics (28 ore in aula)   Metodo di eliminazione di Gauss Metodo di Jacobi Metodi iterativi per equazioni scalari non lineari Introduzione alla interpolazione polinomiale Introduzione alla quadratura numerica
Prerequisiti
Il corso richiede solo conoscenze di matematica elementare che gli studenti dovranno avere acquisito nella scuola superiore.
Testi di riferimento
Nella pagina e-learning del corso sarà reso disponibile materiale didattico relativo agli argomenti delle lezioni.
Modalità insegnamento
Lezioni frontali (60%), svolgimento di esercizi (40%).
Frequenza
fortemente raccomandata
Modalità di esame
L'esame per i due moduli, Laboratorio di Programmazione e Laboratorio di Calcolo, è unico. Ci saranno due prove scritte tenute durante lo svolgimento del corso (prove in itinere). Se entrambe queste prove saranno sufficienti, si potrà accedere direttamente all'esame orale, con un punteggio pari al voto medio delle due prove. Gli esami consisteranno di una prova scritta e una prova orale, alla quale si avrà accesso solo se la prova scritta (o la media delle due prove in itinere) ha avuto come risultato un voto maggiore o uguale a 18. La prova scritta consisterà in esercizi di programmazione in C++ e di calcolo numerico. La prova orale consisterà in una discussione sugli argomenti svolti nel corso e sui programmi assegnati nelle esercitazioni. Il voto finale sarà una media dei voti ottenuti nello scritto e nella prova orale.
Bibliografia
Laboratorio di programmazione 1. Luis J. Aguilar, “Fondamenti di programmazione in C++”. McGraw-Hill, 2008 2. Brian W. Kernighan, Dennis M. Ritchie, “Il linguaggio C”. Pearson, 2004 Laboratorio di Calcolo: Introduzione all'Analisi Numerica 1. W. Gautschi, “Numerical analysis. An introduction”. Birkhäuser, 1997 2. A. Quarteroni, R. Sacco, F. Saleri, P. Gervasio “Matematica Numerica”. Springer, 2014
Modalità di erogazione
Lezioni frontali (60%), svolgimento di esercizi (40%).
Canale 2
GABRIELLA ANNA PUPPO Scheda docente

Programmi - Frequenza - Esami

Programma
I due moduli del corso, Laboratorio di programmazione e Laboratorio di calcolo, si svolgeranno in parallelo. Le esercitazioni del laboratorio di programmazione si concentreranno sull’implementazione degli algoritmi studiati in Laboratorio di calcolo Laboratorio di programmazione (32 ore in aula e 24 in laboratorio) Come scrivere ed eseguire un programma di base in C++ Aritmetica della macchina, nozione e propagazione degli errori Algoritmi: Costo computazionale ed efficienza Compilatori e ambienti di sviluppo integrato Struttura di base dei programmi in C++ Variabili, tipo, istruzioni di INPUT/OUTPUT Libreria cmath Espressioni aritmetiche Operatori relazionali, logici, espressioni condizionali Operatori aritmetici, cicli. Ciclo If, For, While, Do While, Switch Arrays e allocazione della memoria Ordinamento di vettori Funzioni C++ Visualizzazione grafica di funzioni e dati Laboratorio di calcolo (28 ore in aula) Metodo di eliminazione di Gauss Fattorizzazione LU Norme di vettori e matrici Numero di condizionamento Metodo di Jacobi Metodi iterativi per equazioni scalari non lineari Introduzione alla interpolazione polinomiale Introduzione alla quadratura numerica
Prerequisiti
Il solo prerequisito è la disponibilità ad imparare tecniche nuove per risolvere problemi matematici
Testi di riferimento
Quarteroni, Sacco, Saleri, Gervasio, Matematica Numerica, Springer, 2014. Greenbaum, Chartier, Numerical Methods: Design, Analysis, and Computer Implementation of Algorithms, Priceton University Press, 2012. Dispense della docente, fornite sul sito Moodle del corso
Frequenza
La frequenza è consigliata
Modalità di esame
L’esame mira a valutare l’apprendimento tramite due prove scritte in itinere o una prova scritta finale e una prova orale finale. Nelle prove scritte si chiederà la risoluzione di problemi simili a quelli svolti nelle esercitazioni e la capacità di scrivere qualche linea di codice. La prova orale consisterà nella discussione dei temi più rilevanti illustrati nel corso e nella spiegazione dei codici elaborati dallo studente, che dovrà dimostrare le competenze informatiche acquisite durante il corso. Le prove scritte finali avranno una durata di circa due/tre ore. La prima prova in itinere durerà un’ora e mezza, si realizzerà nell’orario di lezione abituale e sarà incentrata sugli elementi di base della programmazione in C/C++ e l’utilizzo delle istruzioni di controllo del flusso. La seconda prova in itinere la potranno realizzare unicamente gli studenti che abbiano superato la prima prova in itinere. Gli studenti che abbiano superato le due prove in itinere, saranno esonerati dalla prova scritta. Supereranno il corso gli studenti che prendono un voto sufficiente nella prova scritta (o nelle due prove in itinere) e nella prova orale un voto maggiore uguale a 18/30. Per questo, lo studente deve dimostrare di aver acquisito una conoscenza e padronanza sufficiente degli argomenti di entrambe le parti del programma, sia sulla programmazione informatica che sulla parte teorica di Analisi numerica, e di essere in grado di svolgere almeno i più semplici tra gli esercizi assegnati.
Bibliografia
Quarteroni, Sacco, Saleri, Gervasio, Matematica Numerica, Springer, 2014. Greenbaum, Chartier, Numerical Methods: Design, Analysis, and Computer Implementation of Algorithms, Priceton University Press, 2012.
Modalità di erogazione
Le lezioni si svolgeranno in aula e in laboratorio informatico
  • Anno accademico2025/2026
  • CorsoMatematica
  • CurriculumGenerale
  • Anno1º anno
  • Semestre1º semestre
  • SSDMAT/08
  • CFU3
  • Ambito disciplinareFormazione Matematica di base