Learning Math through Programming


With my last post, Dear Seth Godin, Stop Dealing Steam out of the way, let's move on to a couple far more constructive / researched articles.

In Stop Stealing Dreams, Seth Godin writes:

43. How not to teach someone to be a baseball fan

Teach the history of baseball, beginning with Abner Doubleday and the impact of cricket and imperialism. Have a test.

Starting with the Negro leagues and the early barnstorming teams, assign students to memorize facts and figures about each player. Have a test.

Rank the class on who did well on the first two tests, and allow these students to memorize even more statistics about baseball players. Make sure to give equal time to players in Japan and the Dominican Republic. Send the students who didn’t do as well to spend time with a lesser teacher, but assign them similar work, just over a longer time frame. Have a test.

Sometime in the future, do a field trip and go to a baseball game. Make sure no one has a good time.

If there’s time, let kids throw a baseball around during recess.

Obviously, there are plenty of kids (and adults) who know far more about baseball than anyone could imagine knowing.

And none of them learned it this way.

The industrialized, scalable, testable solution is almost never the best way to generate exceptional learning.

In part 113, he asks:

Is the memorization and drill and practice of advanced math the best way to sell kids on becoming scientists and engineers?

To combine these sections, the question becomes:

How do you make students care about high level math in the same way they care about video games?

The answer lies in turning math into a project based learning experience. I’ve seen many attempts at this, including my own High School curriculum called C.O.R.E. It was an embarrassing effort to make every math problem a word problem. Instead of creating a purpose behind the math, it put a thin veneer of application that did more to confuse us rather than make us care.

It wasn’t until Sophomore year of college that I got the chance to apply math in an exciting way. I was coding in Flash, and wanted to create a tank game where you bounced cannon balls off of walls in an effort to hit the other tanks. To write it, I had to relearn trigonometry. Sine, cosine, tangent, and far more in depth topics suddenly had an application. For the first time I studied them and had a reason to care. By creating a video game, it all started to come together.

What angle should a cannon ball go at if sent at the wall at a 30 degree angle? For the game to work, I needed to figure this out. While the final results of the game were a bit of an embarrassment, it was an exciting project that made math fun.

It’s easy to say “That’s nice for people who already know programming and are operating at a college level, but for the rest of us that isn’t particularly practical.”

Yet when I took on this project, my main thought was, ‘Why isn’t this how math was being taught to me since at least 6th grade?

One of the answers is it requires the students to have a computer at their disposal.

The other answer is it requires the math teachers to teach basic programming as a prerequisite to make the students care. It’s not easy to teach this well, but it’s well worth the effort.

In fact, teachers have been using programming to teach math for decades. It’s just in the last five years that the idea has started to spread on a grand scale.


Allison, a math teacher who runs Infinigons in New Jersey, tested the idea of using programming to teach math. She wrote:

Something that became obvious very quickly (and was integral in quelling my fears that I was under-qualified to teach a UC-approved programming class) is that almost every student in the class was into it. This was bizarre, having a class where 25 out of 27 students were really trying to figure out a problem and would literally groan when I told them they had to shut down their computers at the end of class.

It’s fascinating reading how she applied programming to teach math. She even includes examples of the games her Seniors in High School created.

Wikipedia has an extensive list of programming languages invented to teach math to all ages, from Stagecast Creator for Kindergarteners to Lego Mindstorm for 5th graders to Greenfoot for High Schoolers. They’re built to make programming accessible, and in that way make math fun.

There are plenty of books written on this subject, such as Video Games and Learning: Teaching and Participatory Culture in the Digital Age.

In addition, there are books dedicated to teaching just about any of the programming languages. For instance, Introduction to Programming with Greenfoot is aimed at teachers looking to encourage students getting in to programming for the first time.

In 2004, I learned Flash Game programming through Macromedia Flash MX 2004 Game Design Demystified. While the Flash programming side of it is no longer relevant, Jobe Makar does a fantastic job of going over math programming in a fun applicable way. I’m sure there are far more recent books on the subject, but from a math perspective, this is a timeless introduction to the fundamentals of applicable trigonometry in game design.

I’d love to see more teachers take this challenge on. I am, by no stretch of the imagination, an expert on the subject, so check out Gameful where teachers discuss the best games for teaching Math, Physics, and Programming.


Further Reading:





Featured image via watz