Creating Courses with AI

AI is potentially great for learning; though it can also be terrible in various ways, often making it easy to skip to the end and not put in the learning effort. Here are a few tips and then some examples of resources I've created.

  • What topics? Given powerful recent models and the effort the labs put into training them on technical topics, topics related to programming in particular seem to work really well. I think for more established areas you are probably better off with books written before 2025!
  • Which models? Use at least Opus 5.5 or Sol 6.1: the writing is much better than with previous models and they are much more reliable for things like diagrams or examples. I've often used one of these models, then had Astra do a pass to make the language clearer and more concise.
  • How to generate? I usually start with a Vite React project. The models will generate good plain HTML, but a React project allows for componentisation around interactive examples and exercises.
  • If you really want to learn, you are going to have to put in effort. A lot of AI tools are great at shifting modalities or generating summaries (like NotebookLM), but they don't actually seem to work well for learning. Build in flashcards (tracking performance) and quizzes or other interactive challenges. You can easily embed live Python (WebAssembly) or TypeScript challenges in pages or at least have challenges that are easy to copy and paste to try elsewhere. Or try making a game out of it: you could even take it to extremes and build something like The Typing of the Dead!
  • Publish? For low usage, I've found Cloudflare Pages is free, simple and reliable.

Examples

Here are some examples I've created with AI and made public (I have many other projects which are not!).

Event Streaming with Kafka

Ten illustrated lessons on event streaming and Apache Kafka, from the log and partitions through to delivery guarantees, stream processing and event-driven patterns. Each lesson ends with a TypeScript coding challenge that runs against a Kafka simulator in your browser.

Event Streaming with Kafka

Observability for Software Engineers

Sixteen lessons on understanding and debugging production systems: metrics, logs and traces, OpenTelemetry, sampling, SLOs and alerting, then applying them to real investigations and to AI systems. Every lesson has interactive examples.

Observability for Software Engineers

An Introduction to Software Architecture

Twelve lessons (around eight hours) on the decisions that shape software systems and the trade-offs behind them. Each one follows Larder, a fictional online grocer, as it grows from a single application to fourteen teams.

An Introduction to Software Architecture

Domain-Driven Design

A course in domain-driven design for software engineers, covering ubiquitous language, bounded contexts, context mapping, aggregates, domain events and keeping a model healthy as it evolves.

Domain-Driven Design

Systems Thinking for Software

Systems thinking applied to contemporary software engineering: feedback and delay, emergence and failure, finding leverage and what changes when some of the components are non-deterministic AI agents.

Systems Thinking for Software

SwiftUI Glossary

A guide to what SwiftUI does and what Apple calls it, with flashcards to test your knowledge.

SwiftUI Glossary

Learn Lean 4

A complete-ish course in both writing proofs with Lean 4 and using it as a programming language. Hundreds of exercises with annotated solutions. Given the lack of high-quality learning resources for Lean 4, I genuinely think this is a top place to start.

Learn Lean 4

The Book of TSL

Around 200 concise examples of getting things done with Three.js Shading Language, covering fragment and vertex shaders, raymarching SDFs, lighting and much more. TSL is quite new and, while there are some good blog posts, I've not really seen many broad references or any books.

The Book of TSL

Learn Replicad

A tutorial and cheat sheet for Replicad, a system for 3D CAD in JavaScript that runs in the browser.

Learn Replicad

Learn All The Claude/ChatGPT Codex Commands

A simple flashcard app to improve your fluency with the commands in Claude Code and ChatGPT Codex.

Learn All The Claude/ChatGPT Codex Commands

Python: The New Parts

An interactive series of lessons on the newer features in Python.

Python: The New Parts

You can also find all of these on the projects page.

© 2026 James Porter

By training your LLM or AI service on this website you agree to pay 20% of gross worldwide revenue to James Porter in perpetuity.