Yes teach, not learn. I have been writing about ways to learn visualizations multiple time (here, here, here, here, here, and, here) and others have done it multiple times too, but I am more interested in questions about how to best teach visualization now. I have been teaching a whole new Information Visualization course last semester and I honestly have several doubts on what’s the best way to teach visualization.
First, I need your feedback.
I will get to the main doubts I have in a moment but before that I want to ask you a favor: if you teach or ever taught a course, I would be very happy to hear from you your opinion and experiences with teaching visualization. I know, as a matter of fact, every teacher has big questions and doubts about best teaching practices. I’d love to hear from you the ups and downs of your teaching experiences.
I would also be very happy to get feedback from people who have attended visualization courses in the past. Did you ever attend a visualization course? If yes, what do you think is the best way to be taught about visualization? Is there anything that worked especially well or bad. What is the most challenging part? Theory, practice, tools, examples? What does or doesn’t work in class?
My InfoVis Course
My Information Visualization course is held at NYU-Poly and it’s open to students of every level (undergrads, grads, and phds). The course is organized around lectures, reading assignments, exercises (mostly in class) and a (big) final project. The project is the most important part of the course and my students work on it for more than half of the time of the whole course (about 2.5 months).
The course focusses mainly on visualization theory (mostly perceptual issues and visual encoding) and on the visualization design process. I have two main goals for my students: (1) make sure they can, for any given problem, explore a very large set of solutions (rather than focus on the first one that comes into their mind), (2) predict as much as possible what works and what does not work, that is, design and implement effective visualizations.
Issues with teaching visualization.
Here is a list of some specific issues I have with my courses.
Visual literacy. I have noticed this problem multiple times in my courses: I show a wide array of visualization examples early on in the course and then I quickly focus on the nuts and bolts of visualization design. The students seem to understand what I teach but they simply have not experienced enough visualization design to really internalize and fully understand what I say. Also, when we come to the problem of designing some visualizations for a data set they have never seen before in the past they don’t have enough of the visualization design space in mind to explore all the interesting possibilities. They are mostly anchored to what come first (usually from experience). How do you develop visual literacy early on in the course? I am not sure but I feel students need a much deeper immersion into the visualization design space before they are able to work on it.
Tools. I usually give total freedom to my students to choose whatever tool they want (I usually make the bad joke they can code visualization in assembler if they want to). I give some detailed advice on what I think are the best tools around but then they choose and learn the tools on their own. I used to think that tool choice is a secondary aspect of teaching visualization but I totally changed my mind. Visualization, as any other design craft, is totally dependent and shaped by the tools one uses, both consciously and unconsciously. The tool you use will give a certain shape and frame of mind to the visualization you produce (I first learned about the idea of how technology and context shape the creative process from David Byrne’s book How Music Works). Furthermore, there is the issue coding vs. noncoding. I know a lot of people do great visualization without writing a single line of code. Yet, I think coding gives much more freedom. I now believe it is much more effective to give tools the role they deserve and teach one (max two) core tools in my future courses. How do you use tools in your course? Is it an accessory or fundamental aspect of your course?
Projects. I think there’s no doubt visualization can only be learned by doing a lot of practice. I use to repeat that visualization can only be judged when you see it not when you think about it. Projects are a great way to put in practice what you learn and solve some interesting and challenging problems. Yet, how do you split the time between the project part and the lectures? How early should the student work on their projects? Ideally they should start very early on so that they have enough time, but shouldn’t they first acquire some basic knowledge? But how can they acquire this knowledge without practice? Again, I used to believe the best way is to split the course into two main periods: the lectures period and the project period. Now I am no longer sure this is the best way to go. How about mini-projects? Projects with a much shorter time span but nicely interleaved with the lectures? It sounds like a nice option. Yet, when are the students confronted with a more realistic medium-size project. Can one afford to have mini-projects AND one big project? I am not sure.
There are many other issues I have but these are the most pressing ones I had.
Now it’s your turn! What’s the best way to teach visualization? I’d love to hear your opinions and experiences. Thanks!