Spring 2006

CS 294-10: Visualization




1. The Visual Display of Quantitative Information, (2nd Edition). E. Tufte. Graphics Press, 2001.
2. Envisioning Information, E. Tufte. Graphics Press, 1990.
       Your best bet is to order them online.
       Please order soon. Readings will be assigned in the first week of class.
There will also be readings from other sources. Consult the class schedule for more information.


Visual media in the form of diagrams, graphs, photographs, 3D renderings, sketches, animations, and film are increasingly generated, manipulated, and transmitted by computers. When well designed, such displays capitalize on human facilities for processing visual information and thereby improve comprehension, memory, inference, and decision making. Yet the digital tools for transforming data into visualizations still require low-level interaction by skilled human designers. As a result, producing effective visualizations can take hours or days and consume considerable human effort.

In this course we will study techniques and algorithms for creating effective visualizations based on principles and techniques 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.



The class will meet twice a week. In addition to participating in class discussions, students will have to complete several short programming and data analysis assignments as well as a final programming 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. However, a basic working knowledge of, or willingness to learn, a graphics API (e.g. GDI+, OpenGL, Java2D) and applications (e.g. Excel, Matlab) will be useful. Although some of the short assignments will use Java, the final project can be developed using any suitable language or application. While these APIs, applications and languages will not be taught in class, many introductory tutorials at the level required for the class are available on the web.