Rather than trying to plan the precise steps and concepts to cover as you build the project, it may be easier to work backwards, building the project as you would if it weren't for class first, and then breaking it down for instruction.
- Build the project out completely as quickly and simply as possible.
- Break down the project into conceptual pieces.
- Use the CbK skill levels to map and order the skills you used to create the project.
- Think about any intermediate steps -- e.g., you may need a styled image on the page, but adding an image and styling the image can be two separate concepts, depending on the target skill level for the project.
- Think about what complexity you want to expose to the students and what you want to conceal.
- Create a new, empty starter version of your project.
- Consider what you want to start them with, and what should they do themselves. Remember, repetition is good. Start them with a file or snippet if the code is beyond the skills that they'll learn for the project, not if it's tedious or below their skill level.
- Build up the project in small pieces, and commit each piece.
- Make use of
git rebase -i
to modify commit messages to get the instructional language right.
- Make use of
- Teach the module
- Learn and improve the module