Forgot your password?

typodupeerror
Math Education Programming Science

Ask Slashdot: How Many of You Actually Use Math? 1086

Posted by timothy
from the let-me-inaccurately-count-the-ways dept.
An anonymous reader writes with a question that makes a good follow-on to the claim that mathematics requirements in U.S. schools unnecessarily limit students' educational choices: "I'm a high school student who is interested in a career in a computer science or game development related position. I've been told by teachers and parents that math classes are a must for any technology related career. I've been dabbling around Unity3D and OGRE for about two years now and have been programming for longer than that, but I've never had to use any math beyond trigonometry (which I took as a Freshman). This makes me wonder: will I actually use calculus and above, or is it just a popular idea that you need to be a mathematician in order to program? What are your experiences?"
This discussion has been archived. No new comments can be posted.

Ask Slashdot: How Many of You Actually Use Math?

Comments Filter:
  • Instead of calculus (Score:2, Informative)

    by Skapare (16644) on Thursday August 09, 2012 @01:53PM (#40934437) Homepage

    Calculus is virtually unused in computers. It was designed as a shorthand for a world that didn't have computers. What you need to be learning instead is Linear Algebra.

  • Problem Solving (Score:5, Informative)

    by MatrixCubed (583402) on Thursday August 09, 2012 @01:56PM (#40934491) Homepage

    While programming is not necessarily math-heavy, mathematics gives you experience with problem solving, sometimes in unconventional ways. It's really the only technical problem-solving you do in school, and it's an important learning step, for what it teaches indirectly as well as what it teaches directly.

  • Re:Optimization (Score:4, Informative)

    by SQLGuru (980662) on Thursday August 09, 2012 @01:57PM (#40934541) Journal

    This.

    If you are just using libraries and assets, you won't do as much math until you need to tune a section of code. If you are writing the lower level graphics libraries, math will be important. Same for other programming areas -- the high-level programmer doesn't need to know the complex problem domain but the low-level programmer does.

    Oh, and learn Linear Algebra (as a simplification, Matrix Math) if you're doing much in a graphics field. It's not in the straight line of "important" math (Algebra --> Trig --> Calculus) but in a branch from there. It's quite useful in graphics, however.

  • Re:Optimization (Score:5, Informative)

    by DJ Jones (997846) on Thursday August 09, 2012 @01:57PM (#40934543) Homepage
    i work in Finance so perhaps I'm a little bit of an outlier but I use high-level mathematics every day. The other day I caught two programmers (who lacked mathematical backgrounds) attempting to use a binary solver to find a solution to a polynomial algorithm. They had spent two months of time and energy trying to figure out why their model sporadically failed. I had to pull a numerical methods textbook off the shelf and show them the Newton-Raphson iterative method.

    You don't use it often but there are definitely occasions when a lack of understanding leads to pitfalls.
  • by DanTheStone (1212500) on Thursday August 09, 2012 @02:04PM (#40934729)

    I've done work in GIS software that definitely used my Calculus and Linear Geometry training (for surface areas and distances and intersections on a sphere, for example). The times you need the math are when there isn't already a "package" available for you, or when you need to do something efficiently (optimizing calculations). In my current job Statistics is shaping up to be more useful.

    Then again, I did also have a math minor and gravitate toward technical jobs, so some of that stuff is expected. But I'm not in gaming or rocket science or statistics.

  • by paulpach (798828) on Thursday August 09, 2012 @02:05PM (#40934767)

    I developed a game [blockstory.net] using Unity3D.

    I make heavy use of trigonometry, and a very small part of calculus.

    Your question really depends on what you want to do:

    • * For game development (what you seem to be particularly interested on), calculus is almost irrelevant. You need trigonometry.
    • * If you work in operations research, then algebra and linear programming are a must.
    • * If you work on average database backed web applications, just some basic algebra is enough.
    • * If you work on AI related field, calculus is very important.

    There are other fields that are not typically taught in math courses but in CS that are heavily math related. Like performance analysis. This I use a lot, but once again, it really depends on what you work on.

  • set theory math (Score:4, Informative)

    by magarity (164372) on Thursday August 09, 2012 @02:05PM (#40934779)

    I do a lot of database work so it's set theory all day long. It's in a bit of disguise as it isn't what normally is though of as math but set theory is a math field.

  • Linear Algebra (Score:5, Informative)

    by Teppy (105859) on Thursday August 09, 2012 @02:12PM (#40934963) Homepage
    I do most of the design and programming on A Tale in the Desert [atitd.com] and Dragon's Tale [dragons.tl] and I've seldom/never needed to do an integral or solve a system of differential equations. Understanding those concepts does frequently influence game design, however, so having taken those courses was important, at least for the kind of games I do. (Giving specific examples would require that you are familiar with gameplay for each of those games, but feel free to contact me directly if examples would be helpful.)

    But on to specific branches of math: You'll certainly use linear algebra doing 3D programming, and IIRC that's considered "beyond" calculus. (If you're using OGRE or Unity 3D, at least at the API level then I'm surprised you haven't run into this.) Applied Math, which is often a college freshman course for a CS decree is crucial to all sorts of programming, especially games. Combinatorics is critical for game design, though if you're just planning to be a programmer, not so much. Numerical Methods will teach you exactly when and why rounding errors to happen, how they can compound each other, and in general help you write squeeky-clean math code. The game I'm working on now is a gambling MMORPG - I probably don't even have to say how important statistics is, if this sort of thing is in your future :)

    Notice how different each of the math subjects above is? A lot of this comes down to learning how to learn, and that's the one thing that in my experience differentiated high school academics from college.
  • by Animats (122034) on Thursday August 09, 2012 @02:21PM (#40935165) Homepage

    I have an MSCS from Stanford, but it's from 1985, when the logicians and expert systems guys were running things. So I have lots of number theory, combinatorics, automata theory, and mathematical logic. I even took "Epistemological Problems in Artificial Intelligence" from John McCarthy.

    So what did I end up needing? Tensor calculus. I realized that expert systems AI was stuck. The future of AI capable of dealing with the real world seemed to be in nonlinear control theory. Which is all calculus and statistics. I struggled with that, and got legged running over rough terrain figured out and patented. But this was 1994, and the simulators sucked, and I couldn't get any further without better simulators. So I spent a few years beating on that problem, and produced the first simulator that could do a ragdoll falling downstairs.

    By 1997, I had that solved, but it was kind of slow. A 200MHz Pentium Pro just wasn't enough engine to get it up to real time, and that was the top of the line in CPUs back then. By then I was burnt out on the problem, and it wasn't making much money, so I sold the technology off to Havok and went on to other things.

    I didn't see that what was needed was to couple nonlinear control theory to Bayesian statistics. That's what makes all those quadrotors zip around so precisely. Modern statistics barely existed when I was in school. Now it drives everything from finance to speech recognition to advertising, so it gets worked on and people study it. Nonlinear control alone never had that big a market, so the field didn't get enough attention to move it forward.

    So I needed more math, and different math, than I got in school.

  • by Nemesisghost (1720424) on Thursday August 09, 2012 @02:23PM (#40935221)
    Another reason you don't see any calculus(or other advanced mathematics) in programming is that you derive the equations you'll need on a piece of paper or white board then use the results in the actual application. An example is the velocity & distance equations that are derived from constant acceleration(V = V0 + a*t, d = d0 + V0 * t + 1/2 * a * t^2). Those equations are the 1st & 2nd integrals of the acceleration. Now instead of trying to recalculate the entire integral each time you need to know how far something traveled, you simply use the already derived equation. The same goes for most applications of various mathematics. But knowing how to derive those equations doesn't stop you when you are presented with something outside the given(say for example if a = 2 * a0 * t).
  • by durdur (252098) on Thursday August 09, 2012 @02:30PM (#40935373)

    But a huge amount of computer science is not about modeling the physical world. It is about organizing data or doing accounting or serving up web pages. Advanced calculus does not help at all with that.

  • by Genda (560240) <mariet&got,net> on Thursday August 09, 2012 @02:41PM (#40935615) Journal

    Alright, how about global weather models? Fluid dynamics? Protein folding? Field tensor analysis for everything from power inductors to energy recovering braking systems to fusion modeling? All of these and a thousand more require higher mathematics to model. Ray tracing, rendering and animation being used in virtually all movies and games today involve all kinds of fascinating math problems, and interesting optimizations are popping up all the time. Statistics are important for everything from traffic regulation to neural networks to population control to quantum mechanical modeling to predictive analysis on genomics and proteomics. As has been said, it completely depends on what you're trying to do and what field of computer research you're taking on.

    What hasn't been said is that the critical thinking skills required in visualizing mathematical problems and their solutions is precise that same little chunk of gray matter that's going to help squeeze out a better algorithm, or find the lines of symmetry in your data set so you can fold it and reduce space and time required to make your solution run faster and more reliably. Its all part of the puzzling mind, and math is the heavy lifting needed to give you the mental muscles required to move the intellectual mass you're interested in moving. That and at some point you begin to actually see the world mathematically. The elegance and beauty of the language and its freedom to build new and surprising contexts describing anything you can imagine. If computers are engines of realizing human imagination, math is the fuel that engine runs on.

  • by HapSlappy_2222 (1089149) on Thursday August 09, 2012 @02:58PM (#40935959)
    How about something as simple as moving a virtual object a) from point A) to point B) while correctly calculating the gravitational effects of objects b) and c)? Classic calculus (I think; I never took enough of it, to be honest, and I regret it).

    Also: http://en.wikipedia.org/wiki/Stochastic_calculus [wikipedia.org]

    Would be pretty awesome to have the chops to seed a random field.
  • by Jeremiah Cornelius (137) on Thursday August 09, 2012 @03:12PM (#40936211) Homepage Journal

    Math = USA usage

    Maths = UK usage

    Der.: MathematicS

"If you own a machine, you are in turn owned by it, and spend your time serving it..." -- Marion Zimmer Bradley, _The Forbidden Tower_

Working...