CS 625 - Data Visualization
Fall 2019: Tuesdays, 9:30am-12:15pm, ECSB 2120

Print - Admin




  this week

Data Sources


Class Tools
  GitHub Classroom
  Zoom Meeting Room


"The purpose of visualization is insight, not pictures." -Ben Shneiderman

Course Overview

Catalog Description

This course covers the theory and application of data visualization. This includes issues in data cleaning to prepare data for visualization, theory behind mapping data to appropriate visual representations, introduction to visual analytics, and tools used for data analysis and visualization. Modern visualization software and tools will be used to analyze and visualize real-world datasets to reinforce the concepts covered in the course.

Course Objectives

In particular, after completing this course, you should be able to do the following:

  • Use OpenRefine to explore and clean real-world data.
  • Explain the difference between exploratory (discover task) and explanatory (present task) visualizations.
  • Describe the channels of visual encoding and order them from most effective to least effective.
  • Identify a visualization where an inappropriate arrange design choice was made and explain why the choice was inappropriate.
  • Explain how different data types map most effectively to various visualization idioms (i.e., charts).
  • Explain the importance choosing an appropriate colormap.
  • Given a dataset, develop questions about the data that can effectively be answered with a visualization.
  • Critique and redesign an existing visualization.
  • Use Tableau, R, Vega-Lite, or other API or software to create effective standard charts, such as line charts, scatterplots, bar charts.
  • Use Tableau, R, Vega-Lite, or other API or software to create an effective visualization of real-world data.
  • Explain and defend the design choices that you made in creating your visualization.

Course Format

This course will be organized based on the "flipped classroom" model. Students will be assigned readings and homework that will be due before class time. There will be few, if any, lectures by the instructor. Class time will be spent on discussions of the readings and assignments, demonstrations, student presentations, and in-class work. It is essential that each student be fully prepared to participate in class discussions each week.

This course is offered as a "hybrid" course, supporting both in-class and online students. The audio of class meetings and all materials projected in class are recorded for later viewing by our online students (as well as for review by in-class students). Online students may also connect via WebEx during the class meeting time, but this is not required. In-class exercises are optional, but will be provided for all students. Online students may solicit feedback on their in-class exercises from other students or the instructor. Unless otherwise specified, online students must meet the same deadlines as in-class students.



There are no specific course prerequisites for this course, but I expect you to be comfortable with basic statistics. Extensive programming experience is not required, but you should be familiar with basic programming concepts (variables, arrays, functions, conditionals, etc.).

Additionally, if you choose to use certain APIs (not required), you should be familiar with Unix, HTML, CSS, JavaScript, and jQuery. If you need a refresher on Unix, see the CS 252 webpage. There are many excellent resources available online for common web languages. Some can be found in the notes from my previous CS 312 and CS 418 courses.

Course Materials

The required textbook for this course is Visualization Analysis and Design by Tamara Munzner

You will be required to write clearly about your visualization designs and design process. For writing help, I always suggest two inexpensive books:

  • Writing for Computer Science by Justin Zobel
  • The Elements of Style by Strunk and White

In addition, see the online writing resources collected on the ODU-CS New Student Resources page.

We will use the following tools for assignments and discussions:

We will often do in-class design and programming exercises. Each student must bring paper, pencil/pen, and laptop to class (or work with another student who has a laptop).


Assignment Types

Your grade in this class will be based on the following components:

Attendance/Participation - 10%

  • in addition to being present, students are expected to be prepared to talk about examples and figures in the required readings, explain learning checks, and discuss their homework submissions
  • will receive points (0-2) for each week of class
  • in-class rubric:
    • 0 - unexcused absence (excused absences must be requested before class)
    • 1 - late to class or not prepared to participate
    • 2 - on time to class and actively participating in discussions and in-class work
  • online rubric:
    • 0 - no access of the class recording before the next class meeting
    • 2 - watched the class recording before the next class meeting, actively participating in online discussions

Learning Checks - 10%

  • preparation for the next class meeting, submitted via Blackboard before the class meeting time
  • answers should be in your own words, not just copied from the textbook
  • I will not correct your answers, but correct answers with references to the textbook will be provided after the due date
  • rubric:
    • 0 - not submitted
    • 1 - answered some questions, answers copied from textbook, or late submission (within 48 hours of due date)
    • 2 - answered all questions in own words and submitted on time

Homework - 30%

  • implement concepts from a previous class meeting, submitted via Blackboard
  • grading scale: 0-10, where 10 is the absolute best (don't expect to get 10s on a regular basis)
    • 2 points are reserved for the required writeup about the assignment
    • late assignments have a maximum score of 8

Midterm Exam - 25%

  • demonstrate comprehension and application of concepts discussed during the first half of the semester
  • will likely be open book, open notes

Final Exam - 25%

  • demonstrate comprehension and application of concepts discussed during the entire semester
  • will likely be open book, open notes

Grading Scale

The grading scale is as follows:

% letter grade
94-100 A
90-93 A-
87-89 B+
84-86 B
80-83 B-
78-79 C+
74-77 C
70-73 C-
0-69 F

Late Assignments

Any assignment submitted after its deadline is considered late. Submissions over 48 hours late are not accepted. This time limit includes weekends -- they are counted just like weekdays.

I reserve the right to specify that late submissions will not be accepted for particular assignments.

Course Policies

Typical In-Class Agenda

  • Discuss homework related to previous week's topic
  • Intro/overview/objectives of this week's topic
  • Discuss learning checks
  • Discuss confusing points (addressed anonymously)
  • In-class vis design or lab work
  • Assign homework
  • Wrap-up, point to next topic and week's assignments


Each student must join the class Piazza site with your ODU email address and check email daily. You should use Piazza to ask and answer general course-related questions. I will also use this to notify you about important updates (assignment deadline changes, class cancellations, office hours cancellations, etc.).

Attendance (in-class students)

Since much of the course is based on discussion and in-class work, I expect you to attend class and to arrive on time. Your grade will be affected if you are consistently tardy. If you have to miss a class, you are responsible checking the course website to find any assignments or notes you may have missed. Students may leave after 15 minutes if the instructor or a guest lecturer does not arrive in that time.

If there are days on which the scheduled class meeting time is cancelled due to weather, there may still be assignments made and due. A post will be made to Piazza (with an email notification) whenever the class meeting time is cancelled.

Group Work

Some assignments (when specified) may be done in groups -- consisting of at most 2 people. Groups exist solely on the mutual agreement of both parties. At any time, if either member wishes to dissolve the group, the group will be split. No new teams can be formed after the first group assignment is due. Members of the split group will have access to the shared code base at the time of the split.

We will be using GitHub for assignment preparation and version control. Don't be surprised if you are asked for your GitHub account when you interview for jobs.

Classroom Conduct

Please be respectful of your classmates and instructor by minimizing distractions during class. Cell phones must be turned off during class. Laptops must be closed during student presentations.

Make-up Work

Make-ups for graded activities are possible only with a valid written medical or university excuse. It is the student's responsibility to give the instructor the written excuse and to arrange for any makeup work to be done. A makeup exam may be different (and possibly more difficult) than the regularly scheduled exam.

Disability Services

In compliance with PL94-142 and more recent federal legislation affirming the rights of disabled individuals, provisions will be made for students with special needs on an individual basis. The student must have been identified as special needs by the university and an appropriate letter must be provided to the course instructor. Provision will be made based upon written guidelines from the University's Office of Educational Accessibility. All students are expected to fulfill all course requirements.

Students are encouraged to self-disclose disabilities that have been verified by the Office of Educational Accessibility by providing Accommodation Letters to their instructors early in the semester in order to start receiving accommodations. Accommodations will not be made until the Accommodation Letters are provided to instructors each semester.

Seeking Help

The course website should be your first reference for questions about the class. If you have questions about course requirements or materials, post and answer questions using the class Piazza site.

The best way to get extra help is to come to office hours. If you cannot make office hours, please send an email to setup an appointment.

Academic Integrity

Old Dominion University is committed to students' personal and academic success. In order to achieve this vision, students, faculty, and staff work together to create an environment that provides the best opportunity for academic inquiry and learning. All students must be honest and forthright in their academic studies. Your work in this course and classroom behavior must align with the expectations outlined in the Code of Student Conduct, which can be found at https://www.odu.edu/oscai.

The following behaviors along with classroom disruptions violate this policy, corrupt the educational process, and will not be tolerated.

  • Cheating: Using unauthorized assistance, materials, study aids, or other information in any academic exercise.
  • Plagiarism: Using someone else's language, ideas, or other original material without acknowledging its source in any academic exercise.
  • Fabrication: Inventing, altering or falsifying any data, citation or information in any academic exercise.
  • Facilitation: Helping another student commit, or attempt to commit, any Academic Integrity violation, or failure to report suspected Academic Integrity violations to a faculty member.

In particular, submitting anything that is not your own work without proper attribution (giving credit to the original author) is plagiarism and is considered to be an academic integrity violation. It is not acceptable to copy source code or written work from any other source (including other students, online resources), unless explicitly allowed in the assignment statement. In cases where using resources such as the Internet is allowed, proper attribution must be given.

Any evidence of an academic integrity violation (cheating) will result in a 0 grade for the assignment/exam, and the incident will be submitted to the Department of Computer Science for further review. Note that academic integrity violations can result in a permanent notation being placed on the student's transcript or even expulsion from the University. Evidence of cheating may include a student being unable to satisfactorily answer questions asked by the instructor about a submitted solution. Cheating includes not only receiving unauthorized assistance, but also giving unauthorized assistance. For class files kept in Unix space, students are expected to use Unix file permission protections (chmod) to keep other students from accessing the files. Failure to adequately protect files may result in a student being held responsible for giving unauthorized assistance, even if not directly aware of it.

Students may still provide legitimate assistance to one another. You are encouraged to form study groups to discuss course topics. Students should avoid discussions of solutions to ongoing assignments and should not, under any circumstances, show or share code solutions for an ongoing assignment.

All students are responsible for knowing the rules. If you are unclear about whether a certain activity is allowed or not, please contact the instructor.

More information on academic integrity is available on the ODU-CS academic integrity page.