97462 - Laboratory of Math and Applied Physics P-BO

Academic Year 2025/2026

  • Teaching Mode: Traditional lectures
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Mechatronics (cod. 6009)

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:

  1. Lectures focused on the development of theoretical content, with in-depth exploration of key concepts;
  2. Hands-on laboratory sessions using Python, aimed at reinforcing the knowledge acquired during lectures;
  3. 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 project

Students 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 topics

The 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