Does computer programming help developing math skills?

In summary: Python's web-oriented notebook feature is a great way to keep track of your programs and see the results right away.
  • #1
Aidyan
180
13
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?
 
  • Like
Likes fricke
Science news on Phys.org
  • #2
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.
 
  • #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.
 
  • #4
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.
 
  • #5
@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.

processing.org

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.

http://continuum.io/downloads
 
  • #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.
 

1. How does computer programming help develop math skills?

Computer programming involves breaking down complex problems into smaller, manageable steps and using logical thinking to solve them. This process is very similar to solving math problems. By practicing programming, individuals can improve their problem-solving and analytical skills, which are essential for developing math skills.

2. Can computer programming improve a person's understanding of mathematical concepts?

Yes, computer programming can help individuals better understand mathematical concepts by allowing them to apply these concepts in a practical and hands-on way. Through programming, individuals can see how math is used to solve real-world problems, making it easier to grasp and retain these concepts.

3. Are there specific programming languages that are more beneficial for developing math skills?

Any programming language can help develop math skills as they all require problem-solving and logical thinking. However, languages such as Python and Java are commonly used in mathematical and scientific applications, making them a good choice for those looking to improve their math skills through programming.

4. Can computer programming help with advanced math concepts?

Yes, advanced mathematical concepts often involve complex problem-solving and require a strong understanding of logic and algorithms. These skills are directly applicable to computer programming, making it a valuable tool for understanding and mastering advanced math concepts.

5. Is there any research to support the claim that computer programming improves math skills?

Yes, there have been several studies that have shown a positive correlation between computer programming and math skills. For example, a study published in the Journal of Computing Sciences in Colleges found that students who learned programming showed significant improvements in their math problem-solving abilities compared to those who did not learn programming.

Similar threads

  • Programming and Computer Science
Replies
16
Views
1K
  • STEM Academic Advising
Replies
12
Views
1K
  • STEM Academic Advising
Replies
4
Views
128
  • STEM Educators and Teaching
Replies
7
Views
1K
  • Programming and Computer Science
Replies
11
Views
1K
  • Programming and Computer Science
Replies
15
Views
1K
Replies
4
Views
798
  • Programming and Computer Science
Replies
8
Views
881
Replies
2
Views
887
  • STEM Educators and Teaching
Replies
22
Views
3K
Back
Top