Current Teaching

  • Present 2013

    Software Maintenance and Evolution

    This course builds on basic software engineering concepts by expanding the discussion of the issues involved in maintaining and evolving software systems. It covers advanced technical aspects of the software maintenance and evolution process including reverse engineering, reengineering, change management, traceability management, refactoring, regression testing, and mining software repositories. Course webpage (in Italian).

  • Present 2013


    The course aims at introducing students to both procedural and Object-Oriented programming. Particular emphasis is given to the principle of functional abstraction and the definition of abstract data types. The fundamental principles of human-computer interaction for building user-firendly interfaces are also provided. Course webpage (in Italian).

  • Present 2011

    Database Systems

    The course aims at providing the essential skills related to concepts, methods, and techniques for the design, the implementation, and the use of database systems. The model of databases adopted during the course is the relational model, nowadays the most established and widespread. Course webpage (in Italian).

Teaching History

  • 2015 2006

    Programming Languages

    The course aims at providing the basic principles of a programming language, with particular emphasis to the statement interpretation, compilation and memory management.

  • 2014 2004

    Software Engineering

    The course aims at providing an overview of the problems, theories, models, techniques and technologies that characterize the production and lifecycle of a software system, with particular emphasis to the object-oriented software.