Visualizing Data: Code Meets Graphic Design
Autumn 2009
Thursdays, 12:30 to 3pm
Room 406
Course Code H79.2812
Syllabus (this page)
http://itp.nyu.edu/varwiki/Syllabus/VisualizingData-F09
Class Blog (updated frequently)
http://itp.nyu.edu/VisualizingData
Instructor
Stewart Smith
stewart.smith@nyu.edu
http://stewdio.org
Office Hours
Mondays, 4 to 6pm and by appointment
Front tables or knock on Adjunct Office door (Room 403)
Course Description
The goal of this course is to augment your introductory Processing knowledge with concepts, examples, and sample code for creating data visualizations. In addition to code the course focuses on graphic design, specifically hierarchy and typography in visualization. Here are some design questions the course considers: Who is your audience? How would a first-time user approach/understand a piece? Does your choice of typeface enhance or detract from what you’re trying to communicate? Discussion ranges from writing clean source code to Sol LeWitt, Douglas Engelbart and Edward Tufte. On the technical side the course examines how to parse data from XML (including Atom and RSS feeds), CSVs, and images. We cover simple chart, graph, and connectivity examples before moving on to your own visual experimentation. By semester’s end you should be able to load data, render something visually compelling, and have something interesting to say about it.
Required Software
Processing 1.0.7
http://processing.org/download
Required Reading
1. As We May Think by Vannevar Bush for The Atlantic, 1945.
http://theatlantic.com/doc/194507/bush
Suggested Reading
1. Visualizing Data: Exploring and Explaining Data with the Processing Environment by Ben Fry.
http://amazon.com/dp/0596514557
2. The Laws of Simplicity: Design, Technology, Business, Life by John Maeda.
http://amazon.com/dp/0262134721
3. Processing.org by Ben Fry, Casey Reas, et al.
http://processing.org/learning
4. Hackers and Painters: Big Ideas from the Computer Age by Paul Graham.
http://amazon.com/dp/0596006624
5. The Visual Display of Quantitive Information by Edward Tufte.
http://edwardtufte.com/tufte/books_vdqi
6. Elements of Typographic Style by Robert Bringhurst.
http://amazon.com/dp/0881792063
7. Design of Everyday Things by Donald Norman.
http://amazon.com/dp/0465067107
Suggested Listening
1. Great Hackers by Paul Graham at OSCON 2004.
http://itc.conversationsnetwork.org/shows/detail188.html
2. Design Reboot by Jonathan Blow at MIGS 2007.
http://braid-game.com/news/?p=129
3. The Internet of Things by Bruce Sterling at ITC ETech 2006. (Skip the introduction and begin at 4:08.)
http://itc.conversationsnetwork.org/shows/detail717.html
4. All My Little Words written by The Magnetic Fields, performed by Hexachordal.
http://youtube.com/watch?v=CUgdQKigCf0
Week 1. Introduction: Gears, Output, Poetry
September 10
Topics
1. Gears. Programmatic building blocks. The source code you write, the code you borrow, the algorithms, etc. http://processing.org/reference/libraries
2. Output. What do your gears render visually / sonically / other? How can we improve the effectiveness of this communication? Does it meet your intended goals when presented to novice users? http://vimeo.com/videos/search:data+visualization/sort:likes
3. Poetry. (The look of the Gears.) Source code is a medium of expression in itself. It's important to express your ideas clearly and elegantly. There's a correlation here between clean code and clean output that we can investigate together. You already have an innate ability to distinguish well composed lines of code from sloppy ones. Consider the Songs in Code meme. Which examples strike you as clever? Which ones are just lame? http://twitter.com/search?q=%23songsincode
Due for the following class
1. Homework blog; either use an existing blog of yours or register an NYU blog for use with future homework assignments.
2. Email me with your name, brief description of your Processing / programming experience. (Yes, slightly repetitious, but we're bootstrapping a dialogue here.)
3. Read As We May Think by Vannevar Bush (The Atlantic, July 1945). Very important text in computing; forecasted hypertext. Overall theme is dealing elegantly with humanity's glut of data.
http://theatlantic.com/doc/194507/bush
4. Be prepared to casually explain how to solve a Rubik's Cube. Does not need to be memorized. Notes are fine. The extent of your preparedness is up to you, though effort is expected. This task is intentionally unclear. Future assignments will have an increasingly tighter focus.
Week 2. Theme and Variation
September 17
Topics
1. Review of Vannevar Bush's As We May Think. Side note: You may enjoy reading up on McCullogh-Pitts artificial neurons. http://ecee.colorado.edu/~ecen4831/lectures/NNet2.html
2. Rubik's Cubes vs. Office Guns. A review of the Rubik assignment and what it means for writing software. For the rest of your programmatic life you'll be repeatedly forced to decide where a problem falls on the Rubik's Cube / Office Gun spectrum. The key is determining where your time is best spent given the specific situation.
3. Sol LeWitt and algorithmic drawing. http://whitney.org/arport/commissions/softwarestructures/text.html
4. Cellular Automata.
5. Saul Bass.
6. I Am Sitting in a Room by Alvin Lucier, 1969. A self-describing algorithm that reveals the abstract shape of its container by "destroying" speech while "smoothing out" a stutter. http://ubu.com/sound/lucier.html
7. Hektor meets Dexter Sinister. http://hektor.ch/Work/Hektor+Meets+Dexter+Sinister/
Due for the following class
1. Look. Do a quick image search for logos, posters, animations, etc. done by Saul Bass and Paul Rand. Pick your favorite item from the bunch to (very) briefly discuss next class. Hopefully this exploration can serve as inspiration for solving your programming assignment.
2. Listen. Check out Paul Graham's Great Hackers lecture from OSCON 2004. Don't let the Java talk get you down, but do take to heart his passion for source code as a medium of expression. http://itc.conversationsnetwork.org/shows/detail188.html
3. Theme and Variation. Create a Processing sketch that visualizes two hard-coded variables as input. One variable must be a String and the other must be an Integer. You may only use black and white, no colors and no gradients or transparency. Animation and movement is highly encouraged. Use our class discussion of Sol LeWitt, Cellular Automata, Saul Bass, etc. as a jumping off point for your imagery. Post a polished version of your Theme and Variation assignment to your blog by next Wednesday evening and email me the link so that I can take a quick look and have some comments for the beginning of class. Here's a heavily commented example sketch: http://stewdio.org/itp/02/themeVariation1.zip. Please do not feel confined by the visuals of this example, experiment freely while satisfying the constraints.
Week 3. Stronger Themes
September 24
Week 4. Text and CSV
October 1
Week 5. XML (Including RSS and Atom)
October 8
Week 6. Talk of the Weather will do
October 15
May also include "Width of a Circle" section.
Week 7. Midterm Presentations
October 22
Week 8. Images as Location Data
October 29
Week 9. A Scene of Scenes
November 5
Week 10. Final Project Proposals
November 12
Week 11. Adding D's
November 19
Week 12. Development Day
December 3
Week 13. Final Presentations Group A
December 10
Week 14. Final Presentations Group B
December 17
Let Me Google That For You
Alan Kay
Alan Turing
Arecibo Message
Bruce Sterling
Douglass Engelbart and the Mother of All Demos, 1968
Dot Dot Dot Magazine
Edward Tufte
Hektor
Hoefler & Frere-Jones
Home Brew Computer Club
Jargon File
John Maeda
Jonathan Ive
Karel Martens
Long Now Foundation
Paul Rand
Pioneer Plaque
Pirates of Silicon Valley
Saul Bass
Steve Wozniak
Stewart Brand and the Whole Earth Catalog
Still Alive music video from Portal, 2007
Toxi Libs
Wim Crouwel
:)