94001 - Information and Communication Technology Laboratory A

Course Unit Page


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

Quality education Industry, innovation and infrastructure

Academic Year 2021/2022

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 and big data analytics 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

- design and implement mobile applications.

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 of signals from sensors;

- Spectral analysis by FFT;

- Random variables generation;

- Simulation of a communication system in the presence of Gaussian noise by Monte Carlo method.

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. In the second part of the module, the Python programming language is 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

- Introduction to application programming for mobile devices;

- Native and web-based app programming;

- Mobile app development frameworks;

- Basics of HTML5, Javascript, CSS as tools for mobile app development;

- Laboratory sessions for app development;

- Final project of a mobile app.


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

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 development of algorithms, simulations, and applications for mobile devices. 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.


As concerns the teaching methods of this course unit, all students must attend Module 1, 2 [https://www.unibo.it/en/services-and-opportunities/health-and-assistance/health-and-safety/online-course-on-health-and-safety-in-study-and-internship-areas] on Health and Safety online.

Assessment methods

Module 1

The instructor will assign a project to each group of students. Each group will develop the project and propose a Matlab implementation of it. Each group will produce a report that must describe the project objectives, the identified solution, a description of the implemented algorithm, all source files that have been developed, and the individual contribution to the project. After the technical report has been delivered to the instructor, each group will present its project and answer oral questions regarding the solution proposed, and the topics learned during the lectures. The evaluation of the module is expressed as a mark in thirtieths.

Module 2

Learning is verified through the assessment of a report prepared by the students and illustrating an activity carried out independently leveraging the acquired skills. The report should clarify objectives and results and contain the source codes and / or Spice files used to address the problem. The work can be done in groups as long as the responsibilities are distinguished and that different sections of the report are attributable to the different participants. There will also be a short oral interview where 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 web technologies; the practical test consists of developing some source code for mobile applications. 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 relies on Apache Cordova software tool for mobile app development.

Office hours

See the website of Andrea Giorgetti

See the website of Sergio Callegari

See the website of Enrico Paolini