Custom textbook-like-things

Usually I write custom lessons and exercises for each course.  My courses are idiosyncratic, designed for particular students, who have a certain level of preparation, to meet specific goals. For example, my intro programming course primarily is for business undergrads who have never taken a programming course. They will not be professional programmers, but they may be data analysts, or help data analysts and managers in their work.

To help those particular students, I teach them how to write programs in Excel VBA (a programming language built into Excel), emphasizing data analysis. The course matches their preparation and goals. Excel VBA is a good choice for these students in this context. However, VBA isn't a popular choice for intro programming textbooks, which are focused more on computer science (CS) students, using Python, or Java. Writing my own textbook-like-thing helps me create a high quality course for the context I'm in.

Even when using common tech, I still write custom textbook-like-things. For example, I teach a business apps course, using PHP and MySQL. That's a common tech choice, and there are dozens of books on it. However, they aren't optimal for business students who've taken one programming course in VBA. Further, tech books often have instructional design flaws, like shallow coverage of too much content. They don't use elaboration, spacing, and other practices based on learning science practice. So, I end up writing my own.

Construction method

Ideally, course design could use a "waterfall" approach, where you get each step right the first time. Get the task goals right, lock them in place, get the concepts right, lock them in place, etc.

That never works out in practice. Nothing is right the first time, with something as complex as course design and production. Further, courses change, as new student populations are added to the context, the content itself changes (in my field, that's constant), etc.

Imperfection and rework does not imply lack of due diligence. It's normal.

You'll need to make a course you can iterate on and improve. That's what methods like AGILE and LLAMA are about.

This section explains what I do to make a good SCDM course. I don't consider myself an expert in course design, or learning science research. Just an informed practitioner.


Start by working out who the students are, what they can do at the start of the course, what they care about, and other course constraints. You can see an example for the Excel VBA course.

Remember Skilling's boundary conditions. Intro skill courses. The resources to give lots of feedback, and for automation (that is, running Skilling).


Work out course goals, as we talked about earlier. Create target tasks, and their solutions. Here are three tasks I worked out for the Excel VBA course.

Define a transfer range for the tasks, as we talked about earlier. For me, this is particularly important, since it affects the schemas you'll include in the course, the examples, the exercises, and other things. For an intro course, don't try to make the transfer range too large.

Then list the schemas, procedures, and facts needed to do these tasks. You can see an example of that.

Sequence of lessons

Work backwards from the goals, mapping out prerequisites. For example, one of the patterns needed for the sample tasks is numeric validation. For that pattern, you need to know about If statements. Before Ifs, you need to know about variables and expressions. So the course needs to cover variables, then expressions, and then Ifs, before you can get to validation. If you want, you can make a spreadsheet, showing what students need to learn first for each pattern.

Once you have the sequence, you can break it up into lessons and modules. This gives you the lesson tree for the course, the first version of it, anyway.

Table of contents

You can see the lesson sequence for the Excel VBA course.

Write the lessons and exercises

Write the lessons, using didactic explanations, worked examples, reflection questions, simulations... whatever you need. You can see the final result for the Excel VBA course. (Actually, I plan to redo it in 2021. Nothing is finally final.)

There's much to know about writing lessons. More than I know, certainly, though I've figured out a few things.

There's an author's guide with some ideas. It suggests how to use Skilling to implement guidelines from learning research.

Section contents

Course elements
Course operation