During the past years I taught different courses both for Bachelor and Master Degrees of Computer Engineering and Computer Science. I have been also assistant supervisor of several BsC and MsC research and experimental thesis. The updated list of available thesis can be found here.
Given the current emergency and the consequent remote teaching, I will scheduled periodic online open group meeting via Teams/Skype/GoogleMeet to discuss about courses, lectures and laboratory. Furthermore, the students can contact me by email to arrange one-to-one meeting via teleconference.
In terms of knowledge and understanding, the objectives of the course are to provide: i) the a basic knowledge of the main operating principles of Internet of Things systems, with particular attention to communication protocols, distributed architectures and principles of design and development; ii) knowledge based on the use of a testbed and IoT devices in the laboratory and iii) an insight into the technological and research trends affecting the world of the IoT, Web of Things and Edge Computing. The course is divided into a part of frontal teaching and a part of workshops and practical exercises. The first part is dedicated to the introduction to the Internet of Things (IoT), with a description of the main communication protocols, paradigms and architectural approaches, issues related to the Web of Things and interoperability and topics related to the relationship between IoT, Cloud and Edge Computing. The second part is dedicated to the laboratory and to the direct experimentation of IoT technologies. Students will be introduced to the main operating systems, protocols, programming languages and libraries and to application level development tools.
The course covers the basic principles for developing applications targeting mobile devices, such as smartphones and tablets, and presents the main challenges related to the design, implementation, and distribution of mobile applications. The class focuses on the main aspects of mobile application programming and emphasizes on Android and iOS platforms. After a short introduction focusing on common aspects of mobile application development, the course is divided into two modules dedicated to Android and iOS development, respectively. The class has a strong programming component and aims at enhancing the programming skills of the students. A final project, either targeting Android or iOS platform, is assigned to each student.
The objective of the course is to illustrate the fundamentals characteristics and the state of the art researchs related to the combination of Edge Computing and Microservice Architectures for Internet of Things application scenarios. The combination of these challenging technologies will represent a new pillar for the IoT, thus that the next generation of IoT applications will be scalable, dynamic and interoperable by design. The course involved 16 hours including lectures and a final evaluation. It has been included in the official PhD Courses for the academic year 2019-2020 at the Department of Engineering and Architecture of the University of Parma (Italy).
The target of the course has been to address the forefront of technologies and research activity in the IoT ecosystem, by presenting state-of-the-art research together with the current and future challenges in building new smart applications (e.g., Smart Cities, Smart Buildings, and Industrial IoT) in an efficient, scalable, and sustainable way.
I am the organizer and the lecturer of the module Android Application Development in the course of Calcolatori Elettronici at the Department of Information Engineering of Universita’ degli Studi di Parma. The module has been structured with ten lessons (20 hours) each of them with an introduction/theoretical part and development session. The module covers main topics of Android Platform and tries to address the challenges of mobile application design and development.
I have been responsible for tutorials and practical sessions on P2P networks and middleware for distributed architecture (sip2peer), mobility models and discrete event simulations. The purpose of the course is to define and characterize the information processing systems. In particular, the student will be given the ability to understand: Theoretical models (discrete-time, continuous-time and event-driven), Models of parallel and distributed programming, Systems for client / server and peer-to-peer, Autonomic systems, and Simulation techniques. The student learn to apply such a knowledge to: develop computing systems models, in particular for performance analysis, program parallel and distributed systems, design client/server and peer-to-peer distributed systems, design autonomic computing systems, develop discrete event simulations.