Recognition of the need for programming literacy in today’s students has swept through the education world over the past few years, and over 400 million people have now participated in an ‘Hour of Code.’ For younger students, especially pre-teens, those efforts have focused mostly on making programming seem fun and approachable. This is a crucial step, but do simple drag and drop coding games of the type easily found online give long term benefits to young learners? Is there any useful and meaningful way to ‘teach programming’ to an eight year old?
We at ThinkFun believe there is; that’s why we’re releasing three new programming board games for ages 8+ next month, and why we’ve already brought Robot Turtles and Code Master to market. We also believe that the most effective way to teach programming skills and concepts at that age is through offline play, also known as ‘unplugged.’ But it’s not just ThinkFun that’s looking away from the computer for inspiration in this area; Finland’s world class education system is moving in the same direction.
Emily Deruy explained Finland’s system in a recent Atlantic article titled ‘In Finland, Kids Learn Computer Science Without Computers.’ With younger children, Finland focuses on teaching larger concepts and modes of thinking that will be useful when learning actual programming languages later on. Deruy writes, “In art class, kids can learn about loops by knitting…kids who are enchanted by stories can be introduced through storytelling to the foundational idea that specific outcomes require particular instructions in a particular order.”
One of these 'pain points' is the need, when programming, to conceive of language in a mathematical form. There are easy examples of when this can be useful in everyday life; think of how people tend to struggle understanding double, or even triple, negatives in a conversation. If you can visualize a double or triple negative as an equation, you’ll have a much easier time understanding it, or ‘evaluating the expression.’
To quote Mark, “One critical aspect of writing programs is to properly set your boundary conditions: should you write ‘greater than,’ or ‘greater than or equal to’? What does the program do if you write “NOT (X or Y)”? Developing the ability to understand language as logic, and in mathematical form, is crucial to success at programming.”
This is a skill that is often developed by college students taking formal logic courses, and there are plenty of basic skills and concepts learned in formal logic that young students are ready for. As another example, let’s say your friend told you they were going to go “on a hike or for a swim.” In conversation, we understand this to mean that your friend will either hike, or swim, but not both. In formal logic, and in programming, ‘OR’ means one or both.
According to Mark, the ‘inclusive OR’ can be a surprisingly difficult pain point for students to get past in intro CS classes. In his experience students who learn the basics of logic, and these formal logic terms, have a serious leg up when they walk into their first programming class. The best news for parents is that you don’t need a computer to teach your child these concepts; you can do it with a game, or in conversation, or through storytelling as they do in Finland’s classrooms.