cs349 - s10 - Lecture 1
Implementing User Interfaces - Spring 2010
Lecture 1 - Orientation
Two way flow of information
- User -> Computer
- Computer -> User
- monitoring progress, getting results
- all eyes
This also describes all kinds of thingss that surround us in our everyday
lives, such as
- door knobs
- light switches
- steering wheels, and other parts of the driving interface
Every instance of an interface has a set of common features. (An `instance
of an interface' is a single use of the interface.)
- a user, taken from a set of potential users
- a task that the user wants to perform, taken from a set of possible
- a strategy, which is a time-ordered collection of actions chosen by the
user, taken from a set of affordances provided by the interface
- a sequence of feedback, provided to allow the user to monitor progress
of the task, and to help the user decide what action should next be
Thus, the interface itself is developed in the context of
- a collection of potential users, and
- a collection of tasks which it can perform.
The developed interface provides
- a collection of affordances, which is a collection of responses to user
- one or more streams ofoutput, which provide the state of the system to
Most interfaces are also rooted in an application domain, which defines
- inputs that the interface can access, and
- side effects of using the interface.
The design of an interface takes all these things into account; so does
its implementation. `Developing' includes both design and implementation.
Two questions a user interface course might ask and answer..
- What should an interface be like? Other common interfaces, where
similar users do similar tasks.
- How do you make it that way? The same way other programmers do.
In 2010 this means
- We study interfaces that
- provide output as a set of layers on a 2D screen
- get input from a keyboard and/or pointing device
- encode commands in keystrokes, clicks, gestures
- draw simple pictures and write words for output, with words
- We look at a set of implementation methods that meet different sorts of
- low-level methods for games and tight interaction
- component-based methods for `productivity' applications
- scripting methods for prototypes and one-offs.