CS 499/549, Winter 2022
Visual Analytics

(Slash Course: CS 499 Special Topic / CS 549 Selected Topic in Data Science & Systems)

School of Electrical Engineering and Computer Science
Oregon State University

Tue & Thu at 4:00 - 5:20pm
KEC 1005

Prof. Minsuk Kahng
Assistant Professor, School of Electrical Engineering and Computer Science
Website: https://minsuk.com

Course Description

How can we help people effectively analyze very large data? This new course introduces visual analytics, an emerging field of study on combining interactive data visualization approaches with automated data analysis techniques, enabling users to gain deeper insights about their data. Students will learn the fundamental knowledge of data visualization, state-of-the-art techniques in visual analytics, and practical skills for designing and implementing web-based interactive, visual interfaces, with the goal of helping human users effectively explore and analyze data and make data-driven decisions.

Learning Objectives

At the completion of this course, students will:

  1. Understand the foundations for visualizing large data for analysis
  2. Learn a wide range of techniques for representing large and complex datasets and enabling human users to interact with visualizations for their data exploration and analysis
  3. Learn how to design and implement interactive data visualization interfaces to help users perform data analysis tasks
  4. Understand recent techniques to visualize and interact with machine learning models, results, and datasets
  5. [Graduate students only] Understand recent literature in visual analytics


It is strongly recommended to have web development experience (CS 290 or equivalent), because students will be heavily using JavaScript and HTML/CSS for programming assignments and group project. We will have a lab session to cover the basics of JavaScript for those who are less familiar with JavaScript. If you have very limited programming experience (e.g., no CS degree), I recommend you not to take this course this time.

It would be helpful if you have taken Databases (CS 340), Advanced Web Development (CS 499 by Hess), and Usability Engineering or HCI (CS 352/565), but they are not required. It would also be helpful if you have taken Information Visualization (CS 458), but the instructor will assume students do not have knowledge in Information Visualization, and he will teach the basics of Information and Data Visualization at the beginning of the course.

Course Topics

This course will cover the following topics (subject to change).

  1. Fundamentals of Data Visualization
    • What is Data Visualization?
    • Data Abstraction
    • Multivariate Data Visualizations
    • Graphical Encodings
    • Interactions (e.g., Overview & Details)
    • Perception and Color
  2. Visual Analytics
    • Exploratory Data Analysis and Tableau
    • Task Analysis
    • High-dimensional Data Visualizations (e.g., t-SNE)
    • Visualization for Machine Learning
  3. Lab: Building Visualization and Interactive Tools
    • HTML/CSS, SVG, and JavaScript Basics
    • JavaScript Web Frameworks (e.g., Svelte, React)
    • D3.js as Components
    • JSON, Databases, and Client-Server Architecture for Web Applications
    • Drawing Visual Representations from Data
    • Supporting Interactions for Large Data

Course Schedule Tentative

This is a tentative schedule. For up-to-date information, please check out Canvas.
Week Tue Thu Assignments
1 Course Introduction Data Abstraction * Pre-Course Survey
2 Multivariate Data Visualizations Graphical Encodings * HW 1 out: Visualization Design
3 Exploratory Data Analysis & Tableau [Lab] Task Analysis * HW 2 out: Exploratory Analysis
4 HTML/CSS, SVG, JavaScript [Lab] Svelte, D3.js [Lab]
5 Interactions (1) [Lab] Interactions (2) [Lab] * HW 3 out: Visualization Programming
* Project Team Forming
6 High-dimensional Data Visualizations Visualization for Machine Learning
7 Perception and Color [Lab] Prototyping User Interfaces * HW 4 out: Survey
8 Project Posters Interactive Machine Learning [Lab] * Project Progress Report
9 Rule of Thumb, Project Discussions Evaluating Visualizations
10 Project Final Presentations (1) Project Final Presentations (2) * Project Final Report
11 No Final Exam


Your performance will be evaluated via projects, individual assignments, in-class programming activities, reading response, and participation. The distribution of grading will be as follow (subject to change):

  • Group Project: 25%
  • Individual Homework: 35-40%
  • In-class Programming Activities: 15%
  • Reading Response: 10%
  • Participation: 10-15%

Graduate students taking CS 549 will have additional assignments on writing research a short research survey.

Projects and Assignments

Group Project

By the end of the term, your team will develop a web application that visualizes large-scale real world data, as a final product of your group project. It will likely be a single-page web application that runs on web browsers, written in JavaScript based on what you will learn from lab sessions. To help you learn how to implement such a web-based visualization tool, we will have lab sessions and an individual programming assignment.

The team receives one grade for the group project. However, allocation of the grade among team members will in some cases not be equal, if team members do not contribute relatively equally to the effort. It will be calibrated based on project feedback and evaluation form around the end of the term.

Individual Homework Tentative
  1. Visualization Design (7.5%)
  2. Exploratory Data Analysis using Tableau (10%)
  3. Programming for Interactive Visualization (17.5%)
  4. (Graduate Student Only) A Short Survey Article on Visualization Subtopics (0-5%)
In-class Programming Activities

This course is a hands-on course, and there will be many in-class activities. Starting in Week 3, there will be lab sessions on programming. Students will be expected to complete programming exercises and submit them during class. They can discuss with peers and freely ask questions to the instructor during class. In order to work on these activities, students are expected to bring their own laptop to class.

Reading Response

Students are expected to read pre-class readings before class and write a short 50-100 word reading response to Canvas three hours before class (i.e., 1pm). Your response can be about any of the following points or similar:

  • Critiques of arguments made in the reading/papers
  • Any confusion or things that you find it difficult to understand
  • Interesting future research directions
  • Links to relevant papers or examples on the web you find interesting
  • Any other insightful questions

For most cases, you will read textbook chapters and/or academic papers, and all the readings will be provided. The following textbook will be used for some of our pre-class readings, but you don't have to buy it, as it is available for free as an online book from the OSU Library.

Visualization Analysis and Design
Author: Tamara Munzner
Publishers: CRC Press


Students are strongly encouraged to actively participate in class. For example, they can ask questions, share their in-class work with other students, create discussion posts on Piazza, etc.

Late Policy

No late submission is allowed for reading responses and in-class activities. The lowest reading response score will be dropped.

Late Policy for homework and project deliverables:

  • 0-24 hour late: 1% of total grade deduction
  • 24-48 hour late: 1% additional deduction
  • 48 hours: not be accepted

Announcements and Questions

Many announcements will be made during in-person class meetings.

We use Canvas for additional announcements, assignment submissions, grading, etc.

We use Piazza for questions and discussion. If you have any questions or comments for the instructor, you should use the private post feature (i.e., check the "Individual Students(s) / Instructors(s)" radio box). Please DO NOT send emails to the instructor. You won't get response. It is also the case for any other matters, such as missing grades, Canvas errors, class attendance, COVID-related concerns, personal issues. The only time you want to send emails to the instructor is when Piazza is not working. If you think questions can be answered by peers, you can also post your questions on Piazza without the "Individual Students(s) / Instructors(s)" option. That way, either your peers or the instructor can help.

We use GitHub Classroom for managing all the programming assignments.

This website will be used only for syllabus. For up-to-date information (e.g., schedule), please check Canvas's Modules menu.

TA & Office Hours

This course does not have a TA , unfortunately.

The instructor will hold office hours starting Week 2.

COVID-19 Statement

Students must wear a face covering properly all the time when attending class. The university has a requirement to use a face covering when in indoor spaces in order to contribute to the health and safety of the OSU community during the ongoing COVID-19 pandemic. Please contact the instructor at the first day of class if you have concerns with meeting this expectation. I encourage you to review the the policy on OSU's Safety and Success Planning yourself, to understand the university's expectations around the use of face coverings outside the classroom, OSU's Vaccination requirement, and OSU's isolation and quarantine requirements.

This course is NOT a hybrid class. By default, every student is expected to attend in-person classes at KEC 1005. However, if you have a positive COVID-19 test result, have symptoms of COVID-19, need to quarantine, or have a known or suspected exposure to COVID-19, please do not come to class and write a private Piazza post to the instructor, describing your situation at least three hours BEFORE class. The instructor will try to accommodate on a case-by-case basis then (e.g., livestreaming via Zoom).

Academic Integrity

Academic dishonesty will not be tolerated in this course. This includes plagiarism, cheating, and knowingly assisting others in either of these. (Please see the OSU Code of Student Conduct Section 4.2 "Academic Misconduct" for official guidelines.) If you are found to be guilty of academic dishonesty, you will receive a penalty grade (0 on the assignment and additional deduction on other assignments within the same category) and be reported to the Office of Student Conduct and Community Standards. You will also face the possibility of further disciplinary action (such as suspension from class, your program, or the university). Academic misconduct, or violations of academic integrity, can fall into seven broad areas, including but not limited to: cheating; plagiarism; falsification; assisting; tampering; multiple submissions of work; and unauthorized recording and use. It is important that you understand what student actions are defined as academic misconduct at Oregon State University. The OSU Libraries offer a tutorial on academic misconduct, and you can also refer to the OSU Student Code of Conduct and the Office of Student Conduct and Community Standard’s website for more.

Plagiarism: Remember that ANY sources you use in your assignment must be cited, including any electronic sources. Plagiarism is preventable. If you have any questions about how to use outside resources properly, what counts as plagiarism, etc., please ask me. The following are some general examples of plagiarism: copying without quotation marks, copying someone else's code or scripts, copying someone else's design, copying someone else's text, using someone else's facts or ideas without citing your source, paraphrasing someone else's writing without acknowledgment or citation, taking passages from another author, with slight changes to grammar or to the arrangement of the sentences, which make little or no difference to the meaning: This is plagiarism!

Classroom Policies

This class is our community. Every student should feel safe and welcome to contribute in this course, and it is all of our jobs to make sure this is the case. I will try to establish this tone whenever possible, but ultimately the responsibility for cultivating a safe and welcoming community belongs to the students---that means you! Fortunately, forming a safe and welcoming community is not too hard. A good place to start is to recognize (and continually remind yourself) of the following facts:

  • Your classmates come from a variety of cultural, economic, and educational backgrounds. Something that is obvious to you may not be obvious to them, and vice versa.
  • Your classmates are human beings with intelligence and emotions. This applies even when one or the other of you is posting anonymously. Rudeness and disrespect are unprofessional, and have no place in this course or in your career.
  • Your classmates are here to learn. They have the right to pursue their education without being distracted by others' disruptive behavior, or made uncomfortable by inappropriate jokes or unwanted sexual interest.

In addition, the OSU Expectations for Student Conduct apply.

In short, treat your classmates as respected colleagues, support each other when needed, have fun without spoiling it for anyone else, and everybody wins.

Students with Disabilities

Accommodations for students with disabilities are determined and approved by Disability Access Services (DAS). If you, as a student, believe you are eligible for accommodations but have not obtained approval please contact DAS immediately at 541-737-4098 or at http://ds.oregonstate.edu. DAS notifies students and faculty members of approved academic accommodations and coordinates implementation of those accommodations. While not required, students and faculty members are encouraged to discuss details of the implementation of individual accommodations.


CS 499/549 is designed based on a number of visualization courses offered in other universities. Below I list some of them. I especially thank Professors Jeffrey Heer and Enrico Bertini for sharing their materials with me.

I also thank Tableau for providing us with student license for Tableau Desktop.