BADM 554 — Activity Roster (Box sync)
Canonical source: Instructional Activity Roster.xlsx (Box file 2237265073438)
Last synced: 2026-09-26 (auto, scripts/box-autosync.py) · Box modified 2026-08-31 13:17 CDT · sha1 96df90e9773e
Editing policy: do not edit this file directly; edit the Excel in Box. This is an auto-generated snapshot, regenerated only when the Box content changes.
Lookups key off the Box file ID (stable across renames). Production Status, where the LD team records it, is in Notes: Defined → Scripted (date) → Recorded (date) → Edited → Final.
Naming convention
M[#]I[#] = Module # · Item #. Each module has up to 10 slots; course intro/conclusion use sequence N/A. Item Type dropdown: Lecture video; Demonstration Video; Interview; Live Session Type 1; Live Session Type 2: Studio; Other Instructional Resources.
Course-level items
| Sequence |
Title |
Item Type |
Final Length |
Notes |
| N/A |
Course Welcome — Why You’re Here, In 8 Minutes |
Lecture video |
10 min |
Status: Recorded 2026-06-11 — S0 Course Welcome (script + prompter on Box, Course Preview folder) |
| N/A |
Conclusion |
— |
— |
This row is a placeholder for the course conclusion video that should be included in any redesign or new course development projects |
Module 1 — Stakeholder Question → First SQL on a Real Warehouse
| Sequence |
Title |
Item Type |
Final Length |
Notes |
| M1I1 |
Why This Course Matters |
Lecture video |
6 min |
Status: Recorded 2026-06-11 — reshoot v2, supersedes 2026-05-27 (phase-relative arc, Week-1 fix) |
| M1I2 |
Start With the Question |
Lecture video |
6 min |
Status: Recorded 2026-06-11 — concept track (M1 replan; scripts + prompters on Box) |
| M1I3 |
What a Data Warehouse Is |
Lecture video |
7 min |
Status: Recorded 2026-06-11 — concept track (M1 replan; scripts + prompters on Box) |
| M1I4 |
Anatomy of a Query |
Lecture video |
5 min |
Status: Recorded 2026-06-11 — concept track (M1 replan; scripts + prompters on Box) |
| M1I5 |
From Question to Query |
Lecture video |
— |
Status: Recorded 2026-06-11 — concept track (M1 replan; scripts + prompters on Box) |
| M1I6 |
Your First Queries on a Real Warehouse |
Demonstration Video |
7 min |
Status: Recorded 2026-06-21 - first desk screencast; video + script on Box Module 1; reviewed + approved (Jacob 2026-06-29, Cheng 2026-07-07) |
| M1I7 |
Can You Trust the Query AI Hands You? |
Demonstration Video |
8 min |
Status: Recorded 2026-06-29 - second desk screencast; video + script on Box Module 1; reviewed + approved (Jacob 2026-06-29, Cheng 2026-07-07) |
| M1I8 |
What to Do This Week |
Other Instructional Resources |
— |
Status: Defined — text-only weekly logistics (Canvas text item, not a video) |
Module 2 — Joins + Aggregates: Combining Tables to Answer Real Questions
| Sequence |
Title |
Item Type |
Final Length |
Notes |
| M2I1 |
Why JOINs Matter |
Lecture video |
6 min |
Status: Recorded 2026-05-29 — reshoot, supersedes 2026-05-22 (loyalty reframe + AI beat) |
| M2I2 |
INNER & LEFT JOIN |
Lecture video |
6 min |
Status: Recorded 2026-05-29 — Concept 1/4: INNER & LEFT (Walmart) |
| M2I3 |
RIGHT, FULL & Picking the Right JOIN |
Lecture video |
5 min |
Status: Recorded 2026-05-29 — Concept 2/4: RIGHT/FULL + decision rule |
| M2I4 |
GROUP BY and Aggregate Functions |
Lecture video |
6 min |
Status: Recorded 2026-05-29 — Concept 3/4: GROUP BY + aggregates |
| M2I5 |
WHERE vs HAVING and the Full Query Shape |
Lecture video |
5 min |
Status: Recorded 2026-05-29 — Concept 4/4: WHERE vs HAVING + query shape |
| M2I6 |
JOIN + Aggregate on NYC Taxi |
Demonstration Video |
10 min |
Status: Recorded 2026-07-19 - desk screencast (headless Cap post pass, 10:26 final); video + script on Box Module 2; reviewed + approved (Cheng 2026-07-21) |
| M2I7 |
Catching a Wrong JOIN the AI Wrote |
Demonstration Video |
11 min |
Status: Recorded 2026-07-21 - desk screencast; live Gemini INNER-JOIN capture on camera; annotated final 10:49; video + script on Box Module 2; reviewed + approved (Cheng 2026-07-21) |
| M2I8 |
What to Do This Week |
Lecture video |
4 min |
Status: Recorded 2026-05-29 — Logistics: what to do this week |
Module 3 — Window Functions, CTEs, and a Second Way to Talk to the Database
| Sequence |
Title |
Item Type |
Final Length |
Notes |
| M3I1 |
Why Window Functions and CTEs Matter |
Lecture video |
6 min |
Status: Recorded 2026-05-29 — reshoot, supersedes 2026-05-22 (AI beat + lab->hands-on) |
| M3I2 |
Window Function Anatomy: OVER, PARTITION BY, ORDER BY |
Lecture video |
6 min |
Status: Recorded 2026-06-02 — concept track scripted + Codex-reviewed + shot |
| M3I3 |
The Three Window Patterns: Ranking, Running Totals, Period Comparison |
Lecture video |
6 min |
Status: Recorded 2026-06-02 — concept track scripted + Codex-reviewed + shot |
| M3I4 |
CTEs: Building Readable, Defensible Queries |
Lecture video |
5 min |
Status: Recorded 2026-06-02 — concept track scripted + Codex-reviewed + shot |
| M3I5 |
Putting It Together: Windows Inside CTEs |
Lecture video |
5 min |
Status: Recorded 2026-06-02 — concept track scripted + Codex-reviewed + shot |
| M3I6 |
Rankings and Year-over-Year |
Demonstration Video |
9 min |
Status: Recorded 2026-07-27 — 9:10 final. 12 zoom segments + 3 filled navy badges. On Box Module 3. |
| M3I7 |
Catching a Broken Window: Verify Your Frame |
Demonstration Video |
6 min |
Status: Recorded 2026-07-27 — 5:56 final. Close re-recorded as a pickup and laid over a held final frame. 4 filled navy badges. On Box Module 3. |
| M3I8 |
What to Do This Week |
Other Instructional Resources |
4 min |
Status: Defined — text-only weekly logistics (Canvas text item, not a video); 2026-06-02 video script to be reworked into text |
Module 4 — Dimensional Modeling: Star Schemas, Grain, Facts and Dimensions
| Sequence |
Title |
Item Type |
Final Length |
Notes |
| M4I1 |
Why Dimensional Modeling Matters |
Lecture video |
6 min |
Status: Recorded 2026-05-22 — editing pending (cover -> ‘Why it matters’; cut silent References slide). No reshoot. |
| M4I2 |
Star Schema Anatomy |
Lecture video |
6 min |
Status: Recorded 2026-06-03 — concept track (scripts on Box; M4I2 deck finalized: design.md backgrounds + weatherman) |
| M4I3 |
Grain: The Design Decision |
Lecture video |
7 min |
Status: Recorded 2026-06-03 — concept track (scripts on Box; M4I2 deck finalized: design.md backgrounds + weatherman) |
| M4I4 |
Facts vs Dimensions |
Lecture video |
5 min |
Status: Recorded 2026-06-03 — concept track (scripts on Box; M4I2 deck finalized: design.md backgrounds + weatherman) |
| M4I5 |
Putting It Together: Designing a Star, Spotting a Broken One |
Lecture video |
— |
Status: Recorded 2026-06-03 — concept track (scripts on Box; M4I2 deck finalized: design.md backgrounds + weatherman) |
| M4I6 |
Building the Taxi Star, Table by Table |
Demonstration Video |
21 min |
Status: Recorded 2026-08-09 — 20:49 final (raw take 21:19; tail trim + 4 dead-air cuts + 7 navy step badges). Every locked number verified on camera. Step timecodes, transcript check and badge placement: repo production/M4I6-take1-timeline.md. On Box: Module 4 / Demo Video Recordings (pushed 2026-08-09, sha1 verified). |
| M4I7 |
Check Your Grain Before You SUM |
Demonstration Video |
16 min |
Status: Recorded 2026-08-09 — 15:43 final (raw take 15:45; tail trim + 4 navy badges, no zooms). Buggy total 148106055049.57 confirmed on camera. EDIT NOTE for Jacob: hold the frame at 13:20.5 under the AI beat — the last 2:21 is a blank terminal. Details: repo production/M4I7-take1-timeline.md. On Box: Module 4 / Demo Video Recordings (pushed 2026-08-09, sha1 verified). |
| M4I8 |
What to Do This Week |
Other Instructional Resources |
— |
Status: Defined — text-only weekly logistics (Canvas text item, not a video) |
Module 5 — Source-Data Reality: 3NF Textbook (Sakila) vs. Real-World Mess
| Sequence |
Title |
Item Type |
Final Length |
Notes |
| M5I1 |
Why Source-Data Reality Matters |
Lecture video |
6 min |
Status: Recorded 2026-05-27 — framing video (I1) |
| M5I2 |
Normalization Intuition |
Lecture video |
6 min |
Status: Recorded 2026-06-03 — concept track (scripts on Box; M4I2 deck finalized: design.md backgrounds + weatherman) |
| M5I3 |
Functional Dependencies |
Lecture video |
7 min |
Status: Recorded 2026-06-03 — concept track (scripts on Box; M4I2 deck finalized: design.md backgrounds + weatherman) |
| M5I4 |
Sakila: The Clean Reference |
Lecture video |
5 min |
Status: Recorded 2026-06-03 — concept track (scripts on Box; M4I2 deck finalized: design.md backgrounds + weatherman) |
| M5I5 |
Textbook vs. Reality |
Lecture video |
— |
Status: Recorded 2026-06-04 |
| M5I6 |
Trace a Rental, Then Flatten It |
Demonstration Video |
9 min |
Status: Scripted 2026-07-01 -> Recorded 2026-08-31 – 9:19.9 final (raw take 9:34; 8 navy badges, peak -4.0 dBFS). Traces one rental through rental->inventory->film->payment, then flattens to a single denormalized row (3NF-in-the-wild). On Box: Module 5 / Demo Video Recordings (plain + bumpered, sha1 verified); also MediaSpace 1_i3t6bo5q. |
| M5I7 |
The Number That Ranked Wrong |
Demonstration Video |
6 min |
Status: Defined -> Scripted -> Recorded 2026-08-31 – 5:59.0 final (raw take 6:11; 7 navy badges, peak -6.8 dBFS). GROUP BY on the wrong category key silently mis-ranks; Copilot asks a clarifying follow-up before writing the naive query, kept as real content. On Box: Module 5 / Demo Video Recordings (plain + bumpered, sha1 verified); also MediaSpace 1_toy2og7s. |
| M5I8 |
What to Do This Week |
Other Instructional Resources |
— |
Status: Defined — text-only weekly logistics (Canvas text item, not a video) |
Module 6 — ETL: Transactional Source → Dimensional Warehouse in DuckDB
| Sequence |
Title |
Item Type |
Final Length |
Notes |
| M6I1 |
Why ETL Matters |
Lecture video |
6 min |
Status: Recorded 2026-05-27 — framing video (I1) |
| M6I2 |
Anatomy of a Pipeline: Extract · Transform · Load |
Lecture video |
6 min |
Status: Recorded 2026-06-11 — concept track (scripts + prompters on Box) |
| M6I3 |
The Transform: Source Shape → Star Shape |
Lecture video |
7 min |
Status: Recorded 2026-06-11 — concept track (scripts + prompters on Box) |
| M6I4 |
Run It Again: Idempotency and the Re-run Test |
Lecture video |
5 min |
Status: Recorded 2026-06-11 — concept track (scripts + prompters on Box) |
| M6I5 |
The Shared Schema: ETL as a Team Contract |
Lecture video |
— |
Status: Recorded 2026-06-11 — concept track (scripts + prompters on Box) |
| M6I6 |
End-to-End ETL — Pagila to DuckDB Star Schema |
Demonstration Video |
17 min |
Status: Recorded 2026-08-10 — 16:43 final (raw take 18:31; 103s pause cut + tail trim + 6 navy step badges). All frozen numbers verified on camera: dims 599/1,000/41, fact_rental 16,044, naive-join fan-out 16,044→16,049, DuckLake 16,047 vs 16,044, top customer KARL SEAL 221.55. Audio -1.1 dBFS peak, no clipping. NOTE: cut was built from the raw capture, NOT cap export — Cap’s render relocated ~140s of content and invented a bleed span (see repo production/screencast-post-pipeline.md §1). On Box: Module 6 / Demo Video Recordings. |
| M6I7 |
Run It Twice: Catching a Non-Idempotent Load |
Demonstration Video |
10 min |
Status: Scripted (2026-08-11) -> Recorded (2026-08-30) -> Edited (2026-08-30): annotated final (badges+callouts) on Box Demo Video Recordings under plain name, sha1-verified, find-bleed clean; -bumpered version also on Box (Gies open bumper + end card, standard from now on) |
| M6I8 |
What to Do This Week |
Other Instructional Resources |
— |
Status: Defined — text-only weekly logistics (Canvas text item, not a video) |
Module 7 — Validation, Documentation, AI Attribution Wrap
| Sequence |
Title |
Item Type |
Final Length |
Notes |
| M7I1 |
Why Validation Matters |
Lecture video |
6 min |
Status: Recorded 2026-05-27 — framing video (I1) |
| M7I2 |
The Validation Mindset |
Lecture video |
6 min |
Status: Recorded 2026-06-04 |
| M7I3 |
The Cheap Checks - Provenance + Schema Integrity |
Lecture video |
7 min |
Status: Recorded 2026-06-04 |
| M7I4 |
The Dangerous Check - Query Correctness + Edge Cases |
Lecture video |
5 min |
Status: Recorded 2026-06-04 |
| M7I5 |
Documentation as a Contract |
Lecture video |
— |
Status: Recorded 2026-06-04 |
| M7I6 |
4 Validation Layers on an ETL |
Demonstration Video |
12 min |
Status: Scripted (2026-08-28) -> Recorded (2026-08-30) -> Edited (2026-08-30): annotated final (badges+callouts) on Box Demo Video Recordings under plain name, sha1-verified, find-bleed clean; -bumpered version also on Box (Gies open bumper + end card, standard from now on) |
| M7I7 |
Is This Number Trustworthy? |
Demonstration Video |
10 min |
Status: Scripted (2026-08-28) -> Recorded (2026-08-30) -> Edited (2026-08-30): annotated final (badges+callouts) on Box Demo Video Recordings under plain name, sha1-verified, find-bleed clean; -bumpered version also on Box (Gies open bumper + end card, standard from now on) |
| M7I8 |
What To Do This Week |
Other Instructional Resources |
— |
Status: Defined — text-only weekly logistics (Canvas text item, not a video) |
Module 8 — When Relational Isn’t the Answer + Final + Oral Defense
| Sequence |
Title |
Item Type |
Final Length |
Notes |
| M8I1 |
Why You Defend It |
Lecture video |
5 min |
Status: Recorded 2026-05-27 — framing video (I1) |
| M8I2 |
The Decision Lens - Access Pattern, not SQL-vs-NoSQL |
Lecture video |
6 min |
Status: Recorded 2026-06-04 |
| M8I3 |
The Four Families, Part 1 - Document + Key-Value |
Lecture video |
7 min |
Status: Recorded 2026-06-04 |
| M8I4 |
The Four Families, Part 2 - Graph + Columnar |
Lecture video |
5 min |
Status: Recorded 2026-06-11 |
| M8I5 |
Choosing + Defending the Choice |
Lecture video |
— |
Status: Recorded 2026-06-11 |
| M8I6 |
Same Question, Relational vs Document |
— |
— |
Status: Defined - screencast |
| M8I8 |
What To Do This Week - Oral-Defense Logistics |
— |
— |
Status: Defined — logistics video, self-recorded by instructor at desk (not studio); produce last, after oral-defense format finalized |
Production status (from the Excel Status column)
| State |
Count |
| Final |
12 |
| Recorded |
41 |
| Scripted |
4 |
| Defined |
7 |
| (no status yet) |
1 |
TOTAL VIDEO LENGTH (per Excel total row): 359 minutes.
Auto-generated by scripts/box-autosync.py from the canonical Box Excel. To change content, edit the Excel in Box; this file refreshes on the next sync.