What is this class and why? (or, “will you like this class?”)
I want to be upfront about what this class is. I want to get your expectations in the right place. If you’re expecting something else, you may be disappointed. And I think it helps you appreciate why I am teaching the way that I am teaching.
From the announcement:
This class is more about what pictures to make to understand data than how to make them. We will spend a lot of time understanding design principles. We will not spend lots of time talking about how to program visualizations, or how to use tools to make visualizations.
Or, to explain it another way:
Making visualizations isn’t hard. Making good visualizations is hard. So we need to understand what makes for a good visualization before we waste our time trying to make visualizations. This class is about understanding good visualizations.
Why focus on “Visualization Principles” not implementation?
The principles of good visualization apply for everyone. For each person, the appropriate tools and development process may be different.
The principles of good visualization are constant and unchanging (although, our understanding of them is improving). The tools for creating visualizations change continually.
The skills for thinking about visualization principles (design, critique, task-oriented analysis, abstraction, …) are generally useful for many things. The skills for creating visualizations are pretty specific.
Over the years, I think I’ve learned to teach people the principles. For for many of the implementation skills (e.g., web development), many of you either already know a lot more than me (i.e., you are up-to-date web developers) or aren’t at a place on the learning curve where a class like this will help (i.e., you need to learn basic web programming skills first).
Why focus on Basics/Foundations and not Fancy Stuff?
First, a lot of the best cutting edge research is building a better understanding of the foundations.
Second, is that really understanding the foundations is the basis for doing fancy stuff.
Third, and maybe most important, effectively using the basic stuff and foundations is usually what you need. Fancy stuff should be a last resort!
Visualization’s goal is to solve people’s problems. Sometimes, that requires inventing a novel and complicated visualization. Other times, it might mean applying some simple, off-the-shelf solution.
Here’s my favorite analogy. You go to the doctor’s office because you feel sick. The last thing you want to hear is “that’s a novel and interesting problem! we need to devise a novel treatment. let’s write a grant proposal and hire some research assistants…” No, you want to hear “I’ve seen that before. No problem. Take two aspirin and see me in the morning.”
As visualization practitioners, our goal is to be able to look at a problem and make those kinds of prescriptions. The foundations (e.g., task and data abstractions) are key here. It’s how we can say “I’ve seen that before” and get to “take two scatterplots and see me in the morning.”
A standard design (like a scatterplot or line chart) can be really effective in many situations. And, if a standard design can be effective there are lots of good reasons to prefer a standard design. For example, they are familiar to the viewer and you probably don’t need to reinvent the implementation. The key is to be able to identify when a standard design is effective and how to use it appropriately. You’ll need to make similar choices in inventing a new, fancy design.
But, I really want to learn about (programming, using Tableau, …)!
This class is, admittedly, not for everyone.
This class will teach you how to design good visualizations, and will teach you a little about about the choices you have in how to make them. If you learn how to use some tools for making visualizations (Tableau, D3, R, matplotlib, …) you will know what to make with those tools!
There are good resources for learning about specific tools. And in class, you may meet others who are also trying to learn these tools as well.
The focus on the non-technical elements (design, design methodologies, …) makes this different than the standard CS class.
But, I don’t care about general principles – I just want to visualize my data!
Sorry, we generally don’t let students “bring their own data” to class, for a number of reasons.
The principles you will learn will help you work with your own data – but for learning in class, it’s best that we work on data that everyone has access to, and that we believe is the right level of challenge.
If we’re not going to program, what are we going to do?
Because this year’s schedule isn’t together yet, I recommend that you look at the course web for the last offering (especially the schedule), it will give you a good sense of the topics we’ll cover. This year some things will change, but the basic structure and main content will be the same. You may also want to look at the “How to Visualize” post which summarizes the course content.
In terms of what we’ll do this semester…
- We’ll do a bunch of reading and discussing to understand principles.
- We’ll focus on learning critique skills to help us learn by analyzing visualizations.
- We’ll spend a lot of time examining examples to understand why they work (and why they don’t). This will include spending time looking for examples to see how visualization is out there in the world.
- We’ll spend time learning the building blocks that visualizations are built from.
- We’ll spend time learning about visual perception and how it influences visualization design.
- We’ll do some design exercises to try to appreciate how those principles get put into practice.
- We’ll look at some specialized techniques and designs for dealing with particularly tricky kinds of data.
- We’ll do some larger design challenges to practice applying the principles.
- And if you want (it will be optional), you can do some programming for some of those design challenges.
But I want even more…
If you want more than what is in this post, you might go to the post How to Visualize that gives the basic ideas of visualization (and the class) in a little more depth.
If you want to go beyond what we do in class, (e.g., learn about some of the more mathematical and implementation aspects, get involved in research, …) we can find ways for you to do it. But that is in addition to class stuff.