78092 - Information and Communication Technology Laboratory

Academic Year 2023/2024

  • 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

A written and practical test. The written test consists of answering to a number of multiple choice questions; the practical test consists of developing some source code in Matlab. Laboratory experiences are fundamental to successfully pass the final exam.

Module 2

Learning is verified by evaluating short reports to be delivered at the end of each activity carried out in the laboratory during the module. Furthermore, at the end of the module, students are asked to independently carry out an activity based on the acquired skills and to document it. In this last report, students are asked to clarify objectives and results. It is expected to contain the source codes and / or the Spice files used to address the problem. The work can be practiced in groups provided that responsibilities are clearly distributed and that different sections of the report are clearly attributable to the different participants. Finally, there will be a short oral interview in which the work done and the topics covered during the lectures will be discussed.

Module 3

A written and practical test. The written test consists of answering to a number of multiple choice questions about the topics covered during the lectures; the practical test consists of developing some C source code. Laboratory experiences are fundamental to successfully pass the final exam, owing to the "problem solving" capabilities developed by the student during them.

Overall evaluation

The overall mark is the average of the marks obtained in the three modules.

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

Affordable and clean energy Industry, innovation and infrastructure Sustainable cities

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