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., R, Excel, Matlab) will be useful.

Final Poster Session: Tuesday Dec 7, 4-6pm, Packard Lobby

Lectures: Tuesday & Thursday, 1:35-3:05pm, 124 Wallenberg Hall

Note that lectures start slightly later than is posted in the course catalog.


Tu Sep 21: The Value of Visualization

Th Sep 23: Data and Image Models

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


Tu Sep 28: Visualization Design

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

Th Sep 30: Exploratory Data Analysis

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


Tu Oct 5: Multidimensional Data Visualization

Th Oct 7: Graphical Perception


Tu Oct 12: Interaction

  Due: Assignment 2: Exploratory Data Analysis (by end of day)

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

Th Oct 14: JavaScript / Protovis Tutorial


Tu Oct 19: Flash / Flare Tutorial

Th Oct 21: Animation


Tu Oct 26: Color

Th Oct 28: Mapping & Cartography

  Due: Assignment 3: Interactive Visualization (by end of day)


Tu Nov 2: Using Space Effectively

  Assigned: Final Project

Th Nov 4: Graph Layout and Network Analysis


Tu Nov 9: Text Visualization

  Due: Final Project Proposal (by end of day)

Th Nov 11: Identifying Design Principles


Tu Nov 16: Final Project Presentations

Th Nov 18: Final Project Presentations


Tu Nov 23: Thanksgiving Break

Th Nov 25: Thanksgiving Break


Tu Nov 30: Visual Analysis, Collaboration & History

Th Dec 2: Evaluation


Tu Dec 7: Final Project Poster Session (4-6pm, Packard Lobby)

Fri Dec 10: Due: Final Project (by 5pm)


Course Information


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

Plagiarism Policy: Assignments should consist primarily of your original work, building off of others' work--including 3rd party libraries, public source code examples, and design ideas--is acceptable and in most cases encouraged. However, failure to cite such sources will result in score deductions proportional to the severity of the oversight.

Useful Resources

If you have an interesting visualization tool, resource, or announcement that you would like to share, please post it to the UsefulResources page.

If you are looking for project partners then have a look at the ProjectPartners page.

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.