Skip to main content
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
e-Learning - UNIMIB
  • Home
  • Calendar
  • My Media
  • More
Listen to this page using ReadSpeaker
English ‎(en)‎
English ‎(en)‎ Italiano ‎(it)‎
You are currently using guest access
 Log in
e-Learning - UNIMIB
Home Calendar My Media
Percorso della pagina
  1. Economics
  2. Master Degree
  3. Economia e Finanza [F1602M - F1601M]
  4. Courses
  5. A.A. 2026-2027
  6. 1st year
  1. Machine Learning for Finance
  2. Summary
Insegnamento Course full name
Machine Learning for Finance
Course ID number
2627-1-F1602M003
Course summary SYLLABUS

Course Syllabus

  • Italiano ‎(it)‎
  • English ‎(en)‎
Export

Obiettivi formativi

Conoscenza e capacità di comprensione. Il corso si propone di fornire allo studente una solida competenza nella programmazione in Python e i concetti fondamentali dell'elaborazione dei dati e dell'apprendimento automatico: la rappresentazione dei dati con vettori, matrici e tabelle, i modelli che apprendono dai dati e le reti neurali artificiali.

Conoscenza e capacità di comprensione applicate. Al termine del corso lo studente sarà in grado di scrivere programmi in Python che leggono ed elaborano dati finanziari ed economici, di simulare fenomeni aleatori, di analizzare dati tabellari con le librerie NumPy e pandas, di rappresentarli graficamente e di costruire e addestrare semplici reti neurali con PyTorch.

Autonomia di giudizio. Lo studente imparerà a scegliere in modo autonomo, tra gli strumenti e le tecniche apprese, quelli più adatti a risolvere problemi pratici di moderata complessità legati alla manipolazione e all'analisi di dati in ambito finanziario, e a valutare criticamente la correttezza dei risultati ottenuti.

Abilità comunicative. Lo studente sarà in grado di descrivere in modo chiaro e rigoroso, sia oralmente sia per iscritto, algoritmi, programmi e modelli di apprendimento automatico, utilizzando la terminologia appropriata e scrivendo codice leggibile e ben documentato.

Capacità di apprendere. Lo studente acquisirà le competenze necessarie per un apprendimento autonomo e continuo nel campo della programmazione e dell'analisi dei dati: in particolare, sarà capace di consultare la documentazione ufficiale dei linguaggi e delle librerie per approfondire nuovi strumenti e applicarli a problemi diversi da quelli affrontati nel corso.

Contenuti sintetici

Il corso fornisce una solida competenza nella programmazione in Python, dai fondamenti del linguaggio alle librerie per il calcolo numerico (NumPy), per l'analisi dei dati tabellari (pandas) e per i grafici (matplotlib), e presenta le reti neurali artificiali, realizzate con PyTorch, come strumento di supporto all'analisi dei dati finanziari.

Programma esteso

  1. Algoritmi e programmi: definizione e proprietà di un algoritmo; problemi, istanze, dati e risultati; dall'algoritmo al programma; paradigmi di programmazione.

  2. L'ambiente di sviluppo PyCharm: l'interprete Python, progetti e file, esecuzione di un programma, la Python Console, il debugger. Il lessico del linguaggio: parole chiave e identificatori.

  3. Tipi di dato e collezioni: numeri interi e in virgola mobile, booleani, stringhe, None, conversioni tra tipi; espressioni aritmetiche, relazionali e logiche; liste, tuple, insiemi e dizionari.

  4. Istruzioni composte: la selezione (if, elif, else), le iterazioni for e while, le istruzioni break e continue.

  5. Numeri pseudo-casuali e simulazione: il modulo random, distribuzioni discrete e distribuzione normale, simulazione di fenomeni aleatori, processi di Markov.

  6. File di testo: apertura e lettura con open e with; file con più campi per riga; righe di intestazione; costruzione di tabelle a partire dai dati letti; parametri letti da file o da tastiera.

  7. Funzioni: definizione e chiamata, annotazioni di tipo, parametri e argomenti, valori restituiti, variabili locali e globali, passaggio dei parametri, ricorsione, moduli e import.

  8. La libreria NumPy: vettori e matrici, indicizzazione e sottomatrici, operazioni componente per componente e operazioni vettoriali, funzioni di sintesi, maschere booleane, elementi di algebra lineare, lettura di matrici da file, numeri casuali; vettori e matrici nell'apprendimento automatico: la regressione lineare e la discesa del gradiente.

  9. La libreria pandas: Series e DataFrame; lettura dei dati con read_csv e read_excel; selezione di righe e colonne con loc, iloc e maschere; etichette comuni (isin, intersection); operazioni aritmetiche e relazionali e allineamento delle etichette; valori di sintesi; aggregazione con groupby e agg; trasposta; ordinamento, aggiunta, ridenominazione ed eliminazione di righe e colonne; unione di tabelle (concat, merge, join); valori mancanti; variabili qualitative; tabelle a doppia entrata; serie storiche; normalizzazione e standardizzazione; covarianza, correlazione e retta di regressione.

  10. Grafici con matplotlib: grafici a linee, a dispersione, a barre e istogrammi; più serie, legende e stili; più grafici in una figura; i grafici di pandas.

  11. Classi e oggetti: definizione di una classe, metodi, attributi della classe e dell'istanza, metodi speciali, ereditarietà e ridefinizione dei metodi, classi astratte, il metodo call.

  12. Reti neurali artificiali: il neurone artificiale e il percettrone; le funzioni di attivazione; il percettrone multistrato; l'addestramento di una rete con la discesa del gradiente e la retropropagazione dell'errore. Realizzazione con PyTorch: tensori (torch.tensor), calcolo automatico del gradiente (backward), ottimizzatori (torch.optim, step, zero_grad), strati e classe della rete (torch.nn.Linear, torch.nn.ReLU), funzioni di errore, Dataset e DataLoader, ciclo di addestramento, dropout e normalizzazione dei lotti (torch.nn.Dropout, torch.nn.BatchNorm1d), preparazione dei dati; introduzione alle reti profonde.

Prerequisiti

Le conoscenze matematiche e logiche acquisite nella scuola secondaria superiore; nozioni di base di algebra lineare (vettori, matrici, prodotto scalare) e di statistica (media, varianza, distribuzioni di probabilità). Sono inoltre richieste capacità di base di programmazione in Python: tipi di dato, istruzioni di selezione e di iterazione, funzioni.

Metodi didattici

Lezioni frontali con esercitazioni guidate. Le lezioni si svolgono nei laboratori didattici, per consentire agli studenti di applicare immediatamente al calcolatore i concetti presentati.

Modalità di verifica dell'apprendimento

L'esame prevede una prova scritta, che si svolge nei laboratori didattici di Ateneo e consiste nello sviluppo di programmi in Python per la soluzione di problemi di elaborazione e analisi dei dati. La prova verte su tutti gli argomenti del corso: la programmazione in Python di base, l'elaborazione dei dati con le librerie NumPy e pandas e le reti neurali artificiali. Per superare l'esame è necessario dimostrare una conoscenza sufficiente di ciascuno di questi argomenti; una carenza grave in uno di essi non può essere compensata dal risultato ottenuto negli altri. Nella valutazione si considerano la correttezza dei risultati, la capacità di scegliere gli strumenti adeguati al problema e la chiarezza del codice. Durante la prova è consentita la consultazione della sola documentazione ufficiale di Python e delle librerie utilizzate.

Testi di riferimento

Paul J. Deitel, Harvey M. Deitel, Introduzione a Python. Per l'informatica e la data science, Pearson, 2021 (ISBN 978-8891915924).
Appunti del docente, esempi ed esercizi disponibili sulla piattaforma e-learning del corso.
Documentazione ufficiale: docs.python.org, numpy.org/doc, pandas.pydata.org/docs, matplotlib.org, pytorch.org/docs.

Periodo di erogazione dell'insegnamento

Primo semestre

Lingua di insegnamento

Italiano

Sustainable Development Goals

ISTRUZIONE DI QUALITÁ
Export

Learning objectives

Knowledge and understanding. The course aims to provide students with solid skills in Python programming and with the fundamental concepts of data processing and machine learning: the representation of data through vectors, matrices and tables, models that learn from data, and artificial neural networks.

Applying knowledge and understanding. At the end of the course, students will be able to write Python programs that read and process financial and economic data, simulate random phenomena, analyse tabular data with the NumPy and pandas libraries, represent data graphically, and build and train simple neural networks with PyTorch.

Making judgements. Students will learn to choose independently, among the tools and techniques studied, those best suited to solving practical problems of moderate complexity related to the manipulation and analysis of financial data, and to assess critically the correctness of the results obtained.

Communication skills. Students will be able to describe clearly and rigorously, both orally and in writing, algorithms, programs and machine learning models, using appropriate terminology and writing readable, well-documented code.

Learning skills. Students will acquire the skills needed for independent and lifelong learning in programming and data analysis; in particular, they will be able to consult the official documentation of languages and libraries in order to explore new tools and apply them to problems different from those addressed in the course.

Contents

The course provides solid skills in Python programming, from the fundamentals of the language to the libraries for numerical computing (NumPy), tabular data analysis (pandas) and plotting (matplotlib), and introduces artificial neural networks, implemented with PyTorch, as a tool supporting the analysis of financial data.

Detailed program

  1. Algorithms and programs: definition and properties of an algorithm; problems, instances, data and results; from algorithms to programs; programming paradigms.

  2. The PyCharm development environment: the Python interpreter, projects and files, running a program, the Python Console, the debugger. The lexicon of the language: keywords and identifiers.

  3. Data types and collections: integers and floating-point numbers, booleans, strings, None, type conversions; arithmetic, relational and logical expressions; lists, tuples, sets and dictionaries.

  4. Compound statements: selection (if, elif, else), for and while loops, the break and continue statements.

  5. Pseudo-random numbers and simulation: the random module, discrete distributions and the normal distribution, simulation of random phenomena, Markov processes.

  6. Text files: opening and reading with open and with; files with several fields per line; header lines; building tables from the data read; parameters read from a file or from the keyboard.

  7. Functions: definition and call, type annotations, parameters and arguments, return values, local and global variables, parameter passing, recursion, modules and import.

  8. The NumPy library: vectors and matrices, indexing and submatrices, element-wise and vector operations, summary functions, boolean masks, elements of linear algebra, reading matrices from files, random numbers; vectors and matrices in machine learning: linear regression and gradient descent.

  9. The pandas library: Series and DataFrame; reading data with read_csv and read_excel; selecting rows and columns with loc, iloc and masks; common labels (isin, intersection); arithmetic and relational operations and label alignment; summary statistics; aggregation with groupby and agg; transposition; sorting, adding, renaming and dropping rows and columns; combining tables (concat, merge, join); missing values; categorical variables; cross tabulations; time series; normalisation and standardisation; covariance, correlation and regression line.

  10. Plotting with matplotlib: line plots, scatter plots, bar charts and histograms; multiple series, legends and styles; several plots in one figure; pandas plotting.

  11. Classes and objects: defining a class, methods, class and instance attributes, special methods, inheritance and method overriding, abstract classes, the call method.

  12. Artificial neural networks: the artificial neuron and the perceptron; activation functions; the multilayer perceptron; training a network with gradient descent and error backpropagation. Implementation with PyTorch: tensors (torch.tensor), automatic differentiation (backward), optimisers (torch.optim, step, zero_grad), layers and the network class (torch.nn.Linear, torch.nn.ReLU), loss functions, Dataset and DataLoader, the training loop, dropout and batch normalisation (torch.nn.Dropout, torch.nn.BatchNorm1d), data preparation; introduction to deep networks.

Prerequisites

The mathematical and logical knowledge acquired in secondary school; basic notions of linear algebra (vectors, matrices, dot product) and of statistics (mean, variance, probability distributions). Basic Python programming skills are also required: data types, selection and loop statements, functions.

Teaching methods

Lectures with guided exercises. Lessons take place in the teaching laboratories, so that students can immediately apply the concepts presented on the computer.

Assessment methods

The exam consists of a written test, held in the University's teaching laboratories, in which students develop Python programs to solve data processing and analysis problems. The test covers all the topics of the course: basic Python programming, data processing with the NumPy and pandas libraries, and artificial neural networks. To pass the exam, students must demonstrate sufficient knowledge of each of these topics; a serious gap in one of them cannot be compensated by the results obtained in the others. The assessment considers the correctness of the results, the ability to choose the tools appropriate to the problem, and the clarity of the code. During the test, only the official documentation of Python and of the libraries used may be consulted.

Textbooks and Reading Materials

Paul J. Deitel, Harvey M. Deitel, Intro to Python for Computer Science and Data Science, Pearson (Italian edition: Introduzione a Python. Per l'informatica e la data science, Pearson, 2021, ISBN 978-8891915924).
Lecture notes, examples and exercises provided by the lecturer on the course e-learning platform.
Official documentation: docs.python.org, numpy.org/doc, pandas.pydata.org/docs, matplotlib.org, pytorch.org/docs.

Semester

First semester

Teaching language

Italian

Sustainable Development Goals

QUALITY EDUCATION
Enter

Key information

Field of research
INFO-01/A
ECTS
8
Term
First semester
Activity type
Mandatory
Course Length (Hours)
56
Degree Course Type
2-year Master Degree
Language
Italian

Staff

    Teacher

  • AA
    Alessandro Avellone

Students' opinion

View previous A.Y. opinion

Bibliography

Find the books for this course in the Library

Enrolment methods

Manual enrolments
Self enrolment (Student)

Sustainable Development Goals

QUALITY EDUCATION - Ensure inclusive and equitable quality education and promote lifelong learning opportunities for all
QUALITY EDUCATION

You are currently using guest access (Log in)
Policies
Get the mobile app
Powered by Moodle
© 2026 Università degli Studi di Milano-Bicocca
  • Privacy policy
  • Accessibility
  • Statistics