- Docente: Carmela Lardo
- Credits: 6
- Language: Italian
- Teaching Mode: Traditional lectures
- Campus: Bologna
- Corso: First cycle degree programme (L) in Mechatronics (cod. 6009)
-
from Sep 15, 2025 to Dec 16, 2025
Learning outcomes
At the end of the laboratory course, the student understands the fundamentals of a symbolic and numerical computation program and uses it to solve simple problems in calculation, linear algebra, and mathematical modeling. The student gains proficiency with measurement instruments and the treatment of errors. Additionally, they approach numerical and statistical computation with professional rigor.
Course contents
Introduction to Python:
- installation and recommended development environments (Jupyter, Colab, Spyder);
-
Data types, control structures, functions;
-
Scientific libraries for numerical and statistical processing (NumPy, pandas, matplotlib).
Error Theory:
- types of error (systematic and random),
- error propagation,
- absolute and relative error,
- representation and estimation of experimental uncertainty.
Descriptive Statistics:
- measures of central tendency (mean, median, mode),
- dispersion (variance, standard deviation, range), and position (percentiles, quartiles);
- bivariate analysis (covariance, correlation coefficient).
Probability and Distributions:
- basic probability concepts, discrete random variables (binomial and Poisson distributions),
- continuous random variables (normal and uniform distributions), central limit theorem, sampling error, and standard error.
Laboratory activities support and reinforce the theoretical content through:
- Python-based implementation of statistical calculations;
- Simulation of probability distributions and error propagation;
- Analysis of real or simulated datasets;
- Practical validation of theoretical concepts through hands-on exercises.
Recommendations for non-attending students:
Independent study should be complemented with the use of guided Python notebooks and digital exercises provided during the course, enabling autonomous practice of all key topics.
Readings/Bibliography
All materials required to prepare for the course and final exam are made available on the university's Virtuale platform.
The material includes:
-
Lecture slides covering the theoretical content presented during the course;
-
Jupyter notebooks with Python code examples, guided exercises, and practical applications of the topics covered.
All content is organized by thematic units corresponding to the course syllabus and is updated regularly throughout the semester.
There are no mandatory textbooks. However, for students who wish to deepen their understanding, the following readings are recommended:
-
"Propedeutica alla scienze sperimentali. Introduzione al metodo scientifico e all'inferenza statistica", Leopoldo Trieste; Aracne, 2024
-
“Think Stats: Probability and Statistics for Programmers”, Allen B. Downey, O’Reilly Media – freely available at https://allendowney.github.io/ThinkStats/ – useful for integrating theory with hands-on Python practice.
Teaching methods
The course includes:
- Lectures focused on the development of theoretical content, with in-depth exploration of key concepts;
- Hands-on laboratory sessions using Python, aimed at reinforcing the knowledge acquired during lectures;
- Individual and group activities, designed to encourage active participation, student collaboration, and independent problem-solving.
Given the nature of the activities and teaching methods adopted, attendance to this course requires prior completion of Safety Training Modules 1 and 2 (on study environment safety), to be completed through the university’s e-learning platform.
Assessment methods
The oral exam consists of two consecutive parts:
1. Presentation of a Python projectStudents must present a project developed independently, applying the concepts learned during the course.
The presentation, lasting a maximum of 15 minutes, may be delivered using slides (PDF format) or a Jupyter notebook, and should include:
-
a description of the problem addressed,
-
an explanation of the Python code developed,
-
data analysis, and
-
discussion of the results.
During the presentation, the instructor will ask in-depth questions related to the project to assess the student’s understanding of the methods used and the authenticity of the work.
2. Theoretical questions on course topicsThe second part of the exam consists of two questions on theoretical topics covered during the course. These questions aim to evaluate the student’s grasp of fundamental concepts, their ability to relate theory to practical cases, and their use of appropriate scientific terminology.
The final grade reflects a combined evaluation of both parts of the oral exam:
- 18–19/30 Minimal or incomplete project; limited understanding. Theoretical answers are superficial. Communication is unclear or difficult.
- 20–24/30 Correct project with conceptual weaknesses. Good presentation. Theoretical answers are acceptable but not well developed.
- 25–29/30 Well-developed and well-justified project; effective code. Solid argumentation. Accurate theoretical answers.
- 30–30 cum laude Original, well-structured, and well-presented project. Full mastery of technical language and theoretical concepts. Excellent critical thinking.
Students with temporary or permanent disabilities or SLDs are advised to contact the university’s support service as early as possible: https://site.unibo.it/studenti-con-disabilita-e-dsa/en.
Any necessary accommodations will be proposed by the service and must be submitted to the course instructor at least 15 days in advance, to assess their compatibility with the learning objectives of the course.
Teaching tools
Projector, python notebooks
Office hours
See the website of Carmela Lardo