Dataviz Revamp — Execution Plan

Working notes for building the new dataviz academic-year repo. This folder is gitignored (see .gitignore/notes/) so it never publishes.

Last updated: 2026-08-24


Goal

Turn the frozen dataviz-fall-2024 course into a reusable academic-year template (dataviz, covers fall AND spring), refreshed with the latest summer 2026 content, and with Kieran Healy’s Data Visualization (2nd ed., socviz.co) integrated as the assigned text for the visualization modules.

Repo strategy (decided)

  • dataviz — this repo. Academic year = fall + spring. Fall and spring never overlap, so we just re-date the schedule each term (no branches).
  • dataviz-summer — stays separate (online async, 6-week, quizzes, different cadence).
  • dataviz-fall-2024 — frozen archive, do not edit.

Source-of-content map

  • Freshest content (modules, syllabus policies, quizzes, videos, assignments) → ../dataviz-summer (refreshed May 2026).
  • Slides + 14-week semester schedule → this repo (copied from fall-2024). Summer has no slides.
  • Same 12 modules in both: module-1.1module-6.2.

Checklist

0. Repo setup

NAMING / STRUCTURE DECISION (2026-08-24)

Drop “Modules” and the X.Y numbers. Content is Topics (one per week) grouped into Parts, with Getting Started standalone at the front. Same content order as 2024 (do NOT reorder to Healy’s chapter order — the course climaxes in a Shiny app, which Healy doesn’t cover). Parts map to the reading strategy: Part I → r4ds; Parts II–IV → Healy; Part V → Shiny.

  • Getting Started (standalone, Week 1) — R, RStudio, Quarto, GitHub
  • Part I — Working with data: Reading & reshaping data · Importing & merging data
  • Part II — Visualizing data: Charting with ggplot2 · Color, themes & annotations
  • Part III — Maps: Choropleth maps · Interactive maps
  • Part IV — Tables & models: Tables · Models & coefficient plots
  • Part V — Interactive apps (Shiny): Building a scatter app · Building a time-series app · Assembling your app · Sharing & deploying your app

Filenames: keep module-X.Y.qmd for now (Quarto display title ≠ filename → low churn); optional slug-rename later. Sidebar section “Course Modules” → grouped Parts with topic titles.

Healy chapter order (2e): 1 Look at Data · 2 Get Started · 3 Make a Plot · 4 Show the Right Numbers · 5 Graph Tables/Add Labels/Make Notes · 6 Work with Models · 7 Draw Maps · 8 Refine Your Plots (color/themes LAST). Assign per topic, not in book order.

Schedule structure (Tue/Thu, Fall 2026) — FINALIZED ARC

Class meets Tue/Thu 11:10–12:25, Hall of Government Rm 102, first class Tue Aug 25, 2026. One topic per week (Tue + Thu = its two sessions). Calendar: Fall break knocks out Tue Oct 13 only (Thu Oct 15 meets → flex session); Thanksgiving Nov 24 & 26 fully off; last class Tue Dec 8 (Thu Dec 10 reading day).

Big pedagogical move: PLOT FIRST, wrangle later (Healy-style). Charts with clean data in Wk2–3 (hook + confidence), then source/shape data in Wk4–5 (now motivated). Wk1 intro demos = low-pressure instructor-led SHOW, not a coding gauntlet (the old “monster first session” overwhelmed people). The 3 demos (make a map, V-Dem democracy-over-time w/ vdemlite, UN voting trends) currently live in slides/week-2.2.qmd “Three Examples” — pull them forward.

Wk Dates Topic (old module) Assign
1 Aug 25/27 Getting Started — Tue: overview + 3 demos; Thu: R/RStudio/Quarto/GitHub (getting-started)
2 Sep 1/3 Charting with ggplot2 (2.1)
3 Sep 8/10 Color, themes & annotations (2.2) CA1 plotting
4 Sep 15/17 Reading & reshaping data (1.1)
5 Sep 22/24 Importing & merging data (1.2) CA2 get+plot
6 Sep 29/Oct 1 Choropleth maps (3.1)
7 Oct 6/8 Interactive maps (3.2) CA3 maps
8 Oct 13 break / Oct 15 FLEX (Thu): good dataviz + project brainstorm Proj 1 proposal
9 Oct 20/22 Tables (4.1) — own week
10 Oct 27/29 Models & coefficient plots (4.2) — own week CA4
11 Nov 3/5 Building a Shiny app (5.1) Proj 2 prototype
12 Nov 10/12 Extending & deploying your app (5.2 + 6.2) CA5
13 Nov 17/19 Project studio (6.1 resources)
14 Nov 24/26 Thanksgiving — off
15 Dec 1/3 Project studio
16 Dec 8 (Tue) Final presentations / lightning talks Proj 3 final

Shiny compressed from 4 wks → 2 (Wk11–12); everything after Thanksgiving = projects. 5 coding assignments + 3 project assignments preserved.

CONTENT TODOs this creates (step 2): provide clean starter CSVs for Wk2–3 plot-first (or use gapminder/socviz); consolidate old Shiny modules 5.1/5.2/6.1/6.2 into 2 weeks + studios; author the Wk8 flex session + Wk13/15 studio + Wk16 presentations; slides are still numbered by OLD scheme (week-2.1…13.2) — they now mismatch topic order; renumber/rename to topics as a cleanup pass.

ASSESSMENT REDESIGN (2026-08-24) — AI-era, in-person course

Core principle: move the graded center of gravity INTO THE ROOM (attendance incentive + AI-proof), demote take-home coding to low-stakes practice. Enabled by this being an in-person Tue/Thu course (summer is async, couldn’t do this).

FINAL grade weights (EJT approved; participation dropped — labs+quizzes are in-class so attendance already rewarded): - In-class labs (4, group, mostly done in class): 50% - Quizzes (in-class, individual, no AI): 20% - Final project (optional groups ≤3; proposal + app + live demo): 30%

Labs = coding assignments merged into 4 in-class group labs (EJT’s refinement): Lab 1 Plotting (Wk3, uses provided dem_women.csv so it works pre-wrangling), Lab 2 Wrangling (Wk5), Lab 3 Maps (Wk7), Lab 4 Tables & coefficient plots (Wk10). Files lab-1..4.qmd; sidebar section “Labs”. ✅ DONE commit 1434ed3.

Graduated AI policy (in syllabus): quizzes AI-free; labs = AI for Q&A/debug only + declare use + group accountability; final project = full modern AI workflow. ✅ DONE.

Syllabus grading section rewritten (labs 50 / quizzes 20 / project 30), assessment bullets fixed (removed leftover summer “Week 6/Module 6” text), quiz.qmd pointer page added. ✅ DONE.

Superseded note: the earlier “5→3 coding assignments” step was replaced by this 4-labs model.

Coding assignments: 5 → 3. ✅ DONE (commit 896f7bf) — files consolidated, schedule + sidebar updated. - CA1 = COMBINE old CA1 (download/wrangle/merge, women’s rep/Norris) + old CA2 (Lipset modernization viz: line/scatter), shortened. Framed on development–democracy. Due Wk5 (needs both plotting Wk2–3 AND merging Wk4–5). - CA2 = old CA3 (maps, Oil Curse/Ross). Due Wk7. - CA3 = old CA4 (tables + models), shortened. Due Wk10. - DROP old CA5 (Shiny — covered by the project). Old CA1 wrangling practice → moves to an in-class lab.

Project: ✅ DONE (commit f89342e). Dropped alternative-assignment.qmd. Slimmed to Proposal (project-assignment-1, Wk8) + Final Project (project-assignment-2, Wk16 live demo + Blackboard); retired the middle scaffold. Populated project-description.qmd (overview + group policy ≤3 + timeline). Quizzes are in-class (in-person), NOT summer’s Blackboard take-home model.

Quizzes cadence/timing: reframed as IN-CLASS (not settled on exact count; leaning ~weekly reading/concept checks at start of class). Blackboard used for delivery/auto-grading in the room.

IDE DECISION (2026-08-24): RStudio now, Positron for the project phase

Verified (Aug 2026): Positron’s inline .qmd output shipped April 2026 (was the last blocker) and Positron Assistant supports Claude/Copilot — BUT both are still preview/experimental (inline output can break .R execution + base-R layers; Assistant “not recommended for production”). Decision: Do NOT switch the whole course this offering. Use RStudio for the learning weeks (1–10) — all setup videos/screenshots/getting-started are RStudio-specific and shipping now matters. Introduce Positron in the project phase (Wk11+) as the professional, AI-integrated environment. This mirrors the graduated AI policy (RStudio + limited AI for labs → Positron + full AI for the capstone). Transition to a fully-Positron course in a later offering once Posit works the bugs out (features hit GA). Content TODO (future, not blocking ship): author a short “intro to Positron + Positron Assistant” for a Wk13 studio session; eventually a Positron setup path.

1. De-fall-specific-ify (make it an academic-year template)

  • NOTE for spring reuse: change tue start date + the fall-break/Thanksgiving rows only.

2. Port summer 2026 content

Modules that DIFFER (summer newer — copy over): getting-started, module-1.1, module-1.2, module-3.1, module-4.1, module-5.1, module-6.2. (Identical, skip: module-2.1, 2.2, 3.2, 4.2, 5.2, 6.1.) - [x] Ported the 7 updated modules from ../dataviz-summer/modules/ (commit 0967a7f). - [x] Dropped GitHub Classroom (EJT: not used in the semester course, phasing out of summer too). Stripped Classroom section from getting-started; repointed sidebar tool to github.com; fixed video/link labels; aligned coding-assignment-3 + module-6.2 to Blackboard submission (EJT confirmed Blackboard for all submission). - [x] Posit Cloud dropped (EJT: not using it this semester). All coding assignments standardized on “compress (zip) your project folder → submit on Blackboard” (commit 4857e85). - NOTE: ported modules’ _freeze cache is now stale (content changed) — full re-render needed on a machine with the packages/API keys to refresh outputs. - [x] Syllabus AI policy rewritten (commit 027121d): rationale + four principles + assessment-specific (quizzes AI-free / assignments consultant / project encouraged). EJT approved the enhanced assessment-type version. - [x] Syllabus Course Information fixed: Hall of Government Rm 102, Tue/Thu meeting days. - [x] Syllabus credit-hour paragraph rewritten for 3-credit semester (was summer 6-week text) using standard GW math (2.5h instruction + 5h independent/wk × 15 = 37.5 / 75). EJT: verify against GW’s official credit-hour boilerplate. - [ ] EJT to confirm/adjust: Office Hours still say “Mondays 3–5 p.m.” (calendly) — set Fall 2026 hours. “log in daily” phrasing is a carryover from the online course; fine to leave for in-person. - [ ] Bring over module quizzes: quiz.qmd + wire quiz links (📘) into the schedule where appropriate - [ ] Update YouTube video IDs to summer’s re-recorded versions (compare index.qmd Videos columns) - [ ] Assignments: scaffolded starter code in coding-assignment-1 & -2, eval: false global there; updated app.R template for assignment 5; group-project policy in project assignments - [ ] NSE approach update already in ported module-5.1

3. Integrate Healy — OPTION 3 (full integration)

Healy = assigned spine for VIZ modules (2–4); r4ds = primary assigned text for WRANGLING (module 1 + Getting Started); Shiny (5–6) unchanged (not in Healy).

Add to the schedule “Readings”/“Reference” column, chapter per module:

Module Skills Healy chapter (assigned) Notes
GS / intro course intro, principles Ch.1 Look at Data NEW assigned reading — fills the missing viz-principles gap (perception, chart choice, honesty)
2.1 bars, histograms, line, scatter Ch.2 Get Started + Ch.3 Make a Plot ggplot grammar / aesthetics / geoms
2.1 (cont.) grouping, facets Ch.4 Show the Right Numbers facets, stat transforms, pipelines
2.1 / 2.2 labels, annotations Ch.5 Graph Tables, Add Labels, Make Notes geom_text, ggrepel, annotate
2.2 color, themes Ch.8 Refine Your Plots themes, scales, color (strong fit)
3.1 choropleth maps Ch.7 Draw Maps sf, geom_sf
4.2 regression tables, coef plots Ch.6 Work with Models broom, marginaleffects, modelplot

4. Cleanup

    • slides/week-6.1.qmd (×2) + slides/week-6.1-speaker.htmldataviz-fall-2023
    • exercises/exercise-1.2*dataviz-summer-2023
    • Point these at the new dataviz repo (or a stable data host)

5. Go live


Open questions / decisions parked

  • Local folder is teaching/dataviz/dataviz/ (doubled name) — accepted for now; GitHub repo is just dataviz.
  • Exact Fall 2026 start date for index.qmd — need from EJT.
  • Whether to keep the substantive poli-sci readings (Norris, Lipset, Ross, Fearon & Laitin, Huntington) alongside Healy or thin them.