Teaching

Courses

High Performance Computing
This course covers the fundamental principles and practical aspects of high-performance computing, including HPC systems and the key concepts and practices of parallel programming, with a focus on the shared-memory and message-passing paradigms.

Sistemi Operativi
This course discusses the principles of concurrent programming, synchronization, and access to shared data in multi-threaded applications.

Distributed Systems and Cloud/Edge Computing for the Internet of Things
This course discusses the main concepts behind Edge and Cloud computing, introducing the available tools and frameworks for modeling, simulating, and implementing interoperable IoT applications.

Thesis supervision

I was co-supervisor of many graduating students in Computer Engineering. The main topics of supervised theses include social media and big data analysis, machine and deep learning, natural language processing, opinion mining, topic detection and tracking, semi-supervised learning, edge computing, and hashtag recommendation.