Last week I went to two events where the subject of programming came-up, and specifically how useful a tool it is for the learning of mathematics. Essentially to be able to program a computer to perform a process you need to understand it first and also the process of thinking about how you would construct a program can help you to understand an idea.

At both events Project Euler was mentioned as a great resource/community to encourage people to learn maths through programming. Michael Borcherds (twitter.com/mike_geogebra) suggested that I might be interested in it at the Computer Based Math summit: www.computerbasedmath.org/. Then a couple of days later Matt Parker (twitter.com/standupmaths) promoted it at MathsJam: mathsjam.com/.

Project Euler (projecteuler.net/) is a series of mathematical/computer programming problems that require some mathematical insight and a little bit of programming knowledge to solve. However, an understanding of a FOR … NEXT loop and an IF … THEN statement should be enough to get going. The website is structured so that you aren’t restricted to any particular programming language – you just enter your numerical answer generated by your program and it checks the answer. It also features a list of the problems you’ve solved and (once you’ve solved a problem) lets you see the forum for that problem.

I tried the first problem on the TI-Nspire. The Nspire has TI Basic built into it and is pretty easy to get going on.

**Project Euler**At both events Project Euler was mentioned as a great resource/community to encourage people to learn maths through programming. Michael Borcherds (twitter.com/mike_geogebra) suggested that I might be interested in it at the Computer Based Math summit: www.computerbasedmath.org/. Then a couple of days later Matt Parker (twitter.com/standupmaths) promoted it at MathsJam: mathsjam.com/.

Project Euler (projecteuler.net/) is a series of mathematical/computer programming problems that require some mathematical insight and a little bit of programming knowledge to solve. However, an understanding of a FOR … NEXT loop and an IF … THEN statement should be enough to get going. The website is structured so that you aren’t restricted to any particular programming language – you just enter your numerical answer generated by your program and it checks the answer. It also features a list of the problems you’ve solved and (once you’ve solved a problem) lets you see the forum for that problem.

**Programming on the TI-Nspire**I tried the first problem on the TI-Nspire. The Nspire has TI Basic built into it and is pretty easy to get going on.

One additional advantage is that it has all the mathematical functions built-in and easy to access which is especially useful if you’re using the CAS version.

**Python**

I tried the second problem using Python. Python is an open-source programming language that is popular because it is also easy to read.

I downloaded Python from python.org/ and then installed the Ninja IDE front-end from ninja-ide.org/ (and then pointed it at where I’d installed Python). Ninja is a lot easier to use than the command-line version of Python.

**Programming for learning maths**

As generalisation is often the aim in mathematics programming is an excellent tool for learning the subject. When programming is viewed as explaining a generalisation to a computer it is easy to see why it is so powerful.