Dopo aver completato con successo questo insegnamento, gli studenti saranno in grado di sviluppare codice Python robusto, manutenibile ed efficiente, con particolare attenzione all'analisi e alla manipolazione di set di dati e all'elaborazione multimediale semplice, tra cui l'analisi di immagini e video.
Questo insegnamento offre un'introduzione completa alla programmazione Python, con una forte enfasi sulla scrittura di codice robusto, manutenibile ed efficiente. Progettato per studenti con poca o nessuna esperienza di programmazione, l'insegnamento sviluppa progressivamente competenze nei concetti fondamentali di Python e in tecniche avanzate per la manipolazione dei dati e l'elaborazione multimediale.
Gli studenti impareranno ad analizzare e manipolare set di dati utilizzando le potenti librerie di Python, come Pandas e NumPy, e acquisiranno esperienza pratica nell'elaborazione di immagini e video utilizzando strumenti come OpenCV e PIL. Attraverso esercitazioni pratiche e progetti, gli studenti svilupperanno la capacità di scrivere codice pulito e modulare e di applicarlo a problemi reali nell'ambito della scienza dei dati e delle applicazioni multimediali.
Al termine dell'insegnamento, gli studenti saranno in grado di:
Questa unità didattica adotta un approccio didattico misto e pratico, progettato per promuovere sia la comprensione concettuale che la competenza pratica nella programmazione Python. I metodi didattici includono:
Gli studenti con certificazioni valide per Disturbi Specifici dell’Apprendimento (DSA), per disabilità o altri bisogni educativi sono invitati a contattare il docente e il referente di Scuola per la disabilità all’inizio dell’insegnamento per concordare eventuali modalità didattiche che, nel rispetto degli obiettivi dell’insegnamento, tengano conto delle modalità di apprendimento individuali. I contatti del referente di Scuola per la disabilità sono disponibili al seguente link Comitato di Ateneo per l’inclusione delle studentesse e degli studenti con disabilità o con DSA | UniGe | Università di Genova
L'insegnamento tratterà i seguenti aspetti della programmazione Python:
Allen B. Downey, Think Python: How to Think Like a Computer Scientist (2a edizione), O’Reilly Media, 2015. Un'introduzione ai concetti di programmazione in Python, adatta anche ai principianti.
Jake VanderPlas, Python Data Science Handbook, O’Reilly Media, 2016. Illustra gli strumenti essenziali per la data science in Python, tra cui NumPy, Pandas, Matplotlib e Scikit-learn.
Charles Severance, Python for Everybody: Exploring Data Using Python 3, CreateSpace, 2016. Un'introduzione semplice a Python, con particolare attenzione alla gestione dei dati e alle applicazioni pratiche.
Mark Lutz, Learning Python (5a edizione), O’Reilly Media, 2013. Un'introduzione completa a Python, che copre argomenti sia fondamentali che avanzati.
Wes McKinney, Python for Data Analysis (3a edizione), O'Reilly Media, 2022. Si concentra sul data wrangling con Pandas, NumPy e Jupyter, ideale per la parte di analisi dati del corso.
Adrian Rosebrock, Practical Python and OpenCV (3a edizione), PyImageSearch, 2016. Una guida pratica all'elaborazione di immagini e video con OpenCV e Python.
Documentazione ufficiale di Python
Documentazione di Pandas
Documentazione di NumPy
Tutorial su OpenCV e Python
Progetto Jupyter
Ricevimento: Su appuntamento
Ricevimento: Il ricevimento studenti è su appuntamento da concordare con il docente tramite email: andrea.sciarrone@unige.it
L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy
L'esame finale è progettato per valutare la comprensione e l'applicazione pratica da parte degli studenti dei concetti chiave trattati durante il corso. Valuta sia le conoscenze teoriche che le competenze di programmazione pratica in Python, con particolare attenzione alla manipolazione dei dati e all'elaborazione multimediale.
Formato
Durata: 2 ore
Tipo: Scritto e pratico (al computer)
Struttura:
1. Compiti settimanali (30%)
2. Quiz di metà semestre (10%)
3. Progetto finale (30%)
4. Esame finale (20%)
5. Partecipazione e coinvolgimento (10%)