Friday, 18 November 2011

Programming for learning mathematics: Project Euler

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.

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.

3 comments:

  1. This comment has been removed by a blog administrator.

    ReplyDelete
  2. This comment has been removed by a blog administrator.

    ReplyDelete
  3. really good step for those kids who are much week in his math subject like that We have Online free Math Website for kids – to learn & Practice math skills. 2nd Grade, 3rd Grade,6th Grade kids for Add, Subtract, Multiply,
    Math Division, Algebra, Word problems, Worksheets and more which you want

    ReplyDelete