85189 - Systems and Algorithms for Data Science

Academic Year 2026/2027

  • Docente: Stefano Lodi
  • Credits: 10
  • SSD: IINF-05/A
  • Language: English
  • Moduli: Stefano Lodi (Modulo 1) Violetta Zoffoli (Modulo 2)
  • Teaching Mode: In-person learning (entirely or partially) In-person learning (entirely or partially) (Modulo 1); In-person learning (entirely or partially) (Modulo 2)
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Statistical Sciences (cod. 6810)

    Also valid for Second cycle degree programme (LM) in Statistical Sciences (cod. 6810)

Learning outcomes

By the end of the course, the should - understand the fundamentals of supervised and unsupervised machine learning algorithms, focusing on deep learning algorithms - understand the fundamental programming principles of the Python language and be able to apply them primarily to data management and analysis, under the umbrella of data science - understand the role, purpose and features of Python libraries for numerical computation, data representation, and machine learning, and their interconnectivity with frameworks, such as Jupyter Notebook - be able to apply data science practices and methods to construct models and solve problems for various data-science applications.

Course contents

Module 1 (Stefano Lodi)

This module provides an introduction to Python as a programming language for Data Science and Machine Learning. Topics include Python language fundamentals (data types, operators, compound statements, functions and classes), numerical computing with NumPy, data manipulation and exploratory data analysis with Pandas, data visualization with Matplotlib.

Module 2 (Violetta Zoffoli)

Machine learning: supervised machine learning, Support Vector Model, deep neural networks, convolutional and recurrent networks, LSTM, generative models (Autoencoder, Transformer). Machine learning libraries: Scikitlearn, Pytorch, and Tensorflow.

Readings/Bibliography

Module 1 (Stefano Lodi)

Course slides and exercises are available on Virtuale [http://virtuale.unibo.it/].

Optional reading (on-line):

Zhang, A., Lipton, Z. C., Li, M., & Smola, A. J. (2023). Dive into Deep Learning (No. arXiv:2106.11342). arXiv. http://arxiv.org/abs/2106.11342

Module 2 (Violetta Zoffoli)

Course slides and exercises are available on Virtuale [http://virtuale.unibo.it/].

Recommended reading (on-line):

Parker, J. R. (2016). Python: An Introduction to Programming. Mercury Learning & Information. Free to download (using student institutional credentials) E-book, searchable at

http://sba.unibo.it > Online resources > E-books > Ricerca un e-book nel Catalogo A-Link

 

 

Teaching methods

NOTE: As concerns the teaching methods of this course unit, all students must attend Module 1, 2 on Health and Safety online [https://www.unibo.it/en/services-and-opportunities/health-and-assistance/health-and-safety/online-course-on-health-and-safety-in-study-and-internship-areas] .

Module 1 (Stefano Lodi)

Concepts are introduced through slides, illustrated with practical examples, and reinforced through guided exercises carried out in Python programming environments.

Module 2 (Violetta Zoffoli)

  • Theoretical lessons in teaching room
  • Tutorials in lab

During the classes the students will be guided in the implementation and practice of the presented concepts.

Assessment methods

Attendance does not contribute to the assessment in any way.

The exam is divided into group work, tests, and an oral exam, which includes a presentation of the group work.

Group work

In their group work, which focuses on a programming project, students will demonstrate their ability to analyze an assigned set of data, using Python, pytorch, and tensor flow libraries, answer questions related to specific tasks, and share the project group's results in public online repositories, such as GitHub or GitLab.

Python Programming Test

The student receives a digital document on Esami On Line [http://eol.unibo.it/], containing the description of a simple analysis problem, he must produce on the same site a Python program that solves the analysis problem described in the document.

  • Consultation of any material is not permitted.

Multiple choice test

 The student receives a collection of sentences, each of which has 3 possible completions, of which only one is correct. The test is carried out entirely on OnLine Exams [http://eol.unibo.it/]

  • Consultation of any material is not permitted.

Oral exam

The candidate must answer questions that may concern any part of the course program. In particular, the student must demonstrate: mastery of the theoretical notions of the discipline, terminology, and the logical, set-theoretic, and mathematical formalism employed in it; knowledge of the machine learning techniques presented during lessons and implemented in the tools used during lessons and the ability to use those tools; and knowledge of the Python language.

Furthermore, during the oral exam, the candidate must present (with slides) the group work carried out and answer questions relevant to the project, the results, the project choices and the tools used. 

Method of calculating the examination grade

  • The grades of all tests are in the range between 0 and 30, including extremes.
  • The evaluation of the outcome of the form and the assignment of the final grade of the form are carried out at the end of the oral exam.
  • The final grade of the module is calculated as the average of the grade of the most recent Python programming test, the grade of the most recent multiple choice test, and the oral exam grade.
     

Teaching tools

Module 1 (Stefano Lodi)

Presentation of the course topics using a overhead projector
Laboratory with desktop PCs equipped; teacher's PC connected to an overhead projector to guide laboratory exercises.
Documents used in the presentations, distributed on the site http://virtuale.unibo.it. Access to the documents is allowed only to students of the course.

Module 2 (Violetta Zoffoli)

Course slides. Open source projects used as teaching examples.

Office hours

See the website of Stefano Lodi

See the website of Violetta Zoffoli