Scopo del corso è fornire allo studente i primi strumenti elementari, teorici e tecnici, per inquadrare correttamente la relazione fra matematica e la programmazione al calcolatore. Mediante le attività proposte si cercherà di sviluppare negli studenti la capacità di programmare alcuni algoritmi fondamentali (ad esempio, ricerca binaria e algoritmi di ordinamento), utilizzando le strutture dati appropriate (liste, insieme, dizionari). Come linguaggio di programmazione si utilizzerà Python. Nella scelta degli argomenti si cercherà di privilegiare quelli che vengono affrontati dagli studenti più frequentemente nel corso di laurea.
Prerequisiti
Conoscenze di base nell'utilizzo del calcolatore.
Metodi didattici
Lezioni ed esercitazioni pratiche, entrambe al calcolatore.
Verifica Apprendimento
Prova pratica di programmazione al calcolatore.
Testi
Dispense distribuite dal docente e reperibili dal sito web del corso.
Testo complementare consigliato: - Introduction to Computation and Programming Using Python - With Application to Understanding Data, by John V. Guttag. MIT Press (second edition)
Contenuti
Introduzione al concetto di elaborazione automatica, rappresentazione dei numeri in un calcolatore (numeri floating-point), round-off error, propagazione degli errori e relativi esempi. Illustrazione dell’ambiente di sviluppo di Python: - comandi general purpose - gestione delle variabili, utilizzo di liste e funzioni builtins - operatori logici e di relazione - istruzioni di controllo, costrutto if-then-else - lettura e scrittura di file CSV - Introduzione alla programmazione funzionale (funzioni e ricorsione) - Costruzione di successioni numeriche e relativi grafici - Introduzione alla funzione procedurale - Risoluzione di alcuni problemi fondamentali di ottimizzazione (problema di zaino, problema di cammino minimo, problema del commesso viaggiatore)