Technical talk, for CS faculty and engineers October 2026 40 slides, about 45 minutes
DSA is the tutor I built for our data structures courses. Its job is to help students without handing them the answer, and a capable model asked to tutor hands over the answer by default. So the whole design comes down to one decision: the model writes the reply, and ordinary code decides what the reply may contain.
This talk is the system end to end. The offline pipeline that turns a course's slides, recordings and textbook into eight searchable collections, decks and practice banks. The ten stages every student message goes through, and who sees what at each one. The learner model that decides how much help a topic gets. And what it takes for one person to run it: deploys, spend caps, data rights, backups, and the tests that keep a lot of AI-written code from eroding the architecture. Mostly small, boring defences, each with a test.

What is in it

  1. Building a course. Sources in, eight course-stamped collections out, two walls that keep answer keys away from students, and generated content that has to prove itself.
  2. The supervised turn. Ten stages, an information-flow table, the hint ceiling as policy-as-data, the detector in the stream, the judge, and where it fails closed.
  3. The learner model. One grade scale, a window of six, a forgetting curve, and how evidence sets the ceiling.
  4. Running it. Manual deploys and a boot that never stops on an external, three payers and one function that decides, security, data rights, backups that have been restored.
  5. Keeping it correct. Tests that read the code, simulated students at $0, a stronger model auditing the cheap one every night, and how the thing was built with Claude Code.
  6. Lessons and open problems. Six things I would keep, and four I have not solved.
No student data is in this deck. The numbers are content and code counts from the repository, development-time estimates (labelled as such), and one local demo run with a made-up student and every model call through the claude CLI.

Presenting it yourself

The slides are plain HTML with Reveal.js sitting next to them, so the folder works with no network. Arrow keys or space to advance, S for the speaker window (a timer and the next slide; these decks carry no notes), F for full screen, O for the slide overview, B to blank the screen, ? for help. Feel free to borrow any of it.