Link Search Menu Expand Document

DS 4200 S22: Information Presentation & Visualization

Time and location: Tuesdays & Fridays 3:25–5:05 pm in Hurtig Hall 130 and online.

Attention: Class will be hybrid from 2022-02-15 onwards. Fridays will be in-person, Tuesdays will be in-person and remote on Zoom. See the Online Learning Instructions for more details on our expectations for video calls. Join the Instructor here on Zoom:

Zoom link

Welcome! Perhaps you are taking this course to fulfill a requirement, or maybe you’re simply interested in the magical world of data visualization. Either way, this class provides students with not only theoretical knowledge about data visualization best practices, but a chance to get their hands dirty and create their very own visualizations.

xkcd comic showing self-describing charts. Image credit: xkcd

Table of Contents

Course Description

Introduces foundational principles, methods, and techniques of visualization to enable creation of effective information representations suitable for exploration and discovery. Covers the design and evaluation process of visualization creation, visual representations of data, relevant principles of human vision and perception, and basic interactivity principles. Studies data types and a wide range of visual data encodings and representations. Draws examples from physics, biology, health science, social science, geography, business, and economics. Emphasizes good programming practices for both static and interactive visualizations. Creates visualizations in Excel and Tableau as well as R, Python, and open web-based authoring libraries. Requires programming in Python, JavaScript, HTML, and CSS. Requires extensive writing including documentation, explanations, and discussions of the findings from the data analyses and the visualizations.

Learning Outcomes

Data visualization is useful in a multitude of fields, from business to science to media. Hopefully, you will be able to take what you learned in this course and apply it to future jobs and projects.

After completion of the course students should be able to:

  • Assess the quality and effectiveness of a visualization heuristically as well as through standard evaluation techniques.
  • Choose appropriate visualization methods for a given data type.
  • Design an effective visualization by applying design and human perception principles.
  • Implement a static or interactive visualization.
  • Implement interactivity functions to enable data exploration and analysis.
  • Implement web-based visualizations in D3/JavaScript/HTML/CSS.
  • Create visualizations in Tableau and Altair.
  • Write, present, and be knowledgeable about contemporary visualization topics.


The only required prerequisite course is CS 2510 or DS 2000 (or exemption by permission of the instructor)—these courses introduce students to basic programming, algorithms, and data structures. Familiarity with topics such as data visualization, human-computer interaction (HCI), web development, databases, and data mining is very useful for the course but not a required prerequisite. Don’t worry if you have no prior experience with programming languages like JavaScript (i.e., D3) and Python, particular tools, or web design in general. However, students should be comfortable with learning what they need for programming their projects independently—and asking for help early.

Textbooks and Resources


Exciting news: All our course utilizes one free textbook are freely available online or through the library!

Cover of the VAD book by Munzner.

Visualization Analysis and Design by Tamara Munzner (free PDF online via Northeastern Library EZProxy).

Free links to any other required readings will be posted in the schedule.

Suggested Reading

Although not required, the following books are recommended as additional references to help expand on the visualization theory and skills discussed in class. These books may be cited and referred to during lecture as appropriate to help direct the students to the appropriate resource.

Required Supplies

We will do a lot of visualization sketching and design iteration in this course. Always have the basics, so you can participate effectively:

  • At least five different colors of pens—e.g., Pilot G2 packs 31128 and 34405—or pencils (with sharpener).
  • Plenty of white or near-white drawing paper. E.g., Strathmore 25-005 or 400-2 drawing notebooks, heavyweight white index cards, or even 8.5x11” printer paper.

We specify paper, rather than digital tools, for design sketching, as we have found that digital drawing tools tend to limit the breadth of student creativity and slow down design iteration.

We will also do programming and writing activities. You should always have:

  • A laptop suitable for programming and its charger

If you do not have the required supplies when they are needed to participate your grade will be docked accordingly.

If you are unable to acquire these required supplies due to hardship or circumstance, please reach out to the Instructor to discuss.

Office Hours and Contact Info

Please see the Staff page for details.

Course Components

As this is a 4-credit class, the Registrar says you should plan to spend approximately 8–12 hours outside of class on homework in addition to the 3.33 hours in class (i.e., 11.33– 15.33 hours per week total).

Lectures + Activities

Most classes will be split into two parts: lecture and in-class activity. The lecture component will cover foundational topics, and the remainder of the class will be devoted to an in-class activity to further explore topics and skills relevant to the course topics. Activities will include programming tutorials, design critiques, journal paper discussions, in-class programming and data analysis, and student-led final project presentations. Lecture slides are usually available by the next scheduled class time.

Class Participation

Students are expected to participate both in-class and online through the course’s discussion group.

A student’s overall participation grade (see Final Grade below) will be composed of their in-class participation and reading quiz grades (see Readings below). As the course is based heavily on in-class discussions and activities, student participation is essential to the course. Plus, when we all participate, it makes our time together that much more interesting.

Class attendance is required due to the heavy emphasis on in-class activities, and a student’s participation grade will be negatively affected by absences and tardiness. Absences may be excused by the instructor with advance notice. Absences will only be approved after the fact in cases of medical necessity.


Assigned reading will be given to read in advance of some classes, and will also be part of some assignments. Readings will be listed on the online Schedule and will be freely available.

Reading Quizzes

To ensure students complete the assigned reading and retain the key concepts required to fully participate in-class, short reading quizzes will be given at the start of many classes. Quizzes will be given near the start of class and will not be available to tardy students. You will not know in advance when quizzes will happen or how many quizzes there will be total.


There will be regular homework assignments. Each assignment will require the student to apply the concepts discussed in the readings and in-class lectures to both programming assignments for the actual building and implementation of static and interactive visualizations as well as short writing assignments (e.g., design critiques).

Warning: The homework assignments are an individual assessment and should not be completed in groups.

Experiential Learning Final Project

Over the course of the semester, students in the class will work together with real users to analyze and visualize their data. There will be mandatory project deadlines and associated assignments throughout the semester. Some of the project assignments will be done individually, and others in small groups. The required project milestones and deliverables will be sometimes be due the same day as other homework assignments.

The experiential learning project will give students exposure to real data, interaction with real users, and provide the opportunity to conduct novel data analysis and visualization. Students will be required to produce an interactive web-based visualization and associated website to host the visualization, a demo video, presentation, and any other project deliverables.

Students will identify and propose their own experiential learning partners, which means you get to pick a topic tailored to your own interests. More instructions will be provided in the initial project assignments.

Each member of the project group will generally receive the same grade. But we may re-balance credit/grade per person (not per group) in the event of uneven contributions. We will use peer evaluations from your group members as well as our own assessment to conduct any re-balancing necessary.

See more details of the project in the Project Overview.

Final Grade

Grades will be posted on Canvas with a running total grade weighted by assignment type:

In-Class Activities5%
Attendance & Participation5%

Final letter grades will be based on this weighted total using this scheme:

A-< 93%
B+< 90%
B< 87%
B-< 83%
C+< 80%
C< 77%
C-< 73%
D+< 70%
D< 67%
D-< 63%
F< 60%

There will be no rounding. E.g., 92.999% is still less than 93% and thus an A-. This is to encourage fair grading by reducing the effect of emotional appeals to the instructor, which not all students would feel comfortable making.

Changes to the final course grade must be requested in an email to the instructor within one week of receiving the grade. The request should contain a technical explanation of what errors in grading the teaching staff has made that necessitates the change. We will not consider grade changes due to considerations beyond the scope the course, e.g., visa status, scholarship eligibility, coop eligibility. If the instructor approves the request, all work including assignments, participation, and the project will be re-graded to determine the new grade. This is because if we made one error, we may have made others including in the student’s favor. The new grade can potentially be lower than the original grade.

There will be no pass/fail grading this semester, even if the course switches to entirely online instruction.

For details about individual assignment grading, rather than the final course grade, see Course Policies below.

Course Policies

COVID Policies

Warning:Do not come to class in-person if you feel sick or have been exposed to COVID. Write to to arrange alternatives.

The university has put into place a robust plan to make the campus healthy and safe for all—but students must do their part. For students on campus and attending class in-person, you must continue to wear a mask in class and socially distance. Students must get tested as required by the university at the Cabot Testing Center.

Specific to this course, when meeting in-person:

  • Due to updated CDC guidance, the teaching staff in the classroom will be wearing well-fitting surgical or medical masks and respirators and we and expect that students will do the same in class. If a student comes to class without an effective mask or practices poor mask hygiene (e.g., not covering the nose, mask falling off, poorly fitting masks), they will be asked to leave. Students are not able to eat or drink in class (except water or with prior written approval for medical reasons).

  • Staying safe is a responsibility that we all must take seriously. Keep in mind the “Protect the Pack” theme. Remember that our individual actions will help everyone stay safe this spring and allow us to meet in person as much of the semester as possible.

In the event the Instructor needs to quarantine or is out sick, we will decide to either hold lecture synchronously online via Zoom with required live participation during the regular class day/time, record lectures for asynchronous viewing, or arrange for a substitute lecturer (e.g., TA) to run class.

Late Policy

All homework and project related due dates are final and provided in the course schedule. Some assignments that require timeliness (e.g., in-class project presentations) will be graded 0 if you are late. Other assignments will be accepted for 2/3 credit for [0, 9] hours after the deadline and 1/3 credit for (9, 24] hours after the deadline.

Homework and project assignments are generally due on Fridays at 11:59pm. The late policy is implemented automatically, so 11:59:01 pm would still be considered late for an 11:59 pm deadline.

If you have a verifiable medical condition or other special circumstances that interfere with your coursework, please email the instructor as soon as possible to discuss your options.

If you have a major conference/journal paper deadline, conference presentation, or trip planned that interferes with your coursework, email the instructor at least three weeks in advance to discuss your options. We will not provide late policy waivers for such cases with less notice.

Assignment Submission Instructions

On all assignments you are expected to follow the submission instructions exactly. If you don’t, you will lose points accordingly up to and including getting a 0 on the assignment.

On any assignment where you must submit a link or file on Canvas, please ensure you submit the correct one. Some examples of incorrect submissions in the past: (1) We ask for a GitHub repository link and you give us a GitHub Page. (2) We ask for a link to a GitHub Classroom-generated repository in our organization and you give us a personal repository. (3) We ask for a link to a PDF and are given a link to a Google Drive folder.

Warning: If you do not submit the correct link or file, you will lose 1/3 of the points if we are able to quickly find and identify the correct one. If not, you will receive a 0.

This is unfortunately necessary to ensure we have as much time as possible to provide feedback on assignments. Accepting assignments in varied forms adds grading challenges and reduces the time and thought we have for providing higher-level feedback on content to you and to other students. Just recently we spent 15 minutes tracking down correct links and comparing two repositories for a single student’s submission, which does not scale to a class this big. Also, permitting variances sets unrealistic expectations for you for future courses and for the real world where following specific instructions often does in fact matter.

Assignment Grading Expectations

Our overall course grading ideal is that you get 85% of the points by meeting our expectations, but the last 15% is for doing amazing work that demonstrates your creativity and deep understanding of the course material. I.e., if you meet our expectations on assignments, you will get a B in the course (see Final Grade, above). To get an A you must do exceptional work.

Note that our grading rubrics will likely include more subjective assessment than you are used to. Your work in this course will incorporate many elements of Design, and the necessary human professional judgement that is required for design critiques is inherently subjective. See, e.g., Viégas & Wattenberg (2015). Likewise, assignment rubrics will not always spell out each way you may lose points. Any guidance we cover in lecture and in the readings sets the bar for what you’re expected to do on later assignments. To put it another way, when you’re making visualizations, it’s like writing an essay. There are many assumed writing expectations that the instructor won’t specify that could still result in a poor-quality product.

Assignment Regrading Policy

Each student starts the semester with 2 regrade request tokens. One token can be exchanged to get a single assignment regraded. If the regrade request results in us changing the grade, we will refund the token.

Regrade requests will only be considered if the teaching staff has made an error in grading.

Regrade requests will not be considered if you:

  • Disagree with the rubric. It was applied to everyone, so would be unfair to change in one case.
  • Disagree with the harshness of the grading. Again, the same criteria were applied to everyone.
  • Disagree with the subjective aspects of visualization grading. This is an inescapable aspect of grading visualization & design assignments.
  • Made a mistake in submission. Make sure to check your submissions were uploaded correctly (Gradescope instructions, Canvas instructions).

Re-grading requests must be made within one week of receiving the grade to be considered. For assignments submitted on Gradescope, re-grading requests must be made via Gradescope (general instructions here). For all other assignments, the request must be emailed to (not just the instructor or a TA) and must include:

  1. The subject line prefixed by DS 4200 S22—Regrade Request.
  2. A link to your Canvas Submission Details page for the assignment (Canvas documentation on how to get to it) (if relevant).
  3. The details on what aspect you’re requesting to be regraded.
  4. A short (1-2 sentences) explanation of why re-grading is necessary.

The new grade can potentially be lower than the original grade. If we discover other errors that we have made we will correct them, including any that were initially in the student’s favor.

Changes to the Syllabus, Schedule, and Grading

The course syllabus, schedule, grading schemes, and grading rubrics are working documents that are subject to change throughout the entirety of the semester. Refer back to this page at any time for the most up-to-date document. We will make our best efforts to communicate any meaningful changes after the first class promptly. In general, we’ll ask ourselves “could this change create an unpleasant surprise for a student who read the syllabus?” If so, we’ll announce the change.

🐛 Bonus Points for Bug Bounties 🐛

If you identify problems or points of confusion with the course assignments, you may receive bonus points! In order to get the bonus you must:

  • Report the bug at least 4 days prior to the due date of the assignment by email to
  • The email must:
    • Have the subject line prefixed by DS 4200 S22—Bug Bounty.
    • Provide a hyperlink to the assignment/web page/repo/document/file in question.
    • Include the problematic excerpt, detailed information about what is missing, or other problem details.
    • If applicable, suggest a fix including replacement text.

Points will be awarded by degree of severity as determined by the instructor. Generally expect:

  • As intended—issues we will not fix: +0 points
  • Minor—spelling/grammar/simple writing issues: +1 point
  • Major—points of moderate confusion that students could work around with some effort: +2 points
  • Severe—bugs that would block a large portion of students from completing the assignment: +3 points

Bonus amounts will vary at the instructors discretion. If multiple students report the bug, the student submitting the first report and the student submitting the most complete fix will get the most points.

Bonus points can increase the score of an assignment above the maximum and not just compensate for lost points.

We will never intentionally introduce bugs into the course materials.

Other Bonus Points

Some assignments may include other options for bonus points. There will not be options for bonus points beyond those listed in the syllabus and posted assignments.

Communication Policy

Students can reach us by creating a new Canvas Discussion 💬 or sending an email to 📧.

Warning: Emails are only appropriate for individual questions—e.g., medical leaves, regrading requests for assignments not submitted in Gradescope, meeting requests—or when otherwise directed. All general course and assignment questions should be posted as a Canvas Discussion so that all students can comment and see the answers. Students that email on issues obviously of general interest will be referred to make a post on Canvas instead.

We will not answer questions posted in Teams outside of class or office hours or by phone.

Help us help you! Always include the relevant links. If you’re emailing about a particular assignment, please include the URL of any relevant materials for us to help you. I.e., before submission send us a link to your GitHub repo—it’s hard to debug code without seeing it—or other draft submission. After submission send us a link to your Submission Details page for the assignment (Canvas documentation on how to get to it). If you are asking a project-related question and already have a group, give us your group number too.

We will make our best efforts to respond within 24 hours, excluding weekends and holidays.

Classroom Electronics Policy

Students will be required to bring a laptop to class (see above). However, students are prohibited from using electronics during class except when specifically instructed for in-class activities.

Students are prohibited from using electronics for non-class purposes during class due to their distracting nature for the student as well as others. Example prohibitions include browsing Facebook, doing work for other courses, messaging friends, and watching sports.

Students are prohibited from using electronics during class for class-related purposes which are not relevant to the in-class activity. E.g., no working on out-of-class assignments during class.

Warning: Students who are observed violating the electronics policy will be asked to leave for the day and will be marked as absent. Any in-class grades for the day will be marked 0.

Any exceptions to the electronics policy, e.g., for medical monitoring, must be approved by the instructor in advance and in writing.

Recording Policy

This course, or parts of this course, may be recorded for educational purposes. These recordings will be made available only to students enrolled in the course, the instructor, and any teaching assistants assigned to the course. The instructor and/or Zoom will announce any recordings when they begin. Any student may opt-out of being recorded by informing the instructor audibly or in the Zoom chat. Any questions or comments the student makes for the remainder of the class session should also be conducted in the Zoom chat, so the student isn’t recorded.

Due to the large discussion component of the course, recordings will only be provided to students that are unable to attend class in person (or online if the class is being conducted remotely). Email in advance to arrange access. Requests for access after an absence will only be considered in cases of medical necessity.

Recording Privacy Policy

Only students who have arranged an accommodation with the Disability Resource Center may use mechanical or electronic transcribing, recording, or communication devices in the physical or virtual classroom. Students with disabilities who believe they may need such an accommodation should contact the Disabilities Resource Center.

Do not record or otherwise share the classroom video calls yourself.

The Commonwealth of Massachusetts’s wiretapping law requires “two-party consent”. It is a felony to secretly record a conversation, whether the conversation is in person or taking place by telephone or another electronic medium. [See Mass. Gen. Laws ch.272,§ 99.]

Academic Integrity Policy

A commitment to the principles of academic integrity is essential to the mission of Northeastern University. The promotion of independent and original scholarship ensures that students derive the most from their educational experience and their pursuit of knowledge. Academic dishonesty violates the most fundamental values of an intellectual community and undermines the achievements of the entire University.

Warning: In this course you are expected to do each assignment independently unless otherwise instructed.

Warning: Plagiarism of any kind will not be tolerated, including but not limited to copying text, source code, images, video, visualization designs, and slides.

Warning: Copying anything without proper acknowledgement, even just one sentence or figure, is considered plagiarism.

We will review your submissions against existing publications, designs, course submissions, and source repositories to ensure academic integrity. We maintain a repository of deliverables from previous instantiations of this and related courses to compare submissions against.

For more information, please refer to the Academic Integrity Web page.

Here are some key points to keep in mind:

  • Acknowledge where code, text, images, designs, etc. come from.
  • If you look at code online but are supposed to write something yourself, you can’t copy the code, either by copy and paste or by writing manually. Just copying and manually renaming variables is definitely cheating. You can get the idea, but not the code.
  • Anything copied from the D3.js Graph Gallery,, Observable, or Stack Overflow must be acknowledged. It is not considered just D3 documentation.
  • Paraphrasing text closely without citation is plagiarism!
  • In your writing, citing the source alone is not enough—you must also surround any copied text with double quotes (“”).
  • Individual work is just that: individual. No code should be exchanged (via whiteboard, email, or over the phone). You probably shouldn’t even discuss the assignment with others (but that isn’t a strict rule).
  • You have teammates for the group project. Thus you have no reason to collaborate with classmates outside of your team.
  • If you are stuck; ask for help. Cheating is never the viable solution.
  • Lying about participating in service counts as an academic integrity violation. And they tell us attendance anyway, so why would you?
  • Why the heck are you in university if you aren’t trying to learn? You don’t learn by cheating (and, frankly, it can seriously ruin your career far more than failing a class).
  • The minimum consequence for an academic integrity violation is a score of 0 on the assignment, reduction of the final letter grade by one (e.g., A- to B-), and reporting to OSCCR and Khoury College. Repeat violations will result in failing the course.

Regret Clause 🤦. If you commit some act that violates the academic integrity policy but bring it to the attention of the instructor within 72 hours, we may still give you a 0 grade for the relevant work submitted, but will not report the violation to OSCCR or Khoury College (except in cases of repeated violations).

Title IX

Title IX of the Education Amendments of 1972 protects individuals from sex or gender-based discrimination, including discrimination based on gender-identity, in educational programs and activities that receive federal financial assistance.

Northeastern’s Title IX Policy prohibits Prohibited Offenses, which are defined as sexual harassment, sexual assault, relationship or domestic violence, and stalking. The Title IX Policy applies to the entire community, including students, faculty and staff of all gender identities.

If you or someone you know has been a survivor of a Prohibited Offense, confidential support and guidance can be found through University Health and Counseling Services staff and the Center for Spiritual Dialogue and Service clergy members. By law, those employees are not required to report allegations of sex or gender-based discrimination to the University.

Alleged violations can be reported non-confidentially to the Title IX Coordinator within The Office for Gender Equity and Compliance at: [][] and/or through NUPD (Emergency 617-373-3333; Non-Emergency 617-373-2121). Reporting Prohibited Offenses to NUPD does NOT commit the victim/affected party to future legal action.

Faculty members are considered “responsible employees” at Northeastern University, meaning they are required to report all allegations of sex or gender-based discrimination to the Title IX Coordinator.

In case of an emergency, please call 911.

Please visit for a complete list of reporting options and resources both on- and off-campus.


This class and its contents were inspired by several previous courses, including Michelle Borkin, Ab Mosca, John Alexis Guerra Gómez, John Stasko, and many others we cite throughout the course materials.

This website is built using Kevin Lin’s Just the Class Jekyll template, extended by Jonathan Bell, John Boyland, and Mitch Wand.

© 2022 Cody Dunne. Released under the CC BY-SA license