15-Week Semester Syllabus
Course Overview
This syllabus provides full coverage of all 35 chapters of Data Visualization with Python over a standard 15-week semester. It is designed for a dedicated data visualization course meeting twice per week (approximately 3 hours of instruction per week plus 6--8 hours of out-of-class work). The schedule moves from perception and design foundations through the complete Python visualization stack, culminating in a capstone project presented during the final week.
The progressive climate project runs throughout the semester, with graded milestones approximately every two weeks. Students also work with three additional anchor datasets (corporate sales, public health, and social media analytics) introduced at various points.
Prerequisites
Python 3.10+ proficiency, pandas fundamentals, basic statistics (mean, median, standard deviation), and comfort with Jupyter notebooks.
Week 1: Foundations of Visual Perception
Chapters: 1 (Why Visualization Matters), 2 (How the Eye Sees)
Session 1: Course introduction. Show Anscombe's Quartet and the Datasaurus Dozen. Discuss why visualization is an analytical tool, not decoration. Introduce the progressive climate project and grading structure.
Session 2: Pre-attentive processing, Gestalt principles, visual encoding channels. In-class experiment: timed searches demonstrating pop-out effects.
Assignment: Chapter 1--2 exercises. Find and critique a real-world chart (300 words).
Week 2: Color and Ethics
Chapters: 3 (Color), 4 (Lies, Distortions, and Honest Charts)
Session 1: Color theory: hue, saturation, lightness. Sequential, diverging, and qualitative palettes. Perceptual uniformity. Color blindness simulation.
Session 2: Truncated axes, cherry-picked ranges, area distortions, dual-axis deception. Ethics discussion using Chapter 4 case studies.
Assignment: Chapter 3--4 exercises. Redesign a misleading chart with written justification.
Week 3: Chart Selection and Visual Simplicity
Chapters: 5 (Choosing the Right Chart), 6 (Data-Ink Ratio)
Session 1: Chart chooser framework: data relationships (comparison, distribution, composition, relationship, change over time) mapped to chart types. Practice with varied datasets.
Session 2: Tufte's data-ink ratio. Identifying and removing chartjunk. Guided decluttering exercise.
Assignment: Chapter 5--6 exercises. Given three datasets, select and justify chart types in writing.
Week 4: Typography, Layout, and Storytelling
Chapters: 7 (Typography and Annotation), 8 (Layout, Composition, and Small Multiples), 9 (Storytelling with Data)
Session 1: Font selection, hierarchy, annotation best practices. Small multiples design. In-class annotation workshop.
Session 2: Narrative structure for data presentations. Sequencing charts for maximum impact. Students build a three-chart story arc.
Assignment: Chapter 7--9 exercises. Three-chart narrative assignment due end of week. Climate project milestone 1: Written design plan for the climate visualization.
Week 5: matplotlib Architecture and Essential Charts
Chapters: 10 (matplotlib Architecture), 11 (Essential Chart Types)
Session 1: Figure, Axes, Artists. The object-oriented API vs. pyplot state machine. Live coding from scratch.
Session 2: Line, bar, scatter, histogram, box, and area charts. When to use each. Common mistakes.
Assignment: Chapter 10--11 exercises. Climate project milestone 2: First exploratory charts of the climate dataset using matplotlib's object-oriented API.
Week 6: Customization and Subplots
Chapters: 12 (Customization Mastery), 13 (Subplots, GridSpec, and Multi-Panel Figures)
Session 1: Colors, fonts, style sheets, rcParams. Building a custom style from scratch.
Session 2: subplots(), GridSpec, constrained layout, shared axes. Multi-panel design principles applied in code.
Assignment: Chapter 12--13 exercises. Climate project milestone 3: Polished, multi-panel matplotlib figure with custom styling.
Week 7: Specialized matplotlib and Animation
Chapters: 14 (Specialized matplotlib Charts), 15 (Animation and Interactivity)
Session 1: Polar plots, 3D charts, contour plots, stream plots. When specialized chart types add value vs. when they confuse.
Session 2: FuncAnimation, interactive widgets, saving animations. Demo: animated time series of temperature anomalies.
Assignment: Chapter 14--15 exercises. Midterm exam distributed (take-home, due start of Week 9).
Week 8: seaborn Foundations
Chapters: 16 (Seaborn Philosophy), 17 (Distributional Visualization)
Session 1: Seaborn's design philosophy, figure-level vs. axes-level functions, integration with matplotlib. How seaborn builds on everything from Parts I--III.
Session 2: histplot, kdeplot, ecdfplot, rugplot, violin and box comparisons. Choosing distributional representations.
Assignment: Chapter 16--17 exercises. Climate project: distributional analysis of annual temperature anomalies using seaborn.
Week 9: seaborn Advanced and Multi-Variable
Chapters: 18 (Relational and Categorical), 19 (Multi-Variable Exploration)
Session 1: scatterplot, lineplot, catplot, barplot, stripplot, swarmplot. Encoding with hue, size, style. Midterm due at session start.
Session 2: PairGrid, pair plots, joint plots, clustermap, heatmaps. Strategies for high-dimensional exploration.
Assignment: Chapter 18--19 exercises. Climate project milestone 4: Multi-variable seaborn exploration of the full climate dataset.
Week 10: Interactive Visualization with Plotly
Chapters: 20 (Plotly Express), 21 (Plotly Graph Objects)
Session 1: Plotly Express for rapid interactive charts. Hover, zoom, faceting, animation frames. Compare to matplotlib workflow.
Session 2: Plotly Graph Objects for full control. Traces, layouts, subplots, custom interactions.
Assignment: Chapter 20--21 exercises. Climate project milestone 5: Interactive Plotly version with hover details and range slider.
Week 11: Altair and Geospatial Visualization
Chapters: 22 (Altair), 23 (Geospatial Visualization)
Session 1: Declarative visualization with Altair. The grammar of graphics. Selections and interactivity.
Session 2: Choropleths, point maps, tile maps. Coordinate reference systems. Folium, geopandas, and Plotly geo traces.
Assignment: Chapter 22--23 exercises. Climate project: build a global temperature choropleth.
Week 12: Networks, Time Series, and Specialized Domains
Chapters: 24 (Network and Graph Visualization), 25 (Time-Series Visualization), 26 (Text and NLP Visualization)
Session 1: NetworkX and graph layout algorithms. Node-link diagrams, adjacency matrices. When network viz helps vs. when it produces hairballs.
Session 2: Time-series decomposition, rolling means, horizon charts. Brief introduction to text and NLP visualization (word clouds done right, topic model visualization).
Assignment: Chapter 24--26 exercises (select subset). Climate project: time-series deep dive with trend decomposition.
Week 13: Scientific Visualization, Big Data, and Dashboards
Chapters: 27 (Statistical and Scientific Visualization), 28 (Big Data Visualization), 29 (Dashboards with Streamlit)
Session 1: Publication-quality figures for journals. Error bars, confidence intervals, statistical annotations. Big data strategies: sampling, aggregation, datashader.
Session 2: Introduction to Streamlit. Building a dashboard from scratch in class. Layout, widgets, caching, deployment.
Assignment: Chapter 27--29 exercises. Climate project milestone 6: Working Streamlit dashboard.
Week 14: Dash, Automation, Theming, and Workflow
Chapters: 30 (Dashboards with Dash), 31 (Automated Reporting), 32 (Theming, Branding, and Style Guides), 33 (The Visualization Workflow)
Session 1: Dash architecture and callbacks. Compare Streamlit vs. Dash trade-offs. Automated PDF report generation.
Session 2: Building a reusable theme and style guide. The end-to-end visualization workflow from question to publication. Capstone project work session.
Assignment: Chapter 30--33 exercises (select subset). Climate project milestone 7: Branded, publication-ready version. Capstone proposal due.
Week 15: Capstone and Gallery
Chapters: 34 (Capstone), 35 (Visualization Gallery)
Session 1: Student capstone presentations (7--10 minutes each). Peer feedback using structured rubric.
Session 2: Gallery walk. Course retrospective. Discussion: how has your perception of data visualization changed? Final capstone submissions due by end of week.
Grading Summary
| Component | Weight |
|---|---|
| Weekly exercises and quizzes | 15% |
| Climate project milestones (7 check-ins) | 20% |
| Design critique assignments | 10% |
| Midterm exam (Chapters 1--15) | 15% |
| Discussion participation | 5% |
| Capstone project and presentation | 25% |
| Final exam (comprehensive) | 10% |
Notes for Instructors
- Weeks 12--14 cover the most material. Consider assigning some chapters as reading-only and focusing class time on the most challenging or hands-on topics (Streamlit in Week 13, Dash comparison in Week 14).
- The capstone project should begin conceptually by Week 12 at the latest. Encourage students to choose a dataset they care about.
- Peer review is built into the capstone week. Provide a structured rubric (see Additional Assessments) so feedback is constructive and specific.