Human Computer Interaction

This is the course page for the Human Computer Interaction course in the Laurea Magistrale in Ingegneria Informatica at the University of Florence. The course is offered for 6 or 9 CFU (ECTS).

This page collects public-facing information about the course, it’s content, and some project ideas. If you are a registered student at the University of Florence, please see the Course Moodle for this academic year for detailed and up-to-date information about the course.


The course is organized around the following technical and theoretical topics:

  • Needfinding: activity and cognitive task analysis, establishing design goals.
  • Prototyping: storyboarding, paper and digital mock-ups, high-fidelity digital prototypes.
  • Programming models for HCI: events and managing asynchronicity, the model-view-controller model.
  • Usability assessment: testing, metrics, heuristic evaluation, user studies.
  • Platforms: mobile, desktop, large surface, wearable.
  • Technical topics: python programming for user interfaces, the Kivy framework, managing asynchronicity, rapid prototyping tools.
  • Advanced theoretical, applied, and emerging topics: natural interaction, tangible interaction, Kinect, the Internet of Things (IoT), functional reactive programming, gamification, etc.

A. Cooper, R. Reimann, D. Cronin (2007). About Face 3: The Essentials of Interaction Design. Indianapolis, Indiana: Wiley.

Norman, D. A. (2013). The design of everyday things: Revised and expanded edition. Basic books.

Scientific papers selected from recent conferences journals focusing on HCI:

Final Examination

The course is offered for 6 or 9 CFU, and the final exam requirements are adjusted accordingly.


There is a single oral final exam. This exam will consist of two components:

  • a twenty-minute presentation of a project, typically a fully-realized user interface that has been developed according to the practices and through all the stages discussed in the course; and
  • a selection of technical and theoretical questions drawn from all course lectures.


There is a single oral final exam. This exam also consists of two components:

  • a ten-minute presentation of a project of limited scope, typically a mock-up prototype of a user interface design developed according to the best practices of needfinding, prototyping and usability assessment discussed in the course; and
  • a selection of technical and theoretical questions from a reduced set of topics from the course lectures (included topics will be announced at the beginning of the semester).

Projects (9 or 6 CFU)

For projects you may work in groups of two. Please ensure that personal contributions to the overall work are clearly identifiable. Projects will be evaluated based on how well the methodologies in the course are followed in developing an interface from idea, through needfinding and prototyping. You are strongly encouraged to discuss your planned project with me before beginning work.