How do you rate the importance of mathematics in your programming skill
Hello everybody, I am teaching mathematics to freshmen computer students. They do not appreciate how the math will develop their ability in programming. I want to convince that they need to do math in order to do programming more effective. Unfortunately, I have no data of how mathematics play in the mind of a programmer.
I created some programs and do heavy math on it as my programs are basically about math, but I am not a programmer, I am a math professor.
In a scale of 1 - 10 (1 = low & 10 = high), how do you rate the importance of mathematics in programming?
Please answer only if you do programming, your honest answer will affect a handful of future computer professionals. Thanks.
Abhishek Reddy posted this at 13:19 — 12th July 2009.
He has: 3,348 posts
Joined: Jul 2001
There are many ways in which mathematics influences my programming:
Formal specification
Before discovering a solution -- or, in order to properly understand an existing one -- I need a sense of the scope and nature of the problem. To do this rigorously, I can approach the programming problem similarly to how I would a mathematical one. That is, specifying input parameters, protocols, types, flow, states, processes and outputs. (It also goes some way towards verification for correctness.)
Discrete structures
Every program I write involves concrete application of abstract discrete structure in mathematics -- from ordered sequences to matrices to trees/graphs to state machines and automata. Sometimes I need to know the profile of underlying structures provided by systems I'm using, and at other times I need to compose or create them myself.
Numerical analysis
An important practical concern is the representation of continuous real numbers by binary digital computers. It can be a complicated field in itself, but still has ramifications for the everyday programmer, with issues like floating-point precision and accuracy, rounding error, etc.
Symbolic analysis and meta programming
Programming often involves symbolic analysis analogous to mathematics. Besides direct counterparts like symbolic integration etc., in programming we typically deal with arbitrary symbols and expressions. Tokenizing, parsing, compiling, interpreting, rewriting and transforming symbolic input is close to algebraic mathematics. Formal languages and abstract computing machines are among fundamental theory in computer science, as well as matters of practical engineering concern.
Functional programming
One style of expressing program code (which I'm partial to) relies on immutable data structures, deep call chains, first-class/higher-order functions, function composition, and referential transparency. These are properties in common with mathematical convention. Being comfortable with that way of thinking is an advantage.
Algorithms
Similarly, an understanding of algorithms from a theoretical perspective (along with discrete structures) is essential. Knowing the order and limits of an algorithm's resource usage can help make crucial decisions about tradeoffs early in the development process. Having a sense of the shapes of growth curves -- if not the calculus behind them -- is related (e.g. it's easy to underestimate exponential growth).
Pre-calc mathematics
Arithmetic is obviously useful in so many cases. Understanding number radix and number lines is necessary for understanding bounding, overflow and conversion error. Geometry and trigonometry help with graphical applications -- from basic user interfaces to 3D games and digital cartography. Set theory is connected with everything from bitwise operations to cryptographic hashing to relational databases.
Statistics and modelling
Being able to manage large amounts of realistic data is an asset. Whether you want to aggregate logs to identify trends, or ensure your randomized algorithm is secure, or evaluate a given test for your data, some statistical confidence is necessary.
Domain knowledge
Software is often specific to a particular domain which may require, at a minimum, comprehending their branch of applied mathematics. e.g. business maths for commerce software, statistical techniques for social and medical software, calculus for science/engineering software, and so on.
Mathematical philosophy
Practicing and engaging with mathematics will, over time, help you develop taste -- for a kind of elegance of expression and beauty of structure, which overlaps a great deal with programming. In more specific terms, it involves things like limiting scope, constructing and composing abstractions, building meaningful relations, testing truth, reducing terms and simplifying assumptions.
The basic point is that thinking logically, analytically and yet creatively the way a mathematician does is very much applicable to programming. I'm nothing like an expert in either mathematics or computing, but in my experience as a student and practitioner, it has been highly beneficial to my activities in both areas to recognize and cultivate their intellectual connections.
So I rate the importance at 10/10.
Yamna Shaban posted this at 18:45 — 28th January 2011.
They have: 1 posts
Joined: Jan 2011
this is a very knowledgful article
davecoventry posted this at 19:46 — 12th July 2009.
He has: 112 posts
Joined: Jun 2009
I would say that it really does depend on the application of your program and the tools you are using to achieve your aims.
It goes without saying that if you were using Machine Code or Assembler then mathematics would be extremely useful.
And if you were employing complex algorithms to control graphics and/or 3D, obviously you would need a sound mathematical grounding, too.
However highlevel languages like HTML and CSS require very little in the way of complex maths and tools like dreamweaver and the like further remove that requirement.
A lot of people consider themselves programmers without really knowing much about what goes on 'under the hood', and these people are not really going to want or need much knowledge of the underlying maths.
teammatt3 posted this at 21:49 — 13th July 2009.
He has: 2,102 posts
Joined: Sep 2003
That's how I feel.
Here are some thoughts from programmers about math, that you may find interesting.
I have been writing code for a few years now, and don't use any of my geometry, trig, or calculus. I use basic algebra, plus a little discrete math.
For what I do, I'd say 3/10. But it really depends on your domain. I write CRUD applications. Nothing fancy.
BUT the university has a responsibility to prepare students for a variety of different fields in computer science, and some of the fields do require a thorough understanding of math. Have you used a ti-89, Maple or Mathematica? Those programmers sure know math!
shakir posted this at 06:45 — 14th July 2009.
They have: 83 posts
Joined: Nov 2007
In program studies also fisrt starting with math matical application.. like counting, mod,big, comparison etc... Also in system level ptrogamming full of mathmatical calculation.. So its very important and math playing very good role
articlemaster posted this at 14:52 — 16th July 2009.
They have: 83 posts
Joined: Apr 2009
Mathematics always plays a huge role in almost all major applications and different field of work. When it come to programming, its very very essential. first and foremost requirement for programming studies is mathematics and you cant ignore it at all.
RTFVerterra posted this at 10:53 — 17th July 2009.
He has: 109 posts
Joined: Dec 2008
Per my monitoring to my students, those who perform well in my class (mathematics) perform well in their programming class but most of them was not able to top in the programming class.
Here are some data I gathered:
The data was based on the performance of the students on the first quarter of the semester. Its too early to make some conclusions.
Civil Engineering Review
davecoventry posted this at 07:35 — 26th July 2009.
He has: 112 posts
Joined: Jun 2009
The data was based on the performance of the students on the first quarter of the semester. Its too early to make some conclusions.
Very interesting.
However you should probably avoid making any direct correlation as I presume this is among a very small sample?
I would say anecdotally, and from my own experience, that having a logical and methodical approach to problem solving would be of benefit to both disciplines and while proficiency in the one may not necessarily mean proficiency in the other, I would expect anyone having an aptitude for either must have an aptitude for the other.
RTFVerterra posted this at 15:29 — 29th July 2009.
He has: 109 posts
Joined: Dec 2008
I fully agree with you, these observations are only made by me and confined only to my students. The research department of our university however was inspired of what I did that they submitted a resolution to scientifically implement this research in a larger scale. The result of the "would be" research would determine the level of mathematical competency of students to be accepted in computer science major.
Civil Engineering Review
Vincent Puglia posted this at 21:38 — 30th July 2009.
They have: 634 posts
Joined: Dec 1999
I would also suggest testing for a correlation with grammar proficiency (knowledge of diagramming, transformational grammar, syntax, etc.).
Insofar as your original question, I would rate math a 5-7. Logic, by itself, rates a 10.
Where the world once stood
the blades of grass cut me still
iPhone Fan posted this at 07:20 — 21st July 2009.
They have: 8 posts
Joined: Jul 2009
I'm not great in mathematics. But I have some basic knowledge. 5 monthes ago I was to write program based on Newton method and secant method. Looking throug wikipedia and some math forums I thought I would never sort it out myself. But finally it appeared that it's not impossible. If you want to do it you'll have done it. Even without deap math knowledge. Moreover I can say I have better designer skills. They are useful in programming.
Windows Mobile|Blackberry| Mobile development Mobile development blog
stephan90 posted this at 05:07 — 30th July 2009.
They have: 3 posts
Joined: Jul 2009
Basically C and C++ languages best mathematical skill in programing language.
chatterbox posted this at 18:55 — 3rd August 2009.
They have: 17 posts
Joined: Aug 2009
I won't go for any long details here but being into programming, specially machine level, maths is the 'most' important field as compared to any of the sciences. Programming is all about random data and abstract algorithms and who else except maths can make it possible.
davecoventry posted this at 07:02 — 4th August 2009.
He has: 112 posts
Joined: Jun 2009
Well, yes.
As I indicated in an earlier post, if you are programming at machine level, then there is no way you can do that without some degree of mathematical proficiency.
However higher level languages no longer really have that requirement.
Particularly if you are just stringing a few lines of HTML together to make a website, and even more so if you are using Dreamweaver.
S33ker posted this at 21:07 — 31st August 2009.
They have: 38 posts
Joined: Jun 2008
In regards to your research and through my experience as a student and programmer I would say it all depends on enthusiasm. I hated math and did for many years until I found programming, I was very enthusiastic about programming but not at all about math, therefore in math class I was bottom of the class. In programming I taught myself what I needed to know to excel myself in that class.
Therefore its not that I couldn't do math, I just didn't have any enthusiasm, or see any benefit in doing so. Maybe this is the same for your students?
Now I enjoy programming and see the benefit in math, and after re-taking some qualifications I can now say my math is "OK" and continues to improve thanks to programming.
Hope this helps somewhat.
S33ker.
davecoventry posted this at 07:39 — 5th September 2009.
He has: 112 posts
Joined: Jun 2009
Therefore its not that I couldn't do math, I just didn't have any enthusiasm, or see any benefit in doing so. Maybe this is the same for your students?
Now I enjoy programming and see the benefit in math, and after re-taking some qualifications I can now say my math is "OK" and continues to improve thanks to programming.
Hope this helps somewhat.
S33ker.
I think this is key.
I know I had a real problem with Matrices when I studied Maths in the early seventies because I failed to see how they might be used. Those were the days when computers were the preserve only of large companies.
It was only once I had started programming graphics, that I realised how they are used. Up until then I could not see the point of them and I suppose I was unable to maintain my concentration when in class.
The programming I did at University was in FORTRAN and there was no graphics involved, and it was only in the late eighties that machines with a graphical capability became commonplace, so by the time I realised the significance of Matrices it was too late
I always regarded myself as 'good at maths' and at high school I was always first in any tests, but I would probably be regarded as a lousy programmer, probably because I am very disorganised.
Jaime Magnus posted this at 14:38 — 4th September 2009.
They have: 10 posts
Joined: Aug 2009
I would rate it as 9 out of 10. Mathematics is very necessary and I think in order to be a programmer one must have sound knowledge of mathematics.
mrgilb posted this at 15:30 — 30th September 2009.
They have: 25 posts
Joined: Sep 2009
1+1=5 ?
blueeye posted this at 15:19 — 26th July 2010.
They have: 17 posts
Joined: Mar 2010
Mathematics is the mother of all sciences. If a person is good in mathematics, he will surely be good in programming logic and algorithm design.
Mathematics is not limited to 1+1 =2, rather it contained some complex formulas which are used in sophisticated software development.
Want to join the discussion? Create an account or log in if you already have one. Joining is fast, free and painless! We’ll even whisk you back here when you’ve finished.