CSC 477 Scientific and Information Visualization (Spring 2026)

What we’ll learn. Data visualization is one means of helping humans make sense of vast quantities of data. Well-designed visualizations can replace slower cognitive calculations with much faster perceptual inferences, improving comprehension, memory, and decision-making. Conversely, poorly-designed visualizations can (intentionally or unintentionally) make decision-making more difficult or inaccurate.

In this class, we’ll learn how to design expressive and effective visualizations. We’ll study techniques for creating visualizations based on principles from graphic design, perceptual psychology, and cognitive science. You will learn how to design and build interactive visualizations for the Web using Vega-Lite and D3 (data-driven documents).

Learning objectives

  • Visualization preparation and design. Data collection and preparation; data and task abstractions to be presented through visualization.
  • Visualization idioms and design guidelines. Making effective use of visual channels like position, size, and colour in common graph types like scatterplots and barcharts as well as more “unusual” ones, like this, rooted in empirical evidence from disciplines like graphic design and perception.
  • Interactive visualization. Visualizations don’t always answer questions; sometimes they help you discover them. Interactivity is key to this exploratory process.
  • Visualization analysis and evaluation. Faced with a visualization, created by ourselves or others, how should we go about evaluating it?
  • Visualization implementation tools. We’ll use Vega-Lite, a grammar of interactive graphics for the first half of the class, and will move on to D3 (data-driven documents) to build more advanced graphics.
  • (Non-)Deceptive visualization. We will learn how people and organizations lie with visualization, and how not to do it ourselves.

Assignments

The course will involve roughly weekly assignments that exercise what we talk about in class, and a 3-part final project, worked on in teams. The Class participation portion of the grade will be based on completion of in-class activities and discussions, and attendance on important class days (such as prototype walkthroughs).

The grade breakdown is as follows:

At the end of the quarter, I will round UP your final numerical score1 and turn that into a letter grade using the following grading scale:

  • A >= 93
  • A– >= 90
  • B+ >= 87
  • B >= 83
  • B– >= 80
  • C+ >= 77
  • C >= 73
  • C– >= 70
  • D+ >= 67
  • D >= 63
  • D– >= 60
  • F < 60

Late policy

I recognise life as a college student can be stressful and I don’t know everyone’s exact situation. I also want to avoid inequities arising from some students feeling more entitled than others to ask for extensions in an extenuating circumstance. So,

  • Each student is allotted three late days to be used as you wish on any Assignment.
  • To use these days, email me with the subject: CSC 477: Late days A1 (e.g., if you’re using a late day for A1). In the email body, tell me how many late days you plan to use for that project.
  • Please send me this email within three days of the assignment’s original deadline, and follow the instructions above, since it will help me keep track of the information.
  • You do not need to provide a reason for using the late days.

Late days cannot be used on Project deliverables since those are team deliverables with synchronous in-class activities.

In cases of emergencies, please talk to me when you are able to, and we will handle those on a case-by-case basis.

Attendance policy

Lectures:

  • There will occasionally be graded activities in class that you must be present to complete. These make up the participation portion of the grade breakdown.
  • My teaching is interactive; I rely on input from students to drive class sessions, particularly while live-coding.
  • This class in particular, more than others, benefits from hearing more voices as we discuss the design and analysis of visualizations.

All this adds up to: I strongly recommend that you attend every lecture!

Labs:

  • The three hours of scheduled lab time are your primary opportunity to work with your classmates.
  • It is also during lab time that I will, on an individual basis, ask you questions about your design and implementation choices for Assignments. Missing the occasional lab is okay, but consistently missing labs is not.
  • Once team work begins (week 5), lab attendance is mandatory unless you have let me and your teammates know and you have a legitimate reason to miss class. Missing lab without notice is the same as letting your teammates down.

Class communication

Office hours. You are welcome (and encouraged!) to stop by my office when you have questions or just want to chat about the course. See my current office hours and location. If you can’t make the hours listed, contact me and I’m happy to schedule an appointment for another time.

Lab sessions. Our lab sessions are also a good time to ask me questions or to discuss assignments with your classmates (within the bounds of the academic integrity policy).

EdStem class forum. All asynchronous communication for this class will take place this EdStem forum. (Before accessing it for the first time, you’ll need the invite link from Canvas.)

Some suggestions:

  • Please ask all course-related questions in EdStem, unless you are sending me documents or files of some kind, or asking about things that apply only to you, like assignment extensions.
  • You can answer each other’s questions or participate in discussions.
  • The forum will be a searchable index of questions. This can save you a ton of time when you’re working on something and need a question answered.
  • It will also help me avoid answering the same question multiple times.
  • You can post questions anonymously.
  • We will all be using tools to which we are relatively new. The forum is a good place to post tips and tricks that you discover.

Classroom conduct and climate

Academic honesty

Work you turn in must be your own. Although I encourage you to have lively discussions with one another, all work you hand in must be your own work, unless otherwise specified. Programs will be compared using software that can reliably detect similarities in source code. Evidence that your program or parts of your program are plagiarized from another student or an unapproved source will be taken seriously. At minimum, you will receive a 0 for the assignment, and potentially also an F in the class and report filed with the Office of Student Rights and Responsibilities.

You have a number of resources at your disposal to help you succeed in this course (your peers, myself, online sources), and I am usually willing to work with you on flexible deadlines. If you feel you need to plagiarize in order to succeed, know that you definitely have other options. Just come talk to me!

AI Policy2

✅ You MAY use AI (ChatGPT, etc.) to help you program or implement visualizations. Prompts like: Why isn’t this code showing the data? How do I increase the size of points in this plot? How do I extend the x-axis using Vega-Lite? What does this error mean? Show me an example of… Those are all okay!

But if you choose to use AI, there are some things you must know:

First, you are responsible for any mistakes that it makes. It will make mistakes or mislead you on occasion. You can’t blame the AI if you get something wrong.

Second, AI tools can be helpful, and often correct. But their core functionality is to give you an answer that looks plausible without necessarily caring about (1) providing a correct answer in all cases, and (2) serving your learning goals.

We learn best by struggling and surmounting challenges. Uncritical reliance on AI tools will short-circuit this process. Sure, you will get an answer quickly, but the answer is not our objective; our objective is the process that gets us there. (Just like the goal of lifting weights in the gym is not just to have the weights in the air.)

If you do use AI assistants to help you with implementations, you’re encouraged to put them in “study mode” first. Different companies have different names for this:

On an individual basis, I will occasionally ask you to explain code you’ve written or choices you made. If I ask you to explain what a piece of your code does, and you are unable to do so, that is going to have repercussions on your grade for that assignment. (See more in the Attendance section of this Syllabus.)

🛑 You MAY NOT use AI to help you make design decisions, make critiques, or generate writing about visualizations. Why? There is a lot of advice out there that is just flat out wrong with respect to years of visualization research. There is also a lot of advice that ignores the context of diverse communities who need to understand data (disability, access to technology, education, etc.). AI is likely going to amplify some of that bad advice, and we shouldn’t be complicit in it. We need to be careful and critical about our designs. This is also the core learning objective of this course. So using ChatGPT (or similar programs) here is not permitted.

✅ You MAY use AI to help you polish writing. Some AI tools like Grammarly can help students find grammatical or clarity errors in their writing. That is perfectly fine. The key difference is creation (not okay) vs. refinement (okay). Also, I want to hear from you, and not a regression-to-the-mean approximation of how humans speak.

Classroom climate

All members of this class are expected to contribute to a respectful, welcoming, and inclusive environment for everyone. I expect us to strive to build a community in which:

  • We are not code snobs. We do not assume knowledge or imply there are things that somebody should know.
  • After our own work is complete, we support one another’s learning by sharing our expertise generously if invited to do so.
  • We consistently make the effort to recognise and validate multiple types of contributions to a positive classroom environment.
  • We strive to contribute meaningfully to group work.

Resources

There is no official textbook for the course, but we will frequently refer to material from the following sources, generously shared publicly by the authors listed below.

Additionally, you will frequently refer to the following online documentation:

Finally, each class day links to readings/resources for that day.

Course schedule

This is a tentative course schedule. I expect to update it frequently as the quarter progresses.

Assignments will appear in Canvas with deadlines. If deadlines in Canvas conflict with those listed here, the Canvas deadlines take precedence.

The READINGS/RESOURCES column contains links to items that you are expected to read or watch outside of class.

  • 🎥 Videos about data visualization related to the day’s topic.
  • 📜 Readings, which may be papers or online articles.

Additionally, it links to the following resources meant as reference material:

  • Slides and Notebooks that I present in class.
  • Documentation for the various tools we’ll use.
WEEK DATE TOPICS READINGS/RESOURCES ASSIGNMENTS
1 Tuesday, March 31 NO CLASS ACADEMIC HOLIDAY  
  Thursday, April 2 Course introduction
Why visualize?
🎥 What’s Vis, and Why Do It? Tamara Munzner.

Class materials: Slides
A1: Visualization curation and analysis
2 Tuesday, April 7 Perception
Marks and channels
Scales and axes
📜 Perception in Visualization. Christopher Healey.

🎥 Marks and Channels Part I and Part II. Tamara Munzner.

Class materials: Slides | Notebook
 
  Thursday, April 9 JavaScript primer
Intro to Observable Notebooks
Data models and tidy data
📜 Data tidying. Hadley Wickham.

📜 Tidy Data in JavaScript. Jeffrey Heer.

Class materials: Slides | Notebook
A1

A2: Data wrangling with JavaScript
3 Tuesday, April 14 Visualization analysis and design    
  Thursday, April 16 Data visualization with Vega-lite 📜 Introduction to Vega-lite. Jeffrey Heer.

Vega-lite documentation
Most of these docs use the JSON syntax, but we will mostly use the JavaScript API.

Class materials: Notebook
A2

A3: Expository visualization
4 Tuesday, April 21 Multi-view composition 📜 Multi-view Composition. Jeffrey Heer.

Class materials: Slides | Notebook
 
  Thursday, April 23 Interaction Class materials: Slides  
5 Tuesday, April 28 Ethical and deceptive visualization 📜 Misleading Beyond Visual Tricks: How People Actually Lie with Charts (full paper, blog post). Maxim Lisnic et al.

Class materials: 💻 Slides
A3

P1: Project proposal
  Thursday, April 30 Visualizing uncertainty 🎥 The Visual Uncertainty Experience. Jessica Hullman.

📜 Visual Semiotics & Uncertainty Visualization: An Empirical Study. Alan M. MacEachran et al.

Class materials: 💻 Slides
A3 Peer review (during lab)

A4: Ethical visualization
6 Tuesday, May 5 Introduction to D3
Data joins, scales, axes
📜 Introduction to D3. Part I and Part II. Jeffrey Heer. P1

P2: Prototype
  Thursday, May 7 D3: Animation, interaction 📜 d3-brush
In-built utilities for brushing, zooming, and dragging.

🧪 D3 gallery
Use as a source of inspiration and building blocks, and cite your sources!
 
7 Tuesday, May 12 Cartographic visualization 📜 Cartographic Visualization. Jeffrey Heer.

Class materials: Slides | Notebook
A4

A5: Data visualization with D3
  Thursday, May 14 Accessibility in visualization   A3 revisions
8 Tuesday, May 19 Prototype walkthroughs   P2

Project showcase (during lecture)

P3: Final deliverable
  Thursday, May 21 Narrative in visualization    
9 Tuesday, May 26 Visualizing networks Class materials: Slides  
  Thursday, May 28 Tentative: Temporal visualization   A5
10 Tuesday, June 2 A5 design share-out and critique   A5 Peer review (during lecture)
  Thursday, June 4 Final team project presentations   P3

Project self and peer evaluation
Finals week Tuesday, June 9; 1:10pm to 4pm
In the lecture room.
Optional: A4 and A5 improvements based on feedback. A write-up submitted 24 hours prior describing how feedback was addressed, followed by a 5-7 minute face-to-face demonstration during a designated time slot.  

Acknowledgements

This course’s materials are adapted from those shared publicly by Jeffrey Heer, Jon Froehlich, Tamara Munzner, and Evan Peck.


  1. With the exception of if you are right on a grade border but have an extremely low participation score. 

  2. Adapted from Evan Peck’s AI policy.