We sat down with a teacher in Toronto who shared how coding can teach kids to embrace failure as a learning experience, provide tools to help solve real world problems and give them skills for life.
Adam Gregson, a math and computer science teacher at University of Toronto Schools and game enthusiast, took some time to answer our questions. We talked about his educational experiences, the impact programming has had on his life and why coding education equips students for the skills needed for any career they pursue in the future.
When did you first learn how to code?
I think I wrote my first program when I was about seven years old; my parents bought an Atari 600XL, which you could play games on but also ran programs in BASIC. I’ve been learning to code in fits and starts ever since; first in high school, then as an undergraduate, and since then on my own by reading books and taking online courses.
Why did you decide to become a Computer Science Educator?
I started out teaching math and then later was asked to teach Computer Science and it is surprisingly different from teaching math. I love the precision of a well-written program, the different ways things are expressed in different languages, and the ability to use programming to perform a task.
How can we do better at getting more girls interested in learning to read and write code?
At our school, UTS, it seems to be an even split for girls and boys taking the Grade 11 computer science course, but then it shifts to about 60/40 boys to girls ratio in the Grade 12 CS course. I think making programming mandatory at some level in the curriculum would help greatly to get more girls learning to code, and is likely only a matter of time in Ontario.
Why do you think coding education is important and how will it equip kids with skills needed for future careers?
If you know how to code a little bit, you can make your computer do things quickly. This is a very valuable skill in many careers that aren’t specifically technology-related. Scientists, bankers, teachers, pretty much anyone can make their work and life more efficient if they know how to write a bit of code.
Also, there is a huge problem-solving component to programming, and the process of solving problems in computing is a mix of creativity and implementation. You have to both figure out a solution and then write code that correctly computes the answer, forcing the student to think abstractly and concretely back and forth.
Lastly, the computer is completely unforgiving. It only does what you tell it to, so you have to get the syntax and logic exactly right. On the other hand, you get instant feedback on your code (it works, or it doesn’t and the error message tells you what to fix). This makes the process of writing code a rapid iterative process with frequent feedback.
What advice do you wish you had known and would give to your younger self?
Allow yourself and those around you to not be perfect.
This may be rather specific to me, but I always directed my studies to more abstract topics, eschewing statistics, heuristics and anything lacking exactitude. I’d suggest to young people with a mathematical inclination to spend some of their time and effort applying their skills to problems in the real world.
What advice would you give for kids who might be interested in learning to code but might be hesitant to try it?
There’s lots of ways to learn how to code: solving old contest problems, taking online courses, writing code for an app, writing video games - pretty much anything you like to do, there’s a way to get a computer involved. If you’re interested in the outcome, you’re more likely to stick with the process of learning the skills.
And running code that doesn’t work won’t break your computer, in fact, your computer doesn’t mind at all. So write lots of code and run it! The machine will tell you what’s wrong, and you can just fix it and move on to the next mistake. There’s lots of online compilers and interpreters for pretty much any language under the sun, so there’s no installation necessary, just start typing and hit run!
When not teaching, what do you like to do for fun?
I seem to always have an obsession; past all-consuming activities include: Scrabble, crosswords, logic puzzles, chess, puzzle-type video games, competition programming, math contest questions and origami. I’m currently spending rather too much time playing resource-management games. In each area, I usually obtain a level of skill surpassing the layperson, but falling short of anyone who knows anything.
This is, of course, in addition to having a five year old who I’m trying to teach all the various skills necessary for the activities I listed above and we also have to eat something like three times a day, which consumes a surprising amount of time.
Thanks for your time and insights, Adam! Check out the coding success at UTS!
Hatch Coding educates the well-rounded programmer, teaching the ability to read, write and modify real-world computer code - which are transferable lifelong skills. Beyond a coding program - it’s an online community where your kids can learn more about themselves and the opportunities for their future.