The original prompt

This is the prompt given to Claude to create the course:

Create a course to learn how to build an LLM from scratch. The ultimate aim is to understand by building. I am not trying to create a useful model at the end and I'm not trying to learn how to use python notebooks to be an effective data scientist.

I have over 20 years programming experience so assume that I know how to write code. I plan on implementing it in haskell, but the choice of language shouldn't be important. I don't have any real experience in machine learning, data science, or building neural networks. I have learned math topics such as linear algebra in the past, but I've forgotten most of the details and will need a refresher.

The course should be structured around building working examples rather than pure theory. Start with a simple neural network (such as a multilayer perceptron) and a simple classification problem (e.g., initially xor, and then something more interesting). Work through key developments in the evolution of machine learning such as LSTM. The final challenge should be to build a small-ish language model (500m-1b parameters, due to hardware constraints) that will be trained on the complete works of Shakespeare. Include both pretraining and techniques for refinement training. Assume that this is being trained on AMD hardware (due to it being slightly less expensive that nvidia) so include a module on using ROCm to build an efficient harness (I will probably switch from Haskell to rust for this).

For each section, include a list of key references for further learning, including key papers, tutorials (e.g., youtube videos), wikipedia articles, or books. Verify that the resources really exist.

Produce course material in a format that I can download and work through. Include diagrams where appropriate if you are able to do so.

What Claude made

This entire site was generated by Claude, Anthropic's AI assistant — including the course content, the website design, and the Nix packaging. The human author provided the direction; Claude did the writing, structuring, and coding.

Specifically:

  • The course curriculum — all twelve modules, the learning objectives, the Haskell and Rust code examples, the explanations of attention, backpropagation, LSTMs, transformers, ROCm, and everything else — was written by Claude based on a brief from the author.
  • The website — HTML, CSS, navigation, layout, and all the content pages — was designed and built by Claude as a static site with no JavaScript.
  • The Nix package in flake.nix that packages this site for deployment was written by Claude.
  • The references — papers, books, videos, and blogs linked throughout — were selected by Claude from its training knowledge.

What this means for the content

The course material reflects Claude's understanding of the field as of its training cutoff. The explanations and code examples are intended to be correct and pedagogically useful, but they have not been independently verified by a domain expert. If you spot an error, treat it as a teaching moment — debugging is part of the course.

The paper references have been included in good faith. Links were valid at the time of writing; the internet moves, so check original sources if anything is broken.

Download the original course files

The source documents that were used to build this site are available as a single archive: course.zip

The model

This site was created using Claude Sonnet 4.6 via Claude Code, Anthropic's CLI tool for software engineering tasks. The author typed prompts; Claude wrote everything you see.