Course Description

Increasingly, we are realizing that to make computer systems more intelligent and responsive to users, we will have to make them more sensitive to context. Traditional hardware and software design overlooks context because it conceptualizes systems as input-output functions. Systems take input explicitly given to them …

Increasingly, we are realizing that to make computer systems more intelligent and responsive to users, we will have to make them more sensitive to context. Traditional hardware and software design overlooks context because it conceptualizes systems as input-output functions. Systems take input explicitly given to them by a human, act upon that input alone and produce explicit output. But this view is too restrictive. Smart computers, intelligent agent software, and digital devices of the future will also have to operate on data that they observe or gather for themselves. They may have to sense their environment, decide which aspects of a situation are really important, and infer the user’s intention from concrete actions. The system’s actions may be dependent on time, place, or the history of interaction, in other words, dependent upon context.

But what exactly is context? We’ll look at perspectives from machine learning, sensors and embedded devices, information visualization, philosophy and psychology. We’ll see how each treats the problem of context, and discuss the implications for design of context-sensitive hardware and software.

Course requirements will consist of critiques of class readings (about 3 papers/week), and a final project (paper or computer implementation project).

Learning Resource Types
Lecture Notes
Projects with Examples
Diagram of a context-aware application with an explicit input and explicit output.
A context-aware application with an explicit input and explicit output. (Diagram courtesy of Prof. Henry Lieberman.)