This curriculum starts with simple tasks and gradually adds more complex terms and programming concepts along the way.
The content is split into small segments - this allows for natural break times, and for multiple teachers to balance the classroom management load by trading off.
This cumulative curriculum could leave students with some heavier concepts to deal with at the end of a long day, when their brains are tired. But free time at the end allows students to play with the new coding skills they've learned, ensuring that everyone is still energetic and inspired when the day ends.
You'll see that this is a beginner level class and not a thorough overview of the Python programming language. There is a limit to the amount that you can teach in a day, so there were some deliberate choices made about what to include and what to leave out. However, we do provide additional resources so that students can learn about more concepts later as they continue their coding education.
The curriculum is deliberately open-ended - if you cover the material in less than the time allotted, you can always spend the extra time reviewing more code samples (you'll see that the repository where the slides are housed also contains a state capitals quiz and a number guessing game, among other things).
When this class is taught at PyCon, we typically take the first three quarters of the day to work through the slides, an hour or so doing live demos of Minecraft or PyGames coding, followed finally by some free time. Students can then work independently, exploring their new skills with teaching assistants nearby to answer questions as needed.
This class has little 'aha' moments built in all along the way. As each new skill builds on the last one, your students will continually discover new things. If you have students who come in expecting to write games from minute one, it helps to set expectations early. The class slides include a section at the beginning that give you a chance to go over a plan for the day.
This material is comprehensible for students of different ages and experience levels. It has been used to teach adult beginner classes as well. A beginner is a beginner is a beginner. Once children are old enough to comprehend abstract concepts (and have the physical skill to type on a keyboard), they're capable of learning what an adult would. (Young students just might need a little more humor and energy in the delivery to keep the material engaging.)