Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Mathematics or Computer Science (Programming)

Options
  • 29-11-2009 3:40pm
    #1
    Closed Accounts Posts: 198 ✭✭


    (Not sure if this is in the correct forum)

    I'm considering the possibility of applying to study mathematics as a BSc, though I really don't know what I would do with it afterwards. I know I'm very interested in maths, though I don't really have any desire to become an accountant or a maths teacher.

    I read that those interested in mathematics may enjoy programming. Which is something I know nothing about.

    If I did decide I'd like to learn about, as an example, C++, ASP.net, CSS, XHTML, HTML, would I be best to study mathematics as a BSc and also a part-time class specialising in such programming?

    Or perhaps studying just a computer science BSc? I have looked at the modules of a possible computer science degree and the programming modules are:

    1) Fundamentals of programming
    2) Games programming
    3) Software engineering
    4) Concurrent programming
    5) Programming language implementation

    Perhaps these modules are not too in-depth and I'd be better studying BSc maths plus part-time programming classes?

    Any ideas? Thanks! :)


Comments

  • Registered Users Posts: 7,020 ✭✭✭eVeNtInE


    This post has been deleted.


  • Registered Users Posts: 304 ✭✭PhantomBeaker


    (This is a bit of a brain-dump, so this may all seem scarier than it really is)

    First-off, it depends how much you like Maths. When I say maths, I mean the really trippy stuff. What I'm talking about is stuff like n-dimensional geometry, fluid dynamics (never touched it myself, but even my hardcore math-nerd friends found it tough), and things like that. If that sounds fun and doable, I'd suggest maths as a subject.

    Most Irish BSc degrees will offer modules outside your core subject so it's entirely possible to do Maths as your main degree, and computer science as your other subject up until the end of 3rd year, and do pure Maths as your final year (which is what you'd get your Honours degree in).

    For reference, the difference between 3rd year compsci and 4th year compsci (at least in UCD) is that you're considered competant at programming, and then learn some other stuff like various theories of Machine Learning, AI (in all its forms), Operating Systems (in depth), computer performance measurement and high-level object-oriented design (that was what was on offer in UCD for the 2008 year). At that point, it's expected that you know enough to just pick up a technology and learn how to use it. (Don't let that put you off - if you have an interest in computers, it's a breeze. If you have no interest, by then, you probably shouldn't be going into final year - it'll just suck you dry, and you can still get a job with a pass degree anyway)

    Most of the BSc compsci courses focus on teaching you HOW to program, so that you don't really worry about the actual languages - so you'll know what the idea of a function is, and how to write it in one language, so you can just google "how to write a function in <insert language here>" and work from there.

    Still, to answer your question of what they'd teach, in concrete form, here's what they covered in UCD:
    C++ - yup, but not until 3rd year.
    ASP.Net - no, although by the end of 1st year, you should have a basic grasp of how to program in Java - so if you're able to reason "This bit in ASP.Net is like this bit in Java, so I can do Y", then you can pick up any language you fancy (although some will be harder than others).
    CSS, XHTML, HTML - (X)HTML in the web design course, with a tiny bit of CSS and Javascript throw in at the end, but not enough to do anything fancy with it (I didn't really learn what I needed to until I hit my first proper job - but I picked it up easily enough), but if you have a serious interest in web design, it's enough to get you to know what the pros are talking about, so you can learn from there.

    Honestly, they didn't cover a whole lot of concrete technologies like XML or anything like that. One of the reasons they don't do that in a university is that something else will be in fashion 5 years from now, so they'd rather teach you the things that all programmers will still have need to use/understand then, like how to organise data in a reasonable way for what you're doing.

    By the way, these two subjects you mentioned:
    4) Concurrent programming
    5) Programming language implementation
    are probably very hardcore modules in the course. Concurrent programming is a very hard thing to get right, and programming language implementation threw my head for a wee bit (although both topics are extremely interesting), but you don't really touch either subject until you're well into your degree. :)

    Of course, with all of this, you won't know whethere you want to choose CompSci or Maths if you're choosing your CAO choices now. One thing that a lot of places offer is a General BSc, you pick 4 subjects for your first year (one of which has to be maths, generally) and you keep 3 for your second year, and then 2 for your third year. By the end of your second year, you should have a very good idea which subjects you want to take for your 3rd and 4th years. In UCD, the Maths BSc follows the structure of the general BSc but pre-chooses maths subjects for you, while the compsci BSc pre-chooses compsci subjects for you - as far as I remember, it was easy enough to drop into the general stream from a specialised stream, although it's difficult enough to jump from one specialised stream to another - but not impossible). It's worth mentioning that by the time you hit 4th year, how you came to 4th year is pretty much irrelevant.

    Now, just because I happen to know some people still there, unfortunately some of the best compsci lecturers in UCD have left because their initial contracts weren't renewed (due to cutbacks). As a result, 3d graphics is no longer a good option for 3rd year (seriously, that lecturer was VERY knowledgable in his field), although a lot of the AI staff are still around. This is probably true for a lot of universities though.

    The best way to find out about this sort of stuff is to go to the open days. Talk to the lecturers and see what sort of subjects they like... They'll probably roll off a nice little sales pitch at first, but see if they can explain what they think is cool about their topic. If you come away thinking "Wow, that sounds cool", it may help you decide where you want to go, and what to study while you're there. :)

    Anyway, good luck,
    Aoife


  • Registered Users Posts: 2,781 ✭✭✭amen


    First-off, it depends how much you like Maths. When I say maths, I mean the really trippy stuff. What I'm talking about is stuff like n-dimensional geometry, fluid dynamics (never touched it myself, but even my hardcore math-nerd friends found it tough), and things like that. If that sounds fun and doable, I'd suggest maths as a subje

    wow we did all that as part of an Applied Physics degree plus all the other physics stuff, programming (assembly 8086, C, pascal) etc


  • Closed Accounts Posts: 198 ✭✭zoe


    Wow Aoife, I didn't think anyone would post so much info!

    I have to say the trippy maths does really interest me, as maths is the one subject I've had a little talent for.

    I'll go and find out exactly what computing modules are in the mathematics degree as there are various computing modules available in this, even though it doesn't state 'computing' in the name of the degree.

    I'm just back from being out at class all day, and I'll have to re-read your post again tomorrow (when I'm not so exhausted) as it's so detailed!

    Thanks again, I really do appreciate it!! :)


  • Registered Users Posts: 7,468 ✭✭✭Evil Phil


    You could always do the Maths degree and then do a gradute diploma in development if you wanted to do both.


  • Advertisement
  • Registered Users Posts: 1,922 ✭✭✭fergalr


    Do you want to be a good mathematician?
    Do you want to be a good software developer?

    If you want to be a good mathematician, you are probably going to have to do a maths degree at some stage.
    You'll do some mathematics during a CS degree, and you should be able to pick up more afterwards. Theoretical computer science isn't too far away from certain branches of mathematics, so you'll be ok at those. But unless you dedicate serious time and effort to it, and essentially do a maths degree in your spare time, you aren't going to have the sort of broad mathematical understanding that a maths graduate will. If you want to do original, hard core maths research, you'll probably end up having to do a maths degree or something really close. (and then maybe a masters or phd).

    You should be aware that the experience of maths at university is quite different to that a school (I'm a CS grad, but I'm pretty sure a maths grad would agree). Make sure you know what you are getting yourself into! You need to be willing to spend lots of time doing some very abstract and very theoretical mathematics if you do a maths degree. A lot of people seem to like studying this sort of thing for its own sake (because its beautiful, interesting, etc). Mathematics is not necessarily a very applied discipline! Make sure you are OK with that if you sign up to do maths.


    Computer Science is a funny discipline.
    I was reading something by Paul Graham recently where he was arguing it was closer to painting or one of those other crafts, than anything like engineering. There's some merit to that, although I'm not sure I'd fully agree.

    Computer programming involves a lot of hands on practical skills. Theres a lot of craft involved. You do a lot of programming during a CS degree. Do not sign up to a degree in computer science without at least some idea of what computer programming is about- do some programming, somewhere, first.
    Computer Science (eg algorithm design, graph theory, limits of computation) can get quite mathematical and theoretical. Its not that much like the discipline of computer programming, except that it just so happens that a lot of the problems we are interested in solving using computers as programmers require knowledge of computer science and algorithms.

    So, you could be a programmer or a software developer and not have to spend much time on the hard CS problems - say, because you write GUI code in Swing for a living, or because you do backend web development.
    Some people will say that you'll never be a really good programmer without the more theoretical, mathematical side of CS too; and its quite fashionable in some companies to interview people, and reject them unless they have that side of things nailed - but this is controversial, you'll meet plenty of developers who tell you that they dont need to know how a fast sorting algorithm works, as long as they know when and when not to use it. Theres a tension in CS between the mathematical, vs applied engineering vs flat outright hackery aspects.


    If you come out of a maths degree, you won't have a very thorough understanding of how computers work at a deep technical level. You'll need to put in a lot of time to learn to program, and then more to learn to program effectively. Theres a lot of knowledge between being able to code an implementation of a mathematical model in C, and being able to architect and design a large piece of software. Some maths people underestimate that. You could probably learn a lot of this in industry though, if you'd be willing to work at it and learn as you go.

    If you really want to do both mathematics and software development, I would do mathematics in college, and software development as a postgrad, rather than the other way round, which would probably be much harder to do.

    If you do maths in college, with about 2 years retraining you'd pick up a lot of the relevant CS stuff. Your mathematical background would stand to you enormously. If you wanted to do some sort of high performance computing, or work in an application domain of computers that was quite mathematical, this would be even more true. On the other hand, if you wanted to write GUIs in Swing, you would have to spend a lot of time learning all the software engineering stuff, and learning how to use software frameworks - things that a self-motivated CS grad would have covered in their college time.

    I really enjoyed CS in college. I like the style of problem solving a lot, and I'm very grateful for the skills I learned that taught me how to approach and break down problems, of all sorts. I also liked the nice blend of abstract thought, and practical programming (I think programming is a lot of fun, and can be a good break from learning rigorous abstract concepts).
    I'm currently doing postgrad research that is quite abstract and mathematical in its nature (lots of graph theory, complex systems) in a computer science department, but I worked as a software engineer programming for a few years too.
    Sometimes I think that perhaps I should have done mathematics to get a better mathematical grounding, but I really enjoyed my time in college, and learned a lot of really useful things, so overall CS was probably the best choice.
    If I did decide I'd like to learn about, as an example, C++, ASP.net, CSS, XHTML, HTML, would I be best to study mathematics as a BSc and also a part-time class specialising in such programming?
    HTML, CSS and XHTML aren't really languages. They are more internet technologies. They aren't that relevant to a lot of programmers, and they are a very applied set of things to learn about.
    Those are the sort of fairly advanced tools that you'd probably learn about on the job, or when specializing in a specific application domain, rather than when doing an undergrad of any sort.
    You might well learn C++ as an undergrad in CS - and maybe in maths too, but in think you're more likely to learn C in a maths course.

    Basically, that list above would be a bad set of things to decide to learn about in your spare time from a maths degree, but maybe a good set of things to learn about before going for a web development job (say in 4th year college, or after graduating from a CS degree).
    I'd go so far as to say that in a good CS degree, you shouldn't spend *too* much time learning about those things either, because they are very applied, and an undergrad should teach you a broad understanding of the area.
    Or perhaps studying just a computer science BSc? I have looked at the modules of a possible computer science degree and the programming modules are:

    1) Fundamentals of programming
    2) Games programming
    I like games programming, its fun. but its not really something that should be on a CS undergrad - I'd be suspicious that course is there mainly to convince people to do the course, because games programming sounds fun, rather than because it'll make them better programmers in the long run.
    3) Software engineering
    4) Concurrent programming
    5) Programming language implementation
    These are advanced topics. You aren't going to do know about them coming from a maths degree, but you should know something coming from a CS degree - you might have to teach yourself a lot about these specific areas, depending on the degree in question - some places are better than others at teaching software engineering, and some courses don't teach programming language implementation, because its quite specialised. Most should probably be teaching concurrent programming at this stage! (its gotten more important recently)

    Hope these thoughts are some help - feel free to ask more specific questions...


  • Moderators, Society & Culture Moderators Posts: 9,689 Mod ✭✭✭✭stevenmu


    NUI Maynooth, and presumably other colleges too, do a "Science" program which allows you to specialise later. As part of my degree I did 4 subjects in 1st year, Comp. Sci, Maths, Chemistry, Mathematical Physics. Then 3 in 2nd year (dropped chemistry), 2 in 3rd year (dropped physics) and then just Comp. Sci. for 4th year. I came out with an honours Comp Sci degree and a pass/general Mathematics degree. Some people did 3 subjects in 3rd year and finished after that year with a general science degree and others kept 2 for 4th year and got dual honours degrees.

    I'm sure there's other similar programs available that offer that type of flexibility as well.


Advertisement