Teaching Resources for Young Programmers: the use of Patterns - Amanullah, Kashif; Bell, Tim (Proceedings - Frontiers in Education Conference, 2020)
This Full Paper in the Research Category identifies and evaluates teaching resources suitable for teaching younger students using the Scratch and Python programming languages. Choosing suitable resources to introduce programming to children is a balance between making sure they are appropriate to their skills such as literacy and numeracy, and are motivating in their social context. Resources need to strike a balance between allow early success, but also introduce genuine programming skills, so that students can progress their programming skills rather than repeating simple tasks over and over. An important element is the choice of teaching resources used to support students' learning. We propose using elementary programming patterns as a measure of how comprehensive a teaching resource for programming is. Note that this doesn't mean advocating that students should be pressed to learn advanced patterns quickly, but it does provide a measure of how deeply a particular resource covers general programming concepts. We identify a set of patterns that are relevant to basic programming practice, and have analyzed some recommended online teaching resources and a small sample of introductory programming books for Scratch and Python against this set of patterns. The use of given set of patterns was relatively low, but some resources did introduce a range of patterns, and some new patterns emerged from the analysis that seemed to be used frequently in Scratch.