math + programming

Posted:
in AppleOutsider edited January 2014
Folks,

I realize this isn't a programming site, but it's probable that there are many subscribers that have some degree of programming skill (from little to 'I live and breathe it') on here. A graduate student of mine is conducting a study on the perceived effects learning to program has on mathematical ability. It's a short (10-15 min) survey. If you're interested, you can access it here: https://byu.qualtrics.com/SE?SID=SV_...Pj6s&SVID=Prod



BTW, it's also a snowball survey, which means that we plan on getting participation through word of mouth, so please pass this link on to other sites/people that you think might be interested candidates. thanks a million!



Peter Rich

Instructional Psychology & Technology

Brigham Young University

Comments

  • Reply 1 of 8
    Interesting observation. We just had a discussion yesterday on whether things go both directions or not. Why do you s'pose math folks have an easier time at it, in your opinion?
  • Reply 2 of 8
    kickahakickaha Posts: 8,760member
    My guesses are...



    1) Programming, specifically older-style C and Fortran (or functional programming, actually) grew out of mathematical constructs. It looks like, reads like, and expresses, explicit algorithms. Something most mathematicians are quite familiar with.



    2) Mathematics trains people in a particular way of thinking: Reduce the abstract problem to known problems; Look for commonalities of behavior and repetition in patterns; Express a solution as a series of concrete steps... and so on. These are all critical mental tasks for excellent programmers.





    However, the above traits are *not* required for bog-standard programmers - they can get by without having to learn the above, while mathematicians *must* learn the above to even be adequate in their field.



    Ergo, therefore, and QED: Even a middle of the road mathematician probably has better training in the thinking modes that are necessary for top-tier programmers, while a middle of the road programmer doesn't necessarily have these same traits, and will fall flat on their face in mathematics.



    That being said, there are many other traits of star programmers that do not translate well to mathematics, and it's not a superset relationship.



    Kickaha: B.S. Mathematics, Ph.D. Computer Science, area of research: software engineering semantics and process
  • Reply 3 of 8
    great insight. I agree that it's not a superset relationship and see it more as a Venn-like relationship. I also wonder at what levels it helps people (if at all). For example, though I did well in math in HS, I never really understood functions. When I began to program in college (very simple programming, mind you--all hypercard-like stuff w/ Runtime Revolution), I suddenly understood more about functions in ways that I hadn't in school. Stupidly simple, but it helped me understand variables and functions better than previously.
  • Reply 4 of 8
    vineavinea Posts: 5,585member
    Quote:
    Originally Posted by Kickaha View Post


    My guesses are...



    1) Programming, specifically older-style C and Fortran (or functional programming, actually) grew out of mathematical constructs. It looks like, reads like, and expresses, explicit algorithms. Something most mathematicians are quite familiar with.



    2) Mathematics trains people in a particular way of thinking: Reduce the abstract problem to known problems; Look for commonalities of behavior and repetition in patterns; Express a solution as a series of concrete steps... and so on. These are all critical mental tasks for excellent programmers.



    However, the above traits are *not* required for bog-standard programmers - they can get by without having to learn the above, while mathematicians *must* learn the above to even be adequate in their field.



    Ergo, therefore, and QED: Even a middle of the road mathematician probably has better training in the thinking modes that are necessary for top-tier programmers, while a middle of the road programmer doesn't necessarily have these same traits, and will fall flat on their face in mathematics.



    That being said, there are many other traits of star programmers that do not translate well to mathematics, and it's not a superset relationship.



    Kickaha: B.S. Mathematics, Ph.D. Computer Science, area of research: software engineering semantics and process



    I would like to see a study that supports this assertion. If it were true, all we'd have to do is tell HR to only hire coders with a BS in math...



    I have found a negative correlation between a Ph.d in Computer Science and coding ability...but that's mere ancedotal evidence. That's not a dis, I'm thinking of pursuing a Ph.D in CS or something similar but mostly to do HSI research. After I do that, I figure my coding skills will atrophy to uselessness.



    If you really care, you can ask if TopCoder will allow you access to their data on winners of TopCoder competitions and their mathematics background. That would be more compelling than a survey on perceived effects.



    http://www.topcoder.com/
  • Reply 5 of 8
    dfilerdfiler Posts: 3,420member
    Hmmm... interesting topic!



    I wonder if "programmer" is too broad of a category for proper analysis. There is huge difference between coding to specifications, and designing systems architecture.



    Programmers who design systems themselves would likely be good mathematicians. Programmers, who only code to predefined specifications, would likely not make a good mathematician.



    The field of accounting is similarly divided. There are your plug-and-chug spreadsheet maintainers. Then there are the people who defined how the spreadsheets have to work in the first place. The divide used to be even more pronounced before the advent of spreadsheets.



    Mathematics used to have a similar dichotomy. But calculators have completely eliminated all but the theoretical jobs. Decades ago, artillery trajectory cheat-sheets had to be computed by hand. Things like this required an army of low-level mathematicians. I think the difference is that low level programming jobs aren't as easily eliminated via automation. Both low and high-level programming jobs still exist while only high-level math jobs remain.
  • Reply 6 of 8
    kickahakickaha Posts: 8,760member
    Quote:
    Originally Posted by vinea View Post


    I would like to see a study that supports this assertion. If it were true, all we'd have to do is tell HR to only hire coders with a BS in math...



    Huh? Naw. Mathematicians that can program are only a subset of mathematicians. There are other skills that are necessary as well, and not all mathematicians have them. The best programmers though, tend to have strong *thinking* skills that are analogous to those you're trained in during a mathematics program.



    Quote:

    I have found a negative correlation between a Ph.d in Computer Science and coding ability...but that's mere ancedotal evidence. That's not a dis, I'm thinking of pursuing a Ph.D in CS or something similar but mostly to do HSI research. After I do that, I figure my coding skills will atrophy to uselessness.



    No dis taken. It's sadly true.



    Quote:

    If you really care, you can ask if TopCoder will allow you access to their data on winners of TopCoder competitions and their mathematics background. That would be more compelling than a survey on perceived effects.



    http://www.topcoder.com/



    Now that there's a good idear.
  • Reply 7 of 8
    kickahakickaha Posts: 8,760member
    Quote:
    Originally Posted by dfiler View Post


    Hmmm... interesting topic!



    I wonder if "programmer" is too broad of a category for proper analysis. There is huge difference between coding to specifications, and designing systems architecture.



    Indeed. The architecture/implementation dichotomy always bites us in the backside.



    Quote:

    Programmers who design systems themselves would likely be good mathematicians. Programmers, who only code to predefined specifications, would likely not make a good mathematician.



    I tend to think of it instead as problem-solvers and raw-implementors. The former can be designers, architects, or programmers, while the latter can be... well... designers, architects, or implementors. Those who can solve the problem vs. those who, given an explicit artifact telling them what to do, can translate it into input for the next stage.



    Quote:

    The field of accounting is similarly divided. There are your plug-and-chug spreadsheet maintainers. Then there are the people who defined how the spreadsheets have to work in the first place. The divide used to be even more pronounced before the advent of spreadsheets.



    Mathematics used to have a similar dichotomy. But calculators have completely eliminated all but the theoretical jobs. Decades ago, artillery trajectory cheat-sheets had to be computed by hand. Things like this required an army of low-level mathematicians. I think the difference is that low level programming jobs aren't as easily eliminated via automation. Both low and high-level programming jobs still exist while only high-level math jobs remain.



    Good point.
  • Reply 8 of 8
    SpamSandwichSpamSandwich Posts: 33,407member
    The strong math/programming correlation holds true from my personal experiences. But so does horrible grammar and spelling. They are definitely related.
Sign In or Register to comment.