INF328 - Programmeringsspråkelementer
Contents on this web page
The seminar style course will provide insight into user interface programming. The focus is not on visual aspects of user interfaces (how to arrange user interface elements, what they should look like, and so on), but rather on programming the behaviors of user interfaces–how they react to user interaction.
It will cover, at a theoretic and pragmatic level:
The motivation for the class comes from current practices in user interface programming. In the dominant programming model, the main service offered by a typical graphical user interface library is to translate user actions to events and deliver the events to the correct event handler functions. A UI programmer writes the event handlers and registers them to listen to particular events. Even in user interfaces of modest complexity, the event handling code tends to evolve into a difficult to manage ``spaghetti''. As a result, programming the user interface of an application tends to be a significant effort (up to 50% according to some surveys) and user interfaces code tends to have a higher density of defects than code in general. These are not surprising findings, as UI implementations often require large amounts of application specific code that is difficult to reuse.
- contemporary design patterns, such as Model-View-ViewModel, aimed at maintaining modularity in user interface programming;
- (functional) reactive programming;
- data-flow constraint systems; constraint systems as representations for ViewModel's;
- reusable user interface behaviours, such as widget enablement and value propagation, implemented as generic algorithms parametrized over a ViewModel constraint system.
While the programming community has grown to accept the event handling programming model, even with its well-understood deficiencies, alternatives have been proposed and are being investigated. This class is a study of some of the more promising alternative (declarative) programming models for user interfaces.
INF328 is a 5 study point course available to Bachelor, Master and PhD students. Some programming background is needed. The course is small enough to be taken in addition to the regular study program, or it can be expanded with a selected reading to fill a regular slot in the studies.
The contents of the course is expected to change the next time it is provided.
There is no specific text book.
The curriculum will consist of a few papers and discussions related to the papers' contents.
Active student participation is expected, both in presenting sections of the papers and in the discussions.
A reading list will be provided as the course evolves.
Lecturer and course responsible: Jaakko Järvi with support from Magne Haveraaen
Teaching assistant: none
There will be a preliminary meeting Wednesday January 29 (week 5)
to agree on start date, teaching times etc.
Teaching will be in the form of lectures, student presentations, discussion, exercises and time off for self studies.
The teaching plan will evolve as the course unfolds.
- Wednesdays 1415 - 1600 in seminar room 4138 HiB
- Additional days to be agreed.
The course will probably be pass/fail based on sufficient acitivity during the semester.
There may be an oral or a written exam if this is appropriate.
Latest update 2013-12-02 by