I am currently assistant professor of the Computational Logic and of Introduction to Programming (CPP) at the University of Trento.

Past Positions

In 2021 I was assistant professor of the Computational Logic the University of Trento and of the Web Internet Technologies course at the University of Bolzano.

I taught in the 2017 edition of Advanced Software Engineering (course focusing on Ruby on Rails, test-driven development and other established best practices for developing software).

Before that and for more than ten years, I taught Software Project Management, a course illustrating techniques to manage software-intensive projects. The SPM Book website provides more information about the course, downloadable material and information about “Introduction to Software Project Management”, the book I published in 2014 with CRC Press.

Other teaching experiences at the University of Trento include “UML modeling” and “Languages and Translator”. The former was based on UML 1.4 and Rational Rose. The latter was based on the “Dragon book”1 and introduced some of the theory behind compilers and included various exercises based on Flex and Bison.

Early experiences include teaching C, C++, fundamentals of the Unix operating system, and data communication.

I sometimes have the opportunity to supervise students for the BSc and MSc work: you can view a list of the students who graduated under my supervision.


I served as a volunteer teacher of Scratch and the Hour of Code to kids in a few occasions and inmates in Trento’s prison for a couple of years.

Both were demaning but fullfilling experiences.



Compilers: Principles, Techniques, and Tools by Aho, Alfred V., Sethi, Ravi, Ullman, Jeffrey D. (1986)