ID:
LABA02
Tipo Insegnamento:
Obbligatorio
Durata (ore):
48
CFU:
6
SSD:
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Url:
BUSINESS ADMINISTRATION/BASE Anno: 1
Anno:
2023
Dati Generali
Periodo di attività
Secondo Semestre (05/02/2024 - 04/05/2024)
Syllabus
Obiettivi Formativi
Questo corso si basa sul lavoro svolto durante il primo modulo del Coding in Action Lab.
Nella prima fase, il corso introduce i concetti di costo computazionale e di efficienza di un programma, illustra alcune buone prassi per scrivere codice leggibile, organizzato ed efficiente, e presenta i principali strumenti per l'elaborazione, l'analisi e la visualizzazione dei dati disponibili in Python, uno dei linguaggi di programmazione di riferimento nel mondo della "data science".
Nella seconda fase, il corso si concentra sulle principali tecniche di elaborazione e analisi dati: acquisizione, pulizia e preprocessamento dei dati; analisi statistica e visualizzazione dati; clustering e classificazione; apprendimento supervisionato e non.
A tal fine, gli studenti affronteranno problemi concreti utilizzando dati reali: segmentazione della clientela, definizione di un sistemi di raccomandazione, e progettazione di un sistema predittivo della qualità di un prodotto.
Nella prima fase, il corso introduce i concetti di costo computazionale e di efficienza di un programma, illustra alcune buone prassi per scrivere codice leggibile, organizzato ed efficiente, e presenta i principali strumenti per l'elaborazione, l'analisi e la visualizzazione dei dati disponibili in Python, uno dei linguaggi di programmazione di riferimento nel mondo della "data science".
Nella seconda fase, il corso si concentra sulle principali tecniche di elaborazione e analisi dati: acquisizione, pulizia e preprocessamento dei dati; analisi statistica e visualizzazione dati; clustering e classificazione; apprendimento supervisionato e non.
A tal fine, gli studenti affronteranno problemi concreti utilizzando dati reali: segmentazione della clientela, definizione di un sistemi di raccomandazione, e progettazione di un sistema predittivo della qualità di un prodotto.
Prerequisiti
Nessuno.
Metodi didattici
L'insegnamento frontale sarà utilizzato per presentare agli studenti i nuovi argomenti. Per ogni argomento, verranno quindi considerati alcuni esempi e casi di studio che gli studenti dovranno affrontare in autonomia, da soli o in gruppo, in linea con il paradigma del “learning by doing”. La partecipazione degli studenti alle lezioni è fortemente incoraggiata.
Verifica Apprendimento
La valutazione di questo corso si baserà su una combinazione di progetti di programmazione da svolgere durante le settimane di corso e da discutere con il docente (70%) e di un esame finale (30%). L'esame finale sarà composto da un quiz a risposta multipla.
Tutti gli elaborati relativi a problemi di programmazione saranno valutati come segue:
• Se il codice fornisce la risposta corretta utilizzando l'approccio richiesto: 100%
• Se generalmente utilizza l'approccio corretto, ma la risposta è errata a causa di alcuni piccoli errori: 70-90%
• Se utilizza correttamente i concetti fondamentali e fa qualche progresso nel tentativo di risolvere il problema: 40-60%
• Se la risposta dimostra una mancanza di comprensione di alcuni o tutti i concetti fondamentali: 0-40%
Per gli studenti non frequentanti, i progetti peseranno il 50% del voto e sarà previsto anche un esame orale per il rimanente 20%.
Tutti gli elaborati relativi a problemi di programmazione saranno valutati come segue:
• Se il codice fornisce la risposta corretta utilizzando l'approccio richiesto: 100%
• Se generalmente utilizza l'approccio corretto, ma la risposta è errata a causa di alcuni piccoli errori: 70-90%
• Se utilizza correttamente i concetti fondamentali e fa qualche progresso nel tentativo di risolvere il problema: 40-60%
• Se la risposta dimostra una mancanza di comprensione di alcuni o tutti i concetti fondamentali: 0-40%
Per gli studenti non frequentanti, i progetti peseranno il 50% del voto e sarà previsto anche un esame orale per il rimanente 20%.
Testi
Allen B. Downey, “Think Python: How to Think Like a Computer Scientist (2nd Edition)”, O’Reilly, ISBN-13: 978-1491939369
Hastie, T., Tibshirani, R., Friedman, J. H., & Friedman, J. H. (2009). The elements of statistical learning: data mining, inference, and prediction (Vol. 2, pp. 1-758). New York: springer.
VanderPlas, J. (2016). Python data science handbook: Essential tools for working with data. " O'Reilly Media, Inc.".
Shmueli, G., Bruce, P. C., Gedeck, P., & Patel, N. R. (2019). Data mining for business analytics: concepts, techniques and applications in Python. John Wiley & Sons.
Hastie, T., Tibshirani, R., Friedman, J. H., & Friedman, J. H. (2009). The elements of statistical learning: data mining, inference, and prediction (Vol. 2, pp. 1-758). New York: springer.
VanderPlas, J. (2016). Python data science handbook: Essential tools for working with data. " O'Reilly Media, Inc.".
Shmueli, G., Bruce, P. C., Gedeck, P., & Patel, N. R. (2019). Data mining for business analytics: concepts, techniques and applications in Python. John Wiley & Sons.
Contenuti
Il corso tratterà i seguenti aspetti della programmazione informatica:
• Principi di complessità computazione, efficienza di un algoritmo
• Pythonic programming: espressioni condizionali; EAFP (Easier to Ask for Forgiveness than Permission); list comprehension; operatori any e all; insiemi.
• Pacchetti per la programmazione scientifica: Numpy, Panda, Scipy, Scikit Learn, Matplotlib
• Ingestione, pulizia e preelaborazione dei dati. Visualizzazione di distribuzioni statistiche. Analisi di correlazione, modelli di regressione e previsione. Segmentazione dei clienti e modello RFM. Sistemi di raccomandazione.
Apprendimento e classificazione supervisionati e non.
• Principi di complessità computazione, efficienza di un algoritmo
• Pythonic programming: espressioni condizionali; EAFP (Easier to Ask for Forgiveness than Permission); list comprehension; operatori any e all; insiemi.
• Pacchetti per la programmazione scientifica: Numpy, Panda, Scipy, Scikit Learn, Matplotlib
• Ingestione, pulizia e preelaborazione dei dati. Visualizzazione di distribuzioni statistiche. Analisi di correlazione, modelli di regressione e previsione. Segmentazione dei clienti e modello RFM. Sistemi di raccomandazione.
Apprendimento e classificazione supervisionati e non.
Risultati di Apprendimento Attesi
Conoscenza e comprensione:
Entro la fine di questo corso, gli studenti capiranno che un buon programma risolve il compito dato utilizzando la minor quantità possibile di risorse. Impareranno la sintassi specifica di Python e le migliori pratiche necessarie per rendere la programmazione più veloce e aumentare le prestazioni. Inoltre, gli studenti impareranno come utilizzare, a livello introduttivo, i più noti pacchetti Python per l'analisi e la visualizzazione dei dati: NumPy, Pandas, Scikit-learn e Matplotlib.
Al termine del corso, gli studenti conosceranno i concetti principali dell'analisi dei dati e comprenderanno l'importanza di utilizzare algoritmi adeguati per estrarre tendenze e modelli dai dati, combinando tecniche di data mining, modellazione predittiva e apprendimento automatico.
Il corso insegnerà agli studenti a utilizzare un approccio alla risoluzione dei problemi e al processo decisionale basato sui dati, promuovendo il loro pensiero critico e la loro capacità di lavorare da soli o in gruppo.
Applicazione delle conoscenze e della comprensione:
Per verificare la comprensione dei concetti visti in classe, agli studenti verranno assegnati progetti che richiedono di trattare dati reali. Verrà chiesto loro di:
- manipolare ed elaborare rapidamente grandi insiemi di dati attraverso dataframe e array
- Visualizzare dati e funzioni
- Operare analisi descrittive e modellizzazioni di base (statistiche, istogrammi, interpolazione, clustering, fitting).
Il corso preparerà gli studenti a corsi più avanzati di analisi dei dati e li renderà pronti a completare progetti in altri corsi che richiedono un approccio computazionale ai dati.
Formulare giudizi:
Al termine del programma di studio, gli studenti saranno in grado di:
- confrontare semplici algoritmi che risolvono lo stesso compito in termini di costo computazionale
- Affrontare un semplice progetto di analisi dei dati
Abilità comunicative:
Una volta a conoscenza dei concetti di efficienza computazionale e di memoria e alla loro formalizzazione, gli studenti capiranno che il "costo" della soluzione di un problema può essere quantificato ed espresso con precisione.
Attraverso esempi, casi di studio e progetti, gli studenti impareranno a comunicare i risultati di un'attività di analisi dei dati e a giustificare la scelta di specifici algoritmi, metodi e tecniche.
Capacità di apprendimento:
Gli studenti saranno introdotti a una serie di librerie avanzate/professionali per l'analisi dei dati. Alla fine del corso, saranno in grado di navigare autonomamente nella libreria standard di Python e nel web per trovare le librerie e gli strumenti giusti per svolgere un determinato compito.
Entro la fine di questo corso, gli studenti capiranno che un buon programma risolve il compito dato utilizzando la minor quantità possibile di risorse. Impareranno la sintassi specifica di Python e le migliori pratiche necessarie per rendere la programmazione più veloce e aumentare le prestazioni. Inoltre, gli studenti impareranno come utilizzare, a livello introduttivo, i più noti pacchetti Python per l'analisi e la visualizzazione dei dati: NumPy, Pandas, Scikit-learn e Matplotlib.
Al termine del corso, gli studenti conosceranno i concetti principali dell'analisi dei dati e comprenderanno l'importanza di utilizzare algoritmi adeguati per estrarre tendenze e modelli dai dati, combinando tecniche di data mining, modellazione predittiva e apprendimento automatico.
Il corso insegnerà agli studenti a utilizzare un approccio alla risoluzione dei problemi e al processo decisionale basato sui dati, promuovendo il loro pensiero critico e la loro capacità di lavorare da soli o in gruppo.
Applicazione delle conoscenze e della comprensione:
Per verificare la comprensione dei concetti visti in classe, agli studenti verranno assegnati progetti che richiedono di trattare dati reali. Verrà chiesto loro di:
- manipolare ed elaborare rapidamente grandi insiemi di dati attraverso dataframe e array
- Visualizzare dati e funzioni
- Operare analisi descrittive e modellizzazioni di base (statistiche, istogrammi, interpolazione, clustering, fitting).
Il corso preparerà gli studenti a corsi più avanzati di analisi dei dati e li renderà pronti a completare progetti in altri corsi che richiedono un approccio computazionale ai dati.
Formulare giudizi:
Al termine del programma di studio, gli studenti saranno in grado di:
- confrontare semplici algoritmi che risolvono lo stesso compito in termini di costo computazionale
- Affrontare un semplice progetto di analisi dei dati
Abilità comunicative:
Una volta a conoscenza dei concetti di efficienza computazionale e di memoria e alla loro formalizzazione, gli studenti capiranno che il "costo" della soluzione di un problema può essere quantificato ed espresso con precisione.
Attraverso esempi, casi di studio e progetti, gli studenti impareranno a comunicare i risultati di un'attività di analisi dei dati e a giustificare la scelta di specifici algoritmi, metodi e tecniche.
Capacità di apprendimento:
Gli studenti saranno introdotti a una serie di librerie avanzate/professionali per l'analisi dei dati. Alla fine del corso, saranno in grado di navigare autonomamente nella libreria standard di Python e nel web per trovare le librerie e gli strumenti giusti per svolgere un determinato compito.
Criteri Necessari per l'Assegnazione del Lavoro Finale
Non è prevista l'assegnazione di tesi
Corsi
Corsi
BUSINESS ADMINISTRATION
Laurea
3 anni
No Results Found
Persone
Persone
Altro personale docente
No Results Found