Bill Cowan's Research Themes

What most professors call their research I break into two parts.

The best thinking is disorderly. (Exercise for the reader: Why?) In retrospect, however, it is often possible to discern themes that persist over years and decades, usually associated with styles of thought more than with subject matter.. The following paragraphs give high level discussions of the subject matter of my current thoughts. Finding the theme(s) is left to the reader.

Emergent Behaviour in Collective Models

My research career started in condensed matter physics.


What is it about colour that is so neat?

Perception and attention

Art and Computer graphics

A textual summary of a talk I gave in 1995 in St-Etienne: Rendering with Limited Means.

Slow Animation

Learning in human-computer interfaces

Network economics of innovation

Algebraic structure of user interfaces

Structure is important in user interfaces. Influential ideas like interface metaphor, consistency, congruence and gestalt organization are all instances of structure. Yet, while structure in the small has been widely studied (mostly experimentally), very little research exists exploring formal properties of overall structure.

I have long been interested in the formal relationship between the large-scale structure of entire interfaces and the structure of the software that implements the interface. Two contrasting examples are

  1. the structure of command-line Unix interfaces, and
  2. the structure of mouse-windows interfaces.

In the first case the interface structure is quite close to the implementation structure, making the interface hard to learn on the surface. The surface learning, however, is easy to extend. In the second the interface structure is far from the implementation structure, allowing the interface to be easy to learn on the surface, but with surface learning that is hard to extend, notwithstanding the recent adoption of object-oriented design.

Are these plausible generalizations right or wrong? Are other relationships between interface and implementation structures possible? Such questions are well-posed only when there is a relevant and usable notion of structure. Interface structure has been examined primarily in the context of task structure, using tools from the social sciences. Complementary to this work my approach looks to abstract algebra for a more formal notion of structure, and more specifically to the theory of finite groups, the structure of which has been extensively catalogued over the past century.

The intuition for using abstract algebra is the basic interface structure: when a user selects an interface affordance the software applies an operator O to the current system states to give a new system state s' = Os; and when a subsequent affordance is selected a possibly different operator P is applied to give a new state s'' = Ps' = POs = Qs. The idea of using an algebra is to note the formal identity POs = Qs, and to ask when it is possible to abstract the operator relationship PO = Q from it. More succintly, when is it possible to abstract away the states?

Two assumptions are make about the structure of affordances, which are considered strong desiderata for current user interfaces.

  1. Every affordance is undoable.
  2. Every interface state is accessible from the starting state.

Also, the Undo affordance has an interesting feature: depending on the state and the previous affordance selected Undo is the interface name for different interface operations. Thus, it is cleaner to consider a layer below the presentation of the interface to the user, in which those user interface operations are distinct, called the logical interface. Then the Undo affordance, which appears in the interface presentation, or visible interface, maps to operations in the logical interface with a mapping that depends on both the state and the hisory of the visible interface.

It's now easy to see that the closure of the logical interface is a finite group. The goal of this research theme is to apply what is known about the algebraic structure of finite groups to the structure of the logical interface, and therefrom to infer structural properties of the visible interface (HCI) and the interface implementation (Software Engineering).

Return to: