Instructor: Tamara Munzner (she)
First Class: Tue Jan 11 2022
Classes: Thu 11-12:30 (no Tue sync class)
Location: Zoom Jan 11-Feb 3; DMP 301 in person starting Feb 8. Zoom links are posted on Piazza.
Async Video Lectures: watch
pre-recorded video lectures asychronously early in week,
before sync class.
TAs: Francis Nguyen (he), Mara
Solen (they)
Portals:
Piazza
(Piazza signup),
Canvas,
Github,
Gradescope,
Queue-Tip,
UBC
Calendar
Page Index:
Hall of Fame |
Schedule Summary |
Detailed Syllabus |
Office Hours |
Assignments |
Videos |
Quizzes |
D3 Tutorials |
D3 Case Studies |
D3 Examples |
Delivery Mechanisms |
Description & Prereqs |
Structure |
Learning Outcomes |
Resources |
Grading Scheme |
Policies |
Land Acknowledgement |
Previous Versions
Jump To Today
Fri Apr 8 6pm due Tue Apr 12 6pm.
TA office hours to get personalized help on D3 or foundations/theory will be held during only one of the scheduled lab sessions (the Fri 11am one) and several other times during the week. When UBC is virtual, all labs are handled through zoom. When UBC is in person, you may get help either live or through zoom. We will use the Queue-Tip signup system to handle live and zoom folks simultaneously, so please use that rather than just raising your hand even if you and the TA are both in the same room. Tamara will also use Queue-Tip in her office hours (Tue 12:30-1:30) to handle a mix of live and zoom questions. Those office hours are best for foundations/theory rather than D3 questions.
We have scheduled TA office hours according to due dates for assignments, with heavier coverage on weeks that programming assignments and project milestones are due and lighter coverage on other weeks:
| Week | Dates | Type | Mon | Tue | Wed | Thu | Fri |
|---|---|---|---|---|---|---|---|
| Week 1 | Jan 10-14 | none | none | none | none | none | |
| Week 2 | Jan 17-21 | Light | none | 2-3 (Mara) | none | 2-3 (Mara) | 11-12 (Francis) |
| Week 3 | Jan 24-28 | Heavy | none | 2-3 (Mara) | 11-12:30 (Francis) | 2-3:30 (Mara) | 11-12 (Francis) |
| Week 4 | Jan 31-Feb 4 | Light | none | 2-3 (Mara) | none | 2-3 (Mara) | 11-12 (Francis) |
| Week 5 | Feb 7-11 | Heavy | none | 2-3 (Mara) | 11-12:30 (Francis) | 2-3:30 (Mara) | 11-12 (Francis) |
| Week 6 | Feb 14-18 | Light | none | 2-3 (Mara) | none | 2-3 (Mara) | 11-12 (Francis) |
| Week 7 | Feb 21-25 | Light-- | none | none | none | 2-3 (Mara) | 11-12 (Francis) |
| Week 8 | Feb 28-Mar 4 | Heavy | none | 2-3 (Mara) | 11-12:30 (Francis) | 2-3:30 (Mara) | 11-12 (Francis) |
| Week 9 | Mar 7-11 | Light | none | 2-3 (Mara) | none | 2-3 (Mara) | 11-12 (Francis) |
| Week 10 | Mar 14-18 | Light | none | 2-3 (Mara) | none | 2-3 (Mara) | 11-12 (Francis) |
| Week 11 | Mar 21-25 | Heavy | none | 2-3 (Mara) | 11-12:30 (Francis) | 2-3:30 (Mara) | 11-12 (Francis) |
| Week 12 | Mar 28-Apr 1 | Heavy | none | 2-3 (Mara) | 11-12:30 (Francis) | 2-3:30 (Mara) | 11-12 (Francis) |
| Week 13 | Apr 4-8 | Heavy | none | 2-3 (Mara) | 11-12:30 (Francis) | 2-3:30 (Mara) | 11-12 (Francis) |
| Week 14 | Apr 11-15 | Light | 2-3:30 (Mara) | 10:30-12 (Francis) | none | none | none |
Every example in the public Github repo can be opened in the codesandbox interactive web IDE by replacing github.com with githubbox.com in the URL, for example:
Do not post lengthly snippets of your own code publicly, that should be a
private post to instructors. But do not simply send a block of code and say
"help, it doesn't work, can you tell me what is wrong with my code". If you are
going to send code, you need to include three crucial pieces of information:
explain A) how the code is breaking and B) what you have tried to do to identify
the bug and C) things you have tried that didn't work. Sometimes the process of
writing this down will even lead you to figure out the answer yourself.
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 seven weeks through a
combination
of written tutorials you work through at your own pace (checked by
online quizzes), case studies that will walk you through more
advanced
visualizations, and post-class work (checked by programming
exercises). The fundamentals will be taught throughout the term with
a
combination of pre-class lecture videos, in-class active learning,
and
post-class work (checked by foundations exercises).
The final project, in the final six 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.
There will be TA office hours via Zoom where you can book a time
slot for further in-person individual help, particularly with D3.
The midterm 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
12,
after the weekly programming exercises conclude and as the project
work ramps up. There is no final exam.
The students must pass both the midterm 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. When we have two sync lectures per week,
the breakdown is
3 in class (sync lecture) and 9 outside of class
(asynchronous). When we have one sync lecture per
week,
breakdown is 1.5 in class (sync lecture) and 10.5 outside of class
(asynchronous).
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;
the standard CS Department academic advising and waitlist handling
process is in play. I do note that so far, the waitlist has always
cleared: all students who want to take this course have gotten in.
If
you are on the waitlist and want to take the course, you should
show
up and participate from the beginning. Students who have attended
all class
sessions will be given waitlist priority if the
full waitlist does not clear; I'll share attendance information
with
the main office. Students who register for the course late must
still complete all quizzes and assignments.
You can join Piazza even if you're still on the waitlist,
even though you cannot join Canvas yet. I will use Piazza to
announce
mechanisms for waitlisted students to either submit work before
being
formally registered or submit work late without penalty, and will
provide Zoom links on there so that all
students have access to the livestreams (both registered and
waitlisted).
Attendance: Attendance in all synchronous lectures is
expected. You are responsible for all material presented there.
Some
material for the synchronous class sessions will be made
available
online. However, there is no guarantee that everything covered
will be
in the posted material, and in particular any lecture slides
will
not
fully capture what occurs in the in-class exercises. Your
participation mark is based on in-class activity.
Illness: To prevent further
spread of illness to other students, staff, or faculty
you should stay at home if you
have a
communicable illness (such as respiratory symptoms).
(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
illness,
when you have recovered you should submit the following
self-declaration form, through a private message on Piazza
(whether or
not you discussed it with any instructional staff in
person or by
email): Student Absence Due
to Illness or
Injury Form
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. Late demos will be
subject to the
availability of
the grader. No late work will be accepted after solutions
have been
handed
out.
Academic Honesty You are required to read about my
expectations for academic honesty and state that you fully
understand
them before any work in the course will be marked. Ask
Tamara or the
TAs right away if you have any questions, on Piazza as
either a
private or a public message, about these three writeups:
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, after consulting the solutions (if applicable).
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. Submit the request through Equity, Inclusion and Wellness: Please see the CS
Department's resources on equity, inclusion, and
wellness. UBC
provides resources to support student learning and to
maintain healthy
lifestyles but recognizes that sometimes crises arise and
so there are
additional resources to access including those for
survivors of sexual
violence. UBC values respect for the person and ideas of
all members
of the academic community. Harassment and discrimination
are not
tolerated nor is suppression of academic freedom. UBC
provides
appropriate accommodation for students with disabilities
and for
religious and cultural observances. UBC values academic
honesty and
students are expected to acknowledge the ideas generated
by others and
to uphold the highest academic standards in all of their
actions.
Details of the policies and how to access support are
available at https://senate.ubc.ca/policies-resources-support-student-success.
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.
Structure
Learning Outcomes
By the end of this course, students
will be able to:
Resources
Grading Scheme
Students will be graded on a numerical basis. The grading scheme is:
Policies
a private message
on
Piazza (to
all instructional staff) Gradescope.
Land Acknowledgement
The UBC Vancouver Point Grey Campus is located on the
traditional,
ancestral, and unceded land of the Musqueam people.
Previous Versions
Permanent URL for the page is https://www.students.cs.ubc.ca/~cs-436v/22Jan.
Tamara
Munzner
Last modified: Wed Sep 6 18:54:11 PDT 2023