Apply a structured design process to create effective visualizations
Conceptualize ideas and interaction techniques using sketching and prototyping
Apply principles of color, typography, and layout as well as principles of human perception and cognition in visual design
Process and analyze a variety of data types: quantitative, text, geospatial, qualitative
Create web-based interactive visualizations using D3 and Observable
Critically evaluate visualizations and suggest improvements and refinements
Work constructively as a member of a team to carry out a complex project
Assignments
Sparks Presentation (5%): prepare a 7min. slideshow presentation on a data visualization practitioner or team that is inspiring to you.
Visualization Design (10%): design 10 divergent representations for the US Census data set and provide a rigorous rationale for your design choices. Present for design critique in class.
Exploratory Data Analysis (10%): identify a dataset of interest and perform an exploratory analysis to understand the shape & structure of the data, investigate initial questions, and develop preliminary insights & hypotheses. Present a report on your findings.
Interactive Visualization (20%): build a visualization that enables interactive exploration along at least three dimensions using a dataset of your own choosing and publish it on the web.
Midterm Exam (10%): individual closed book exam, for 1 hour during class session. Comprises multiple-choice and written essay questions.
Final Project (30%): build a web-based interactive visualization that allows you to answer questions about a topic of your own choosing. You will acquire the data, design your visualization, implement it using D3, and evaluate the results.
Class Participation and Quizzes (15%): actively engages in class and online (Slack) in critique, analysis, and assisting peers. Expect a reading quiz most weeks (1 point per quiz question accumulated over semester, for 60% of total participation grade.)
Expectations
Pre-requisites: You should already know web development. We won’t be covering any HTML, CSS, or JS concepts. You should know what DOM manipulation means. Also, I’m going to assume you know what is a callback, what is method chaining is, and what is a function generator. If you don’t, it isn’t impossible, but this class will be difficult.
Group Work: All assignments will be in groups of three unless otherwise noted. In general, I do not anticipate that the grades for individual group members will be different. However, we reserve the right to assign different grades to each group member based on peer assessments. Your assignments should all be submitted online at 11:59pm on the due date (usually the Monday before class.)
Quizzes: Expect a 5min. pop quiz at beginning of each class on reading from the previous week. It’s not meant to trip anyone over; it’s merely to help make sure you did the reading, which helps all of us cover more ground in class. If you expect to miss class, meet IAs at office hours the week before, or work on extra credit.
Readings: You will be assigned to read diverse writing styles spanning academic publications, textbooks, as well as design essays. This is by intention. If it is your first time reading a particular style of writing, you will find it difficult and obtuse (hint: allocate your time accordingly); however, my goal is that by the end of this class you will be comfortable reading and summarizing key points across disciplines.
Copying: You are encouraged to copy code, as long as you have the original author’s permission and you note your source. Similarly, note any sources of inspiration. Your assignments will be graded primarily on original concept and design, rather than novel implementation. That said, your code should always yield a great user experience—it should work correctly without specific instructions for your users (eg. graders), and should be performant on major platforms (Chrome, Edge, Firefox and Safari.) Meanwhile, everything in CS Department Honesty Policy still holds.
Lateness: each 24-hour delay in assignment submission will result in 10% deduction from your assignment grade. No exceptions unless you have a medical note.
Extra Credit: There will be extra credit opportunities during the semester as a way for students to demonstrate their mastery of course material in ways beyond the assignments and exams. Extra credit is added after the final curve if there is one (so it does not affect other students’ final grades, and strictly benefits the student doing the extra work.)
Assignment Weights: these may change if there are schedule updates or changes in assignment scope; any such change will be announced before assignment is assigned.
Caveat Emptor
This class will emphasize the practice of design: significant class time will be spent on design activities, presentations, discussion, giving and receiving feedback to your peers.
Design evaluation is subjective. Assignments and test questions that have one correct answer will be very rare. I and your TAs will grade; our goal in grading is to reward quality and real effort, and punish stupidity, laziness and insincerity.
I will provide grading guidelines for assignments beforehand, but we will not publish exact scoring criteria and I do not expect rubrics to cover the entire space of possible submissions. I intend to keep the definition of “A+: Exceed expectations” meaningful. I also reserve the right to curve final course grades. My expectation for the class is a normal distribution centered on B.
I encourage you to focus on feedback: solicit reactions from your classmates, ask me and your IAs, solicit from friends and your other instructors. If any feedback is unclear, ask. Your grades won’t make much difference in your career after this class, but my reaction and the reactions of your classmates to what you made, will. Your manner, attitude, and participation in these activities, online or in class, counts towards your grade, so be proactive.
This is new class. This is the first time we’re teaching with this syllabus and we will be, as far as I know, the first class to use Observable entirely for assignments. Consider yourself beta users: expect some kinks, expect hotfixes, and expect that you’ll be asked repeatedly for your feedback, but also expect that your input will lead to updates and new features, and you will be a part of shaping this class for future iterations.