Course Description

In this course we study the theory and practice of data visualization, with partial focus towards problems and applications in biology. Topics include fundamental principles, concepts, and techniques of visualization and how visualization can be used to uncover and communicate data-driven insights.

Learning Goals

After successful completion of this course, you will be able to:

  • Critically evaluate and deconstruct data visualizations.
  • Identify application areas for visualization in analysis workflows.
  • Evaluate the characteristics and structure of data you encounter to refine design options.
  • Use algorithms, aggregation, sampling, and similar techniques to refine and manipulate data.
  • Apply knowledge of how people perceive and reason with visualizations in your designs.
  • Design and develop interactive data visualizations.

Required Text

Visualization Analysis and Design Cover

The text we’re using for readings in this course is Visualization Analysis and Design.

Elegant Graphics for Data Analysis Cover

While this course primarily focuses on interactive data visualizations using d3, ggplot2 is a fantastic tool for exploratory data analysis and communication. Hadley Wickham, creator of ggplot2 and many other popular R packages, has written his own book entitled ggplot2: Elegant Graphics for Data Analysis (Use R!).

Interactive Data Visualization Cover

If you’re interested in data visualization beyond this class, particularly the algorithms behind visualization techniques, I strongly recommend Ward, Grinstein, and Keim’s Interactive Data Visualization: Foundations, Techniques, and Applications.


Assignments are the core of this course. Each assignment will focus on a particular aspect of data visualization, such as visualizations of network data or criticism and design of existing systems. The lectures and labs will equip you with the background, visualization theory, and technical skills to develop effective visualizations for these datasets.

Unless stated otherwise, assignment are due by the end of the date listed on the calendar, e.g. if the due date is on a Thursday, the assignment is due by 11:59pm Thursday.


Every week includes an in-class lab. These labs provide an opportunity for you to learn more about visualization design, data analysis, and technologies.

Quizzes + Readings + Reflections

The readings are a critical part of the course. These include chapters in the textbook, research papers, and even blog posts.

To help reflect on the material, we use weekly quizzes and reflections.

Quizzes are brief, aiming at the large themes or major points in the book chapter. Written reflections are a summary of something you’ve read, either in the class or outside of it.

Programming Language

We’ll be using JavaScript with d3.js to develop visualizations in this course.

You also may have heard of Processing, which is a programming language that sits above Java and facilitates rapid development of graphics applications. If you’re experienced with Java, Processing is fun to try.

The first person who sends me a pull request correcting a typo or broken link will receive a tech sticker of their choosing from my collection.

Discussion / Questions

This term we will be using Slack for class discussion. Slack is highly catered to getting you help fast and efficiently from classmates and myself.

Rather than emailing questions to me, I encourage you to post your questions on Slack in public channels.

Sign up for our Slack at:

Your Slack username must be first-name last-initial. Like “laneh”. To help everyone get to know each other, I encourage you to fill out the profile and upload a picture of yourself.

Here is a short guide to asking questions on Slack:

  1. Ask in public channels! Oftentimes students will have answers to technical questions, and I can answer things publicly for others to see.
  2. If you you still have problems, do the following:
    1. Create a private channel with the following format: a1-laneh
    2. Add staff and me to the channel
    3. Begin with a concise description of your problem and include a link to your repo


Your course grade comes from three parts:

  • Assignments (40%)
  • Labs (10%)
  • Quizzes (10%)
  • Reflections (10%)
  • Final Project (30%)

Academic Honesty

Unless otherwise noted, all work is to be done by yourself.

You are encouraged to discuss at length with your classmates about ideas and material in the course, in preparing for quizzes and assignments, in designing visualizations and code nuances, and so on. However, all assignments, reflections, etc should be your own. Projects may encourage teamwork, that is, in that case you are expected to work closely with your partner/(s) to solve problems and prepare a common agreed-upon solution and implementation. (A word of advice: be sure you use git to commit, push, and merge work with your teammates often. In assessing team contributions, for example, the git history often shows individual contribution very clearly.)

Note in particular that copying of any material, may it be a single sentence or a figure, from any location (including the internet) without proper acknowledgment of the source constitutes plagiarism. If in doubt, please ask for clarification.

Any violation of the WPI’s guidelines for academic integrity will result in no credit for the assignment, potentially for the entire course, and requires referral to the Student Affairs Office for disciplinary action. More information on definitions, responsibilities and procedures regarding the WPI academic honesty policy can be found online.

Late Policy

You will be allowed a one time one day late turn-in without penalty, assuming you have a legitimate reason as discussed with the professor. All other late assignments will be penalized by subtracting 30% of the total achievable points, but only if turned in within the first 24 hours after the due date. Between 24 to 48 hours late will result in a reduction of 70% of the total achievable points. Late point reductions cannot be made up by later improvements of the assignment. Certain deliverables may not allow for any late days, such as project deliverables and presentations.

I would like you to be aware of the rationale behind late policies. For one, a late policy is a measure to ensure you stay on track and do not run into the problem of “snowballing” with your other responsibilities. At a higher level, late assignments place extra burden on both staff and your fellow classmates. Staff typically allocate time to grade assignments shortly after the due date. Late assignments break this and require staff to allocate extra sessions at the expense of their other responsibilities. This, in turn, places a burden on the entire class as grading must be complete before handing grades and critical feedback back to students.

For these reasons, please be considerate and turn your projects in on time. If something comes up, reach out early rather than later.

Useful Resources

Check out Tips for additional useful resources.

WPI Writing Center Located on the first floor of Daniels Hall (room 116), the Writing Center is a valuable resource for helping you improve as a writer. Writing Center tutors are your peers (other undergraduate and graduate students at WPI) who are experienced writers themselves and who enjoy helping others tackle thinking/writing challenges. Although a single tutoring session should never be seen as a quick fix for any writing difficulty, these sessions can help you identify your strengths and weaknesses, and teach you strategies for organizing, revising, and editing your course papers, projects, and presentations. Writing Center services are free and open to all WPI students in all classes, and tutors will happily work with you at any stage of the writing process (early brainstorming, revising a rough draft, polishing sentences in a final draft). Visit the Writing Center website <> to make an appointment.