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

86 of 656 comments (clear)

  1. depends on what you're going into by davecotter · · Score: 4, Insightful

    if you're going into app development or IT, probably not much math needed. i've been in app dev for a long time (and quite successful). Those times that i actually need math? I just look it up, program it, then forget it. I never have needed much math. However, if you're going into some CS field that requires math, well, obviously, it's worth your while to study it.

    1. 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
    2. 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.
    3. Re:depends on what you're going into by geekmux · · Score: 4, Insightful

      if you're going into app development or IT, probably not much math needed. i've been in app dev for a long time (and quite successful). Those times that i actually need math? I just look it up, program it, then forget it. I never have needed much math. However, if you're going into some CS field that requires math, well, obviously, it's worth your while to study it.

      I think that was the point of the query here, exactly what fields remain today that require the level of math that is (rather arcanely) still infused within a CS degree?

      I fell into this same trap when initially pursuing my degree. Avoiding all the advance math requirements due to my own hatred of it, I was facing three separate tracks of nothing but I/II/III math courses, which were obviously best taken in succession. It was going to take me way too long to accomplish this (while going stir-crazy on nothing but math), so I ended up switching to the MIS path, which didn't have the absurd math requirement.

    4. 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!
    5. 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
    6. Re:depends on what you're going into by internerdj · · Score: 4, Insightful

      If you are going to go further in your education then you will need to learn all that math too. I've spent a sizable chunk of grad school reviewing math because I didn't take it serious during my undergrad. Solid statistics is used in countless places. Linear algebra is key to understanding computer graphics and has powerful tools for other more specialized applications. Differential equations are used for all sorts of real world simulation problems. If your university is like mine then you will get an in depth discrete math course from the math department that covers the problems you hit when using a discrete machine to try to work with infinite things. You might get that from the CS department but our CS coverage was all sorts of CS related math. If you do anything hard then the CS coverage may not cut it.

    7. Re:depends on what you're going into by Anonymous Coward · · Score: 2, Insightful

      I just look it up, program it, then forget it.

      You must have forgotten "study it" between "look it up" and "program it". I don't think you could just "look differential equations up", except if the case is extremely simple.

      Also, a construction analogy: for a lot of construction work you won't need strong mathematical skills, but don't try designing a bridge if you lack them.

    8. Re:depends on what you're going into by Anonymous Coward · · Score: 3, Interesting

      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.

    9. Re:depends on what you're going into by jellomizer · · Score: 2

      Even though you Looked it up and programmed it and forgot it. You knew what to look up.
      That is part of the reason for Advanced Math in Computer Science.

      Sure most of the programs you do the most advanced math may be Division, however sometime you need to pull out the books (or google) about stuff in Statistics (Oh we have a data set, what is most common), Calculus (Lets find the most optimal spot), Discrete Math (Will you hair-brain idea even work), Linear Algebra (If you are doing 3D graphics), My Program had Dif-Q as an elective, I took Advanced Discrete Math.

      But still I suffered these classes, but after college was done, I found that knowing it was more useful to me then not, and I was glad I took the classes.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    10. Re:depends on what you're going into by locopuyo · · Score: 2

      I have a BA in CS and I took some advanced calculus and linear algebra classes. I've done game development, desktop application development, and web development. The only time I've ever had to use any advanced math was when doing game development.
      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 when you can simply call Vector.Add. It obviously helps to know of their existence and what they are used for, but I don't think you would actually need to take a class for that information.

    11. Re:depends on what you're going into by phantomfive · · Score: 2

      Advanced calculus/linear algebra is a must for game engine development. I try to read articles about rotating 3D objects.

      FWIW I took a linear algebra class and a 3D graphics class. There was about 1 class period of linear algebra that was relevant to game development. The Linear Algebra necessary for game development can be learned in a day if you're willing to apply yourself.

      --
      "First they came for the slanderers and i said nothing."
    12. 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

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

      Also, if you're doing any serious work in algorithms, a strong understanding of proof techniques and discrete math is a must.

    14. Re:depends on what you're going into by Dcnjoe60 · · Score: 2

      if you're going into app development or IT, probably not much math needed. i've been in app dev for a long time (and quite successful). Those times that i actually need math? I just look it up, program it, then forget it. I never have needed much math.

      However, if you're going into some CS field that requires math, well, obviously, it's worth your while to study it.

      I think that was the point of the query here, exactly what fields remain today that require the level of math that is (rather arcanely) still infused within a CS degree?

      I fell into this same trap when initially pursuing my degree. Avoiding all the advance math requirements due to my own hatred of it, I was facing three separate tracks of nothing but I/II/III math courses, which were obviously best taken in succession. It was going to take me way too long to accomplish this (while going stir-crazy on nothing but math), so I ended up switching to the MIS path, which didn't have the absurd math requirement.

      The reality is that many people go the CS route because they are told that is where the jobs are, but most of those jobs are in corporate america. A better route for corporate america is a business administration degree with a minor in computer science or even just some programming classes. The traditional Computer Science major is more akin to an engineering degree than anything else. Nobody gets an electrical engineering degree for the purpose of becoming an electrician, that would be overkill. Likewise, a CS degree for the purpose of becoming a corporate programmer is overkill.

      When I used to work for a large Fortune 100 company, we very often pulled employees from operations and taught them to program. It was much simpler than taking programmers and teaching them the business and business culture. I always encourage business majors to pick up extra computer classes and computer majors to pick up business classes. Unless you are going to work for clandestine government organizations or one of the giant software companies, you will get much further in your career being average with a mixture of those skills than being great with only one or the other.

    15. Re:depends on what you're going into by thomasw_lrd · · Score: 4, Funny

      Almost all of Linear Algebra can be learned in a day, if you're willing to apply yourself. At least that's how my Linear Algebra was, but then again, the Prof said it was pretty dumbed down. So go figure what I know.

    16. 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.

    17. 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.

    18. Re:depends on what you're going into by Machtyn · · Score: 2

      Yep, stats is important. But stats isn't diff. eq. Once you understand differential equations, they're really cool! Unfortunately, I'm in the same boat as the author of the question, I was a B- at very best on the advanced maths. Linear Algebra was also very cool. I can completely see where it applies to computer calculation optimization, geometric calculations and a bunch of other things. But, again, I couldn't follow the process very well while in the class and certainly not now.

      But stats... no matter what field you get into, even if it isn't an engineering (or pseudo-engineering), stats will come up.

    19. Re:depends on what you're going into by SCHecklerX · · Score: 2

      Or satellite orbital mechanics. Oddly enough, way back when, I had my AHA!!! moment in how to do 3d computer graphics (it was a hobby, this was in the time of future crew, renaissance, etc) when I took a spaceflight dynamics class. Yup, rotating and translating, to include 3d equations of motion and acceleration for spaceflight are EXACTLY the same thing you do to render the stuff on a computer (except you have to add the perspective, 2d screen and all that).

    20. Re:depends on what you're going into by Bob+the+Super+Hamste · · Score: 4, Informative

      Too true. I just finished working 5 hours on a proof with another guy in the office to show that something had complete coverage of the state space, will always produce the correct output for all inputs. Now it is time to code once I finish my lunch. Granted some of that time was spent simplifying the final solution. I use higher math almost every day, granted it ins't diffeq, but I often use linear algebra, boolean algebra, discrete math, and proofs (the non shapes part of geometry). I don't use calculus or stats in my current line of work but in my previous job stats was a big part of it writing insurance code.

      --
      Time to offend someone
    21. Re:depends on what you're going into by tnk1 · · Score: 2, Insightful

      University requires advanced math for CS for the sole reason of preparing the CS student for Graduate level Computer Science. CS that remains in the academic world will have a lot more options where advanced math is useful or even critical.

      University have a few indicators of how "good" they are. In addition to their undergraduate job placement, their graduate program admittance is also very important to them. Since advanced math isn't going to hurt anyone in job placement, but it's lack can keep you from getting into grad programs and research intensive projects, they make you take the advanced math.

      For a normal business programmer, advanced math comes down to something that might be useful to know if you are working in some field that is particularly numbers intensive, and there are many that are. Still, most generic business stuff these days is just how fast you can read and write data to a database and then presentation. You will get much more out of knowing the tools, the library functions, and the intricacies of the language you are developing in than you will with math. Your CS degree is simply a straight ticket into your first job. As long as you get about 2-3 years of actual experience, a CS degree starts becoming more and more optional.

      Long story short, you can be an excellent developer without advanced math. As part of the CS program, you have to understand that it is there because it is a one-size-fits-all path for you to get an advanced degree. Universities are not really vocational institutions, they expect you to be an academic at heart, so they expect a deep level of interest in the field and the default assumption is that you are preparing to be an advanced student.

    22. 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. . . .
    23. Re: depends on what you're going into by Anonymous Coward · · Score: 2, Informative

      It is impossible to write code for orbital mechanics if you don't know math. These guys may just have a different notion of what advanced math is. I don't consider differential equations advanced math. Advanced math is stuff like Hilbert spaces and topology. Differential equations are practically physics

    24. Re:depends on what you're going into by tibit · · Score: 3, Interesting

      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 :)

      --
      A successful API design takes a mixture of software design and pedagogy.
    25. Re:depends on what you're going into by wisnoskij · · Score: 2

      I think I disagree. The point ot Math in CS is not to memorize a bunch of formulas that you might use in a program, or even to be able to derive a few yourself. The point of Math in CS is that CS is Math and Math is CS, every aspect of CS is governed by Math that you should understand. On their surface there does not seem to be much Math on a banking app, but it is there. Encryption, efficiency, performance, and just CS in general is all Math.

      --
      Troll is not a replacement for I disagree.
    26. Re:depends on what you're going into by DuckDodgers · · Score: 3, Insightful

      In general, advanced mathematical topics require you to grapple with abstract concepts and find connections between them, and link them together in ways to accomplish tasks. Any interesting software development (i.e, work that is not "change the color of the login button and move it 7 pixels left") uses the exact same kind of abstract thinking.

      So even if you never do multi-variable calculus or ring theory proofs or topology exercises at your job, any time you spend learning those things hones skills you will use at your job.

    27. Re:depends on what you're going into by VortexCortex · · Score: 4, Insightful

      Game Engine development has nothing to do with Mathematics.

      I'm just going to call you out on this complete and utter bullshit statement. Tell me, how do you best classify assets that exist in three intersecting sets: stored on disk, loaded in memory, and available for rendering (in the GPU)? Keep in mind we would like to minimize cache misses. Even a moderately heavy statistics / logistics calculation in the asset manager is beneficial if it reduces the occurrence of expensive cache misses slightly. Furthermore you pigeon hole ENGINE DEVELOPMENT by saying its not about all those other things that it actually is about. For instance, I wrote my own PKI encryption library so that modders can sign their game mods and I can sign our game updates, and everyone can use decentralized distribution while players can trust the source. That doesn't come bundled in a box with a bow, neither does tweaking the sound or image / video compression algorithms to be less generalized and more targeted to the content you're delivering. FFT's and frequency domains aren't rocket science. Physics IS Mathematics, allowed error bars and instability propagation limiting, the whole damn thing, it all benefits from some higher mathematics -- It's not "just programming". Parallelism is CORE to engine design. Where to draw the lines and segment the engine matters A LOT, and you can use mathematics to inform the decision instead of just wasting time guessing and checking, like a blind person in an orgy.

      "No, Advanced Mathematics is not required," bullshit. First off: Define "Advanced". Secondly, CS is not just Programming. Third, learning a bit of higher math is really useful and actually not hard to grasp, especially if you have a game engine to work with -- The most advanced graphing calculator in the world: You can make visual graphs that plot equations and react to the inputs real time. That really helped me teach myself this stuff. Want to combat power creep or balance your enemy / weapon strengths? Ensure your platformer difficulty follows pacing well? Guess what? Break out the statistics, buddy. Even that high level "game designing" -- most removed from the engine development -- benefits from mathematics. Getting past the disconnect between the cryptic symbolics of mathematics and being able to convert them into the more verbose and simple source code is a skill worth an infinite amount its weight in gold. If you can't do that, then hit the books. Once you can do that, then the scales will fall from your eyes and the gameworld will truly become your playground.

    28. Re:depends on what you're going into by bennomatic · · Score: 2

      I'm somewhat of the mindset that deep understanding helps developers apply the tools more intelligently. Without understanding the underlying math, some of the work would be trial and error, and while that might lead to a working system, it might have very difficult to debug problems based on poor logic. To use a metaphor, you can certainly build a bridge, given the right tools and equipment, but without math, it might fail suddenly and catastrophically at an unpredictable moment. I'm thinking of that famous wind-wave bridge collapse you've probably seen on YouTube.

      Some may call that mindset pedantic, but I think deep understanding separates the experts and artisans from the low end technicians. Some of that deep understanding can be gotten on the job, but there is something to be said for a formal mathematics training if you're going to be using advanced mathematics tools.

      --
      The CB App. What's your 20?
    29. Re:depends on what you're going into by greg1104 · · Score: 3, Interesting

      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.

    30. Re:depends on what you're going into by stanlyb · · Score: 2

      And then you wonder why there are so many H1-B with CS and advanced math......

    31. Re:depends on what you're going into by gr8_phk · · Score: 2

      Almost all of Linear Algebra can be learned in a day, if you're willing to apply yourself.

      WTF? Matrix multiplication can be learned in a day. How about geometric transforms, diagonalization, basis vectors, eigen values, etc... Sure I can refresh my memory on ALL of those and more in an hour or two, but to learn it the first time is not a one day task.

      Read the AMS article on PageRank and tell me how someone could grok that after studying linear algebra for one day.

    32. Re:depends on what you're going into by emt377 · · Score: 3, Insightful

      I strongly recommend the first year of calculus because of this. It teaches you a different view of symbolic algebra - not just how to use an equation as a tool to solve a problem, but how to view an equation as an abstract object that can be manipulated by a set of rules to solve a problem.

      I think the usefulness of calculus is even more basic than this - it teaches the student to think in terms of change. And since everything is always in a changing state it's a pretty basic low hanging fruit when it comes to training practical everyday intelligence. It's not advanced math... It's pretty basic thinking skills. The notation can be daunting, admittedly, but there's no way of discussing these abstract concepts in plain english.

      Any work with discrete samples deals with approximations. Calculus expresses the real thing. For instance, to understand the difference between adding samples and integration, where integration is the perfect solution and accumulation an approximation, requires understanding the concept of integration. In many cases feedback loops are created either explicitly or implicitly when code makes use of previous calculations (recursion in the mathematical sense), and understanding control theory gives a gut feel for when these are likely a risk and need damping. Control theory deals with recursive change, and without understanding change there's no understanding of control theory. IMO good education teaches understanding, and someone with an academical degree needs an understanding beyond plugging numbers into formulas.

      Calculus is hard because we have no natural senses that express the world that way. It's typically the first exposure a student has to considering reality in a way that's orthogonal to their natural human senses. It's hard because it's different and it is a challenge, no doubt about it. It takes everyone a while to get it, but then the next abstraction will be easier (often linear algebra).

    33. Re: depends on what you're going into by ClickOnThis · · Score: 4, Insightful

      Mod parent up. This whole discussion has a distorted notion of what constitutes "advanced math" in the context of an undergraduate degree in a scientific discipline. I would classify advanced math as anything taken at the junior/senior level, i.e., in third or fourth years. And yes, that might include such topics as topology and Hilbert spaces.

      Freshman and sophomore math that includes differential equations, linear algebra, statistics and introductory discrete math (combinatorics, etc.) just comes with the territory of a comp sci degree. It's not advanced math, it's the price of admission into a scientific or engineering discipline. Suck it up.

      --
      If it weren't for deadlines, nothing would be late.
    34. Re:depends on what you're going into by geezer+nerd · · Score: 2

      And it is very important to understand O(x) concepts. When you did not understand you built code with an O(n**2) dependence and n got very large in your production installation one night at midnight and you wind up spending the wee hours frantically trying to find a different algorithm so the system can actually do useful work in reasonable time again -- you will understand what I mean.

  2. 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. ;)

  3. 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.
    1. Re:Think About It This Way by phantomfive · · Score: 2, Insightful

      Let's be honest, if they can program well, and your company has any resources at all, you'll hire both of them. Good programmers are in short enough demand that it's worth it to hire a good one when you find him, whether he has advanced math skills or not.

      --
      "First they came for the slanderers and i said nothing."
    2. Re:Think About It This Way by dynamo · · Score: 2

      If you are looking at resumes that actually list what /classes/ the candidates took, they probably have zero experience. The other guy who has some actual experience or did some personal project interesting enough to fill the space will get the job.

    3. Re:Think About It This Way by OneFlame · · Score: 2

      I have been hiring IT professionals for years, hardware, networking, security, and software gurus. Give me a high school senior who has contributed to the linux kernal, published their own android game app, created their own web site, over an advanced mathematics student /any day/. The IT field is about self motivation, natural Intuition. Without these qualities, (which are the evidence an applicant being self taught), the applicant is really very useless. IT is a lot about creativity, abstract analysis, linguistics, and logic. Any applicant with a modicum of these fields of training is significantly more valuable than the Math Guru. And even still, give me the passionate high school self-starter--any day.

    4. Re:Think About It This Way by N_Piper · · Score: 2

      As a 30-ish adult trying to get into the industry who has gone through trade schooling I cannot say this emphatically enough
      F-you you elitist so-and-so your type are why I am literally going hungry
      Not all of us made the correct choice in College or have the time and money to go back.
      My blue collar resume and tech school are all I have and somehow you think my education is a character fault?
      Where the hell do you get off?

    5. Re:Think About It This Way by Frobnicator · · Score: 3, Interesting

      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.

      --
      //TODO: Think of witty sig statement
    6. Re:Think About It This Way by wolvesofthenight · · Score: 3, Insightful

      Challenge yourself.

      If the overriding goal is personal intellectual development, absolutely. But if you are worried about getting a good job, no. Most unfortunately, the university and employment system has a very effective built in punishment for this called the GPA. HR departments and hiring managers often filter by GPA. Some employers, like Sandia National Laboratory, have remarkably high GPA requirements. And you don't get the top GPA by challenging yourself.

      In your example, with a community college vs a university, the difference in degree would be very relevant, However, it sounds like AvailableNickname has already chosen a (4-5 year?) university and is simply asking what classes to take. When it comes to be job time, the main questions will be: Degree, GPA, coursework relevant to the job, and university reputation. Given his distaste of math I would hesitate to recommend a math intensive career path and study, though I do recommend a solid foundation.

      At a minimum, 1 year of Calculus and a semester of statistics. More if piratical. And it sure sounds like he is well into calculus. Beyond that, how about taking the classes most relevant to whatever career he would like? Simultaneously decide if it is work that he might actually enjoy and get something to put on his resume that directly relates to the job he wants.

      Also remember that you can study whatever you want and challenge yourself on your time after you finish school. When I hear somebody say "I wish I had taken more of X" I am inclined to say "Well, go study it." Be it books, local classes, or online classes, you can do independent study. Yea, it might not be as good as a real class, but don't let that stop you.

      --
      -WolvesOfTheNight
    7. Re:Think About It This Way by Assmasher · · Score: 4, Interesting

      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.)

      --
      Loading...
    8. Re:Think About It This Way by eek_the_kat · · Score: 3, Funny

      and if you want to make money, don't go into scientific or game programming.

    9. Re:Think About It This Way by cowdung · · Score: 2

      True. GPA can be an impediment to risk taking behavior that often leads to more learning. In College I avoided some classes because of their potential effect on my GPA and also because they wouldn't fulfill any requirement. I regret having made those decisions.. though I don't regret having had a good GPA.

      On the other hand, I definitely DO appreciate having taken very hard classes and the only classes I didn't like were the ones that were too soft (well, also the incomprehensible seemingly irrelevant ones). I don't think chosing the easy path is a good College strategy.. I always chose the hard classes in my major (though I avoided the ones outside my major that I probably shouldn't have avoided).

      Boring is worse than hard in my opinion. Many colleges allow you to drop late in the semester.. that is a good option sometimes.

    10. Re:Think About It This Way by goodmanj · · Score: 2

      Depending on what your application was, this guy could have been useless, or he could have been the lifeblood of your project. Sometimes it's not the number of lines of code you check in, but the ideas behind them that matter.

    11. Re:Think About It This Way by dcollins · · Score: 2

      Long, short, whatever: he's not a math guy and surely he'll never have to use it.

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
    12. Re:Think About It This Way by lahvak · · Score: 2

      IT is a lot about creativity, abstract analysis, linguistics, and logic. Any applicant with a modicum of these fields of training is significantly more valuable than the Math Guru.

      You do not know much about mathematics, do you. Because actual mathematics (the "higher level" math classes that the OP is talking about) is all about creativity, abstract analysis, linguistics, and logic.

      The unfortunate paradox of current math education is that the lower level math classes seem to be often specifically designed to kill all creativity, abstract analysis and logic, but that's something I could rant about for pages and pages.

      --
      AccountKiller
    13. Re:Think About It This Way by lgw · · Score: 2

      There's more to life than your specialty: "high performance software" in the business world is a real concern, but one that is solved now by scaling out. CPU is never a bottleneck, and I really don't care about "performance" as measured by CPU cycles, but that still leaves a few difficult and interesting problems. Designing a system that will have hundreds of millions of users, or billions of users, will certainly make you worry about performance, just not the kind you need linear algebra to solve.

      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.

      That's an amazing list of some the lower-paying specialties in the field. There's a lot to be said for doing what you love, and game engine and simulation software is a set of really fun, difficult, and engaging problems, but it's a basic rule of all engineering that "fun, difficult, and engaging problems" == "we can pay you less and you'll still do it". It all still pays better than any sort of graphic design-related job, of course, or semi-skilled coding.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    14. Re:Think About It This Way by Alsee · · Score: 3, Funny

      Long, short, double, long double, whatever.

      -

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
    15. Re:Think About It This Way by Frobnicator · · Score: 2

      That's an amazing list of some the lower-paying specialties in the field. But it's a basic rule of all engineering that "fun, difficult, and engaging problems" == "we can pay you less and you'll still do it".

      For beginners in the fields, often that is true. And if you are foolish and never specialize, well, that's your choice. Once you've got a few years of experience in specialty fields you can generally find excellent pay. I've got some recruiter friends who are constantly hunting for experienced graphics specialists in the $150K pay range. If the programmer has skill in negotiating they can get more.

      If you've got a few years of specialized game experience and you are making less than your business-database-programming friends and relatives it is time to shop for a new employer.

      --
      //TODO: Think of witty sig statement
  4. 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.

  5. 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.

  6. 3 hours on differential equations? by phantomfive · · Score: 3, Insightful

    In the real world you're going to have problems that are much, much more difficult than 3 hours. Work through it, if for nothing else than to improve your problem solving skills. That is something you definitely will never regret.

    FWIW I had some trouble with differential equations, too. I went to the library and found a book there that explained it much better. Made my life a lot easier. If you're having trouble 'groking' advanced math then the problem might not be you, it might be your book/teacher. But if you are afraid of work, the problem is definitely you.

    --
    "First they came for the slanderers and i said nothing."
  7. You probably don't need the advanced math! by Haydn · · Score: 2

    I have both a BS and MS in CS, and have never taken (or needed) differential equations. I also completed all of the coursework for my Ph.D in CS, but didn't do the dissertation. I took three calculus courses, and have never used them, either! Analysis of Algorithms and the ability to do high school algebra and occasionally trigonometry have stood me well, however.

  8. 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.

    1. Re:Differential equations is not advanced math. by vurian · · Score: 2

      "You're learning differential equations to prepare you for lifetime of abstraction, to sharpen your skills in symbolic manipulation." That sounds a lot like the reason people were once told to learn Latin and Greek -- it would prepare them for a lifetime of thinking. Me, I think it works. Make everyone go through a course that has enough hard enough things to do and keep the ones who get through. It's just that maths isn't anything special, or even of more practical use than Latin, it's just a way to distinguish between capable and incapable.

    2. Re:Differential equations is not advanced math. by stymy · · Score: 2

      People didn't study Latin and Greek just for their sake. They studied those languages in order to read some of the greatest works of literature, philosophy and mathematics in human history. I studied Latin in grade school (Argentinian private school) and I'm glad I did. Latin made it easier to learn Italian and French, as well as English (65% of the vocabulary in English has Latin roots, as well as a number of grammatical rules). Moreover, no translation can do justice to the beauty of Virgil's poetry, and it is amazing how simple Greek words like kleos and nostos can be so nuanced.

  9. Depends by ItzRobZ · · Score: 2

    If you're going into IT, chances are you probably don't need advanced math. Going into CS research? Probably. General software development? I think knowing advanced math helps you develop interesting and useful algorithms that can be used in the software. You may not use the advanced math topics/tools, but the skills you learn in advanced math help a bunch.

  10. Logic and love of computers is key by bhlowe · · Score: 4, Insightful

    If you enjoy programming and computers, don't let poor math skills stop you from doing what you like. I sucked at calculus and do very well as a programmer. Logic is the more important skill.

    1. Re:Logic and love of computers is key by RedHackTea · · Score: 3, Insightful

      Agreed. You only need more complicated math if you're going into research, getting a Masters/Doctorate degree, or game development (this can still be argued away as there are many internal tools and interface developers that don't need complicated math). It depends on your career path.

      The most that I use (as a typical 9-5 programmer) is algebra, proportions, statistics, and other simple math learned in High School or in my CS classes. Logic, data structures, etc. are far more important. Occasionally, I'll use some CS algorithms (infix notation, depth/breadth-first searches, etc.), but they're all related to CS with only a rudimentary knowledge of math needed. I've never used Trigonometry, Calculus, or anything higher on the job.

      Ignorant bosses still have this mindset of Math & CS being tightly interlinked and how Math helps greatly. It helps to a degree, but not that much. I've known programmers that had high degrees of math -- and ultimately it's just a lot of "theory" in my opinion. They didn't do a lot of practice and application. Because of the high burden of math, they were forced by their colleges to put more focus on theory. Their job performance was/is terrible. They're crap programmers, sorry. So, then the bosses decide to put them as designers and architects... that may work with buildings, but not programming. In programming, you have to know how to build something properly in order to design it properly, so again, complete crap. If you want to be a programmer, learn CS and programming. If you think that you may need math or it will help you get hired, then pass all of your math classes with a C average and focus your intention on getting A's in your CS classes (while hacking out fun coding projects on the side). Then for the little time you have left drink some Sunny D and Rum and enjoy life...

      --
      The G
  11. Good at Computers by Frankie70 · · Score: 2

    But I love computers, and am very good at them

    What exactly does this mean?
    - You can use MS Word much better than your friends and grandparents
    - You can tweet better than them.
    - You are better a googling than your friends and grandparents.

    1. Re:Good at Computers by fishbonz · · Score: 2

      It's like saying
      I post on Slashdot, and am very good at it

  12. Both not important and important by sideslash · · Score: 2

    On one hand, if you aren't writing engineering / simulation / trading / game internals, you are unlikely to use most advanced math. So it's not important. On the other hand, if you can't handle advanced math, you probably won't be a top-tier programmer either. Top-tier programmers think about advanced concepts and keep a lot in their heads at the same time. So in that sense I'd say it is important.

    You can't change your IQ, but you can maximize the use of what you have by developing good personal mental disciplines, i.e. working your behind off on stuff like this in college. My $0.02.

  13. It's the bottom of the pyramid by NickAragua · · Score: 2

    I bet you're a freshman. As mathematics (along with physics) is the foundation upon which computer science is built, you would do well to have a good understanding of it. I'm not saying that you should become an expert or take on a math degree, but, if you don't understand the basic principles underlying the code that you write, then I would have a hard time trusting that code in any meaningful application. Plus, it's not entirely useless in the real world. If you want to do an estimate of an algorithm's running time? Math. Want to compile some statistics on your application's usage patterns? Math.

  14. What is Advanced Math? by RichMan · · Score: 2

    You are pushing calculus as advanced math. What about Galois field theory? You are not even at the advanced stuff yet.

    Proper algorithm design is not cook-book stuff, which is why it is Computer Science, not Applied Programming. You will likely do well at Applied Programming. The higher order math is for those that will go into the Science part of the programming.
    Understanding the difference between the Science and the Application is important.

    The most important thing is to know your limits and when you should go looking for help to solve something.

  15. 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.

  16. Really, who cares? by waddgodd · · Score: 4, Insightful

    This is an exemplar of a phenomenon that I'm really beginning to despise in higher ed, the "do I NEED this?" phenomenon. Frankly, you don't NEED any given class to do most jobs out there. To be precise, your College diploma will not prepare you in the slightest for any of the multitude of skills you actually need in the job market nor is it designed to do so.. It is designed to prove you have the flexibility and desire to learn anything that comes across your plate. Picking and choosing what's actually relevant to your presumed career path is doing the exact opposite of this. How it impacts ME in a way that makes me despise it is that this trend is also transparent to College Professors, who now have no time to actually teach those that want to learn because they spend most of the semester fielding questions like "how will I use this as a McDonald's Fry Cook (or whatever the student laughably thinks they'll be employed as after graduation)" so they can't answer the basic "where can I find out more about this fascinating bit", leading to students like me getting so frustrated at the crap that they just give up on lectures. My honest advice to you is "if you don't think it's relevant to your interests, don't take it and petition the requirement off, you'll save a lot of people a lot of hassle that way"

    --
    Just because you're paranoid doesn't mean they aren't out to get you
  17. maybe yes maybe no by OldSoldier · · Score: 4, Insightful

    First, I agree 100% with everyone who says "yes" I agree 'even more' (math joke there) with those who suggest a different computer degree where math is emphasized less. However, let me paint an oddly two-sided picture with 2 different stories.

    I have a masters in math. In class one day our professor mentioned that he consulted for the forestry (or some such) department at the school. They were trying to calculate the area of an arbitrary region so as to estimate the number of trees within that area. Problem is the area may be convex or concave. The CS department at this school was trying to solve the problem by triangling the polygon, but ran into difficulties if the area was concave. My professor suggested using Green's theorem. Moral??? On the one hand advanced math gave a much more elegant solution to this problem, on the other hand **the CS department** at this school wasn't advanced enough to suggest it on their own... so if THEY can't do it... (fill in the blank).

    Many years later I was managing a small group of contractors on a project (I was also designer for this project) and I casually mentioned during a design meeting that we could calculate the score we needed by doing a weighted average of the various datapoints we already had. One developer mentioned outright that he would need me to write up the weighted average routine in psuedocode and I suspect the other developer felt the same way but was less forthcoming about his ignorance. Floored but already stuck with these guys, but then again... they're contractors and I believe they've been able to keep themselves employed since.

    At the end of the day, I'm one of those who thinks math and computer science is like solving puzzles... I would rather hire someone who likes solving all kinds of puzzles than one who has an admitted weakness in some (but perhaps not all) puzzles. If you indeed hate math that much I think you need to do some soul searching and figure out what sub-field of CS would be best suited to you. If you go into a field that requires math and you suck at it you'll probably be eclipsed by others more adept at it. On the other hand a lot of people who like math and CS are quite content to end their careers there... so if you have a growth plan that gets you out of CS work within a few years of graduating...

  18. Go back and learn the basics by Guru80 · · Score: 4, Insightful

    Firstly, it's very important. You will be kicking yourself in the ass for the next 10 years when you have to keep going back to figure out all this "crap you will never need" that you just so happen to need every month.

    Your problem seems to stem from a lack of understanding the basics according to your summary. Go back and really study them until you understand tehm; it will make life so much easier and it won't take long. Everyone these days are "good with computers" and if that is your selling point you can get hired for helpdesk support at minimum wage right now. If you want to be involved in any of the advanced CompSci areas though those fundamentals (advanced math is one of many) are absolutely necessary. The first time you can't figure out a simple algorithm because you don't understand the math behind it just stand up, shake the interviewers hand and go home, you already don't have the job.

  19. Re:Oh dear [resume] by Tablizer · · Score: 2

    It's right next to, "I do grammer goodly"

  20. CS Departments do a poor job at this.... by Fallen+Kell · · Score: 4, Insightful

    This is one area where I feel most CS departments do a very poor job explaining why this math is important. Too many seem to simply teach the math, but not WHY they are teaching the math. They do not show practical reasons for the the math, it is more simply taught as "Well this is the math. You need to know it because you need to know math".

    This is one of the reasons why I loved the way I learned these more advanced math classes. I was initially an Electrical and Computer Engineering major. Our Freshman and Sophomore curriculum was already per-designed before we even started. There were exactly zero changes you could make to it (unless you failed a course). We had calculus, physics, chemistry, biology, (and a few engineering classes, which were essentially introductions to engineering design, debugging/measuring instrumentation like oscilloscopes, multimeters, etc., basic circuit design, and practical implementation). But, all the classes were directly integrated. Meaning that at 9am when you had your calculus class which taught you differential equations, at 10:30am in your physics class you were then using the techniques that you learned in calculus to solve real world problems. The same with the chemistry and biology. Every professor knew exactly what was being covered in the other classes, so they knew exactly when they would use that material in a practical matter in their own course. We were using calculus to derive velocity vectors of moving objects, tangential line equations, and 3 dimensional transforms, the day we learned how to use the advanced math. So we were seeing the practical reason for the math and why it was relevant in the same day that we learned it.

    For a lot of programmers, you may not need to use those techniques, especially if you are simply writing social applications, or word processors. But if you are modeling 3 or 4 dimensional objects, simulating physics, creating a game engine, writing graphical engines like photoshop/GIMP, all this advanced calculus, differential equations, and matrix operations are very relevant.

    --
    We were all warned a long time ago that MS products sucked, remember the Magic 8 Ball said, "Outlook not so good"
  21. "Computer Science" vs. "Software Engineering" by GWBasic · · Score: 2

    Spend time thinking about the different between Software Engineering vs. Computer Science. It's kind of like the difference between Physics and Mechanical Engineering. Some schools now offer degrees in Software Engineering for this reason.

    One of the most useful classes I took was an entry-level Mechanical Engineering class. The reason is that the "Engineering" approach and mindset is needed in application development; yet a "Science" degree often doesn't emphasis this enough.

    When you're past the hurdle of math classes, look at fun engineering classes outside of the Computer Science discipline. You'll actually learn lessons that you can apply outside of college. For me, "Technology of Alpine Skiing" turned out to actually be useful, and I got to go skiing for a grade!

  22. Re:My solution by Agent0013 · · Score: 3, Interesting

    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?

    --

    -- ssoorrrryy,, dduupplleexx sswwiittcchh oonn.. -Quote found on actual fortune cookie.
  23. Math is more than simple calculations by ranton · · Score: 2

    Taking math in school has very little to do with actually being able to perform calculus or differential equations in ten years. It is about training your brain to think differently than most people. To train your brain to think more logically.

    The same people who struggled with Algebra in high school are the same people who are going to struggle with complex business rules in application code. If someone failed at something simple like integration by parts, I probably don't want them in a lead role designing important software. I am sure there are plenty of exceptions, but in my 10 year career I have still never found a quality developer who was bad at math in school (plenty who didn't like it, but none who struggled to pass Calc 1-3, except perhaps the ones who were severe slackers at a young age).

    --
    -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
  24. Discrete vs. continuous math by drdrgivemethenews · · Score: 2

    When I was in grad school, I noticed that the EE classes were all about continuous math. EE deals with a mostly analog world and you need all those partial differential equations to work in it.

    On the other hand, the CS classes were all about discrete math. The EE guys give us machines that provide an environment based on binary math and logic. You need to understand finite automata, compilers, data structures, algorithms, and so on to work in that world.

    Myself, I found that I liked discrete math better, but that's me.

    One piece of advice. Learn and understand networking. You'll never be sorry.

    ------

    Theory blazes the trail, but it can't pave the road.

  25. Do the math. Get the degree. by rmdyer · · Score: 2

    YOU WON'T REGRET IT!

    I started college out of high school as most do. I wasn't any good at 'math' either. I dropped out of college for a while. In the meantime I did a huge amount of hobby and semi-professional programming on my own. Later, after not being able to find a good job, I decided to go back to college. I decided early to actually, finally, try and 'get math'. I did it by forcing myself through math courses slowly, one at a time.

    You know what? I finally got some good instructors, and with the combined knowledge I got from my personal programming, I finally 'got math'. And let me tell you, the sensation of actually knowing what was going on in math was exhilarating, amazing, and fun. It turns out that 'math', is nothing more than symbol manipulation, and rules for symbol manipulation (of course combined with various forms of logic). So 'math' actually -is- programming.

    With 'math', you just sit around and memorize what the various symbols mean (nomenclature, discipline specific vernacular), what to do with them, and where they are applied. Turns out most of 'math' is algebraic in nature, so doing 'math' really well requires you understand the basic algebraic rules well. Anything else is logic specific to that dicsipline.

    I would say now, that if you don't understand 'math', you really don't understand computers. You are just a trades person, and will rarely end up doing much more than vocational work.

    Honestly, lacking the nature to push-through the crap envelope tells me a lot about your personality, and is why I would not hire you.

  26. It's very important by msobkow · · Score: 2

    Over the years I've ended up making significant use of the math I learned in university.

    Array and vector mathematics for graphics and 3D modelling.

    Statistics for the financial industry, simulations, and supply chain programming.

    Calculus for physics modelling, sound wave propagation calculations, and a host of other things.

    Set theory for in-depth understanding and use of RDBMS servers.

    But if you don't know the mathematics that can provide elegant and efficient solutions, feel free to implement a hodge podge of crap code like I've run into time and again over the years.

    --
    I do not fail; I succeed at finding out what does not work.
  27. Diff Eq is supposed to be hard by AdamHaun · · Score: 2

    It sounds like you're used to knowing everything already. Learning is not always easy. Spending three hours on a homework assignment is pretty common in a technical major. Think about how little time that really is and you'll see that it's not such a big deal. You will spend at least that long banging your head against new concepts at work, so you might as well get used to it now.

    Differential equations in particular can be hard if you're weak on algebra and calculus. IMHO, the most important thing to master for undergrad math is algebra. You need to be able to rearrange equations in your head. Once you can do that, the calculus stuff isn't very hard. Might be worth dropping the class and taking a refresher algebra course. Another option is to check out a few other textbooks from your university library (yes, they have them). A different presentation can make things much more clear. For the same reason, you might also try asking other professors for help. Try the physics department; they may be better at the intuitive side. I didn't really understand how to use integrals (as opposed to solving them) until a physics professor explained it to me.

    --
    Visit the
  28. Absolutely yes....but by EmperorOfCanada · · Score: 2

    I will unreservedly say that the more math I have learned the better my programming has become. I am not sure what the limits(no pun intended) are but even calculus has been useful in ML applications. Discrete is great for thinking through networks and parallel computing. Statistics and ML are great for getting interesting information out of the hoards of data that most systems can gather. Matrix math is useful for both 3D and ML. The list goes on. But I like you looked at the crazy math until my eyes bled. Then I started to find resources where someone takes some bit and simplifies it. So bit by bit I learned the nasty stuff.

    But and this is a huge but; you are completely correct that many of the origins of CS seem to be largely old math professors who repurposed themselves. The result is some shockingly pedantic math in place of pretty simple math. So often a CS textbook or paper will use some bamboozling math formula instead of shockingly simple pseudo code. Worst case scenario they could use both side by side. So out comes the sigma notation instead of some pseudo code that says bandwidth_required=sum(network1..networkN);

    I am going to go out on a limb and say that the sigma notation make the person feel smarter. I will now quote from the intro to "Calculus made easy" written around 100 years ago.:
    "The fools who write the text-books of advanced mathematics-- and they are mostly clever fools-- seldom take the trouble to show you how easy the calculations are. On the contrary, they seem to desire to impress you with their tremendous cleverness by going about it in the most difficult way."

    Now some people are going to blah blah about the conciseness of math notation. But I say bah humbug. I'll take clarity any day over conciseness. Plus you can always put the math notation in a box or something so it is not either or. Plus leave the jargon at home. It is not a network topology it is a bunch of networked computers. Plus as programmers we only use a tiny handful of variables x, y, t, i. Not theta, not epsilon, not gamma. Once you need to put a double stroke in your character you have certainly lost me a page ago. If you use := to differentiate from == then you are a putz.

  29. How important is it? by Xyrus · · Score: 2

    First, differential equations isn't advanced math. Neither is Calc 2, 3, or 4. That's applied math.

    How important is it? You're asking the wrong question, and at the same time painting a less than stellar picture of yourself. Asking that question makes you sound more like a whiney kid who doesn't want to eat their peas than someone who is motivated to learn new things and improve.

    Learn as much as you can while you are in the coddled world of academia. You will be surprised at how often information you considered useless at the time will be useful. Every course you take is another set of information and skills that may come in handy down the road. For example, being able to understand differential equations will be quite useful if you're working on software dealing with simulations (whether financial or scientific). Even if you aren't implementing the core logic yourself, having a basic understanding may help you develop a user-friendly GUI for setting parameters, or even just writing some documentation. At the very least, you'll have confidence that if the need ever should arise you'll be able to quickly dig up the information you need.

    --
    ~X~
  30. Beauty of Math; Beauty of Computer Science by Cliff+Stoll · · Score: 4, Interesting

    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.

  31. Have to know enough to "look it up" by dbIII · · Score: 2

    The problem is the person has to understand enough to know what to look up instead of starting with a blank slate. What the submitter is calling "advanced" really isn't but is instead a starting point to be able to lead into advanced topics if required.

  32. The Unreasonable Effectiveness of Mathematics by DamnStupidElf · · Score: 2

    The Universe has a structure that is, as far as we can tell, very accurately modeled by mathematical theories. It's no surprise that when solving problems that arise in the Universe mathematics is a vital tool. That said, some problems have been solved in general and if you expect to only spend your time programming specific implementations of solved problems you can almost ignore mathematics beyond familiarity with the symbols and skills necessary to translate mathematics into code, and only then if you can't just find a library someone else has written.

    But do you want to go through life taking other people's word for how and why the Universe works the way it does, oblivious of the knowledge of how to even figure out answers to questions for yourself? How do you know how long it will take your car to stop when you step on the brakes, and how far will it go before coming to a stop? Don't say "1/2 a^2 + v + d = 0"; that's just something you memorized in a physics class. Where does the power of two come from? Why the half? If you don't even know how to answer this question I don't really want you driving on the road with me, to be honest. Most people learn patterns of behaviors that allow them to survive well enough most of the time in familiar situations, but fail when presented with anything novel. The world is so much more interesting than can be properly appreciated by only responding to it with the standard learned behaviors.

    Finally, if you do expect to spend your career implementing specific instances of solved problems then also expect to be replaced by a computer programmed by someone who *does* understand mathematics sometime in the not-too-distant future.