Syllabus 2025
This course introduces key design principles and techniques for interactively visualizing data. The major goals of this course are to understand how visual representations can help analyze and understand complex data, how to design effective visualizations, and how to create interactive visualizations using modern web-based frameworks.
After completion of the course, you will be able to:
- Apply a structured design process to explore and explain data
- Critically evaluate visualizations and suggest improvements and refinements
- Conceptualize ideas and interaction techniques using sketching and prototyping
- Use principles of human perception and cognition in visualization design
- Tell compelling data stories with words and interactive visualizations
- Create web-based interactive visualizations using JavaScript and D3
- Work constructively as a member of a team to carry out a visualization project
Course Format
COMPSCI 1710 uses an active learning format with classes, small-group activities, programming labs, homework, and group projects. Here is the weekly rhythm of the course:
Monday
- Hand in your homework assignments and final project milestones at noon ET on Mondays.
- Attend the lab where you will work in small groups on self-guided lab notebooks to learn HTML, CSS, JavaScript, and D3. During the lab, you can also work with your team on your final project. Teaching staff will be available to help you.
Wednesday
- Attend the class in person to participate in lectures, activities, discussions, and small-group projects.
Throughout the week
- Complete the weekly homework assignment, which includes programming, sketching and design exercises, as well as milestones for your group project.
- Attend office hours to get help with the labs and homework assignments.
- This course has a very heavy workload. You may need 8-10 hours of out-of-class time a week to complete the assignments. Be prepared for that.
Each of the course components is discussed in more detail below.
Enrollment
College Students: There are no enrollment limits for Harvard College students.
Prerequisites
We require students to have taken a prior programming class, such as CS50 (Introduction to Programming) or similar. You should be comfortable picking up new programming skills. Having JavaScript and web development experience is a big plus. Please be aware that learning web development and D3 is time-consuming, depending on your programming background.
Course Components
Class
The class meets every Wednesday in person. Attending classes is mandatory and a crucial component of learning the material in this course. We will spend time in each class on small-group design exercises and activities.
Programming Lab
In the weekly mandatory lab, you will work in small groups on self-guided lab notebooks to learn HTML, CSS, JavaScript, and D3. During the lab, you can also work with your team on your final project. Teaching staff will be available to help you. You are encouraged to work on all labs in pairs. You can work together on the lab with your lab partner.
Homework
Homework assignments will provide an opportunity to improve your visualization skills. Homework will include a mix of programming, sketching and design exercises, as well as milestones for your group project. Homework will be due Mondays at noon ET. Homework solutions will not be posted publicly.
Group Projects
A big part of the course will be a group project. You will work in teams of three students to design and implement a data story with interactive visualizations to answer questions about a topic and a dataset of your choice. We will use a design sprint process with a series of graded milestones. You can choose your team with three students each. Your team will create a web page that tells a story with interactive visualizations to answer questions about your chosen topic. A few projects will win the Best Project prize (Swiss chocolate).
Office Hours & Communication
The teaching fellows will provide in-person and online office hours several times weekly for questions. We will also use Ed as our discussion forum and for all announcements, so you must be signed up as soon as possible. Ed should always be your first resource for seeking answers to your questions. You can also post privately so that only the course staff sees your message.
Grading
This course can only be taken for a letter grade; there is no pass/fail option. The course grade comprises:
- Participation and Attendance (10%)
- Homework, Programming + Design Assignments (40%)
- Final Project, including Project Milestones (50%)
You get four late days for your homework for the entire semester, but you can use no more than two late days on any single assignment.
Any concerns about grading errors must be clearly articulated in writing and sent to jknittel@seas.harvard.edu within one week of receiving the grade.
We will map your points to letter grades using the following table:
A: 100-95%; A-: 90-95%
B+: 85-90%; B: 80-85%; B-: 75-80%
C+: 70-75%; C: 65-70%; C-: 60-65%
D+: 55-60%; D: 50-55%: D-: 45-50%
F < 45%
Graduate-credit:
Students taking this course for graduate credit are expected to do more work and perform at higher standards than undergraduate credit students. In particular, we may assign additional tasks in homework for graduate-credit students, and we expect a more comprehensive final project.
Course Policies
Attendance
College students: You must attend and proactively participate weekly during the class and labs. Please let us know as soon as possible if you have extenuating circumstances affecting your ability to attend class or labs. We will ask you for an email confirmation from your resident dean and will try to work out an agreeable solution with you and your team.
Late Policy
You have a total of four late days available for homework assignments throughout the semester, but late days cannot be used for the final project. You may use a maximum of two late days on any single homework assignment. Please note that late days used for Week 1 deliverables in a two-week assignment also count toward the late day limit for that assignment. For unexcused late submissions, a penalty of 10% of the assignment’s total points will be deducted for each day it is late.
Rare exceptions can be made on a case-by-case basis. If you have a verifiable medical condition or other special circumstances that interfere with your coursework, please email jknittel@seas.harvard.edu as soon as possible. You must provide a written note or email from a medical professional or your resident dean confirming your inability to participate in coursework.
Collaboration Policy
We expect you to adhere to the Harvard Honor Code at all times. Failure to adhere to the honor code and our policies may result in serious penalties, including automatic failure in the course and reference to the ad board.
You may discuss your homework and labs with other students, but you must be intellectually honest and give credit where credit is due. In particular:
- You have to complete your homework entirely on your own;
- You may discuss your homework with your lab partner. You can discuss your code structure and help each other debug. However, you may not share the actual homework content.
- You cannot share your homework content (code, sketches, written answers, …) with anyone else, including on Ed.
- You may not submit the same or similar work to this course that you have submitted or will submit to another.
- You may not provide or make available solutions to individuals who take or may take this course in the future.
If the homework allows it and for your projects, you may use third-party libraries and example code, so long as the material is available to all students in the class and you give proper attribution. Do not remove any original copyright notices and headers.
AI Policy (ChatGPT and other AI tools)
AI (artificial intelligence) resources such as ChatGPT can be useful in several ways. However, because it can also be abused, you must acknowledge the use of AI in any work you submit for class. The following are some guidelines for what not to do when using AI in your assignments:
- Do not rely solely on AI tools to complete assignments if not explicitly told to do so. It is important to understand the material and complete assignments on your own, using AI tools as a supplement rather than a replacement for your work.
- Do not use AI tools to plagiarize. Using AI to generate or modify content to evade plagiarism detection is unethical and violates academic integrity.
- Do not assume that AI responses are always correct. It has been noted that AI can generate fake results.
Accessibility
College students: Harvard University values inclusive excellence and providing equal educational opportunities for all students. Our goal is to remove barriers for disabled students related to inaccessible elements of instruction or design in this course. If reasonable accommodations are necessary to provide access, please contact the Disability Access Office (DAO). Accommodations do not alter fundamental requirements of the course and are not retroactive. Students should request accommodations as early as possible, since they may take time to implement. Students should notify DAO at any time during the semester if adjustments to their communicated accommodation plan are needed.
Credits
This course is based on the course usually taught by Hanspeter Pfister and Johanna Beyer. We would like to sincerely thank Carolina Nobre, University of Toronto, who has contributed significantly to the material and activities of this course. Some of the material in this course is based on the classes taught by Alexander Lex at the University of Utah, Carlos Scheidegger at the University of Arizona, Marc Streit at JKU Linz, Pat Hanrahan at Stanford, Jeff Heer at the University of Washington, Hans-Joerg Schulz at the University of Rostock, Nils Gehlenborg at Harvard Medical School, Torsten Möller at the University of Vienna, Tamara Munzener at the University of British Columbia, Helwig Hauser at the University of Bergen, Maneesh Agrawala at UC Berkeley, Johannes Knittel at Harvard, and Hendrik Strobelt at IBM Research. We have heavily drawn on materials and examples found online and tried our best to give credit by linking to the original source. Please contact us if you find materials where the credit is missing or that you would rather have removed.