Chapter 1: Welcome to the course

Welcome to INFO474, Interactive Data Visualization. This is a course at the University of Washington’s Information School, and these materials were developed by Michael Freeman. The purpose of this course is to teach students the necessary conceptual and technical skills to design and build interactive data visualizations on the web. While these resources are built for students currently enrolled in the course, they have been structured to be an online resource for anyone exploring tools to build visualizations on the web.

1.1 Expectations

This is an upper-level University course with a number of prerequisite programming and web-programming courses: as such, students will be responsible for a large amount of independent learning, both in terms of managing their own pace, and seeking out new skills. These modules have been designed to provide an overview of core concepts necessary for success in the course.

1.2 Organization

This organization has a separate repository for each learning module. Each module contains the following:

  • A tutorial on the specified skill(s)
  • Links to supplementary learning materials
  • Exercises for practicing the skills

Each repository with exercises has both master and complete branches. To view the complete branch on GitHub, you can easily use the UI to change branches:



You, of course, can simply checkout the branch via your terminal (more on this in module-1):

# Clone your fork of the repository
git clone

# Checkout the `complete` branch:
git checkout complete

The complete branch of each repo has the completed exercises. While these were included for your benefit, I strongly suggest you complete exercises for topics that you aren’t completely comfortable with. Assignments will presume you have mastered the skills of corresponding modules.

1.3 Contributing

If you would like to contribute to this repository by adding an exercise, making an edit, or suggesting a new module, please create an issue, or make the change in a fork of this repository and submit a pull request. I expect these resources to be continually improving.