Fruisce da
|
20410560 IN400 - PROGRAMMAZIONE IN PYTHON E MATLAB in Scienze Computazionali LM-40 (docente da definire)
(programma)
Il corso tratterà i seguenti aspetti della programmazione in Python: • Introduzione alla programmazione: architetture informatiche; memoria e dati; CPU e programmi; linguaggi di programmazione; problemi, algoritmi e programmi. • Come utilizzare l'interprete Python: richiamare l'interprete; passaggio di argomenti; modalità interattiva; i notebook; piattaforme di codifica online. • Concetti base della programmazione Python: variabili e assegnamenti; espressioni ed istruzioni; operazioni; stampa; commenti; debugging; tipi di dati; numeri e stringhe; input. • Funzioni: funzioni builtin; chiamate di funzione; importazione di moduli e funzioni; funzioni matematiche; composizione di funzioni; definire nuove funzioni; parametri e argomenti; argomenti obbligatori e facoltativi; ordine degli argomenti e assegnazione delle parole chiave; ambito di una variabile. • Prendere decisioni: espressioni booleane e operatori logici; esecuzione condizionale e alternativa; costrutto if-elif-else; condizionali concatenati e annidati. • Iterazioni: riassegnazione e aggiornamento delle variabili; costrutto while; istruzione break; sequenze e cicli; l'operatore in; costrutto for. • Strutture dati (stringhe, liste, tuple, dizionari): definizione, proprietà, operazioni e metodi; indicizzazione vs assegnazione; mutabilità e immutabilità; map, flter e reduce; referenziazione e aliasing; impacchettamento spacchettamento; ricerca e ricerca inversa; argomenti di lunghezza variabile. • File: persistenza; apertura e chiusura e costrutto with; lettura e scrittura; operatore format; nomi di file e percorsi; catturare le eccezioni; pickling. • Moduli e pacchetti: definizione di un modulo; definire un pacchetto; importazione di un pacchetto vs. importazione di un modulo vs. importazione di una funzione; installazione di pacchetti. • Classi e oggetti: classi, tipi, oggetti e istanze; istanze come valori di ritorno; attributi e metodi; mutabilità degli oggetti; l'istanziamento e il metodo __init__; overloading di un operatore e metodi speciali; metodi statici e metodi di classe; ereditarietà. • Pythonic programming: espressioni condizionali; EAFP (Easier to Ask for Forgiveness than Permission); list comprehension; generator expressions; operatori any e all; insiemi. • Programmazione scientifica: Numpy, array e broadcasting; Panda, dataframe e serie; Scikit Learn e introduzione al machine learning con Python; Matplotlib e visualizzazione dati in Python
(testi)
Allen B. Downey, “Think in Python" (2nd edition)”, Green Tea Press, 2015
|