PROGRAMMING FOR DATA SCIENCE

Francesco ORCIUOLI PROGRAMMING FOR DATA SCIENCE

0222800027
DIPARTIMENTO DI SCIENZE AZIENDALI - MANAGEMENT & INNOVATION SYSTEMS
CORSO DI LAUREA MAGISTRALE
DATA SCIENCE E GESTIONE DELL'INNOVAZIONE
2024/2025



OBBLIGATORIO
ANNO CORSO 1
ANNO ORDINAMENTO 2022
PRIMO SEMESTRE
CFUOREATTIVITÀ
642LEZIONE
AppelloData
ORCIUOLI11/06/2025 - 14:30
ORCIUOLI02/07/2025 - 14:30
ORCIUOLI16/07/2025 - 14:30
ORCIUOLI03/09/2025 - 14:30
Obiettivi
L’INSEGNAMENTO SI FOCALIZZA SULLO STUDIO DELLE TECNICHE DI PROGRAMMAZIONE UTILI AL DATA ANALYST/SCIENTIST PER PROGETTARE, IMPLEMENTARE, TESTARE E OTTIMIZZARE DATA PIPELINE SEMPLICI E COMPLESSE. IN PARTICOLARE, LO STUDENTE ACQUISIRÀ CONOSCENZE RELATIVE AI PARADIGMI DELLA PROGRAMMAZIONE FUNZIONALE E DELLA PROGRAMMAZIONE OBJECT-ORIENTED, A STRUMENTI E TECNICHE PER LA MANIPOLAZIONE DEI DATI CON PARTICOLARE RIFERIMENTO ALL’ARRAY-ORIENTED PROGRAMMING E ALL’ORGANIZZAZIONE DI TIPO TABELLARE E, INFINE, AD APPROCCI E STRUMENTI PER DATA ENGINEERING. ALLA FINE DEL PERCORSO, LO STUDENTE SARÀ IN GRADO DI APPLICARE LE CONOSCENZE ACQUISITE PER PROGETTARE E SVILUPPARE DATA PIPELINE SEMPLICI E COMPLESSE UTILIZZANDO IL LINGUAGGIO DI PROGRAMMAZIONE PYTHON ED AMBIENTI DI PROGRAMMAZIONE DI TIPO IDE E BASATI SU NOTEBOOK.
Alla fine del percorso formativo, lo studente saprà:
- valutare in maniera critica e implementare in autonomia adeguate soluzioni di Data Science in diversi contesti;
- scegliere i criteri decisionali, le metodologie, le tecniche e le tecnologie più adatte alla soluzione di problemi specifici e a classi di problemi.
Lo studente, inoltre, saprà attuare opportune sintesi per comunicare efficacemente i risultati dell'analisi dei dati (anche Big Data) ed evidenziarne gli aspetti essenziali utili per l'individuazione delle soluzioni.
Infine, lo studente svilupperà le capacità di:
- studiare in modo autonomo, integrando efficacemente le conoscenze acquisite;
- mantenere aggiornate le proprie competenze in un settore in continua evoluzione
come l'informatica;
- intraprendere efficacemente percorsi formativi di livello superiore.
Prerequisiti
PER AFFRONTARE ADEGUATAMENTE LO STUDIO DEI CONTENUTI RELATIVI AL PRESENTE INSEGNAMENTO È AUSPICABILE CHE GLI STUDENTI CONOSCANO ALMENO UN LINGUAGGIO DI PROGRAMMAZIONE (PREFERIBILMENTE PYTHON).
Contenuti
I CONTENUTI DELL'INSEGNAMENTO SONO SUDDIVISI IN QUATTRO PARTI:

I – PARTE 1 (8 ORE)
- APPROFONDIMENTI SU STRUTTURE DATI BUILT-IN IN PYTHON, COMPREHENSIONS, GENERATORS (LAZY EVALUATION) (3 ORE DI LEZIONE FRONTALE)
- PROGRAMMAZIONE FUNZIONALE E PARADIGMA MAP-REDUCE IN PYTHON (3 ORE DI LEZIONE FRONTALE)
- TIME E MEMORY PROFILING (1 ORA DI LEZIONE FRONTALE)
- TYPE HINTS (1 ORA DI LEZIONE FRONTALE)

II – PARTE 2 (14 ORE)
- NOZIONI DI BASE SULLA MANIPOLAZIONE DEI DATI (2 ORE DI LEZIONE FRONTALE)
- DATA SOURCES (2 ORE DI LEZIONE FRONTALE)
- ARRAY-ORIENTED PROGRAMMING: NUMPY (4 ORE DI LEZIONE FRONTALE)
- MANIPOLAZIONE DEI DATI TABULARI: PANDAS (6 ORE DI LEZIONE FRONTALE)

III – PARTE 3 (14 ORE)
- DATA LOADING (2 ORE DI LEZIONE FRONTALE)
- DATA CLEANING (2 ORE DI LEZIONE FRONTALE)
- DATA PREPARATION (2 ORE DI LEZIONE FRONTALE)
- DATA WRANGLING (4 ORE DI LEZIONE FRONTALE)
- DATA AGGREGATION (2 ORE DI LEZIONE FRONTALE)
- MANIPOLAZIONE DELLE TIME SERIES (2 ORE DI LEZIONE FRONTALE)

IV – PARTE 4 (6 ORE)
- INTRODUZIONE AGLI STRUMENTI PER IL MACHINE LEARNING (2 ORE DI LEZIONE FRONTALE)
- SEMANTIC DATA (2 ORE DI LEZIONE FRONTALE)
- ELEMENTI DI DATA ENGINEERING: DATA PIPELINE (2 ORE DI LEZIONE FRONTALE)
Metodi Didattici
LE ATTIVITÀ DI INSEGNAMENTO (42 ORE DI LEZIONE FRONTALE) SARANNO SUDDIVISE IN QUATTRO PARTI COME INDICATO NELLA SEZIONE “CONTENUTI”. ALLA FINE DI OGNI PARTE, GLI STUDENTI SVOLGERANNO DEGLI ESERCIZI MIRATI AL CONSOLIDAMENTO DELLA CONOSCENZA ACQUISITA E ALLO SVILUPPO DELLA RELATIVA CAPACITÀ DI APPLICAZIONE. LO SVOLGIMENTO DEGLI ESERCIZI SARÀ OGGETTO DI DISCUSSIONE IN AULA. LA FREQUENZA ALLE LEZIONI NON È OBBLIGATORIA MA È FORTEMENTE CONSIGLIATA.
Verifica dell'apprendimento
LA VALUTAZIONE SARÀ EFFETTUATA MEDIANTE DUE PROVE: UN PROJECT WORK INDIVIDUALE ED UNA PROVA ORALE. NELL'AMBITO DEL PROJECT WORK, LO STUDENTE DOVRÀ RISOLVERE UN PROBLEMA DI ELABORAZIONE DATI (LA TEMATICA E GLI OBIETTIVI SARANNO CONCORDATI CON IL DOCENTE) UTILIZZANDO LE CONOSCENZE ACQUISITE E LE ABILITÀ SVILUPPATE DURANTE IL CORSO.

LA PROVA ORALE DURERÀ CIRCA 30 MINUTI PER OGNI STUDENTE E SARÀ ARTICOLATA IN DUE FASI: 1) DISCUSSIONE SULLO SVOLGIMENTO E SUI RISULTATI DEL PROJECT WORK, E 2) APPROFONDIMENTO SU ALCUNI DEGLI ARGOMENTI TRATTATI A LEZIONE (METODOLOGIE, TECNICHE E STRUMENTI PER LA DEFINIZIONE DI DATA PIPELINE IN PYTHON). LE FASI SARANNO VALUTATE SINGOLARMENTE IN TRENTESIMI. IL VOTO FINALE SARÀ CALCOLATO COME MEDIA DEI RISULTATI OTTENUTI NELLE DUE FASI. IL PUNTEGGIO MINIMO PER SUPERARE L'ESAME È 18/30 (CONOSCENZA LIMITATA DEGLI ARGOMENTI). IL PUNTEGGIO MASSIMO È 30/30 LODE (IL CANDIDATO DIMOSTRA SIGNIFICATIVA PADRONANZA DEI CONTENUTI). INOLTRE, PER SUPERARE L'ESAME È NECESSARIO OTTENERE UN VOTO MAGGIORE O UGUALE A 18/30 IN ENTRAMBE LE FASI.

PER QUANTO RIGUARDA LA PRIMA FASE, IL PUNTEGGIO MINIMO DI 18/30 È OTTENUTO A SEGUITO DELLO SVILUPPO DI UNA SEMPLICE "DATA PIPELINE" (AD ESEMPIO DI TIPO Extract-Transform-Load SENZA PARTICOLARI COMPLESSITÀ DERIVANTI DALLA TRASFORMAZIONE O DALLA GESTIONE DEI DATI) e dalla discussione del progetto che dimostri sufficiente padronanza del dominio APPLICATIVO e delle tecniche utilizzate. IL PUNTEGGIO MASSIMO 30/30 È OTTENUTO A SEGUITO DELLO SVILUPPO DI UNA "DATA PIPELINE" COMPLESSA (CHE PREVEDE, AD ESEMPIO, SOLUZIONI ORIGINALI DI DATA WRANGLING) E CON UNA DISCUSSIONE CHE EVIDENZIA UNA NOTEVOLE PADRONANZA DEL DOMINIO APPLICATIVO OLTRE CHE DELLE TECNICHE DI TRATTAMENTO DEI DATI UTILIZZATE.

PER QUANTO RIGUARDA LA SECONDA FASE, IL PUNTEGGIO MINIMO DI 18/30 È OTTENUTO DIMOSTRANDO LA CONOSCENZA DELLE ATTIVITÀ PRINCIPALI DI UN WORKFLOW DI ANALISI DEI DATI E DELLE FUNZIONALITÀ BASICHE DELLE LIBRERIE PRINCIPALI TRATTATE A LEZIONE (PANDAS, NUMPY, MATPLOTLIB). IL PUNTEGGIO MASSIMO 30/30 È OTTENUTO DIMOSTRANDO DI CONOSCERE E SAPER SELEZIONARE TECNICHE E STRUMENTI ADEGUATI AD UNO SPECIFICO SCENARIO APPLICATIVO DI ANALISI DATI E CONOSCERE LE FUNZIONALITÀ AVANZATE DELLE PRINCIPALI LIBRERIE PER L'ANALISI DI DATI TRATTATE A LEZIONE. LA LODE È ASSEGNATA IN CASO DI PUNTEGGIO 30/30 IN ENTRAMBE LE FASI DI VALUTAZIONE E NEL CASO IN CUI IL CANDIDATO SI DIMOSTRI CAPACE DI PROPORRE SOLUZIONI EFFICIENTI, OLTRE CHE EFFICACI, PER LA REALIZZAZIONE DI DATA PIPELINE IN CONTESTI SPECIFICI.
Testi
TESTI PRINCIPALI:

- WES MCKINNEY – PYTHON FOR DATA ANALYSIS – O’REILLY (TERZA EDIZIONE)
Altre Informazioni
IL MATERIALE DIDATTICO INTEGRATIVO SARÀ MESSO A DISPOSIZIONE DEGLI STUDENTI PRIMA DELLE RELATIVE LEZIONI MEDIANTE LO SPAZIO DI LAVORO CONDIVISO ASSOCIATO ALLA CLASSE (INFORMAZIONI A RIGUARDO SARANNO FORNITE DAL DOCENTE ALL'INIZIO DEL CORSO).
Orari Lezioni

  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2025-04-28]