Context-Aware Computing

Instructor: Dr. Christine Julien (
Office Hours: Wednesdays 2-5pm (or by appointment)

As computing devices become ubiquitous in our everyday environments, software increasingly needs to incorporate context information.  This course will provide an in depth exploration into incorporating context-awareness into the design of tomorrow's software.

Course Objectives:

The course will provide an in depth exploration into context-aware software, focusing on the following major aspects:

Meeting Times:

We will meet individually or as a group to discuss the readings, your comments and questions.  We will also meet all together once near the end to (informally) present and discuss the resulting projects.

Evaluation Criteria:

The students will be evaluated on two major criteria: paper analysis and discussion (75%) and a small project (25%).  Because the course will be based on current research papers, each student will be expected to read and analyze the assigned papers.  The grade for this portion will be based on the participation of the student and in his or her questions, critiques, and other comments related to the papers.  The course will also involve a small research project in which the student can explore a number of avenues. 

Reading Assignments and Materials:

Beloq are the papers provided as reading material for this class.  They are divided into themes, and for each theme, I have a date next to the title.  This is roughly the time by which you should plan to have the reading review of the assigned papers completed, though the dates are not hard and fast.  For each theme, I would like you to write a (brief) review (no more than a page, and less will often if not always be fine) about the topics covered in the papers.  For these reviews, I have tried to give you some "reading questions" for each theme to begin your discussions.  You are not required to address these questions, but they give you an idea of some things you could be looking for.  For each theme, I would also like you to ask some questions that lead to open problems.  Some examples: Did the authors ignore some important aspect?  Can you think of a more efficient or easier way to address the same problem?  Can you combine the ideas of one piece of work with another to generate something interesting.  (The point of doing this is to help you have a ready list of possibly projects when the project phase rolls around.)  I see the reading reviews as a dialogue between us, so I will respond to them with my comments, answers, and additional questions.  All of the reviews must be submitted before July 29th.

Introduction (June 10th)

Anind K. Dey, Gregory D. Abowd, and Daniel Salber, A Conceptual Framework and A Toolkit for Supporting the Rapid Prototyping of Context-Aware Applications.  Human Computer Interaction, 2001, Volume 16, pp. 97--166.

Thomas Erickson, Some Problems with the Notion of Context-Aware Computing.  Communications of the ACM, Volume 45, Number 2, 2002.

Reading Questions:
  1. Define context.  (Not word-for-word from the paper; after reading the paper, how would you, in your own words, define context?)
  2. In the example applications, what kinds of context are used and how are they used?<>
  3. <>What are some advantages and disadvantages of the toolkit they propose?
Architectures (June 17th)

Jason I. Hong and James A. Landay, An Infrastructure Approach to Context-Aware Computing.  Human Computer Interaction, 2001, Volume 16, pp. 287--303.

Terry Winograd, Architectures for Context.  Human Computer Interaction 2001, Volume 16, pp. 401--419.

Reading Questions:
  1. Keeping the Context Toolkit in mind, what are some advantages and disadvantages of the different architectural approaches (e.g., widgets, service infrastructure, blackboard, etc.)?  Consider the possibility that an approach might be appropriate for certain classes of applications, environments, etc.
  2. After reading about these three architectural options, can you envision additional alternatives?
Design (June 24th)

Steven A. N. Shafer, Barry Brumitt, and J.J. Cadiz, Interaction Issues in Context-Aware Intelligent Environments.  Human Computer Interaction, 2001, Volume 16, pp. 363--378.

Andreas Pappas, Stephen Hailes, and Raffaele Giaffreda, A Design Model for Context-Aware Services Based on Primitive Contexts.  First International Workshop on Advanced Context Modelling, Reasoning, and Management, 2004.

Reading Questions:
  1. How is (or should be) design for context-aware systems different than traditional software design?
  2. In your opinion, what is the singular most important design concern for context-aware systems?
  3. What novel techniques are proposed or discussed to address these new concerns?
Middleware (July 1st)

Hector A. Duran-Limon, Gordon S. Blair, Adrian Friday, Paul Grace, George Samartzidis, Thirunavukkarasu Sivaharan, and Maomao WU, Context-Aware Middleware for Pervasive and Ad Hoc Environments, Proceedings of the 3rd International Conference on Mobile and Ubiquitous Multimedia, 2004, pp. 213--220.

Julien, C., and Roman, G.-C., "Egocentric Context-Aware Programming in Ad Hoc Mobile Environments," in Proceedings of the 10th International Symposium on the Foundations of Software Engineering, 2002, pp. 21-30.

Reading Questions:
  1. What is the purpose of middleware in general?
  2. Why can middleware help context-aware applications?
  3. What are some key important concerns addressed by these middleware (think back to the design considerations laid out)?  What are some things that are notably missing or done poorly?
Privacy (July 8th)

Marc Langheinrich, Privacy-By-Design--Principles of Privacy-Aware Ubiquitous Systems, Proceedings of Ubicomp 2001, pp. 273--291.

Mark Ackerman, Trevor Darrell, and Daniel J. Weitzner, Privacy in Context.  Human Computer Interaction 2001, Volume 16, pp. 167--176.

Raquel Hill, Jalal Al-Muhtadi, Roy Campbell, Apu Kapadia, Prasad Naldurg, and Anand Raganathan, A Middleware Architecture for Securing Ubiquitous Computing Cyber Infrastructures. IEEE Distributed Systems Online, 2004, Volume 5, Number 9.

Reading Questions:
  1. What are the competing issues regarding incorporating privacy concerns into ubiquitous or context-aware computing systems?
  2. What novel techniques are proposed to address these concerns?  How are they limiting to the vision of context-aware computing?
Applications (July 15th)

Keith Cheverst, Nigel Davies, Keith Mitchell, Adrian Friday and Christos Efstratiou, Developing a Context-aware Electronic Tourist Guide: Some Issues and Experiences. Proceedings of Computer Human Interaction 2000, pp 17--24.

Jason Pascoe, Nick Ryan, and David Morse, Issues in Developing Context-Aware Computing. Proceedings of the International Symposium on Handheld and Ubiquitous Computing, 1999, pp. 208-221.

Find another research paper on a more recent context-aware application (i.e., more recent than 2000), read it, and send me your review and the citation of the paper.

Reading Questions:
  1. What kinds of context did these applications use and how did they use it?
  2. How close did these applications come to being ubiquitous?  What portions of the applications fell short?
  3. How could you build on these applications to create better, more useful applications?

The final component of the course is a small research project to allow the students to get more focused experience in the area of context-aware computing.  In this project, each student will prepare a project (with suggestions listed below) or short survey paper relating to the topics addressed in the papers.  Example topics include but are not limited to:
The project grade will include a short paper and participation in a discussion session which includes an informal presentation of the project.

Project Milestones

The first portion of this class introduces the students to different aspects of context-aware computing.  The milestones for the project are based on the premise that a good coverage of the topics of context-aware computing is important before beginning the project.  For this reason, the milestones for the project are related to the reading dates above.