There is a growing realization that computer systems will need to be increa
singly sensitive to their context. Traditionally, hardware and software wer
e conceptualized as input/output systems: systems that took input, explicit
ly given to them by a human, and acted upon that input alone to produce an
explicit output Now, this view is seen as being too restrictive. Smart comp
uters, intelligent agent software, and digital devices of the future will h
ave to operate on data that are not explicitly given to them, data that the
y observe or gather for themselves. These operations may be dependent on ti
me, place, weather, user preferences, or the history of interaction. In oth
er words, context. But what, exactly, is context? We look at perspectives f
rom software agents, sensors, and embedded devices, and a/so contrast tradi
tional mathematical and formal approaches. We see how each treats the probl
em of context and discuss the implications for design of context-sensitive
hardware and software.