Data Visualization Syllabus

  • Fall 2023
  • 1090 Lincoln Hall, Tuesdays and Thursdays, 3:30-4:50PM
  • 4 Credit Hours

  • Instructor: Jill Naiman
    • Email: jnaiman@illinois.edu
    • Office: Online
    • Office Hour: 11am-12:30pm, Wednesdays
    • Preferred Contact Method: email

COVID-19 Statement

In keeping with University and iSchool policy, all students are required to engage in appropriate behavior to protect the health and safety of our community.

If you feel ill or are unable to come to class or complete class assignments due to issues related to COVID-19, including but not limited to: testing positive yourself, feeling ill, caring for a family member with COVID-19, or having unexpected child-care obligations, should contact their instructor immediately and cc their advisor.

It is likely we can give you more time on assignments, however you need to reach out to your academic advisor and the course instructor as soon as possible so we have as much “runway” as possible in order to support you.

Additionally, please be aware that there are mental health resources available to students:

  • https://www.counselingcenter.illinois.edu/

  • https://mckinley.illinois.edu/medical-services/mental-health

  • https://www.disability.illinois.edu/health/mental-health-resources


Course Description

Data visualization is crucial to conveying information drawn from models, observations or investigations. This course will provide an overview of historical and modern techniques for visualizing data, drawing on quantitative, statistical, and network-focused datasets. Topics will include construction of communicative visualizations, the modern software ecosystem of visualization, and techniques for aggregation and interpretation of data through visualization. Particular attention will be paid to the Python ecosystem and multi-dimensional quantitative datasets.

Land Acknowledgment

As a land-grant institution, the University of Illinois at Urbana-Champaign has a responsibility to acknowledge the historical context in which it exists. In order to remind ourselves and our community, we will begin this event with the following statement. We are currently on the lands of the Peoria, Kaskaskia, Peankashaw, Wea, Miami, Mascoutin, Odawa, Sauk, Mesquaki, Kickapoo, Potawatomi, Ojibwe, and Chickasaw Nations. It is necessary for us to acknowledge these Native Nations and for us to work with them as we move forward as an institution. Over the next 150 years, we will be a vibrant community inclusive of all our differences, with Native peoples at the core of our efforts.

More information can be found on the Chancellor’s Website.

Course Overview

This course is designed to give practical advice to students on communicating data through visualization. This will involve a considerable amount of programming, and typically this programming will be done in Python, and some Javascript later in the course. For the most part, our data will be quantitative and multi-dimensional. The course will aim to provide both an understanding of what data visualizations communicate and a set of tools for constructing them yourself.

The course will follow a common pattern within each single three-hour or two 1.5 hour instructional session(s). The first 60-90 minutes will be focused on lecture, where concepts and tools will be introduced; typically, each class will focus on one type of visualization or class of visualization. The remaining time will include exploration of a dataset, which may be independent or in groups, and then a wrap-up session at the end.

Students are expected to have laptops with them, as well as access to Python installations (we will go over how to setup the correct packages when necessary), and will be encouraged to participate in class. Homework will be assigned and collected through other methods specified at time of submission like Moodle.

The central themes of the course are:

  1. What are the components of an effective visualization of quantitative data?
  2. What tools and ecosystems are available for visualizing data?
  3. What systems can be put in place to generate visualizations rapidly and with high-fidelity representation?

Pre- and Co-requisites

None, although intermediate Python programming experience is assumed.
Generally the course assumes: an introductory knowledge of Python programming (equivalent to 1 grad course like IS430) + some experience with a Python-related project (and practice of debugging skills, googling errors). A brief introduction to several Python packages (e.g. Pandas) will be presented during the course.

Course Materials

There is no required textbook for this course.

Optional textbook Visualization Analysis and Design by Tamara Munzner. You can find a lot of the concepts from this textbook on the books webpage and the associated lecture slides.

As the course progresses, a list of recommended readings will be generated for each class. These will be included in the course materials repository, and students are encouraged to fork that repository and issue pull requests to add suggested readings.

Writing Resources

The iSchool Writing Resources is the in-house writing support team for graduate students at the iSchool. They are here to help you with your writing and help you feel more comfortable and confident in your skills. The writing consultants are not professors or evaluators. They simply know the struggles of graduate and undergraduate-level writing and want to help you learn how to succeed and improve your writing skills. The iSchool writing consultants can help you with every step of the writing process. For detailed information on our services please visit our website: https://publish.illinois.edu/ischoolwritingresources/

Topic Calendar & Optional Reading

Below is an approximate outline of the course and optional reading for each week.
Note that the reading is meant to be complementary to the course, i.e. we won’t simply rehash what is in the reading during class.

This course is always under development and the course outline below is subject to some flexibility; students will be encouraged to provide feedback on the topics covered, particularly toward the end. Topics that are of particular interest will be emphasized.

Optional texts:

Acronyms for books:

  • VAD: Visualization Analysis & Design
  • FDV: Fundamentals of Data Visualization

Course Outline and Optional Reading List

Week Topic Reading
Week 1 Introduction, syllabus, examples, and some basics 1. VAD, Ch. 1: What’s Viz, and Why Do It?
2. FDV, Ch. 1: Introduction & FDV, Ch. 17: The principle of proportional ink
3. Same Data, Multiple Perspectives
4. Intro to Jupyter Notebook Video
Week 2 Data storage & Operations; Image data 1. VAD, Ch. 2: What: Data Abstraction
2. FDV, Ch. 2: Visualizing data: Mapping data onto aesthetics
3. VAD, Ch. 13: Reduce Items and Attributes
4. FDV, Ch. 27: Understanding the most commonly used image file formats
5. IS452’s intro to CSV files (bottom of page)
6. IS452’s Intro to Dictionaries
7. Pandas Docs & NumPy Docs
Week 3 Types of Viz and color, colormaps 1. VAD, Ch. 10: Map Color and Other Channels
2. FDV, Ch. 4: Color scales
3. VAD, Ch. 5: Marks and Channels
4. Perception in Visualization (pay extra attention to the parts about color)
5. Palettable Docs
Week 4 Beginning Interactivity 1. Intro to ipywidgets
2. Example Widgets Notebooks
3. VAD Ch. 7: Arrange Tables
4. FDV, Ch. 7: Visualizing distributions: Histograms and density plots
Week 5 Distributions, Engines 1. Video about bqplot
2. An introduction to Grammar of Graphics
3. ipywidgets Docs; Traitlets Docs; bqplot Docs
Week 6 Dashboards & Maps with bqplot 1. VAD Ch. 8.1-8.3: Arrange Spatial Data
2. VAD Ch. 11.1-11.5: Manipulate View
3. FDV, Ch. 15: Visualizing geospatial data
Week 7 More with maps - bqplot, cartopy, ipyleaflet, geopandas 1. VAD Ch. 8.1-8.3: Arrange Spatial Data
2. FDV, Ch. 15: Visualizing geospatial data
3. VAD, Ch. 13.4.2: Reduce Items and Attributes
4. Cartopy docs; ipyleaflet docs; Geopandas Docs
Week 8 Designing for the web with Python & Javascript with Starboard 1. Starboard Docs - in particular: Pandas & Python & general Markdown format
2. Intro to Javascript
3. FDV, Ch. 5: Directory of visualizations
Week 9 Designing for the web with Python & Javascript, Web dev with Starboard; Considering your audience 1. Same Data, Multiple Perspectives
2. FDV, Ch. 29: Telling a story and making a point
3. Starboard Docs
4. vega-lite docs - in particular: Vega-lite transformations & Vega-lite selections
5. Jekyll Examples
Week 10 More javascript & web dev with Jekyll 1. Jekyll Tutorials (hit “Next” to see them at bottom)
Week 11 More web dev with Jekyll & Altair 1. Jekyll Tutorials (hit “Next” to see them at bottom)
2. Altair docs - in particular Encoding Data Types, Vegalite-Altair conversions, Binning, Filter transforms and interactive examples
Week 12 More Jekyll & Altair & vega-lite, Publishing Viz 1. Altair Docs - in particular Including Indexes, Interactivity & Selections, Multi-line tooltips, Interactive Binning, Filter Transformations, Geographic plots, and Fold Transformations
2. Chapter 5: Dimensions of Visual Misinformation in the Emerging Media Landscape in the book “Misinformation and Mass Audiences”
Week 13 Even more with Jekyll & Altair & vega-lite 1. Altair Docs - in particular Including Indexes, Interactivity & Selections, Multi-line tooltips, Interactive Binning, Filter Transformations, Geographic plots, and Fold Transformations
Week 14 Fall break, no classes, enjoy! NA
Week 15 Scientific visualization

Guest lecture about scientific & cinematic viz from NASA SVS
1. VAD Ch. 8.4-8.6: Arrange Spatial Data
2. VAD Ch. 11.6: Manipulate View
3. yt docs
4. yt Volume Rendering Tutorial
Week 16 Network Viz & Word cloud Viz; Class summary 1. VAD Ch. 9: Arrange Networks and Trees
2. VAD, Ch. 13.4.3.1: Reduce Items and Attributes
3. VAD, Ch. 6: Rules of Thumb
4. FDV, Ch. 28: Choosing the right visualization software
5. FDV, Ch. 26: Don’t go 3D
6. FDV, Ch. 25: Avoid line drawings

About Your Instructor

Jill Naiman’s background is in theoretical and computational astrophysics with a current research emphasis on scientific data visualization and the digitization of historical scientific images and text. In addition to her position as Teaching Faculty at the iSchool, she is also currently a Visiting Scholar at the Advanced Visualization Lab at the National Center for Supercomputing Applications. She is currently involved in projects related to increasing access to industry-standard special effects software for scientists - more info can be found here and here. Information about her astrophysical research and outreach efforts can be found here.

Library Resources

http://www.library.illinois.edu/lis/
lislib@library.illinois.edu
Phone: (217) 300-8439

Writing and Bibliographic Style Resources

The campus-wide Writers Workshop provides free consultations. For more information see http://www.cws.illinois.edu/workshop/ The iSchool has a Writing Resources Moodle site https://courses.ischool.illinois.edu/course/view.php?id=1705 and iSchool writing coaches also offer free consultations.

Academic Integrity

Please review and reflect on the academic integrity policy of the University of Illinois, http://studentcode.illinois.edu/article1_part4_1-401.html, to which we subscribe. By turning in materials for review, you certify that all work presented is your own and has been done by you independently, or as a member of a designated group for group assignments.

If, in the course of your writing, you use the words or ideas of another writer, proper acknowledgement must be given (using APA, Chicago, or MLA style). Not to do so is to commit plagiarism, a form of academic dishonesty. If you are not absolutely clear on what constitutes plagiarism and how to cite sources appropriately, now is the time to learn. Please ask me!

Please be aware that the consequences for plagiarism or other forms of academic dishonesty will be severe. Students who violate university standards of academic integrity are subject to disciplinary action, including a reduced grade, failure in the course, and suspension or dismissal from the University.

Criteria for grading homework assignments include (but are not limited to) creativity and the amount of original work demonstrated in the assignment. However, students are permitted to use and adapt the work of others, provided that the following guidelines are followed:

  • Use of other people’s material must not infringe the copyright of the original author, nor violate the terms of any licensing agreement. Know and respect the principles of fair use with respect to copyrighted material.
  • Students must scrupulously attribute the original source and author of whatever material has been adapted for the assignment. Summarize the changes or adaptations that have been made. Make plain how much of the assignment represents original work.

This applies to code as well – you are welcome to use online sources (e.g. StackOverflow) but be sure to include the URL in your code comments.

Additionally, unless explicitly stated do not publish homework solutions online.

Policy on ChatGPT and other Large Language Models (LLMs)

The purpose of written and programming assignments is for students to apply what they have learned in class and learn how to validate statements and code or software. The purpose is not to produce a “perfect” bit of text or code/software – there is no such thing! Instead, we want to see how you problem-solve and what you think about a particular topic.

LLMs can be useful for getting ideas about how to phrase text or to get started on a coding/software problem, however they are not meant to be used in place of your critical thinking skills. Remember – it is more important that we hear your thoughts on topics than it is to generate 100% perfect English, and if you make use of LLMS, we expect significant extra work to be submitted with your submissions.

We will be implementing several policies related to the use of LLMS as listed below:

  • Acceptable Use: Students are allowed to utilize ChatGPT or similar AI language models for course assignments or tests but in specific situations. Such usage should be restricted to brainstorming, seeking inspiration, expanding ideas, and improving writing, and must not constitute the primary source of content or answers.
  • No Direct Answers: Students must not directly copy or paraphrase AI-generated text without proper attribution. Usage of ChatGPT or similar AI language models to directly answer specific questions or complete entire assignments is strictly prohibited. Students should rely on their knowledge and understanding, supplemented by AI tools for assistance.
  • Fact-Checking and Verification: Students must critically assess and verify any information obtained through ChatGPT or similar AI language models before incorporating it into their work. Misleading or inaccurate information from the AI model should not be used in their submissions. Cross-reference the AI-generated information with reputable sources to verify its accuracy and reliability. In particular, if you use an LLM you must:
    • Include the LLM name and date of usage
    • Include the prompt used
    • Include your “validation plan” for each statement that you use from the LLM.
      • Writing: For example, if one wants to use the statement “The Sky is blue due to Rayleigh scattering.” as output by an LLM, links to research supporting this claim need to be included (and if those links have also been generated by the LLM, each will need to be verified).
      • Code/Software: you will need to create your own validation tests to run the code. Include this in your submission along with a few sentences describing how your validation tests relate to the prompt.
  • Transparent Use and Academic Integrity: Clearly indicate any sections or contents that are AI-generated.
  • Assignment-Specific Guidelines: Each assignment or test may have specific instructions regarding the use of AI tools. Students must carefully review and comply with any guidelines provided.
  • Consequences of Misuse: Violation of the class policy on the use of ChatGPT will be treated as an academic integrity breach and subject to disciplinary action as per the institution’s guidelines.

The above class policy on the use of AI for course assignments were generated by ChatGPT, and selected, modified, and adapted by Dr. Koh on 8/3/23, and further modified by Dr. Naiman on 8/20/2023. The used prompts include: Give me class policy on the use of ChatGPT for course assignments and tasks; Come up with more specific class policy; and Give me examples of class policy on the use of ChatGPT for course assignments and tests.

Statement of Inclusion

Review the statement.

As the state’s premier public university, the University of Illinois at Urbana-Champaign’s core mission is to serve the interests of the diverse people of the state of Illinois and beyond. The institution thus values inclusion and a pluralistic learning and research environment, one which we respect the varied perspectives and lived experiences of a diverse community and global workforce. We support diversity of worldviews, histories, and cultural knowledge across a range of social groups including race, ethnicity, gender identity, sexual orientation, abilities, economic class, religion, and their intersections.

Accessibility Statement

To obtain accessibility-related academic adjustments and/or auxiliary aids, students with disabilities must contact the course instructor and the Disability Resources and Educational Services (DRES) as soon as possible. To contact DRES you may visit 1207 S. Oak St., Champaign, call 333-4603 (V/TTY), or e-mail a message to disability@uiuc.edu.  

This syllabus may be obtained in alternative formats upon request. Please contact the instructor.

Assignments and Evaluation

General Assignment Info

Assignments in this course will be a mixture of coding/visualization work and written work. These two may not be distinct assignments; students will be asked to describe their code and justify choices for making decisions with respect to visualizations.

Students are expected, unless otherwise instructed, to be the principal authors of their code. This does not mean they may not investigate resources such as StackOverflow, package documentation, etc; however, they must cite when resources (especially StackOverflow and other “recipe” sites) are utilized.

Each assignment will be based on “correctness” and the narrative description of the process. “Correctness” in this case indicates that the code runs without issue, results are produced, and each component of the assignment is completed. The narrative description of the process will be graded on grammar minimally and more so on completeness and thoughtfulness.

The submission process for homeworks will be described by example during class before any homeworks are to be submitted.

Assignment Details

Students will be graded based on a combination of assignments including weekly prose/code homeworks, coding-based automatically-graded labs, and automatically quizzes and a final project. The final project will be a capstone to the course, and will have greater flexibility in software packages and data sources. This project will be introduced around Week 8.

Assignments will either be graded by the PrairieLearn autograder for instant feedback, or by the instructional team after the assignment has been submitted.

The breakdown of your grade will be:

45% Homework: ~weekly, prose or code, graded whole or partially by instructional team
20% Labs: ~bi-monthly, code, graded automatically (can be attempted as many times as you want before the due date)
5% Quizzes: ~weekly, short questions about lecture material, graded automatically (multiple attempts are allowed, however with decreasing scores)
30% Final project: prose and code, graded by instructional team

Other notes about assessments

  • Unless otherwise specified, all assignments will be completed on the PrairieLearn platform.
  • There will be opportunities for extra credit in the homework and final project portions.
  • The maximum homework score is fixed at 45% (even with extra credit included).
  • Your lowest homework score will be dropped, however, we will not drop:
    • Homework #1 (introduction, installations, etc)
    • Github Pages Setup Homework (Homework #4)
    • Starboard & Jekyll Page Setup Homework (Homework #5)
    • Starboard OR Jekyll Page Homework (Homework #7 or #8) – i.e. you need to do AT LEAST one of these assignments

Grading Policy

All assignments are required for all students, aside from one homework (lowest HW grade will be dropped). Completing all assignments is not a guarantee of a passing grade. You must do homework, visualization labs, quizzes, and final project to receive a passing grade. Late or incomplete assignments will not be given full credit unless the student has contacted the instructor prior to the due date of the assignment (or in the case of emergencies, as soon as practicable).

Grading Scale:

above 94 A
90-93.99 A-
87-89.99 B+
83-86.99 B
80-82.99 B-
77-79.99 C+
73-76.99 C
70-72.99 C-
67-69.99 D+
63-66.99 D
60-62.99 D-
59.99 and below F

Assignment Late Policies

We allow students to turn in Homeworks up to a week late without penalty. If you need to “use” one of your late homeworks use the “Extension Request” tool for each assignment in that week’s module and specify that you would like to use an extension. The extension request needs to be submitted before the assignment is due and can not be requested retroactively. You do not need to provide any explanation for why you’d like to use an extension. You will then have one extra week to submit this assignment. No extensions can be applied to Labs, Quizzes, or any parts of the Final Project.

Late policies for homeworks not on extension include: 10% off for up to 1 day late, 20% off for 2 days late, 30% off for 3 days late. All homeworks not on extension will be given a zero if turned in after 3 days past the due date.

Late policies for labs will be: 5% off for up to 1 day late, 10% for up to 3 days late, 20% for up to 4 days late, 30% for up to 5 days late. There are no extensions for Labs.

Quizzes, Extra Credit assignments, and the Final Project follow homework late policies: 10% off for up to 1 day late, 20% off for 2 days late, 30% off for 3 days late. All homeworks not on extension will be given a zero if turned in after 3 days past the due date. There are no extensions for any of these assignments.

Incompletes

Students must request an incomplete grade from the instructor. The instructor and student will agree on a due date for completion of coursework and the student must file an Incomplete Form signed by the student, the instructor, and the student’s academic advisor with the School’s records representative. More information on incompletes is available here: http://webdocs.ischool.illinois.edu/registration/incomplete_grade_form.pdf

Attendance Policy

Students are required to attend each class, and if they are unable to do so must notify the instructor and TA in advance and request an excused absence. Participation in class – in the form of comments, questions, and discussion – is expected.

Email/Slack Policies and Turn-around times

We aim to respond to Slack messages in the main channel within 24 business hours and email within 3 business days. Please note that personal Slack messages are treated as emails and turn around times will be within 3 days (though we will make every effort to respond sooner than that). Please do not use Slack for any questions about grades, or other personal queries – email is the appropriate venue for these questions. Do not post working code or solutions of any kind on Slack publically.

Emergency Response: Run, Hide, Fight

Emergencies can happen anywhere and at any time. It is important that we take a minute to prepare for a situation in which our safety or even our lives could depend on our ability to react quickly. When we’re faced with any kind of emergency – like fire, severe weather or if someone is trying to hurt you – we have three options: Run, hide or fight.

Run

Leaving the area quickly is the best option if it is safe to do so.

  • Take time now to learn the different ways to leave your building.
  • Leave personal items behind.
  • Assist those who need help, but consider whether doing so puts yourself at risk.
  • Alert authorities of the emergency when it is safe to do so.

Hide

When you can’t or don’t want to run, take shelter indoors.

  • Take time now to learn different ways to seek shelter in your building.
  • If severe weather is imminent, go to the nearest indoor storm refuge area.
  • If someone is trying to hurt you and you can’t evacuate, get to a place where you can’t be seen, lock or barricade your area, silence your phone, don’t make any noise and don’t come out until you receive an Illini-Alert indicating it is safe to do so.

Fight

As a last resort, you may need to fight to increase your chances of survival.

  • Think about what kind of common items are in your area which you can use to defend yourself.
  • Team up with others to fight if the situation allows.
  • Mentally prepare yourself – you may be in a fight for your life.

Please be aware of persons with disabilities who may need additional assistance in emergency situations.

Other resources

  • police.illinois.edu/safe for more information on how to prepare for emergencies, including how to run, hide or fight and building floor plans that can show you safe areas.
  • emergency.illinois.edu to sign up for Illini-Alert text messages.
  • Follow the University of Illinois Police Department on Twitter and Facebook to get regular updates about campus safety.