There is a common misconception that in order to be good at computer programming, an individual also needs to be good at math (meaning advanced math). That misconception has been hanging around now for decades. It's present in work and speeches dating back to at least the 1970s.

This misconception is discussed in the work of Dr. Francis E. Masat who was a professor at what is now Rowan University in New Jersey. He wrote a book on teaching computing and also published a paper dealing with his findings in teaching an introductory computer programming class to students who majored in seemingly everything except computer science (you can read about this in Emmanuelle Deaton's paper). As an early Head of Mathematics and Computer Science Department, his interpretation of findings and teaching experiences ought to count for a lot. For him, it boiled down to this: computer science has more in common with languages than it does mathematics.

I agree with that position entirely, not just because it is evidenced in Dr. Masat's work, but also because that's what I've experienced in my coding work and what I've seen in the years of research we've done at Hatch. Like Dr. Masat, my first love is also mathematics so I feel strongly that a distinction needs to be made between sound logical reasoning and aptitude with syllogisms and mathematical reasoning. Logic is an intrinsic part of mathematical reasoning—but it is also crucial to many other areas of study.

A big part of what it means to be good at programming is the ability to express strong (sound) reasoning while writing computer programs. We at Hatch believe that in order to become good at programming, students must be allowed to engage in both creative coding and requirements-based coding work. Students need to do creative coding work so that they can develop meaningful background knowledge and understanding of coding that they can subsequently transfer in requirements-based work.

And so this is where the relationship to math becomes fun: there's absolutely no reason not to use math in programming—and we even believe that computational reasoning work can help develop mathematical reasoning and understanding of math concepts. In fact, there is a lot of work in programming, creative and otherwise, that relies on basic math skills. Moreover, the more students are interested in data science, the more they'll want to use their maths skills in programming.

So, while programming remains a liberal art, here are 5 reasons why programming can be a math playground (and might be considered a type of math game at times):

1. Applied use of math formulas - When you are building a programming project that does something and at the same time using math formulas, it feels like play—even though you're doing precision math work.

2. Using your math toolbox - In math, a lot of times you feel like you are learning things that you'll never use, but when you start writing a computer program, all of a sudden your math toolbox is helpful—wow!

3. Fun with numbers - Programming projects use numbers in lots of fun ways. When numbers come alive and start to feel fun, it can make a huge difference for your appreciation of math.

4. Exploring new topics - Some areas of mathematics, like statistics and probability, are not covered formally until much later in the K-12 experience and may not even really appear until students progress to university. When you build a programming project, sometimes you get to use fun and advanced concepts long before you learn them formally in school.

5. Feeling confident about math - When you make a programming project work and it uses your math skills, it makes you confident about your ability in math—there's no better feeling!