- Docente: Andrea Giorgetti
- Credits: 9
- SSD: ING-INF/03
- Language: Italian
- Moduli: Andrea Giorgetti (Modulo 1) Sergio Callegari (Modulo 2) Enrico Paolini (Modulo 3)
- Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2) Traditional lectures (Modulo 3)
- Campus: Cesena
- Corso: First cycle degree programme (L) in Electronics Engineering (cod. 5834)
Learning outcomes
With this course, the student will be able to construct computer-based simulations and conduct experiments on systems to process and transmit information. In particular, the student will learn how to:
- process signals and images using Matlab;
- use basic statistics on experimental data;
- implement Monte Carlo techniques for system simulation;
- use numerical simulation and operations research techniques to solve problems in ICT engineering;
- use the basic equipment for signal generation and analysis, and systems characterization;
- implement and run complete projects in C language.
Course contents
Module 1
This module introduces the student to the development of projects using the Matlab programming language. The first part of the module focuses on several Matlab language aspects, emphasizing information representation and data manipulation, complexity, and memory allocation. Then, the student carries out several laboratory experiences about the development of algorithms in Matlab. They include:
- FIR filter implementation;
- Audio signals filtering and processing;
- Spectral analysis of signals;
- Random variables generation.
Module 2
The module introduces the student to circuit simulation and the use of programming environments for modeling and simulation. The difference between environments based on a causal or signal-flow approach and environments that use a physical-network approach is discussed and examples based on Spice, Simulink, and Simulink + Simscape are presented. The use of Spice is further explored with advanced examples. During the module, the Python programming language is also introduced in a perspective oriented to numerical calculation and scientific programming. The use of the so-called SciPy-stack, i.e. the support libraries for numerical and matrix calculation (NumPy), for scientific calculation (SciPy), for visualization (Matplotlib) and symbolic calculation (SymPy), is illustrated. It is also shown how this environment can represent an open code alternative to consolidated numerical computing environments such as Matlab for certain applications. Consistently with the nature of the course, the material is presented making extensive use of guided laboratory experiences.
Module 3
This module introduces the student to the development of comprehensive projects using the C programming language. The first part of the module focuses on several C language aspects, with emphasis on information representation and data manipulation, complexity, dinamic memory allocation and de-allocation. Then, the student develops several laboratory experiences about the development of C projects.
Readings/Bibliography
The documents provided by the teacher, in the form of files that collect the slides used for teaching and lecture notes as well as the texts of the laboratory exercises (made available online in electronic format on the institutional website) provides sufficient reading material for carrying out the module.
Teaching methods
Lectures and laboratory experiences. The course consists of both lectures, to introduce specific topics and focus on operational aspects, and practical laboratory sessions. Significant part of the course schedule is dedicated to lab experiments, which are essential to gain a deep knowledge of the practical aspects related to the ICT. In order to motivate students and stimulate their interest, each lab exercise is finalized to achieve practical goals that are also functional to perform the following ones.
Assessment methods
Module 1
The assessment consists of a written and a practical test. The written test involves answering a series of multiple-choice questions. The practical test requires writing MATLAB code for signal processing and the generation of random variables. Laboratory sessions are essential for successfully passing the final evaluation.
Module 2
Learning is assessed in two parts. The theoretical foundations are tested through a multiple-choice quiz, integrated with those of the other modules. Practical skills acquired during the course are evaluated through short reports to be submitted at the end of each lab activity. Additionally, students are asked to carry out an independent task based on the acquired skills and to document it. In this final report, students must clearly state the objectives and outcomes of their work, which should include source code and/or SPICE files used to tackle the problem. The task can be completed in groups, provided that responsibilities are clearly distributed.
Module 3
The assessment includes both a written and a practical test. The written part consists of multiple-choice questions on the topics covered in lectures. The practical part involves writing C code. Laboratory sessions are essential to successfully pass the final assessment, thanks to the problem-solving skills developed during the hands-on sessions.
Overall evaluation
Although the course is divided into separate modules taught by different instructors for organizational reasons, there is a single, final, comprehensive assessment, jointly evaluated. In particular, the theoretical knowledge required to support the practical skills characterizing the course is uniformly assessed across all three modules through a multiple-choice test divided into three sections. Students are encouraged to complete all sections of the test in a single session, although they may choose to take them in separate sittings.
To pass the course, students must achieve a passing grade in all three modules. The final grade is determined by combining the evaluations of the three instructors, each providing a quantitative assessment that contributes to the final decision.
Teaching tools
Teaching material, slides, lecture notes, exercises and code examples available online. Module 1 uses Matlab software. Module 2 relies on the use of a Spice-type circuit simulator (LTSpice XVII is suggested), of Simulink with the Simscape package, and of a Python 3 programming environment with the SciPy stack (the Anaconda distribution is suggested). Module 3 features the use of C compiler.
Office hours
See the website of Andrea Giorgetti
See the website of Sergio Callegari
See the website of Enrico Paolini
SDGs



This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.