Slashdot Mirror


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

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?"

15 of 656 comments (clear)

  1. well by Anonymous Coward · · Score: 5, Funny

    If a few differential equations are giving you so much trouble, you can stop worrying about learning advanced math. ;)

  2. Think About It This Way by eldavojohn · · Score: 5, Insightful
    The verdict is: it's important.

    I have two resumes in front of me. I need someone who can write some fairly complicated software. Are they writing the kernel to an operating system? No. But they'll be making complexity decisions between a server and a client. Not exactly new or novel but important to me and my clients.

    So I look at one resume and the guy has suffered through integration by parts, linear algebra, differential equations and maybe even abstract algebra. The other guy went to a programming trade school where those are not taught. The trade school likely taught inheritance, pointers, typecasting, and all that good stuff just like the Bachelor's of Science degree would.

    Now do my solutions need integration by parts, linear algebra and differential equations? Absolutely not. But if I'm going to pick between the two, I'm going to take the applicant that solved more difficult problems in order to make it to a class. Few people actually care about those concepts deep in their hearts -- and I'm sure neither of my prospective employees did. But in that same vein, no rational developer is going to care at all that my client likes to be able to drag and drop files instead of doing file navigation to find the files he wants. But I want the applicant who's going to do the inane stuff that he doesn't personally view as important.

    Challenge yourself. Take the math courses. Take the logic courses. Take the statistics and combinatorics courses. Take the finite automata courses. Prove to yourself that there are no obstacles in your way. They are a great expense of time now but they are a huge investment in yourself -- no matter how pointless they appear to you.

    If I had understood what I was doing, maybe I wouldn't mind so much.

    You should attack this problem two different ways: 1) increase the amount of time you allot to your own personal enrichment in these topics/courses (three hours is very little time if you are approaching new concepts in math) and 2) seek outside instruction as it's also possible you have a professor who doesn't understand what they're doing either (the teaching, not the subject matter).

    --
    My work here is dung.
  3. You have more problems than you think by Anonymous Coward · · Score: 5, Insightful

    If you think advanced math is "anything beyond long division", you are probably going to be in trouble.

  4. Oh dear by spongman · · Score: 5, Funny

    "Good at computers" ?

    you should put that on your résumé.

    1. Re:Oh dear by mblase · · Score: 5, Insightful

      "Good at computers" ?

      you should put that on your résumé.

      That was about my reaction.

      Long bio short: I was *great* in math in high school, pretty good at calculus, but differential equations and their non-algorithmic problem solving methods just confused the heck out of me. (In hindsight, I should have asked my teachers for more help.) At the end of my freshman year I was introduced to NCSA Mosaic and then Netscape 0.9, started teaching myself HTML and, later, JavaScript, and got a job coding web sites. I still do that.

      I took to programming so well, I wished I'd tried it sooner. Turns out that programs and math proofs use the same sort of abstract logic -- get from point A to point B using these pieces.

      I always liked computers, but I don't suppose I'd describe myself as "good with computers." That means USING software, not WRITING it. Writing software requires judicious applications of logic and optimization, with varying levels of analysis and computation sprinkled in.

      And the further you get in programming, the more advanced math you need. Graphics? Uses trigonometry. Animation? Matrix algebra. You probably won't need calculus or differential equations unless you're actually doing engineering, but how do you know at this point that you won't?

      Heck, my state university wouldn't even let me get a CompSci minor without passing a class in circuit design, and you'd better believe I needed to know algebra when designing a binary multiplier.

      My point is this: computer science IS math, just with a different vocabulary. Being a CS major because you're "good with computers" is like being an auto mechanic because you're "good at driving".

      Math isn't about numbers, it's about logic and problem solving, and computer science is even more so. If you can't even find something to enjoy about simple algebra, then with all due respect, you're in the wrong field.

  5. Re:depends on what you're going into by Cryacin · · Score: 5, Insightful

    If you're doing quants work, or business intelligence, data mining etc, sure. Hardcore math is a must. If you're developing business software or something like that, it's more important to know Djikstra, the gang of four and closures.

    --
    Science advances one funeral at a time- Max Planck
  6. Differential equations is not advanced math. by Garridan · · Score: 5, Insightful

    Mathematician here. You're learning differential equations to prepare you for lifetime of abstraction, to sharpen your skills in symbolic manipulation. Those differential equations probably won't really enter into the game... but who knows, you might end up doing game physics which is nothing but a massive differential equation solver.

    But I'm here to tell you that differential equations are not advanced math. Take a discrete math class to get a taste of what 'real' math is for a programmer. Take data structures. You'll find yourself doing formal proofs (real math), and it will be extremely applicable to the rest of your programming career. That DE class is there just to make sure you can manipulate symbols.

  7. Re:depends on what you're going into by JBMcB · · Score: 5, Informative

    If you're developing business software you're going to need stats. It's inevitably going to rear it's ugly head sooner or later.

    --
    My Other Computer Is A Data General Nova III.
  8. Advice from a math hater by SWGuy · · Score: 5, Interesting

    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.

  9. Re:depends on what you're going into by Hatta · · Score: 5, Insightful

    If you're not going to need much math, you proabably don't need a CS degree either.

    --
    Give me Classic Slashdot or give me death!
  10. Re:depends on what you're going into by FilmedInNoir · · Score: 5, Informative

    Advanced calculus/linear algebra is a must for game engine development. I try to read articles about rotating 3D objects.... *WHOOSH* over my head. But I've done well for 13 years doing IT client/server programming and just looking up the occasional algorithm for lat/long distance calculations, permutations, etc. Still need to be able to translate math formulae into a computer language though.

    --
    Sig. Sig. Sputnik
  11. Re:depends on what you're going into by Anonymous Coward · · Score: 5, Informative

    Differential equations - control theory and anything that brings you in contact with engineers (or if you want to work in finance)
    Linear algebra - signal processing, computer graphics (don't even think about doing computer graphics without knowing linear algebra)
    Logic - system modeling and software verification, and basically everything else
    Calculus, discrete mathematics - high performance computing, simulation, communication, anything that brings you in contact with physicists

  12. Re:depends on what you're going into by NReitzel · · Score: 5, Insightful

    The bottom line is very simple. If you have the math - and I'm talking diffeq and applied mechanics and dynamics - you will get jobs that others cannot. And strangely enough, those jobs pay very, very well.

    Just like everyone else says, if you're content being a web programmer at a medium--to-ok salary, then forget the math.

    If you want a job writing control code for F22's, at a salary that can make your head spin, then consider the math as supremely important.

    --

    Don't take life too seriously; it isn't permanent.

  13. Re:depends on what you're going into by drstevep · · Score: 5, Insightful

    Bullshit. You want to develop game engines, you have to know how to move things around. You have to know how to create a world. You have to understand what your team is doing, and understand it at a gut level. This isn't rendering, this is creating a world.

    So learn your math well. It will give you an additional layer of depth that will differentiate you from those who don't.

    Disclaimer: I just coded up some low-precision trig operations. I'm generating some simulated waves in the world I'm creating. Costing hundreds of trig calls per frame, and figure 50 frames per second... My routines are around 3 to 5 times faster than system calls, you want to look up that hundreds per frame at 50 fps again? It means I have a lot more CPU available for other tasks. Math. Taylor series. Error analysis. Makes me the person that gets hired instead of the one that gets passed over.

  14. Re:depends on what you're going into by fahrbot-bot · · Score: 5, Insightful

    Even when doing graphics programming most of the fancy math is already handled through frameworks. You don't actually need to know how to do vector calculations...

    Unless you want to actually work *on* those frameworks... Someone has to develop/maintain the tools the rest of us simply use.

    --
    It must have been something you assimilated. . . .