Nuova ricerca

Alberto ZAFFARONI

Professore Ordinario
Dipartimento di Economia "Marco Biagi"

Insegnamento: Metodi quantitativi e computer science

Analisi dei dati per l'economia e il management (D.M.270/04) (Offerta formativa 2022)

Obiettivi formativi

Lo scopo del corso di Metodi Quantitativi e Computer Science è di: (i) sviluppare la conoscenza e la capacità di usare gli strumenti quantitativi richiesti dall'analisi economica; (ii) apprendere le basi di programmazione per strutturare soluzioni software che sfruttino tali strumenti di analisi.
Il corso è dedicato alla presentazione di una serie di strumenti matematici e di programmazione essenziali al resto del percorso magistrale.

Prerequisiti

Si presume che gli studenti abbiano familiarità con i contenuti dei corsi di matematica di base a livello di laurea triennale. Specificamente, ci si riferisce a: operazioni con le matrici, determinante e rango di una matrice, risoluzione di sistemi di equazioni lineari, derivate e calcolo differenziale in una variabile, calcolo integrale, e teoria degli insiemi. Questi argomenti sono presentati in breve in un corso Moocs preparato appositamente per gli studenti del corso e disponibile online.

Programma del corso

Per ciascuna attività del programma è prevista l’acquisizione di CFU (Crediti Formativi Universitari) di didattica frontale e relative ore di lezione. Si noti che in questo insegnamento per ogni CFU sono previste 8 ore di didattica frontale e 17 ore di studio autonomo di studentesse e studenti. Dunque, un CFU equivale ad un impegno standard di studio pari a 25 ore.

1. Struttura algebrica degli spazi euclidei: spazi e sottospazi lineari, dipendenza lineare di vettori, base e dimensione di un sottospazio, trasformazioni lineari, matrici, immagine e nucleo (1.5 CFU).
2. Autovalori e autovettori di una matrice quadrata, diagonalizzazione (1 CFU).
3. Forme quadratiche e loro segno (0.5 CFU)
4. Calcolo differenziale in più variabili (1 CFU).
5. Ottimizzazione senza vincoli e con vincoli di uguaglianza e disuguaglianza (1 CFU).
6. Introduzione ai sistemi dinamici, risoluzione di equazioni differenziali e alle differenze finite, e di sistemi lineari di equazioni (1 CFU).
7. Programmazione – in linguaggio Python
• (1 CFU) Principi di programmazione:
i. Nozioni di base circa linguaggi di programmazione imperativi e ad oggetti (Python), e linguaggi dichiarativi (SQL);
ii. variabili, funzioni, librerie etc.
• (1 CFU) Algoritmi e Strutture dati:
i. nozioni base sullo studio della complessità degli algoritmi;
ii. principali strutture dati e caratteristiche
• (1 CFU) Strumenti e librerie:
i. IPython notebook (Jupyter), Google Colab, matplotlib, scikit-learn, etc.;
ii. Come strutturare un progetto software con librerie Python.
8. Gestione e interrogazione di dati
• (1 CFU) Database relazionali:
i. principi di interrogazione dati in SQL;
ii. integrazione di SQL in Python.
• (2 CFU) Gestire dati all’interno di progetti software per l’analisi di dati:
i. Dataframe: gestione dei dati all’interno di un progetto software (libreria Pandas);
ii. Data Exploration, Data wrangling e data preparation: nozioni base per la manipolazione e preparazione di dati per l’analisi;
iii. Serie temporali (in Pandas);

Metodi didattici

Il metodo didattico si basa su: (i) lezioni frontali, in cui si presentano i concetti teorici e si sviluppa la capacità pratica di risolvere esercizi; (ii) laboratori didattici al computer con linguaggio di programmazione Python e ambiente Google Colab.
È richiesta la partecipazione attiva degli studenti. Sono previste esercitazioni da parte di un tutor. La frequenza è caldamente consigliata.
Il corso è erogato in lingua italiana. Tutte le informazioni tecniche e organizzative sull'insegnamento, nonché il materiale didattico, e le registrazioni delle lezioni saranno caricati su piattaforma MS Teams e Moodle del corso; quest’ultima contiene anche esercizi aggiuntivi.

Le lezioni verrano registrate e messe a disposizione su piattaforma MS Teams a partire dal 1 Ottobre 2022.

Testi di riferimento

Matematica
[1] Simon C.P. and Blume L., Mathematics for Economists, 1994, Norton. Traduzione
italiana: Matematica per le Scienze Economiche, UBE Egea, 2015.

Computer Science
[2] Python for Data Analysis, 2nd Edition (2017) Wes McKinne, O'Reilly Media, Inc. ISBN: 9781491957660
[3] Introduction to Computation and Programming Using Python, Third Edition, John V. Guttag

Verifica dell'apprendimento

L'esame è diviso in tre fasi:
1. un esame scritto con problemi e domande aperte (carta, penna e calcolatrice).
2. esame orale su argomenti di teoria.
3. prova scritta di laboratorio, della durata di un’ora e mezza. All’interno della prova scritta verrà richiesto di svolgere esercizi pratici di programmazione e di rispondere a quesiti (domande aperte e/o domande a risposta multipla).
In caso di necessità di esaminazione a distanza, causa emergenza COVID-19, le prove verranno svolta online, in modalità proctored.

Risultati attesi

1. Conoscenza e capacità di comprensione:
- Comprendere la modellistica economica e finanziaria, sia nel caso statico che nel caso dinamico, e conoscere gli strumenti per analizzarla, con particolare enfasi ai metodi di ottimizzazione e alla soluzione dei sistemi dinamici.
- Conoscenza delle principali metodologie e approcci di programmazione per l’analisi dei dati. Capacità di comprendere e formalizzare problemi di Computer Science legati all’analisi dei dati.

2. Capacità di applicare conoscenze e comprensione:
- Applicare gli strumenti quantitativi appresi nel corso per interpretare i fenomeni economici, manageriali e finanziari oggetto di studio.
- Capacità di applicare a problemi concreti le conoscenze di programmazione acquisite attraverso i laboratori, esercitazioni e studio di use case.

3. Autonomia di giudizio:
- Capacità di valutare criticamente un modello e di effettuare una scelta fra diversi modelli alternativi in relazione al problema in esame.
- Grazie allo studio delle differenze metodologie e tecnologie di programmazione, lo studente sarà in grado di decidere autonomamente e criticamente quali soluzioni software adottare per dato problema di analisi di dati.

4. Abilità comunicative:
- Acquisizione di una specifica capacità comunicativa che faccia uso del linguaggio formale in modo rigoroso.

5. Capacità di apprendimento:
- L’insieme delle attività didattiche (lezioni, esercitazioni e discussioni in aula) consente di acquisire un metodo di lavoro idoneo a perseguire autonomi progressi nello studio della matematica e computer science, e delle loro applicazioni in campo economico e finanziario.