20410560-1 - MODULO A - PROGRAMMAZIONE IN PYTHON

Acquisire competenze per l'implementazione al calcolatore di programmi ad alto livello nel linguaggio interpretato Python.
Conoscere i costrutti fondamentali di Python e la sua applicazione a casi d'uso legati al calcolo scientifico e all'elaborazione dei dati.

Curriculum

scheda docente | materiale didattico

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 Adottati

Allen B. Downey, “Think in Python" (2nd edition)”, Green Tea Press, 2015

Bibliografia Di Riferimento

https://greenteapress.com/thinkpython2/thinkpython2.pdf

Modalità Frequenza

La frequenza non è obbligatoria, ma è caldamente consigliata (si vedano i dettagli sulla valutazione)

Modalità Valutazione

La valutazione si divide in tre parti: • Prova pratica [max 20 pt], sostenibile come - 5 esercitazioni in itinere (ogni lunedì, eccetto il primo) da consegnare a fine lezione - un breve progetto finale da concordare con il docente • Prova scritta a scelta multipla finale [max 10 pt] • Prova orale (opzionale)

scheda docente | materiale didattico

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 Adottati

Allen B. Downey, “Think in Python" (2nd edition)”, Green Tea Press, 2015

Bibliografia Di Riferimento

https://greenteapress.com/thinkpython2/thinkpython2.pdf

Modalità Frequenza

La frequenza non è obbligatoria, ma è caldamente consigliata (si vedano i dettagli sulla valutazione)

Modalità Valutazione

La valutazione si divide in tre parti: • Prova pratica [max 20 pt], sostenibile come - 5 esercitazioni in itinere (ogni lunedì, eccetto il primo) da consegnare a fine lezione - un breve progetto finale da concordare con il docente • Prova scritta a scelta multipla finale [max 10 pt] • Prova orale (opzionale)

scheda docente | materiale didattico

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 Adottati

Allen B. Downey, “Think in Python" (2nd edition)”, Green Tea Press, 2015

Bibliografia Di Riferimento

https://greenteapress.com/thinkpython2/thinkpython2.pdf

Modalità Frequenza

La frequenza non è obbligatoria, ma è caldamente consigliata (si vedano i dettagli sulla valutazione)

Modalità Valutazione

La valutazione si divide in tre parti: • Prova pratica [max 20 pt], sostenibile come - 5 esercitazioni in itinere (ogni lunedì, eccetto il primo) da consegnare a fine lezione - un breve progetto finale da concordare con il docente • Prova scritta a scelta multipla finale [max 10 pt] • Prova orale (opzionale)