- Docente: Enrico Paolini
- Credits: 9
- SSD: IINF-03/A
- Language: Italian
- Moduli: Enrico Paolini (Modulo 1) Sergio Callegari (Modulo 2) Lorenzo Valentini (Modulo 3)
- Teaching Mode: In-person learning (entirely or partially) In-person learning (entirely or partially) (Modulo 1); In-person learning (entirely or partially) (Modulo 2); In-person learning (entirely or partially) (Modulo 3)
- Campus: Cesena
- Corso: First cycle degree programme (L) in Electronics Engineering (cod. 6670)
-
from Sep 16, 2026 to Dec 16, 2026
Learning outcomes
At the end of the course, students are able to simulate and experimentally characterize systems for information processing and transmission using computational tools. In particular, students are able to: process audio signals and images; apply elements of inferential statistics and Big Data Analytics to experimental data from the web, the Internet of Things, and sensors; implement Monte Carlo techniques for system simulation; use elements of numerical computation to solve problems in the field of information engineering; develop and program applications for mobile devices such as smartphones and tablets; analyse and model the behaviour of electronic circuits and systems using circuit simulation software tools; use scientific software to model electronic systems at a high level and to support design activities. Practical laboratory activities represent a substantial part of the course.
Course contents
Module 1
The module deepens the use of the C programming language for the development of applications of interest in the field of information engineering. Advanced application-oriented aspects of the C language are addressed, with particular attention to the representation and manipulation of information in numerical contexts.
The main topics concern the generation of random variables in C, the use of complex numbers, and fixed-point processing. These topics are addressed through examples and computer-based exercises, aimed at showing how the C language can be used to implement algorithms for simulation, numerical processing, and efficient data representation.
Module 2
The module introduces students to circuit simulation and to the use of programming environments for modelling and simulation. The difference between environments based on a causal or signal-flow approach and environments based on a physical-network approach is discussed, and examples based on Spice, Simulink, and Simulink+Simscape are presented.
The use of Spice is then explored in greater depth through advanced examples. During the module, the Python programming language is also introduced from a perspective oriented towards numerical computation and scientific programming. The so-called SciPy stack is presented, namely the set of libraries supporting numerical and matrix computation, NumPy; scientific computing, SciPy; visualization, Matplotlib; and symbolic computation, SymPy. It is also shown how, in suitable applications, this environment can represent an open-source alternative to established numerical computing environments such as Matlab.
Consistently with the practical nature of the course, the material is presented through extensive use of guided laboratory activities.
Module 3
This module introduces students to the development of complete projects using the Matlab numerical computing environment. The first part of the module consists of an in-depth study of several aspects of the Matlab programming language, with particular emphasis on issues related to information representation and data manipulation, complexity, and dynamic memory management.
Students then carry out guided laboratory activities concerning the development of algorithms in Matlab. Examples of guided activities include:
- implementation of FIR filters;
- filtering of audio signals;
- spectral analysis of signals;
- generation of random variables.
Readings/Bibliography
The material provided by the instructors, consisting of files containing the lecture slides, lecture notes, laboratory exercise sheets and, where applicable, code examples, made available online in electronic format on the institutional Insegnamenti Online platform, constitutes the necessary and sufficient material for carrying out the modules and preparing for the final assessment. In addition to the core teaching materials, the instructor also provides, through the university website, a curated selection of links to online resources that may be useful for further study or additional support.
Teaching methods
The course consists of lectures, aimed at introducing specific topics and exploring their more operational aspects, and practical laboratory activities. Particular emphasis is placed on laboratory exercises, which are essential for acquiring a complete understanding of the application-oriented and experimental aspects related to simulation, numerical processing, and the use of software tools for information engineering. In order to motivate students and stimulate their interest, each laboratory activity is structured so as to achieve specific practical objectives, which are also functional to the activities that follow.
In consideration of the type of activities and teaching methods adopted, attendance of laboratory activities requires prior participation in the safety and health training activities for study places provided by the University. Access to the laboratory requires students to have passed Module 3 - Specific training on safety and health at the University.
Assessment methods
Module 1
Assessment for Module 1 takes place through a written and practical test. The written test consists of multiple-choice questions on the topics covered in the module; the practical test consists of writing code in the C programming language related to the activities carried out in the laboratory.
The assessment is aimed at verifying the students’ knowledge of the advanced application-oriented aspects of the C language covered in the module, their ability to apply them to the solution of simulation and numerical processing problems, the correct use of data representations, and their ability to interpret the results produced by the programs developed, with particular reference to the generation of random variables, the use of complex numbers, and fixed-point processing.
Laboratory activities are fundamental for acquiring the operational skills needed to successfully pass the final assessment, thanks to the problem-solving abilities developed during the practical sessions.
Module 2
Learning is assessed, as far as theoretical foundations are concerned, through a multiple-choice test integrated with those of the other modules. Practical skills acquired during the course are instead assessed through short reports to be submitted at the end of each laboratory activity.
In addition, students are required to independently carry out an activity based on the skills acquired and to document it. In this final report, students must clarify objectives and results, and the report must include the source code and/or Spice files used to address the problem. The work may be carried out in groups, provided that responsibilities are clearly assigned.
Module 3
Assessment consists of a written and practical test. The written test consists of answering a set of multiple-choice questions; the practical test consists of writing Matlab code for signal processing and random variable generation. Laboratory activities are fundamental for successfully passing the final assessment.
Overall assessment
Although the course is divided, for organizational reasons, into modules taught by different instructors, there is a single overall final assessment, carried out jointly.
In particular, the knowledge related to the theoretical foundations needed to support the practical skills characterizing the course is assessed homogeneously for the three modules through a multiple-choice test divided into three parts.
In order to pass the exam, students must achieve a pass level in the topics presented in all three modules. The final mark is expressed out of 30 and is obtained by taking into account the evaluations provided by the three instructors, based on the written and practical tests required in the individual modules and on any reports or documented activities.
High marks will be awarded to students who demonstrate complete knowledge of the topics covered in the three modules, autonomy in applying software and methodological tools, correctness in developing the proposed solutions, the ability to critically interpret the results obtained, and clarity in documenting the activities carried out. Intermediate marks will be awarded to students who demonstrate correct but not fully in-depth knowledge of the contents and adequate application skills, although with not always full autonomy. A pass mark will be awarded to students who demonstrate essential knowledge of the topics and an ability to apply the acquired tools limited to simpler cases. Significant gaps in basic concepts, difficulties in using software tools, major errors in code development or in the interpretation of results will be assessed negatively.
During the tests, students may use the software tools and development environments specified by the instructors for the specific activities. The use of materials, tools, or support resources that have not been explicitly authorized is not allowed, except for any aids approved as part of adjustments for students with specific learning disorders or disabilities.
With regard to assessment, the use of generative Artificial Intelligence is not allowed, unless explicitly authorized by the instructors for specific activities. Any unauthorized use constitutes a violation of academic integrity.
Students with specific learning disorders or temporary or permanent disabilities are advised to contact the relevant University office in good time, available at https://site.unibo.it/studenti-con-disabilita-e-dsa/en . The office will be responsible for proposing any necessary adjustments, which must in any case be submitted to the instructors for approval at least 15 days before the examination. The instructors will assess their suitability also in relation to the learning outcomes of the course.
Teaching tools
Teaching material, lecture notes, slides, exercises, and code examples are available online. Module 1 requires the use of the C language and a development environment equipped with a C compiler. Module 2 requires the use of a Spice-type circuit simulator, such as LTSpice XVII, Simulink with the Simscape package, and a Python 3 programming environment with the SciPy stack, such as the Anaconda distribution. Module 3 requires the use of Matlab.
Office hours
See the website of Enrico Paolini
See the website of Sergio Callegari
See the website of Lorenzo Valentini
SDGs
This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.