Data Visualization

CS 360/560 • Spring 2020

COVID-19 Notice

Due to the COVID-19 outbreak, this website is being retired effective March 15, 2020. All future updates will be moved to Canvas for online instruction as advised by the university.


This syllabus is similar to a contract between students and the instructor, and as such it is quite long (with many sections required by the university). A few key points from this syllabus are highlighted here:

  • Use Piazza for all course communication. See: Communication Policy.

  • You should be stuck for 30 minutes on a problem before seeking help, but you should definitely seek help if you have been stuck for over an hour. See: Getting Help.

  • Do not cheat and attribute everything. This includes working too closely with your classmates, or copying code or designs without attribution. See: Cheating Policy.

  • The portolio of work you complete for this class is public, which can be very useful for finding employment. As such, the more time you put into this class the more you will get out of it. See: Credit Hour Policy.

Students are still required to read through the entire syllabus below.

Course Details

This section covers basic information about the course, instructor, and teacher assistants.

CS 360/560 Data Visualization

Spring 2020 • 4 Credits

This course introduces both undergraduate and graduate students to the fundamentals of data visualization. This includes discussion of perception, design, and evaluation. Students will also be introduced to a variety of visualization techniques for high-dimensional, temporal, hierarchical, network, and/or geospatial data.

The course utilizes a variety of programming languages and environments, such as Tableau Desktop, JavaScript and JSON, D3.js, Vega-Lite, and others.

Graduate students must additionally read research papers in the area of data visualization.

CS 360 Course Catalog   CS 560 Course Catalog

Lecture Sections

The class times for CS 360/560 are:

CS 360-01 (CRN 20972)
Tuesdays, Thursdays
4:35pm – 6:20pm
Cowell Hall 107

CS 560-01 (CRN 20978)
Tuesdays, Thursdays
4:35pm – 6:20pm
Cowell Hall 107

Class time consists of traditional lectures, live coding sessions, discussions, guest speakers, student presentations, and more. Most lectures will be recorded and live-streamed via Zoom.

Since this is not a computer classroom, students should bring laptops to class. See Required Materials for system requirements.


The course instructor and office hours will be as follows:

Sophie Engle
Mondays, Thursdays
2:45pm – 4:15pm
Harney Science 412B

See the Communication Policy for how to contact the instructor and teacher assistants.

Teacher Assistant(s)

The teacher assistant(s) assigned to this course are:

Allison Wong
Harney Science 411

Teacher assistant office hours will be posted on Piazza at the start of the semester.

See the Communication Policy for how to contact the instructor and teacher assistants.


Undergraduate students enrolled in CS 360 must have completed at least ONE of the following courses with a minimum grade of C before taking this class:

Graduate or bridge students enrolled in CS 560 must have completed at least BOTH of the following courses with a minimum grade of B before taking this class:

All students are recommended to self-learn HTML, CSS, and JavaScript before the class starts. As this is an upper-division course, minimal time will be spent introducing students to these languages in class.

Learning Outcomes

At the end of this course, students should be able to:

  • Understand basic fundamentals of designing and evaluating data visualizations

  • Understand how to interpret and utilize standard data visualization techniques for high-dimensional, temporal, hierarchical, network, and geospatial data

  • Understand how to use cutting-edge tools to prototype interactive data visualizations

Assessment of these outcomes will be done by a combination of participation assignments, presentations, homework, and projects. See Course Requirements below for details.

Required Materials

There are no required textbooks for this class. All software required for the course is either free or licenses will be provided.

The software required for this class works on most modern Windows, Mac, and Linux systems. Specifically, students must have access to a system capable of running Tableau Desktop, interacting with Github repositories, running Github Pages locally, running a local web server, and a modern web browser such as Chrome or Firefox that can run the following web-based tools: Observable Notebooks, Bl.ock Builder, VizHub, Vega-Lite Online Editor, and Trifacta Wrangler.

Students will be provided a license key for Tableau Desktop at the start of the semester. Students may also request a free one-year license from the Tableau Academic program.

Students are encouraged to install a free text editor such as Atom or Brackets for developing websites.

If you do not have access to a laptop with the above capabilities, please contact the instructor.

Important Dates

The following are important dates and deadlines for the course. These dates are fixed (i.e. they should not change as the semester progresses).

Date Description
01/21 Lectures Begin: First day of class.
01/27 Add Deadline: Last day to add classes.
02/07 Drop Deadline: Last day to drop with a 100% refund. Courses/sections dropped after this date appear with a neutral “W” on transcript.
02/17 President’s Day: No classes or office hours will be offered this day.
03/03–03/05 Prototype Demonstrations: In class exercise. Attendance mandatory.
03/09–03/13 Spring Break: No classes or office hours will be offered this week.
03/17 Midterm Project: The final release of the midterm project is due on this date.
03/17–03/19 Midterm Presentations: Students will present their midterm projects in-class this week.
04/06 Withdraw Deadline: Last day to withdraw from classes with a neutral “W” on transcript.
04/28–04/30 Prototype Demonstrations: In class exercise. Attendance mandatory.
05/07 Lectures End: Last day of class.
05/12 Final Project: The final release of the final project is due on this date.
05/12 Final Demonstration Showing: Students will show their pre-recorded final project demonstration videos in lieu of a final exam.

Instead of a final exam, there will be a final project demonstration video showing during finals week. This is scheduled for Tuesday, May 12, 2020 from 5:30pm – 7:30pm 8:30pm. Students do not need to attend the entire 3 hour block; they will be randomly assigned to attend the first half or second half of the showing.

See the Schedule for the latest weekly schedule. See the Academic Calendar for university-wide important dates.

Course Requirements

This section covers how the learning outcomes for this course will be assessed. The majority of the grade will be derived from projects instead of exams. See the following subsections for details.


Students will be assessed via assignments in the following categories: participation, labs, homework, and projects (midterm and final).


Participation includes pass/fail assignments such as participating in surveys, discussions on Piazza or Canvas, in-class exercises, and participating in other on-campus or off-campus CS events.

For undergraduate students, this includes creating blog-like posts on topics within data visualization. For graduate students, these posts must be on research papers.

All feedback and discussions must be professional, substantive, constructive, and follow the Student Conduct Code for the university.


These short weekly assignments are completed in class (or within 48 hours). Students may work collaboratively in groups on these lab exercises, but must submit their work individually.


There are four programming homework assignments given throughout the semester. These assignments must be completed individually. Students must also provide peer feedback for each homework assignment.

Homework will be graded by functionality (not design or aesthetics) on a +/– letter scale via a mix of self-reported and peer-reported grades. The teacher assistants and instructor reserves the right to modify these grades as appropriate.


Instead of exams, students must complete a group midterm project and an individual final project. Each project includes preparing a project proposal, alpha release, beta release, and final release. Students must also participate in peer feedback exercises and present their projects to the class.

Projects will be graded on both functionality, design, and aesthetics.

Grade Breakdown

The final letter grade for this class will be calculated as follows:

Percent Category
10% Participation
15% Labs
20% Homework
25% Midterm Project
30% Final Project

The assignments within each category are not necessarily equally weighted. For example, some participation assignments are worth more points than others.

Please also see the Course Policies, some of which also impact your final letter grade.

Grading Scale

The following is the grading scale mapping percentage to letter grade and GPA for this course:

  Letter   GPA
97% ≤ A+ < 100% 4.0
94% ≤ A < 97% 4.0
90% ≤ A– < 94% 3.7
87% ≤ B+ < 90% 3.3
84% ≤ B < 87% 3.0
80% ≤ B– < 84% 2.7
77% ≤ C+ < 70% 2.3
74% ≤ C < 77% 2.0
70% ≤ C– < 74% 1.7
67% ≤ D+ < 70% 1.3
64% ≤ D < 67% 1.0
60% ≤ D– < 64% 0.7
0% ≤ F < 60% 0.0

Non-passing grades for undergraduate students are highlighted in red. See the Undergraduate Student Regulations for more about letter grades and GPA for undergraduate students.

Non-passing grades for graduate students are highlighted in yellow or red. See the Graduate Student Regulations for more about letter grades and GPA for graduate students.

Student Awards

At the end of the semester, various awards will be given to students. While these awards are informal and do not impact your final grade, they do provide a way for students to differentiate themselves on resumes. Example awards include: top student askers and answerers on Piazza, best peer reviewer, best presentation, and more.

Course Policies

This section includes miscellaneous policies specific to this course, including communication, attendance, credit hours, cheating, and more. These policies are in addition to the standard USF policies included later.

Communication Policy

Most course-related communication will be handled using Piazza—a FERPA-compliant Q&A platform that supports public, anonymous, and private posts. When making posts on Piazza, please keep the following in mind:

  • Make a public post when appropriate. This lets us answer questions once for all students. You can post anonymously if you are uncomfortable with attaching your name to a post or a response. When posting anonymously, your classmates will not be able to see your identity but instructors will still be able to see your name. This is necessary to give you credit for participation and ensure everyone is following the code of conduct.

    If you send an email to the instructor or teacher assistant, or make a private post that should be public, you will be asked to create a new public anonymous post on Piazza before receiving an answer.

  • Do not post code on Piazza. If you have a question regarding your specific code, please commit and push your code to your GitHub repository and post a link. That ensures only those with access to your repository (instructor and teacher assistants) will see your code.

  • Make posts regarding grades or specific solutions private to the instructor and teacher assistants. When making private posts, they should always be marked as visible by both the instructor and teacher assistants so there is no confusion.

In addition to Piazza, the instructor will also use Canvas to notify students of missing assignments or warn about low grades. You may also ask for help in-person during office hours or lectures. These are the only officially approved channels of communication for contacting the instructor or teacher assistants.

Under no circumstances should you reach out to the teacher assistants via any unapproved communication channel. Instructors and teacher assistants must provide all students equal opportunity for course-related help. Using unapproved communication channels creates an unfair advantage over other students and will be treated as a violation of the Student Conduct Code.

For example, it is appropriate to use text messages to invite a teacher assistant to lunch as friends. It is NOT appropriate to start asking that teacher assistant questions about the course during that lunch! It is also NOT appropriate to directly text message course-related questions to that teacher assistant, even if you are friends and were able to get help from them before. You can, however, ask that teacher assistant for help during official office hours.

Getting Help

Stuck? A good rule of thumb is to struggle with solving a problem for at least 30 minutes before asking for help. However, if you are still stuck after 1 hour, seek help. There are many ways to get help with this class:

  • Ask questions on Piazza. Most questions receive a response in under 24 hours (sometimes within 30 minutes). You may figure out your problem before you get a response, but then you can delete your question or mark it as solved.

  • Ask questions during the instructor office hours. Office hours are first-come first-serve and there is lots of seating (including power outlets for charging).

  • Ask your classmates for high-level help or hints, but be careful! To avoid violating the cheating policy and honor code, make sure you never share code with your classmates or look at the code of your classmates.

If you are feeling generally overwhelmed (including emotionally) and need advice, do not hesitate to reach out to the instructor. Since office hours can be crowded at times, you are welcome to schedule an appointment with the instructor via Piazza to chat in private.

Awards are given out at the end of the semester to students with the top questions and answers on Piazza. This is one way to distinguish yourself from others on your resume!

Attendance Policy

Students are expected to be on-time to all classes to minimize disruption. Attendance is mandatory for all student presentations, guest speakers, and in-class exercises. These dates will be posted on the course schedule. Attendance must be in person; joining the livestream does not count.

Credit Hour Policy

All courses must comply with the Credit Hour Policy, which states:

“One unit of credit in lecture, seminar, and discussion work should approximate one hour of direct faculty instruction and a minimum of two hours of out-of-class student work per week through one 15-week semester.”

As this is a 4 credit course, students must spend a minimum of 8 hours of out-of-class work per week to earn a passing C letter grade. To earn a C+ or higher letter grade, students should expect to spend between 10 to 15 hours per week on assignments.

Cheating Policy

All students are expected to know and adhere to the University’s Honor Code. In short, students must never represent another person’s work as their own. Examples of honor code violations include (but are not limited to):

  • Copying and pasting code, data, or design without attribution or proper licensing

  • Having anyone other than yourself complete your work (including teacher assistants, tutors, and former students)

  • Working too closely with others such that your code no longer represents an individual contribution

Keep in mind that unauthorized collaboration or discussion that results in the same or very similar work indicates that you have not placed enough independent thought into your submission and is a violation of the honor code, regardless of whether you directly copied!

Flagrant or repeat violations of the honor code will result in an F in the course, a report to the Academic Integrity Committee (AIC), and a report to the Dean. At the discretion of the instructor, a less severe penalty may be imposed for minor or first offenses. This is at the sole discretion of the instructor and any violation may result in an F in the course.

Attribute everything. Had a discussion with a classmate on how to approach an assignment? Attribute that discussion in your submission. Used the design of another visualization as inspiration, but made your own modifications and adaptations? Attribute the inspiration in your submission and say as much. Used a snippet of code from a web tutorial or StackOverflow? Link to the source in a comment alongside the code.

Late Policy

Late assignments are not accepted. If work was completed on-time but not properly submitted, 5% will be deducted from the assignment grade for the first offense and 10% for each additional offense after that.

If you make any changes after the deadline in your Github repository, those changes will be rolled back to the last commit before the deadline for grading purposes. If you wish to continue working on an assignment after the deadline but before grading is complete, please do so in a separate branch or fork.

Extra Credit Policy

To offset the harshness of the late policy, each student may request one extra credit/makeup opportunity for any assignment in the participation, lab, or homework categories. Students may earn up to the amount of points missed on that assignment. For example, suppose if a student earned 70 out of 100 points on an assignment, that student can request an extra credit opportunity to make up the remaining 30 points. Students may make only one request; choose wisely to maximize the impact on the final grade.

Extra credit requests may not be made for assignments in the midterm or final project categories.

Policy Exceptions

Exceptions to most course policies are made only in the case of verifiable exceptional circumstances. This includes medical emergencies, mental health and well-being crises, or family-related emergencies. Extensions must be arranged prior to the original deadline unless in case of extreme emergency (such as an emergency room visit).

If you need to miss class for a family event (such as a wedding or graduation) or academic/professional conference (such as Grace Hopper or an internship interview), contact the instructor ahead of time to make arrangements. Keep in mind you will likely be asked to submit assignments early versus getting an extension. Please note exceptions will not be made for other events (such as concerts, comic cons, and so on).

University Policies

This section includes standard statements on University policies and resources, including: disclaimers on confidentiality, mandatory reporting, sexual assault; statements regarding USF’s Honor Code and Academic Integrity and behavioral expectations; important campus resources for student health, safety, and wellbeing.

Students with Disabilities

If you are a student with a disability or disabling condition, or if you think you may have a disability, please contact USF Student Disability Services (SDS) for information about accommodations.

Behavioral Expectations

All students are expected to behave in accordance with the Student Conduct Code and other University policies.

Academic Integrity

USF upholds the standards of honesty and integrity from all members of the academic community. All students are expected to know and adhere to the University’s Honor Code.


All course communications, like all other USF communications, will be sent to your USF official email address. You are therefore strongly encouraged to monitor that email account.

Counseling and Psychological Services (CAPS)

CAPS provides confidential, free counseling to student members of our community.

Confidentiality, Mandatory Reporting, and Sexual Assault

For information and resources regarding sexual misconduct or assault visit the Title IX coordinator or USF’s Callisto website.