Starting this year, B.C. students will learn to code as part of their kindergarten to grade 12 education. UBC computer science professor Gregor Kiczales explains how coding prepares students to better understand the digital world they live in.
How do you teach computer coding to children?
It turns out that programming really isn’t that hard. Years ago, Seymour Papert’s Logo Lab at MIT showed that very young children could write simple and fun graphics programs using turtle graphics. Today many introductory approaches to coding build directly on his ideas. Mitch Resnick’s group, also at MIT, simplified the process more by making the individual pieces of programs look like puzzle pieces that children could put together on the screen. This is much easier to learn than typing commands as we normally do.
Today students can start programming by arranging puzzle pieces that cause lines to be drawn on the screen. Make no mistake, while this is simple, it is real programming. It provides a solid foundation for understanding how programs work, and for learning to write more complex programs later.
How will teaching coding help address the underrepresentation of female students in computer science and other science and technology programs?
It is true that a number of students graduate high school having been convinced they ‘aren’t good at’ math or science. It is also true that these students are disproportionately female. It’s a shame, because the vast majority of them actually could be. Part of the problem is outmoded curriculum.
For K-12, the good news is that programming is actually a great tool for learning the other elements of science, technology, engineering and math, also known as STEM. There is a real opportunity here for B.C. — or really anywhere that adopts a K-12 programming focus — to fix problems with their STEM curriculum.
Why should all students learn to code during their K-12 education?
Education provides students with different ways of understanding and interacting with the world around them. History, art, social science, music, chemistry, biology — all of these explain critical aspects of the world around us. In today’s modern, digital world, coding is a very valuable skill and it will only increase in importance in the future.
Knowing what programs are and how they work makes it possible to more deeply understand many of the systems we interact with every day. How does Facebook predict our friends? How does Google find what we want? How does a self-driving car work? Today an informed population should have some sense of the answers to these questions.
Being able to write programs is a powerful tool for a wide range of professionals. All sciences and nearly all other disciplines are now becoming computationally based. Physicists, social scientists, even many artists all use programming as part of their work. In this world, not learning about programming would be like not learning arithmetic.
In 10 years it’s likely that more adults will remember programming than remember algebra.