Does learning Maths help with learning programming?

Discussion in 'Scripting & Programming' started by jo74, May 3, 2009.

  1. jo74

    jo74 Byte Poster

    242
    0
    19
    Because I'm considering some OU maths courses (although for other reasons as well). Would Pure maths be more 'helpful' that applied Maths?
     
    Certifications: A+, N+, Sec+
    WIP: CCENT, CCNA
  2. dmarsh
    Honorary Member 500 Likes Award

    dmarsh Petabyte Poster

    4,305
    503
    259
    A good understanding of maths in general is useful.

    Obviously Binary math and Logic make up a big part of computer science.

    Computers are pretty much just big calculators, the heart of the processor is normally one or more ALU's.

    Above that it really depends on what industry or what programs you want to write. I know programmers who write business apps in VB, know very little maths, others write 3D game engines and know a lot of maths.

    There is a fair amount of statistics in AI and business intelligence, data mining etc.

    If you are interested in problems related to physics or enineering then applied maths is useful. CAD programs can calculate stresses in building stuctures, various simulations can be created with differential equations from everything from stock market movements, climate patterns, structure of the universe, etc.

    CAD/CAM/GIS has a fair amount of geometry. CAM uses topology in auto routers for PCB design etc.

    If you get involved with embedded systems, hardware, control, theres can be a fair amount of pure and applied math.
    In accounting and business linear algebra is often used. Convex hull crops up in lots of places.

    Computers are often used to monitor and predict real systems. Theres a lot of very interesting simulations out there, some can approximate and predict the real world with uncanny precision.

    Basically theres a lot of crossover in IT with other disciplines if you look for it. Statistics are used for branch prediction in the processor. The processor itself is a bunch of Finite State Machines or Automata. Telephony uses Erlang's formula. Various routing protocols use Convex Hull / Shortest path etc.

    Theres many languages, libraies and pre-built components out there, FFTW, BLAS, Fortran, R, S, and now F#.

    As always with engineering/programming theres the option to reuse or buy vs build etc. Many people in IT just assemble pre-made components, the engineers in the R&D departments are the ones that really need the math.

    Look at what people are doing with CUDA :-
    http://www.nvidia.com/object/cuda_home.html#state=home

    I would say that pure maths is more helpful than applied maths in general, but this is a generalisation. Most people will already have the pure maths they need for basic programming from high school, basic aithmetic, binary math, logic, associativity, powers, logarithms, inverses, commutavitiy etc.

    So a brief answer would be that minimal maths knowledge is needed to write most modern run of the mill applications. There are many reasons for this. One is componentization, reuse, modular systems, functional decomposition, frameworks and libraries etc. For example every high language now has a maths library or a graphics library, you don't generally write these yourself in assembler which used to happen. Another reason is most modern apps are business applications or websites, these tend to have minimal engineering aspects and are largely assembled from known frameworks and off the shelf products.

    In the same way that many COBOL and SQL programmers in the past managed a career with minimal maths/engineering expertise their modern equivalents can do the same but in newer technologies. It does not require an engineer to produce an application with a 4GL. In the same way I don't get an electrician to change my lightbulbs.

    The OU does not allow for Pure vs Applied specialism until level 2, the main level 1 course MST121 covers both pure and applied, as does MS221, these are the main two maths modules the OU offers. There are other 'warm up' courses like MU120, MU123, Y162, TM190, and S151. To specialise at level 2 you can take Pure mathematics M208 or Mathematical methods and models MST209, if you have just a passing interest in maths as part of a computer science degree you may not wish to take many maths modules at level 2 and above.

    Maths and English are critical for success in any field, for those still young enough to be at school I'd reccomend leaving the certs until you're confident of an A* in Maths and English.
     
  3. Kitkatninja
    Highly Decorated Member Award 500 Likes Award

    Kitkatninja aka me, myself & I Moderator

    11,140
    555
    383
    I guess it depend on who you ask...

    All I have is a high school level education and I completed my degree in Computing, specialising in Software Engineering. The languages I learnt at college & Uni includes Visual Basic (includes versions 3, 5, .Net and VBA), C/C++, Eiffel, prolog & JAVA. The only "new" maths that I learnt was part of the System Analysis & Design (level 1 & 2) modules, using algebraic equations to design computer systems.

    -Ken
     
    Certifications: MSc, PGDip, PGCert, BSc, HNC, LCGI, MBCS CITP, MCP, MCSA, MCSE, MCE, A+, N+, S+, Server+
    WIP: MSc Cyber Security
  4. dmarsh
    Honorary Member 500 Likes Award

    dmarsh Petabyte Poster

    4,305
    503
    259
    I suspect the german high school education system puts most of the UK establishments to shame! :D

    Also many modern computing degrees don't go into any detail on any of the harder subjects. I only required GCSE/AS level maths for 90% of my HND and degree. The othr 10% was mainly formal methods, proof and induction.

    Most Computer Science degrees just give a foundation, if you wanted to get a top job in a research department or with a computer games company or many other places you'd be expected to have picked up a lot more stuff.
     
  5. Kitkatninja
    Highly Decorated Member Award 500 Likes Award

    Kitkatninja aka me, myself & I Moderator

    11,140
    555
    383
    Dunno, I was educated in the US system (moved around alot when I was younger) :lol:

    That's right :thumbleft

    -Ken
     
    Certifications: MSc, PGDip, PGCert, BSc, HNC, LCGI, MBCS CITP, MCP, MCSA, MCSE, MCE, A+, N+, S+, Server+
    WIP: MSc Cyber Security
  6. LordMoolyBap

    LordMoolyBap Nibble Poster

    95
    0
    28
    I don't really think you need to be great at maths to be good at programming. I don't really use a lot of maths on a day to day basis. I work in VB.NET and C#.

    I think as long as you have a basic numeracy and can appreciate that you can represent a number with a symbol ie dom = 2, joe = 4, dom * joe = 8 then it's not important.

    If you want to get into advanced computing such as AI or anything like that then the need to understand more complex concepts is important. If you want to build business systems its not the most important thing.
     
    Certifications: HND (Comp) MBCS
    WIP: Msc Intelligent Systems
  7. Mathematix

    Mathematix Megabyte Poster

    969
    35
    74
    A general understanding of maths is critical. Learn you linear algebra and discrete maths. :biggrin
     
    Certifications: BSc(Hons) Comp Sci, BCS Award of Merit
    WIP: Not doing certs. Computer geek.
  8. greenbrucelee
    Highly Decorated Member Award

    greenbrucelee Zettabyte Poster

    14,292
    265
    329
    when I was doing my HND we did programming in c++, delphi (evil) and ASP and because my maths was so ****e I had to do extra maths which was algebra and maths that would help with algorythms. It's weird now because I am still ****e at maths but can do binary and subnetting and still do algorythms but when it comes to normal maths I sometimes still have to think about it for a long time :blink:D
     
    Certifications: A+, N+, MCDST, Security+, 70-270
    WIP: 70-620 or 70-680?
  9. Mathematix

    Mathematix Megabyte Poster

    969
    35
    74
    Not sure about subnetting being within the realm of 'maths', but certainly practice makes perfect! Algorithms itself is quite a deep subject and there are many good books out there. Get introductory texts on the subject for a gentle introduction.
     
    Certifications: BSc(Hons) Comp Sci, BCS Award of Merit
    WIP: Not doing certs. Computer geek.

Share This Page

Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.