Course Details

Introduction to data analysis and machine learning

MF0902

Course
Introduction to data analysis and machine learning
Code
MF0902
Academic Year
2026/2027
Curriculum Year
2024/2025
Degree Programme
CHEMISTRY
Curriculum
000 - CORSO GENERICO
Course coordinator
Credits
3
Lecture Hours
24
Scientific Disciplinary Sector (SSD)
INF/01 - Computer Science
Course Type
Single-subject learning activity
Course Delivery
OPZ - Opzionale
Year
3
Teaching period
Secondo Semestre
Campus
VERCELLI
Teaching language
Italian
Course Contents
The course presents machine learning and deep learning techniques, including the most recent architectures for large language models (LLMs) and multimodal artificial intelligence, for the analysis of experimental data. Besides a theoretical component, in the lab it introduces the most advanced Python libraries for their practical implementation.
Reference Texts
- Bishop, C., *Pattern Recognition and Machine Learning*, Springer (for the Machine Learning part).
- Chollet, F., Watson, M., *Deep Learning with Python*, third edition, Manning Publications, 2025, ISBN 9781633436589 — available online at deeplearningwithpython.io (for the Deep Learning part).
Learning Outcomes
The course (12 ECTS credits: 4 credits devoted to machine learning and 8 to deep learning; approximately 96 hours of teaching overall, of which approximately 2/3 is lecture-based teaching in the classroom — including live use of interactive notebooks — and approximately 1/3 is interactive teaching in the computer lab, plus a workload of independent study proportional to the credits as set out in the University's Teaching Regulations) pursues the following objectives.

Knowledge and understanding: students will acquire solid knowledge of the most common data mining methods and tools for analysing complex datasets, or datasets typical of the problems encountered in general data-collection settings, as well as knowledge of the most recent deep learning architectures, including large language models (LLMs) and multimodal architectures.

Applying knowledge and understanding: given a dataset of varying complexity, and adequate domain knowledge, students will be able to autonomously carry out a data analysis based on data mining and deep learning techniques — including the use of pretrained large language models — covering the data preprocessing and result evaluation phases. This objective will also be achieved through the independent completion of a lab project.

Making judgements: students will acquire the ability to choose the modelling and analysis strategy best suited to managing complex problems in the fields of data analysis or machine learning, and to critically evaluate the quality of the models obtained through data mining or deep learning techniques.

Communication skills: students will acquire appropriate terminology related to the topics covered in the course, so as to be able to collaborate with other experts in the field.

Learning skills: a fundamental aim of the course is also to develop the ability to autonomously learn new data mining and deep learning techniques, particularly suited to specific domains, including fast-evolving ones such as large language models.
Prerequisites
Formal prerequisites: none.

Substantive prerequisites: basic notions of statistics; basic notions of Python programming (data types, control flow, functions, lists, classes, exception handling).
Teaching Methods
The course is taught in the classroom and in the computer lab. Classroom lectures (about 2/3 of the teaching hours) present the fundamental concepts, together with examples, including live demonstrations using interactive notebooks that show their practical application. The practical usefulness of the different models for handling different tasks and data is discussed.

In the computer lab (about 1/3 of the teaching hours), students are guided in using the models seen in class. Several datasets are suggested for analysis, and students are shown how to obtain further ones, both for additional practice and discussion with the instructor, and for the examination project.
Additional Information
Lab activities require active, individual participation by students, who thereby develop practical skills (the ability to write a program). Active involvement also prompts students to raise questions (and, as a result, often to ask the instructor); this provides a regular check on how the topics are being understood.

Students with disabilities, Specific Learning Disorders (SLD/DSA) or Special Educational Needs (BES) may request services and tools specifically dedicated to them by contacting the University's Career Development and Coordination Staff and Student Services, and by consulting the dedicated page on the University website: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa

Students with disabilities, SLD/DSA or BES, once they have contacted the University Staff, may contact the instructor responsible for the course regarding how the examination arrangements are adapted, with respect to teaching-related aspects.
Assessment Methods
The examination consists of an oral test centred on the presentation and discussion of the lab project independently carried out by the student, concerning the analysis of one or more datasets using both machine learning and deep learning techniques (including, where relevant, the use of large language models). The purpose of this part is to verify that the student is autonomous in carrying out a data analysis task on a real dataset, covering the preprocessing phase, the choice and application of models, and the evaluation of results.

The presentation is followed by a discussion of 1-3 questions on the data mining and deep learning techniques presented in class, aimed at verifying that the student has acquired the basic theoretical notions of the course. The examination as a whole lasts about 45 minutes per student.

The final grade takes into account both the quality of the dataset analysis and its presentation (including the technical-scientific report) and the answers given in the theoretical discussion, according to the following grading rubric, which sets out the correlation between the level of preparation demonstrated and the corresponding grade:

- < 18: significant gaps in the dataset analysis or its presentation; missing or inadequate answers to the theoretical questions.
- 18–22: acceptable dataset analysis, but with significant gaps in the methodology or topics not adequately covered; sufficient ability to apply the techniques presented in class; basic use of technical language in the presentation and report.
- 23–25: appropriate analysis with some methodological gaps; fair ability to select and apply techniques; well-structured presentation and appropriate use of technical language.
- 26–28: solid, well-motivated analysis, with a good ability to critically compare different models and to connect the different parts of the syllabus (data mining and deep learning); solid use of technical language.
- 29–30 cum laude: complete, thorough and original analysis, with fully justified methodological choices and a clear and coherent view of the data mining and deep learning techniques applied; precise use of technical language, both in the report and in the oral discussion.

The material best suited to preparing for the examination consists of the course's reference textbooks, the material and examples shown in class and in the lab, and the official documentation of the Python libraries used.
Detailed Syllabus
**Introduction to data mining**
- main phases of a data science pipeline (KDD process);
- data preprocessing: normalization, standardization, discretization, encoding (one-hot encoding, label encoding).

**Supervised machine learning**
- regression: univariate and multivariate linear regression; bias/variance trade-off; Ridge and Lasso regularization; model validation techniques; evaluation metrics (MSE, MAE, R2);
- classification: decision trees, ensemble learning, random forest, boosted trees, KNN, logistic regression; evaluation metrics (accuracy, precision, recall, Fb score).

**Unsupervised machine learning**
- clustering: K-means, DBSCAN, hierarchical clustering; intrinsic evaluation metrics (SSE, silhouette) and extrinsic ones (Rand index, mutual information);
- dimensionality reduction: PCA.

**Neural networks and deep learning**
- perceptron, activation functions (sigmoid, tanh, ReLU), multilayer perceptron; forward propagation and backpropagation with gradient descent;
- optimizations and regularizations for deep neural networks (the unstable gradient problem);
- convolutional neural networks (CNNs) and their use in computer vision; transfer learning; residual neural networks;
- recurrent neural networks (RNNs);
- autoencoders and an introduction to adversarial learning.

**Large language models (LLMs) and multimodal architectures**
- the attention mechanism (dot-product attention) and the Transformer architecture: encoder, decoder, positional encoding;
- pretrained Transformer models: pretraining and fine-tuning (e.g. for classification tasks);
- text generation: from a mini-GPT model to a pretrained LLM; sampling strategies; instruction fine-tuning and efficient adaptation techniques (LoRA);
- alignment and advanced use of LLMs: reinforcement learning from human feedback (RLHF), retrieval augmented generation (RAG), an introduction to "reasoning" models and foundation models;
- image generation: variational autoencoders (VAEs), diffusion models, text-to-image models;
- multimodal architectures: integrating textual and visual modalities in multimodal LLMs and in text-to-image generative models.

**Python tools**
- introduction to NumPy;
- the scikit-learn API: preprocessing (transformers), classification/regression/clustering (estimators), pipelines, model validation (train_test_split, KFold, cross_val_score, cross_val_predict), evaluation metrics (sklearn.metrics), model selection (ParameterGrid, GridSearchCV, RandomizedSearchCV);
- using TensorFlow and Keras to train deep learning models, including Transformers, LLMs and image-generation models.
Expected Learning Outcomes
**Knowledge and understanding**
- Describe the theoretical foundations of the most modern data mining techniques (pattern recognition, classification, regression, non-linear methods).
- Describe the most modern deep learning architectures, including Transformer models, large language models (LLMs) and multimodal architectures.
- Know the main software tools for data mining and deep learning, and the phases involved in tackling and presenting a case study.

**Applying knowledge and understanding**
- Apply, using dedicated software (scikit-learn, TensorFlow/Keras), the data analysis techniques presented in class to fully solve proposed case studies, including the data preprocessing phases.
- Use pretrained large language models and fine-tuning techniques for text analysis tasks.
- Autonomously carry out, through a lab project, a data analysis on a real dataset, from preprocessing to the evaluation of the results.

**Making judgements**
- Critically compare different data mining and deep learning methods and models.
- Choose the most suitable approach for solving a proposed case study, and critically evaluate the quality of the models obtained.

**Communication skills**
- Write a technical-scientific report on the data analysis carried out, and present its results orally, using terminology appropriate to the topics covered in the course.

**Learning skills**
- Autonomously use study material and technical documentation to acquire the skills needed to solve new case studies, including ones involving data mining and deep learning techniques not explicitly covered in class.

To achieve a passing grade, the above is required as applied to a simple case study, with a correct but not necessarily optimal analysis; an excellent grade requires full autonomy in selecting and critically comparing the most appropriate techniques, and a clear, precise and well-argued presentation of the results.
Last update:09-09-2026 00:14:31