10-Week Quarter Syllabus

Course Overview

This condensed syllabus covers the essential chapters of Data Visualization with Python in a 10-week quarter format. It prioritizes perception science, core design principles, matplotlib and seaborn mastery, and a brief introduction to interactive visualization. Specialized topics (NLP visualization, network graphs, big data) and production topics (Dash, automated reporting) are omitted but can be assigned as optional reading for advanced students.

Students complete the progressive climate project through the quarter, reaching the interactive Plotly version by Week 9 and presenting a condensed capstone in Week 10.

Prerequisites

Students must have Python 3.10+ proficiency, pandas fundamentals, basic statistics, and experience with Jupyter notebooks before enrolling.


Week 1: Why Visualization Matters and How We See

Chapters: 1 (Why Visualization Matters), 2 (How the Eye Sees)

Key Activities: - Opening discussion: show three versions of the same chart (bad, default, good) and ask students to articulate what differs - Demonstrate pre-attentive processing with pop-out experiments in class - Assign Chapter 1 and 2 exercises

Assignment: Find a misleading chart in the news and write a 300-word critique using vocabulary from Chapters 1--2.

Week 2: Color and Honest Charts

Chapters: 3 (Color), 4 (Lies, Distortions, and Honest Charts)

Key Activities: - Live demo: sequential vs. diverging vs. qualitative palettes on the same dataset - Color blindness simulation exercise using colorspacious or Coblis - Ethics discussion using case studies from Chapter 4

Assignment: Chapter 3 exercises. Redesign a deliberately misleading chart from Chapter 4 case studies.

Week 3: Chart Choice and Data-Ink Ratio

Chapters: 5 (Choosing the Right Chart), 6 (Data-Ink Ratio and Visual Simplicity)

Key Activities: - Chart chooser flowchart walkthrough with live examples - Before-and-after decluttering exercise: start with a heavily decorated chart, progressively strip elements - Introduce the climate dataset for first exposure

Assignment: Given a dataset, justify chart type selection in writing. Apply data-ink ratio principles to simplify two provided charts.

Week 4: Typography, Layout, and Storytelling

Chapters: 7 (Typography and Annotation), 8 (Layout, Composition, and Small Multiples), 9 (Storytelling with Data)

Key Activities: - Annotation workshop: students annotate a bare chart with titles, callouts, and source attribution - Small multiples exercise using the climate dataset - Narrative arc exercise: sequence three charts into a story

Assignment: Create a three-chart narrative using any dataset. Each chart must demonstrate annotation, layout, and storytelling principles.

Week 5: matplotlib Architecture and Essential Charts

Chapters: 10 (matplotlib Architecture), 11 (Essential Chart Types)

Key Activities: - Live coding: build a figure from scratch using the object-oriented API (Figure, Axes, Artists) - Milestone: first ugly climate project plot, then progressive improvement - Survey of bar, line, scatter, histogram, and box plots

Assignment: Climate project milestone --- load the dataset, produce exploratory charts, apply basic labeling. Chapter 11 exercises.

Week 6: Customization and Multi-Panel Figures

Chapters: 12 (Customization Mastery), 13 (Subplots, GridSpec, and Multi-Panel Figures)

Key Activities: - Style sheet and rcParams demonstration - GridSpec workshop: build a complex multi-panel layout for the climate dataset - Before-and-after: default matplotlib vs. fully customized version

Assignment: Climate project milestone --- produce a polished, multi-panel matplotlib figure with custom colors, fonts, and layout. Graded against the design rubric.

Week 7: seaborn Foundations

Chapters: 16 (Seaborn Philosophy), 17 (Distributional Visualization), 18 (Relational and Categorical)

Key Activities: - Compare matplotlib vs. seaborn approaches to the same chart - Distribution exploration workshop: histplot, kdeplot, ecdfplot, violin plots - Relational plots: scatterplot with hue, size, and style encodings

Assignment: Climate project milestone --- create distributional and relational seaborn visualizations of temperature anomalies. Chapter 17--18 exercises.

Week 8: Multi-Variable Exploration and Plotly Express

Chapters: 19 (Multi-Variable Exploration), 20 (Plotly Express)

Key Activities: - Pair plots and heatmaps for the corporate sales dataset - Introduction to Plotly Express: convert a static matplotlib chart to interactive - Discuss when interactivity adds value vs. when it distracts

Assignment: Climate project milestone --- build an interactive Plotly Express version with hover, zoom, and range slider. Chapter 20 exercises.

Week 9: Dashboards and Theming

Chapters: 29 (Dashboards with Streamlit), 32 (Theming, Branding, and Style Guides)

Key Activities: - Live coding: build a minimal Streamlit dashboard with the climate dataset in class - Theming workshop: create a custom style guide and apply it to the dashboard - Peer review session: students swap dashboards and provide design feedback

Assignment: Climate project milestone --- build a Streamlit dashboard incorporating at least three chart types, consistent theming, and user controls. Due end of Week 9.

Chapters: 34 (Capstone), 35 (Visualization Gallery)

Key Activities: - Student capstone presentations (5--7 minutes each) - Gallery walk: students display their best work and provide written peer feedback - Course retrospective: what changed about how you see charts?

Assignment: Final capstone submission. Students present a complete data story on a dataset of their choosing, incorporating perception principles, design thinking, and at least two Python visualization libraries.


Grading Summary

Component Weight
Weekly exercises and quizzes 20%
Climate project milestones (4 check-ins) 25%
Design critique assignment (Week 1) 10%
Midterm (take-home, end of Week 5) 20%
Capstone project and presentation 25%