Software Structures for User Interfaces / Arquitecturas de Software para Interfaces com o Utilizador

Keywords: 
Advanced UI programming
Interaction techniques
Program: 
MHCI
Program: 
MEI
Program: 
PDMD
Program: 
NETSyS
Calendar: 
UMa
Semester: 
Spring
Lecturers: 
Diogo Cabral
Credits: 
7.5 ECTS

This course is designed to:

  • Introduce students to the basic organizing principles found in interactive software
  • Provide experience with user interface implementation
  • Explore advanced interaction techniques

This course is intended for those with advanced programming skills (CS background) who want to do serious development of graphical user interfaces. It considers factors of input, output, application interface, and related infrastructure as well as the typical patterns used to implement them. It will also consider how these components are organized and managed within a well-structured object oriented system. After considering these fundamental concepts in the first portion of the class, the later part will consider advanced topics related to emerging future concepts in user interface design.

This course includes: an introduction to task analysis and functional design of the user interface; basic principles of computer graphics used in UI implementation; event handling and event dispatching models; screen update algorithms and multi-view architectures; input syntax formalisms and their transformation into programs; interactive geometry; architectures for advanced features such as cut/copy/paste, macros and groupware.

The course also includes an intensive programming lab on mobile interfaces (Android).

Readings: 

No textbook; various research readings (changing on a year by year basis)

Evaluation: 
Readings  
Short Assignments  
1 Longer Assignment (Prototype Implementation)  
1 Exam