1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Does computer programming help developing math skills?

  1. Jul 25, 2015 #1
    Can learning of programming languages like C, Python, Fortran or mathematical packages like Matlab or Mathematica be helpful in developing mathematical thinking in high school students? Logically I tend to answer positively, but have no direct experience with that. Has anyone seen boosting students grades after they have developed themselves some programs? If so, what language do you suggest to use in the classroom?
  2. jcsd
  3. Jul 25, 2015 #2


    Staff: Mentor

    Computer programming can help develop logic skills and teach you how to debug a program. These same skills can then be applied to regular math problems as you search for an error in your thinking.

    Math skills can improve your programming though which may lead you to believe that the contrary is true.
  4. Jul 25, 2015 #3
    I think most definitely it can help. If you can write a program to do the easier parts of your math homework(solving a system of linear equations, factoring polynomials, finding maximum/minimum, etc.), then you've already mastered how to do the problem. As far as which programming language to learn, I am going to say without hesitation to pick Python. It has many numerical packages for when students become more mature in their mathematical thinking, plus it's not as tedious as other programming languages when you're starting out(often you find that 10 lines of python code can do the same as 50 lines of Java code!). There are also a lot of great resources in learning Python, the one that I found the most helpful was the MIT OCW 6.00: http://ocw.mit.edu/courses/electric...o-computer-science-and-programming-fall-2008/
    Dr. Grimson and Dr Guttag are a lot of fun to listen to lecture.
  5. Jul 25, 2015 #4


    User Avatar
    Staff Emeritus
    Science Advisor
    Homework Helper
    Education Advisor

    Based on personal experience, I think it can. When I was in 8th grade, I taught myself how to program in APL. I became acquainted with a wide variety of topics like matrix multiplication, matrix inverses, binomial coefficients, trig functions, modulo arithmetic, etc., because they were part of APL (which was a math-based programming language). When I took Algebra II, I was primed to learn more fully about these topics than I normally would have been. Having already given some thought to these topics, I was filling in the blanks rather than starting from scratch like my classmates.

    If your goal is teach math as opposed to programming (how to implement algorithms on a computer), I would suggest you stay away from languages like C or FORTRAN. Students will waste too much time fighting with irrelevant details, like real variables vs. integer variables, and tracking down stupid bugs instead of focusing on the higher-level concepts which are presumably your focus. I'd look for a rich, interactive language rather than a compiled one. It's much more satisfying and conducive to learning to test out an idea and get an immediate result rather than having to type up a program in an editor, compile it, go back to the editor to fix the inevitable typos, compile it again, and then finally being able to run it to see what the result of your idea was.

    @jedishrfu also raises an excellent point. The computer is going to do exactly what the student tells it to do. When students get an unexpected result, they'll typically want to figure out why. The ability to figure out where the error in their thinking is by checking their assumptions and paying attention to details is crucial to being able to learn effectively.

    Using packages like Mathematica and Matlab can help students learn math simply because it can remove the drudgery of algebraic manipulations. It can let them focus on the concept they're trying to learn instead of on the calculations. Also, with subjects like statistics, I want to avoid forcing students to do mind-numbing calculations by hand with tons of numbers.
  6. Jul 25, 2015 #5


    Staff: Mentor

    @vela is quite correct with respect to MATLAB and Mathematica as good ways to learn programming and math together. Many engineering schools use MATLAB for all computational homework and lab work. It is now the slide rule of the age.

    APL was a much tougher language to learn for many people. It was often cited as being a write-only language i.e. after you wrote your program you could never read it later on to make changes or to recall what it was supposed to do. Programmers love languages like these; great job security...

    As @\Theta mentions nowadays a great all-purpose language is Python. Its available on MacOSX and Linux and optionally for Windows (i.e. download a version and install it).

    Another great resource is Processing IDE where students can learning java, javascript or python programming interactively. Its geared for doing cool interactive graphic artwork. Its available for all major platforms, comes with many libraries and examples and is very easy to get started with. I often have my summer HS apprentices learn it to do PC and Android-based projects.


    Alternatively for python in particular there is the iPython Anaconda distribution that features a web-oriented notebook page where you enter your code, run it and the results appear below the entered code. Some profs use it to teach numerical python programming.

  7. Aug 23, 2015 #6
    It sounds as if you're looking for the results of a controlled experiment on this.

    I don't know for sure, but I'm hoping folks in Educational Research have done something on this. Maybe advanced and exhaustive google searches will throw up a paper about it.

    While I agree with the replies, I would point out the ever increasing use of the wow-factor in science museums around the world. The idea here is one of inspiration and motivation, rather than "showing-how". Let me admit I am not totally happy with this approach, but, under clenched teeth, I will admit it has its benefits.

    If you don't have a science museum to wow your students: :-), graphs and pictures are the way to go, so graphics capabilities would be most prized. So anything that is capable of hip graphs would tie in this approach. Matplotlib and Mathematica appear strong here. R, while a statistics package, also has great graphs.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook