Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
Education Math Programming

Ask Slashdot: How Important Is Advanced Math In a CS Degree? 656

Posted by Soulskill
from the math-is-easy-for-most-people,-they-just-don't-know-it dept.
AvailableNickname writes "I am currently pursuing a bachelor's in CompSci and I just spent three hours working on a few differential equations for homework. It is very frustrating because I just don't grok advanced math. I can sort of understand a little bit, but I really don't grok anything beyond long division. But I love computers, and am very good at them. However, nobody in the workforce is even going to glance at my direction without a BSc. And to punish me for going into a field originally developed by mathematicians I need to learn all this crap. If I had understood what I was doing, maybe I wouldn't mind so much. But the double frustration of not understanding it and not understanding why the heck I need to do it is too much. So, how important is it?"
This discussion has been archived. No new comments can be posted.

Ask Slashdot: How Important Is Advanced Math In a CS Degree?

Comments Filter:
  • by SWGuy (566046) on Friday May 31, 2013 @01:23PM (#43874879)
    I hated math in university, I still hate it now, but over a 25 year programming career math has turned out to be the single most surprisingly useful thing I learned in university. Calculus, statistics, trig, I have needed them all in my programming work. I wouldn't have the cool job I have now if I couldn't do the math.
  • by Frobnicator (565869) on Friday May 31, 2013 @01:39PM (#43875125) Journal

    I have been hiring IT professionals for years, hardware, networking, security, and software gurus.

    If you are hiring IT professionals and gurus, you don't need computer scientists.

    I work in the video games industry, inside the guts on game engines. I absolutely need math.

    If you are simply working on 3D games you need math through linear algebra and calculus. If you are working on any high-performance graphics processing you will need sharp math skills. When you are talking about a billion polygons per second you don't have the luxury of allowing a computer to do all the work for you; you need to pre-solve everything you can, which in turn means having solid mathematics skill.

    If you are working on games physics simulations, all those PDEs in college will look easy. You also better know your stuff from the highest level concepts of math down to the details of getting the most from associative caches. Again, a solid mathematics background is a must.

    If you want to get a job as an "IT Professional" writing crappy business software, the math (and really, the whole computer science degree) doesn't really matter.

    If you are a business programmer where 20ms means a database transaction, you don't need the math.

    If you want to write any kind of scientific work or any kind of high performance software, anything from video games to weather simulations to military simulations to oil and gas exploration, you absolutely need the math skills.

  • by Anonymous Coward on Friday May 31, 2013 @01:48PM (#43875297)
    I second this. I made some recent "statistical process control and analysis"-based improvements at my job (determining past typical variation and comparing to it as a measure of quality rather than unconnected arbitrary thresholds), which nobody else even knew were possible. We aren't a manufacturing company - we just deal in images. The improvements should have been immediately obvious to anyone with an understanding of statistics, but nobody here in the past ever understood statistics.
  • by Assmasher (456699) on Friday May 31, 2013 @01:53PM (#43875385) Journal

    While I understand your point, it also has weaknesses.

    I worked with a guy who was a math guru - and he was an absolute sh** software engineer. Oh, he could program some - give him a very finite problem to solve and he could solve it very functionally; however, when it came to actual software *engineering* he was an total loss.

    Normally we'd replace a guy like that, but like I said, he was great with numbers - so we gave him a sandbox to play in. He never ever, ever, checked in code into our system. He'd finish something and turn it over to another engineer who'd refactor it and check it in.

    He was a hell of a nice guy too, but being smart has nothing to do with being a good software engineer (although it surely makes it easier.)

  • Re:My solution (Score:4, Interesting)

    by Agent0013 (828350) on Friday May 31, 2013 @02:24PM (#43875821) Journal
    I find it interesting that you found an unrelated and seemingly irrelevant course to have much use to you in your programming. Wouldn't it be true that the math you didn't take would have also given you great insight into things that you aren't even aware of since you didn't take it?
  • by tibit (1762298) on Friday May 31, 2013 @03:46PM (#43876909)

    Yeah, and for this you need not only math, but an intuitive understanding of modern computer architecture. You've discovered, as many previously have as well, that memory is much slower than most computation. Doing a few adds and multiplies is almost always faster than pulling in a fresh cache line. This especially if your lookup table access is sparse and you're paying the penalty of fetching an entire cache line just to look up one number (a float is just 1/16th of a cache line). Sparse table lookup of floats generates 16x higher memory bandwidth that what one may naively expect.

    Memory is slow. Adders and multipliers are pretty damn fast. You're also possibly reinventing the wheel [ku.edu] :)

  • by Cliff Stoll (242915) on Friday May 31, 2013 @04:47PM (#43877679) Homepage

    I work in computing; a meter away is a mathematician.

    He knows real math: group theory, complex analysis, Lie algebras, topology, and, yes, differential equations. To him, math isn't about numbers ... it's about rigor, elegance, and beauty.

    No surprise that his code is rigorous, elegant, and beautiful. When he showed me how to use Cheetah to build templates in Python, he explained things with an clarity and parsimony. In his world, clumsy coding is as bad as a clunky math; a clear mathematical proof is as fascinating as a tightly written function.

    This man is the go-to guy for the 100 person business. Soft spoken and never argumentative, his advice and opinions carry weight. I'm honored to work alongside him; not a week goes by that I don't learn from him.

  • by greg1104 (461138) <gsmith@gregsmith.com> on Friday May 31, 2013 @05:01PM (#43877789) Homepage

    Skills for game development are fun, but the at best 1% of the software development market they represent is not something a budding programmer should worry about too much.

    Getting a CS degree involves a number of things that aren't just software development. Part of the reason degrees are considered valuable is because they prove people are willing to stick to the end of a project even if there are parts that are difficult for them. Almost everyone has something in a solid degree program that's hard for them. I breezed through math but struggled with chemistry. Sucked it up and worked through the parts that didn't come easy, because that's part of what degree programs are supposed to be about.

E = MC ** 2 +- 3db

Working...