Insegnamento mutuato da: B024323 - HUMAN COMPUTER INTERACTION Laurea Magistrale in INGEGNERIA INFORMATICA
Lingua Insegnamento
Lectures will be in English, with most slides and reading material in English. The final exam may be done in English or Italian. Students may interact with the instructor in English and/or Italian.
Contenuto del corso
Il corso è organizzato intorno a degli argomenti tecnici e
teorici sulla Human Computer Interaction. Più dettagli sotto
nella sezione della Programma del Corso.
Libri:
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.
Articoli scientifici selezionati da convegni e riviste sulla 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
Conoscenza di base e esperienza con la programmazione in un linguaggio ad alto livello (C/C++, Java, Python, Lisp) sarebbe utile ma non essenziale. Esperienza con programmazione in Python sarebbe molto utile ma non essenziale.
Metodi Didattici
Lezioni frontali e sessioni di laboratorio.
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 un 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.
- Special topics: video games and HCI, machine learning and HCI.
- 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.