Versioned Literate Programming for Tutorials

Summary

This talk will explore the authoring of programming tutorials where each step of the tutorial involves code snippets that build on the code presented in earlier steps. Because such tutorials are primarily exposition in human language, but contain code snippets that should be executable if extracted, the approach has a lot in common with Literate Programming. At the same time, because the tutorials effectively guide the reader through the construction of the code, step-by-step, there is also a lot in common with Version Control. Hence I describe this approach as “Versioned Literate Programming”. I don’t (yet) have a good toolkit for this sort of tutorial authoring and so the talk will mostly focus on the ideas and challenges involved as well as some of the different approaches I’ve attempted over the years of thinking about this.