The approach follows a three-pronged approach:
As detailed in the thesis, computer science and thus programming is taught at a university level, with a mostly well defined syllabus. Its syllabus, is, designed appropriately for the target age group, whom typically commence studying these topics between the ages of 18 and 21.
Prior to that age group, however, there are roughly twelve years in which children receive formal education at schools, in which they are typically not exposed to any of the concepts that are required foundational to learning computer science or programming at university. This results in a “pre-selection” of sorts, that only a small subset of children, who have been lucky enough to pick up these concepts outside of what they were taught formally at school.
There have been other attempts to fill that twelve year void. Simplified programming is one attempt, for example by making various lines of code or control flow structures available as drag-and-droppable jigsaw puzzle pieces, such as Scratch and Alice. Another attempt is to explain through one-trick-ponies, for example by picking a concept such as making a turtle move around a board and do things through instructions, such as logo and several physical board games that are inspired by it.
The shortcoming of simplified programming environments, such as Scratch and Alice, is that while they simplify, they fail to slow down. They do not explain the fundamental concepts behind the drag-and-drop jigsaw pieces, they have to be inferred, and the children who do not get it, continue to not get it.
The shortcoming of the one-trick-ponies, is that while they do both slow down and simplify, they only do so for a narrow section of programming concepts. They use analogies and metaphors that children are able to grasp, but they do not employ a comprehensive set of them - not enough to constitute an entire syllabus.
Thus, how do we slow down and simplify, in order to teach children programming? We have to find ways to teach the fundamental concepts of programming based on things they already do know, or can already relate to; and we have to design a comprehensive set of activities which can be conducted, supervised, and assessed by a teacher in a classroom environment. Activities are not lessons, they are a hybrid, or an in-between, of play time and a lessons.
How do we design such activities? Maria Montessori pioneered many techniques that have been adapted to teach children the subjects that they learn in school today. If we are to treat programming as a subject taught in schools on par with mathematics, science, languages, et cetera, then we would do well to adapt the same methods for this subject too!
Montessori identified the following types of actions that children tend to perform:
After identifying these, she designed her classroom around activities that would utilise these natural behaviours and actions by incorporating them into her teaching methods, in the belief that by doing so, learning would happen more spontaneously and naturally. This culminated in essentially setting up each classroom lesson as a prepared environment that is designed to facilitate such spontaneous learning, and simultaneously to steer the learning toward the intended concepts.
In designing the activities, the action types listed above will be highlighted. Rather than creating a syllabus in the more traditional way - creating a table with columns for content, instruction material, and tests to verify understanding, the syllabus will be designed around activities, and how each of these activities facilitate spontaneous learning according to these action types will be first and foremost. Secondarily, each of activity will be linked back to the traditional syllabus constructs.
Learning is not an activity where the teacher imparts a chunk of knowledge to the students. It can be just that, but that would make it ineffective, more-so when the students are younger. Instead, learning could be an activity where the student is continually given feedback on how well they are learning, through recognition and rewards (not just by graded tests).
Gamification - the use of game mechanics in non-game contexts - is a natural fit in this situation. Gamification employs various techniques, such as giving students stickers, badges, or even real objects such as toys, as a reward mechanism designed to foster better class participation, and increase their motivation to learn. Great teachers have known this for a long time, way before the term “gamification” had first been coined - many of them used to give us star-stickers to paste in our notebooks, and sometimes paste them on a board at the front wall of the class (a leader board).
This creates an excellent feedback loop between teacher and student, however, it can be improved by having another party added to this feedback loop: the parents! Sites and apps such as classdojo have identified this, and made this very easy to do. This means that when a child is rewarded, he/ she is not just rewarded at school, but also at home, creating a much stronger reinforcement.
For each activity, the following things should be identified, and detailed where appropriate.
Copyright © 2008-present Brendan Graetz