Lectures will be in Italian, with most slides and reading material in English. The final exam may be done in English or Italian.
Course Content
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/
Learning Objectives
In this course you will design and implement real interfaces that help real users perform real tasks they need to perform (even if they didn't know it beforehand). You will learn how to discover and articulate user needs; how to prototype human-computer interfaces of increasing levels of fidelity; how to critically evaluate the usability of interfaces; and how to fully realize working human-computer interfaces that address the needs of real users. You will also acquire the technical know-how required to implement advanced human-computer interfaces using a variety of established and emerging technologies for HCI on desktop, mobile, and large-format display platforms.
Prerequisites
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.
Teaching Methods
Lectures and practical laboratory sessions.
Type of Assessment
9 CFU: 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.
6 CFU: 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).
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.
Course program
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.