Home >> On Teaching Kids and Programming - Angelo Obel

On Teaching Kids and Programming - Angelo Obel

Over the last 3 weekends I’ve been teaching computer programming  to children aged 6-11 at Outbox. It’s been a wonderful experience so far and the kids too seem to enjoy it as well. In thinking more about it though I realised that beyond the fun and games(we are actually teaching the kids to build computer games), the children are getting a lot more than some of their parents or even some of us teaching may initially realise.

Sneaking in complexity

The program at Outbox (creatively named “Kids Computer Programming”) follows a curriculum and teaching methodology developed at the tech Mecca that is the Massachusetts Institute of Technology (MIT).

Beyond just teaching programming the kids are introduced to computational thinking (More on that in a bit). Unlike the programming courses I went through or you might have seen, this course is based on ‘Scratch’ a very visual programming language built with kids in mind. Instead of typing out lines of code, the kids move blocks and piece them together like Lego pieces. And from that various things get done; a cat moves, a digital girl dances and so much more and the kids love it. All the while without a mention of these complex words, the kids are learning recursion, functions, iteration, heuristics, problem solving and much more.

Misconceptions

Many times I have tried to convince a number of people that programming is not that hard, to varying degrees of success. There is a tendency to regard programming with the same stigma as math is regarded by many. Probably because there tends to be a notable positive correlation between those who are good at math and those who are programmers. However, programming is far less abstract when compared to math. It is far easier to explain, understand and use programming concepts in life than it is to use all but the most basic maths concepts. Case in point, a good while before some of the kids in our class will be introduced to algebra in their regular school curriculum, they will be playing with variables in Scratch. And in programming and this course in particular they won’t be left wondering what they’ll ever need it for.

Effects in schools and school work

The course introduces kids to concepts of math and logic in a way they can relate to. A child will learn to appreciate algebra when she uses it to make her digital cat walk. She will learn about angles happily and easier when she needs it because she wants to make her cat turn towards that digital ball she just placed near it. And because these kids are trying to express something in their own minds on the computer, they will go out of their way to learn these things just to achieve the effect they want the way they want it.

I find myself remembering a teacher or two saying that calculators would make us lazy and poorer at math. I wonder what effect teaching a child how the calculator works would have on their maths skills. Or better yet what effect would it have on the child’s skills if they were trying to build a calculator so they didn’t have to spend as long on their maths homework.

Computational thinking

What many people (including some programmers) don’t realise is that programming is largely an application of logic and reasoning. A programming language is merely an agreed upon way of expressing and applying this logic in written instructions. What learning programming does is give some structure to this process that our minds already try to do. In the process this makes for much more efficient problem solving and analysis, even without a computer. The programming principles and concepts of iteration, recursion, modularization and others apply in more than just the binary world of ones and zeros. In day to day analog life they can help us design effective and efficient solutions to various problems.

Doing things vs getting things done

As opposed to teaching kids to do a lot of work, programming focuses on teaching the students  to get things done. Making things happen is almost always ultimately more efficient and effective than doing things. In terms of career prospects, knowing how to get things done is often what makes the difference between leaders and followers.

The other way of putting this is that programming teaches efficiency, how to get the best result possible for your effort.

Future Proofing

Today’s children are growing up in a world that is more and more governed by technology. Programs like the KCP at Outbox equip children to understand this technology and better yet understand the basis of technologies not yet invented. Instead of focusing on learning how to use a piece of software that will more than likely be obsolete in 5 years, children learn how software in general works. this greatly increases their adaptability whatever software runs the future they will grow into. And who knows, they might be the ones to actually build the software that runs their future.

While most other careers prepare you to develop products and services for the market you are in, programming equips you to develop products that are marketable on a global scale.  Now if thats not something worth investing in, then nothing is.

Original blog post

Add new comment

Outbox on Google+

Outbox on Facebook

In Partnership With...