Course Details

Programming and data analysis laboratory

ST0200

Course
Programming and data analysis laboratory
Code
ST0200
Academic Year
2025/2026
Curriculum Year
2023/2024
Degree Programme
GREEN CHEMISTRY
Curriculum
A001 - GENERICO
Course coordinator
Lecturers
Credits
6
Lecture Hours
48
Scientific Disciplinary Sector (SSD)
INF/01 - Computer Science
Course Type
Single-subject learning activity
Course Delivery
OPZ - Opzionale
Year
3
Teaching period
Primo Semestre
Campus
VERCELLI
Teaching language
Italian
Course Contents
The course introduces programming with Python, with practical applications to perform exploratory and statistical data analysis. The programming part of the course is complemented by the introduction of Arduino and its IDE to manage and collect data from sensors. The students will develop the course skills via practical computer sessions, oriented to gain competence in: 1. Programming with Python and the use of Jupyter Notebooks 2. Programming and managing of sensors with the Arduino’s IDE and simulations with TinkerCad. 3. Statistical and exploratory data analysis techniques (applied to real-world case studies) including: 1. Data visualisation (scatter plots, histograms, etc.) 2. Descriptive statistics and uncertainties (mean, variance, standard deviation, etc.) 3. Correlations between observables and linear regression
Reference Texts
All materials needed are provided via the DIR platform. Supporting Book (Optional): Il manuale di Arduino, P. Aliverti, Ed. LSWR
Learning Outcomes
1. Effective programming in Python and Jupyter Notebooks by being able to identify appropriate computing techniques, design algorithms, and implement programs to solve basic programming problems and to analyse and visualize data.
2. Managing sensors via the Arduino IDE and TinkerCad simulator, being able to understand and explain the functioning of the main components of a circuit and the corresponding Arduino Sketch, assembling and testing simple circuits, and collecting and analyzing data from sensors.
3. Analyzing real datasets by calculating and interpreting descriptive statistics, proposing and creating appropriate visualizations.
4. Being able to examine, compare, and modify certain visualizations to improve the understanding and presentation of data.
Prerequisites
No background knowledge required
Teaching Methods
Interactive Teaching in the laboratory that combines frontal lecture moments and active learning.
During the lecture sessions, fundamental concepts are presented, in combination with practical examples. The basics of programming and visualization in Python, as well as Arduino programming, are introduced. During the active learning sessions, the class is guided in creating algorithms to solve problems and implementing them in Python, in applying data analysis techniques using descriptive statistics, creating visualizations in Python, and simulating circuits and related programming in Arduino. On the DIR platform, material is made available to students, which reflects the topics covered in the lessons, additional exercises, and any supplementary material, providing assistance even for those who were not present.
Additional Information
Students with physical disabilities, Learning Disabilities or Special Education Needs can request
specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services-
students-physical-or-learning-disabilities

Students with disabilities, learning disabilities or special education needs, once they have contacted
the University Staff, can refer to the tutor in charge of the course to define the examination
modalities, concerning academic aspects.
Assessment Methods
The final evaluation is determined taking into account the knowledge and skills acquired by those taking the exam, assessed through the solution of practical exercises on the three main topics of the course: 1) Python Programming, 2) Arduino, and 3) Data Analysis. Therefore, the exam includes a minimum of 3 exercises, including the implementation of a Python program, a practical case of data analysis and visualization in Python, and the analysis of circuits and Arduino Sketches.

The final grade considers the partial results obtained in the exercises on the three topics, and given the centrality of programming in the course, it is necessary to achieve a minimum threshold in this component. Specifically, the programming exercise is worth 15 points, Arduino 10 points, and data analysis 5 points (plus 2 points awarded across different exercises for achieving honors). To pass, a total of 18 points is required, with at least 8 points in the programming exercise. Correct completion of all exercises allows achieving a score of 30 cum laude.
Detailed Syllabus
- Introduction to Programming: Python and Jupyter Notebooks.
- Programming in Python: Variables and types, Control Structures, Functions and interfaces, Data Structures (Lists, Tuples, Dictionaries, etc.), Files and Dataframes.
- Introduction to Data Analysis: Descriptive statistics, Data visualization (with matplotlib).
- Introduction to Arduino: IDE and TinkerCad, Structure of a Sketch, Digital I/O, Serial Monitor, Analog I/O, Data collection from Sensors.
Expected Learning Outcomes
- Knowledge and understanding: Acquiring basic programming techniques in Python (and Jupyter Notebooks); mastering of basic statistical and exploratory data analysis techniques, including descriptive statistics, representation of variables’ relationships, linear regression analysis, and data visualisation; gaining of basic techniques to manage sensors and collect data from sensors using Arduino.

- Applying knowledge and understanding: Given a computer science problem, the student must be able to solve it, by designing and implementing a corresponding Python program and execute it. Given a sensor data collection problem, the student must be able to set up the data collection process by writing the corresponding Arduino Sketch, building and executing it. Given a real-world case study, the student must be able to perform a complete exploratory data analysis step, by selecting the proper statistics and data analysis techniques and by designing and creating the proper data visualisations.

- Communication skills: Describe, discuss, and interpret programs, data and their visualizations

- Learning skills: The student must acquire a sufficient mastery 1) of scientific programming with Python, 2) of managing sensors with Arduino, and 3) of exploratory and statistical data analysis.
Last update:09-09-2026 00:14:31