Home > Teaching > CS 616: Human-centered computing

CS 616: Human-centered computing

Course Contents:

Human-centered computing(HCC) studies computing systems that are designed to support human activity. For example, search engines support information search, e-commerce supports economic consumption; increasingly, computing systems are also taking over managerial and organizational roles in service-sharing ecosystems. At the core of all such systems lie assumptions about the needs and expectations of humans, their eventual design is meant to facilitate these expectations. How specifically should a natural language search query be interpreted, based on a user’s past search history? How diverse should a music playlist recommendation be, based on the current pattern of song choices of the user? The academic discipline of HCC studies such questions in the bigger theoretical structure of a two-way interaction between agent expectations and system design: systematizing various elements of human behavior that can be reliably measured by computing systems; and determining how best to design computing systems that can adaptively interact with such behavioral elements.
This course offers a hands-on introduction to human-centered computing: reviewing a subset of current applications and open problems. The course comprises four modules, each one built, studio-style, around a hands-on mini-project that students will work on, individually or in groups. Theory and empirical methods will be introduced to the extent that they help the students with their projects. The course will begin with addressing topics relevant to currently mature technologies (search), transition to address currently active (recommender systems) and inchoate(affective computing) research areas and finally touch upon the common core of AI research that is the theoretical frontier in human-facing computing (goal-directed agents).

Sample course outline

Lesson 1: Intro, logistics, overview
Lesson 2: Math basics (matrix operations, probability)
Lesson 3: Different flavors of mathematical models
Lesson 4: Model fitting, regularization
Lesson 5: Programming basics (Matlab/python)

Module 1: Search

Mini-project (Topic model)
Lesson 1: Classical search/information retrieval
Lesson 2: Query completion
Lesson 3: Contextual/topical search foci
Project intro lecture
Lesson 4: Information scent and other foraging models
Lesson 5: Temporal information retrieval
Lesson 6: Serendipity, discovery
Project presentations

Module 2: Recommendations

Mini-project (Movielens)
Lesson 1: Recommender systems
Lesson 2: Collaborative filtering
Lesson 3: Feature selection, SVD
Project intro lecture
Lesson 4: Different flavors of REs
Lesson 5: Validation, measurement metrics
Lesson 6: Diversity
Project presentations

Module 3: Emotions

Mini-project (Sentiment analysis)
Lesson 1: Theories and schema
Lesson 2: Sentiment analysis
Lesson 3: Affect measurement (computer vision, survey instruments, activity monitoring)
Project intro lecture
Lesson 4: Bots
Lesson 5: BCI
Lesson 6: Boredom/ennui
Project presentations

Module 4: Goals

Project (Roomba)
Lesson 1: Basic goal-directed agents
Lesson 2: Hebbian/reinforcement learning
Lesson 3: Explore-exploit dilemma
Project intro lecture
Lesson 4: Curiosity, perseverance, fluctuations
Lesson 5: Deep principles – flow, connectedness, homeostasis, etc.
Lesson 6: Gamification
Project presentations