Lectures will be in Italian, with most slides and reading material in English. The final exam may be done in English or Italian.
Contenuto del corso
The course is organized around a number of technical and theoretical topics related to Human Computer Interaction. Please see the Course Program for more details.
Books:
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:
CHI: https://chi2015.acm.org/
ACM TOCHI: http://tochi.acm.org/
Obiettivi Formativi
Obiettivo del corso è quello di fornire le conoscenze e capacità necessarie a progettare e sviluppare sistemi con concentrazione sull'interazione macchina-uomo (HCI).
- Conoscenza dei concetti psicologici importanti per l'HCI: affordance, signifier, mapping, teoria di percezione Gestalt, e la psicologia delle azioni.
- Conoscenza dei modelli e paradigmi di programmazione più utilizzati nell'HCI.
- Conoscenze delle tecniche principali di needfinding utilizzate per stabilire requisiti funzionali dei sistemi HCI.
- Conoscenza dei design framework principali attualmente in uso.
- Conoscenza della panoramica dell'HCI nel mondo accademico e nel mondo industriale.
Prerequisiti
Good knowledge of and experience programming in a high-level programming language (C/C++, Java, Python) is essential for this course. Previous experience with the python programming language and programming graphical user interfaces (GUIs) would be very useful, but not essential.
Metodi Didattici
Lectures and practical laboratory sessions.
Modalità di verifica apprendimento
La verifica finale consta di una prova orale in base a un compito di programmazione e un elaborato che dimostrano le capacità di:
- Saper progettare e sviluppare interfacce grafiche utilizzando la programmazione orientata ad eventi.
- Saper applicare i principi di separazione di responsibilità e MVC nel contesto di applicazioni GUI.
- Saper progettare e eseguire processi di needfinding per individuare gli personas e scenari di uso.
- Saper sviluppare le proprie idee dell'elaborato indipendentemente o in piccolo gruppo.
- Saper progettare e effettuare test di usabilità.
- Saper comunicare in forma scritta e orale le motivazioni, implementazione, e esiti del elaborato.
Programma del corso
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.
Please note that this list of topics is tentative and will be finalized before the beginning of the semester.