current page



The world is awash with increasing amounts of data, and we must keep afloat with our relatively constant perceptual and cognitive abilities. Visualization provides one means of combating information overload, as a well-designed visual encoding can supplant cognitive calculations with simpler perceptual inferences and improve comprehension, memory, and decision making. Furthermore, visual representations may help engage more diverse audiences in the process of analytic thinking.

In this course we will study techniques and algorithms for creating effective visualizations based on principles from graphic design, visual art, perceptual psychology, and cognitive science. The course is targeted both towards students interested in using visualization in their own work, as well as students interested in building better visualization tools and systems.

In addition to participating in class discussions, students will have to complete several short programming and data analysis assignments as well as a final project. Students will be expected to write up the results of the project in the form of a conference paper submission.

There are no prerequisites for the class and the class is open to graduate students as well as advanced undergraduates. However, a basic working knowledge of, or willingness to learn, a graphics API (e.g., OpenGL, Java2D, Flash/Flex) and data analysis tools (e.g., Excel, Matlab, R) will be useful.


Lectures: Mon & Wed, 12:35-2:05pm, Building 380, Room 380X (Math Corner)

Final Project Presentations will be held Wed Dec 2, 4-6pm in the Gates Hall Lobby.


Mon Sep 21: The Value of Visualization (Slides)

Wed Sep 23: Data and Image Models (Slides)

  Assigned: Assignment 1: Visualization Design (Due Mon 9/28, by 7am)


Mon Sep 28: Visualization (Re-)Design (Slides)

  Due: Assignment 1: Visualization Design (by 7am)

Wed Sep 30: Multidimensional Data Visualization (Slides)

  Assigned: Assignment 2: Exploratory Data Analysis (Due Mon 10/12, end of day)


Mon Oct 5: Graphical Perception (Slides)

Wed Oct 7: Interaction (Slides)

Fri Oct 9: Software Tutorial - Protovis (Slides / Tutorial by Mike Bostock)

  • Time/Place: 4-5:30pm, 104 Gates


Mon Oct 12: Color (Slides / Guest lecture by Jason Chuang)

  Due: Assignment 2: Exploratory Data Analysis

  Assigned: Assignment 3: Interactive Visualization (Due Wed 10/28, end of day)

Wed Oct 14: Software Tutorial - Flash/Flare (Slides / Tutorial by Jason Chuang)


Mon Oct 19: Using Space Effectively (Slides)

Wed Oct 21: Graph and Tree Layout (Slides)

  Assigned: Final Project


Mon Oct 26: Animation (Slides)

Wed Oct 28: Text Visualization (Slides)

  Due: Assignment 3: Interactive Visualization


Mon Nov 2: Visualizing Web Data (Guest lecture by Mira Dontcheva)

Wed Nov 4: Visual Analytics and Collaboration (Slides)

  Due: Final Project Proposals


Mon Nov 9: Final Project Problem Presentations

Wed Nov 11: Final Project Problem Presentations


Mon Nov 16: Identifying Design Principles (Guest lecture by Maneesh Agrawala)

Wed Nov 18: Evaluation (Slides)

  • Ben Fry Talk: 6pm, Herrin T175


Wed Dec 2: Final Project Presentations, Gates Hall Lobby, 4-6pm

Mon Dec 7: Due: Final Project Reports (by end of day)


Course Information


Late Policy: We will deduct 10% for each day (including weekends) an assignment is late.

Getting started with this Wiki

This is the course wiki for cs448b. You will be using the course wiki to:

  • Post questions and debate readings
  • Publish your assignments
  • Share resources and links
  • Demo your course project

To contribute to the wiki, please log in using your Stanford SUNet ID and password.

Here are some starting points to familiarize yourself with wiki:

See HelpForBeginners to get you going, HelpContents for all help pages.