Thinker5s.gif (3570 bytes)

Human-Centered Computing Course 

Spring 05, 310 Soda Hall, MW 2:30-4:00pm.

CS 294-1, CCN 26887

Instructor: John Canny, 529 Soda Hall, 642-9955, jfc at cs, office hours Tu3-4, W4-5

Here is the final project assignment

Course Contents

Course swiki (password protected)

Recommended books

Project Suggestions

This is a regular 3-unit graduate course. 

Course Overview

This course adopts a human-centered approach to the design of information systems. IT is evolving away from loose collections of applications toward integrated "digital assistants" and "context-aware systems". Those visions of computing assume a high-level understanding of human activity. Human-Computer Interaction has had many successes, but is often criticized for its lack of theoretical grounding. This course explores various frameworks that have contributed to HCI, and attempts to go further in discovering useful theory. It draws from social sciences and the humanities. As well as particular theories we will discuss meta-methods that have had wide use across humanities and social sciences such as the "historical/developmental" approach, and the "linguistic" approach, and how they bear on the design of IT. The topics presented here were selected because of their importance for the activities that computers mediate today. Several have already led to big ideas in computing: e.g. Mark Weiser's original vision of ubiquitous computing was inspired by the theory of situated activity that we will be discussing. But we believe that the greater part of the work remains to be done. One challenge to a more integrated theory of HCI is the fragmentation of disciplines that study human behavior. We begin the course with a historical discussion of how that fragmentation came about, and the difficulties and opportunities that it creates. 

Students will complete a substantial project that builds on one of the topics in the course. The project can be a working system, or a literature review, or a theoretical synthesis. 

The tentative course contents is listed here. One or two additional topics will be added which will be defined by the students in the class. 

Learning and Development:
Although they may not seem immediately relevant, learning and development theory has framed much of our group's work in recent years and the work of several other research groups. This is an example of the first meta-principle (the historical/developmental approach). The best way to understand use of information systems is to study how users learn to use them, and understanding that takes us back to the basics of human learning. 
Activity theory and relatives:
Vygotsky and Leontev's theories (activity theory) have had a big influence in contemporary education, anthropology and HCI theory. These lectures give a short introduction to it. 
The Linguistic Approach:
The study of language is a focal theme in many disciplines today (not just linguistics) and leads to the meta-method called "linguistic analysis". In this section we will explore several examples across disciplines, attempt to synthesize the "method" from them, and then look at how it can be applied concretely. 
Cognitive Science:
Cognitive science is a tricky to cover, since there's no obvious core, and in fact there is contention between many of the important theories. This section takes a dialectic approach. Contentious theories are presented back-to-back in the same week, so we will hopefully get some mileage from those conflicts. This is prime discussion time.
Personality, Emotion, Persuasion...:
Its important to remember that much (perhaps most) knowledge work is about influence, trust-building, and persuasion. This section gives some basic concepts that are fundamental to understanding and modeling those situations. The concepts here are surprisingly quantitative. 
Social Networks:
Social networks are graphical models of relationships between groups of people. They can model communication, exchange, influence, trust etc.  There is a mature set of core algorithms, and they have traditionally been applied (by hand) to analyse small groups or organizations. Now they are increasingly being used in computer applications like "knowledge networks" and "tacit information systems". 
Design and Knowledge Creation:
The design community has established a good set of human-centered design principles. They begin with studies of existing practice through ethnography etc., and include a high-level of participation by the user community during the design process. Knowledge creation is a popular concept today to describe even more general knowledge work. Tricky concepts like tacit knowledge and knowledge networks have been bandied about for a while, but are now becoming concrete as implemented in some new information systems. 

Lecture Format

Classes are held from 2:30-4pm Mondays and Wednesdays in 310 Soda. The format of the class has evolved through an iterative design process into the following:

  1. A student-led presentation on the reading(s).
  2. Some commentary by me with additions and talking points.
  3. Class discussion on the readings in small groups, possibly followed by group summaries to the rest of the class. 
  4. A short description by me of the important points to look for in the *next* lecture's readings. 

Depending on numbers and other resources, we may experiment with wireless in-class note-taking during the class. 


Every enrolled student needs to hand in a list of two or three main points from each reading at the beginning of class. 


Projects can be computer programs, designs for information appliances, user studies and analysis, or papers that combine ideas from another discipline with computer science. More information will follow.