CPSC 436V: Topics in Computer Science - Information Visualization, Jan 2020

Instructor: Tamara Munzner
First Class: Tue Jan 7 2020
Lecture: Tue/Thu 2-3:30, DMP 301 Livestreamed online via Zoom starting Mar 17 (see Piazza for URL & password)
Labs: Fri 9-10, 11-12, 4-5; ICICS/CS Room 015. First Lab: Jan 17
TAs: Michael Oppermann, Zipeng Liu
Instructor Office Hours: Tue 3:30-4:30 in my office (X661) via Zoom starting Mar 17, or by appointment (send me email at tmm@cs.ubc.ca to arrange).
Portals: Piazza | Canvas | Socrative | UBC Calendar

Page Index: Hall of Fame | Schedule Summary | Detailed Syllabus | Assignments | Quizzes | Description & Prereqs | Structure | Learning Outcomes | Resources | Grading Scheme | Policies
Jump To Today

Hall of Fame

2020 436V Hall of Fame page has pictures, abstracts, reports, and demos. Congratulations to the winners for the best final projects of 2020!

Schedule Summary

Detailed Syllabus



Quizzes are due on Fridays at 8am. They will be posted on
Canvas Wednesdays at 8am, 48 hours before just under one week before they are due, at 6pm the previous Friday.

Description & Prerequisites

Design and implement static and interactive visualizations. Select appropriate visualization methods for a given combination of data type and intended analysis task. Assess visual representations according to design and perceptual principles.

The prerequisite for this course is CPSC 310, which provides an introduction to the JavaScript programming language used in this course (and also experience on software projects). The inherited prerequisites are thus CPSC 210 and one of CPSC 107, CPSC 110, CPSC 260.


This course will provide an undergraduate-level introduction to visualization, with D3.js tooling that provides practice with modern web-based development environments. It will train CS majors in visualization for data exploration and presentation. These foundational skills are a crucial cornerstone of data science and are increasingly required in many other areas ranging from business to data journalism.

The course will be a hybrid partially-flipped approach. The D3 tooling will be taught in the first eight weeks through a combination of pre-lab videos (checked by online quizzes), in-class work (during lab sessions), and post-class work (checked by programming exercises). The fundamentals will be taught throughout the term with a combination of in-class lecture, in-class active learning, and post-class work (checked by foundations exercises).

The final project, in the final four weeks, will require integration and synthesis of the material initially covered in both the programming exercises and the foundational exercises. Students will work in self-chosen teams of three. The completed project will result in portfolio materials that showcase both technical achievements through interactive visualizations that can be demonstrated in any modern web browser, and the ability to communicate clearly in writing through the written process log.

The labs (1 hr/week) will provide regular and structured time for working on exercises and the final project with individualized attention from TAs. There will also be additional TA office hours for further in-person individual help.

The exams will focus on assessing the foundations material in a solo setting, rather than the assessment of programming skills which will occur through the final project. The midterm will be in week 10, after the weekly programming exercises conclude and as the project work ramps up.

Learning Outcomes

By the end of this course, students will be able to:


For further reading about theoretical foundations beyond what's covered in lecture, see the textbook Visualization Analysis and Design. The UBC library has multiple ebook licenses so you can read it for free: library catalog page, EZProxy direct link.

Technical hints for programming assignments

Grading Scheme

Students will be graded on a numerical basis. The tentative grading scheme is:

The students must pass the final exam and the final project to pass the course; students who fail either will receive a mark of at most 45. The workload is designed to be 12 hours per week in total, 4 in class (lecture and lab) and 8 outside of class. Exam marks may be scaled. The instructor reserves the right to modify the grading scheme.


Wait List Policy: I'm not in charge of the class waitlist; please don't contact me asking about your chances of getting into the class. Instead, please direct any questions you may have to the CS Department Academic Advisors. If you are on the waitlist and want to take the course, you should participate from the beginning. Students who attend class will be given waitlist priority (I'll share attendance information with the main office). Students who register for the course late still have to complete all assignments on the same schedule as all other students. Waitlisted students are eligible to submit assignments before being formally registered.

Attendance: Attendance in all lectures is expected. You are responsible for all material presented there. Most material for the lectures will be made available online. However, there is no guarantee that everything covered will be in the posted material, and in particular the lecture slides may not fully capture what occurs in the in-class exercises. Your participation mark is based on both in-class activity and substantive participation in Piazza discussion.

Grace Days and Late Policy It is important that assigned work be completed on time, because subsequent assignments depend on your comprehension of earlier work. To allow for unforeseeable circumstances, you will be allowed two days of grace during the quarter, which can be used on any assignment or project with no explanation required (or desired). Use these as you wish to help manage your time, but use them wisely. It is strongly recommended that you do not use all your grace days early in the term. You can use both on one assignment, or spread the days across multiple assignments. One grace day is used for every 24-hour period after the deadline, whether it is a weekday, a weekend, or a holiday. Think of this policy as permission, given in advance, to submit work late because of illness, travel, starting the course late, conflicts with other courses, and so on. No further allowance will be made for failure to submit work on time, except in truly exceptional circumstances such as a prolonged and serious illness. Late demos will be subject to the availability of the grader. No late work will be accepted after solutions have been handed out.

Illness Students are encouraged to stay at home if they have a communicable illness (such as flu-like symptoms) to prevent further spread of illness to other students, staff, or faculty. (UBC no longer requires a doctor's note, it is your responsibility to report your own absence due to illness and injury.) If you have missed assignment deadlines due to prolonged and serious illness, beyond your two alloted grace days, when you have recovered you should submit the following self-declaration form, through a private message on Piazza: Student Absence Due to Illness or Injury Form

Even if you tell me in person about the situation, you still need to submit the form through a Piazza private message. It's your responsibility to inform me in a timely manner, at latest within three days of recovering and returning. I will decide on a course of action after I hear from you. I may allow you to turn in work late without penalty, I may excuse you from completing the missed work and grade you only on your completed work, or I may determine that the work cannot be made up. If you have not missed any deadlines, you do not need to submit the form. Use of the self-declaration form during the final exam period is not accepted: you should communicate directly and immediately with me through a Piazza private message if you are sick and unable to write the final examinations.

Academic Honesty You are required to read about my expectations for academic honesty and sign a statement saying that you fully understand them before any work in the course will be marked. See my writeup: Plagiarism, Cheating, and Academic Misconduct

Regrading: If you would like to request an assignment or exam regrade from the instructor, you must submit a detailed written explanation of why you think the grader was incorrect for the particular problem that you are disputing. The instructor may regrade the entire assignment or exam, not just the particular problem in question, so your total grade may end up higher or lower.

Equity, Inclusion and Wellness: Please see the CS Department's resources on this topic.

Permanent URL for the page is https://www.students.cs.ubc.ca/~cs-436v/20Jan. Page mirrored at https://www.cs.ubc.ca/~tmm/courses/436V-20
Tamara Munzner
Last modified: Thu Mar 18 07:56:47 PDT 2021