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

Mutuazione: 20410560-1 MODULO A - PROGRAMMAZIONE IN PYTHON in Scienze Computazionali LM-40 GUARINO STEFANO

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, “Pensare in Python" (Edizione 2)”, O’Reilly, ISBN-13: 978-8823822641

Modalità Frequenza

La frequenza al corso non è obbligatoria, ma in caso di 2 o più assenze il lunedì sarà richiesto agli studenti di sostenere un orale, altrimenti facoltativo.

Modalità Valutazione

Ogni settimana, a partire dalla seconda, la lezione del lunedì sarà dedicata ad una sessione di esercizi da consegnare al termine della lezione e che saranno valutati per un massimo di 3.5 punti a sessione, pari a 21 punti totali. Al termine del corso, gli studenti dovranno sostenere un quiz a risposta multipla per un massimo di 10 punti. Una prova orale sarà infine prevista per gli studenti non frequentanti o per coloro che non avranno consegnato gli esercizi in tempo. L'orale sarà invece facoltativo per gli altri studenti.

scheda docente | materiale didattico

Mutuazione: 20410560-1 MODULO A - PROGRAMMAZIONE IN PYTHON in Scienze Computazionali LM-40 GUARINO STEFANO

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, “Pensare in Python" (Edizione 2)”, O’Reilly, ISBN-13: 978-8823822641

Modalità Frequenza

La frequenza al corso non è obbligatoria, ma in caso di 2 o più assenze il lunedì sarà richiesto agli studenti di sostenere un orale, altrimenti facoltativo.

Modalità Valutazione

Ogni settimana, a partire dalla seconda, la lezione del lunedì sarà dedicata ad una sessione di esercizi da consegnare al termine della lezione e che saranno valutati per un massimo di 3.5 punti a sessione, pari a 21 punti totali. Al termine del corso, gli studenti dovranno sostenere un quiz a risposta multipla per un massimo di 10 punti. Una prova orale sarà infine prevista per gli studenti non frequentanti o per coloro che non avranno consegnato gli esercizi in tempo. L'orale sarà invece facoltativo per gli altri studenti.