Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

This is my first question. I love Mathematics; I love the logic and the problem solving. At the same time, I enjoy Computer Science and hope to go into Artificial Intelligence research after I get my Bachelors degree, i.e pursue a PhD in Computer Science. Are there any advantages of having a firm grasp of Mathematics to studying Computer Science? Also, would I be at a disadvantage in getting a Bachelors in Mathematics instead of Computer Science when applying for graduate school to study Computer Science, particularly at institutions with high quality research infrastructure, like MIT and Stanford? Also, in reference to the first question, could you please tell me the advantages of a solid grasp of Mathematics, if there are any?

Thank you.

share|improve this question
    
Yes. Logic is what you get... But you shall know something about CS before you apply, I assume. You cannot just go into a CS graduate school without writing some codes. –  Erica Xu Oct 27 '11 at 21:54
3  
Many CS degrees will teach you the math you need. I have a bachelor of math with a CS specialization and it has served me well. –  Anna Lear Oct 29 '11 at 0:55
    
I would get a dual major in applied math and CS. Many a student is doing this now a days. Added benefit: if you find out that you hate AI, then you will still have your cs & applied math and from there can switch to many other areas. If you are serious about AI research, you will need to have a math bg one day. I would do so as undergrad before specializing like crazy in AI only. Do not forget about booze, women and study abroad either. –  Job Oct 29 '11 at 4:58
    
Just a small comment about computer science. In today's world, computer science can and should be used for every single discipline. It always helps to learn Computer science plus whatever other field you are interested in. Learning computer science alone is likely to be less helpful than computer science + some other topic. Even if it's history or literature. –  Bob Nov 7 '11 at 10:09
add comment

8 Answers

You could get both at the same time. Many schools have a CS bachelors degree with a math/science emphasis that, once you've taken the required math courses for the CS degree, will leave you only a few courses away from the double major in math.

share|improve this answer
1  
It is so worth it! –  Job Oct 29 '11 at 4:59
add comment

If your eventual goal is to study computer science, then I think you should study computer science in college. Why not?

I'm not saying you shouldn't study math too, though. Several of my friends are double majoring in math and computer science or majoring in computer science and minoring in math. Rigorous computer science programs typically require you to take a large amount of math anyways, so many of the math requirements are knocked out. Further, you should realize that many upper division computer science courses are very proof based and "mathy".

But certainly, someone who studied computer science in college is more prepared for a computer science PHD than someone who didn't. Good computer science programs are very (very) difficult, and you'll be behind a lot of people who spent four years focused on these difficult concepts.

share|improve this answer
add comment

You might also consider, if your university offers it, an Applied Math program or degree. These often seem to provide a happy medium - a slightly more math-centric education, but exposure to many problems and research from other disciplines, including CS.

share|improve this answer
add comment

You say you like both Math and Computer Science. Are you good at both? How do you know that you are good in both?

To answer your question:

Are there any advantages of having a firm grasp of Mathematics to studying Computer Science?

The answer is yes, but most of the mathematics you need you will learn as part of the CS major. You probably won't need to be proficient in proving math theorems (which math majors should do) you need to understand some of them only. Pure math. subjects are not required, for example, Projective Geometry is not a must know.

You need to be careful when you persue a degree in Math. The study is very hard and from a career perspective, jobs may not be that easy to find. You need to have really good IQ to survive in Math related careers.

CS offers more applied careers than math would. This gives you chocie which is a nice thing.

Remember that what you like today is not necessarily the same things you will like 4, 10 or 20 years from now for CS. Mature universities have figured what is needed. If there is a deficiency, you should be able to take a course or two to cover for it.

The above is my opinion and is not based on any science.

share|improve this answer
1  
I worked with a couple of math majors turned coders and they were great at what they did. Math major is a good investment i\IMO, and the knowledge does not become less current just because MSFT just released yet another database access library. –  Job Oct 29 '11 at 5:01
    
@Job: Thanks for your comment. You are quite correct, however, considering the tens of thousands of dollars that has to be invested and 4 years of study, it is hard to justify such an investment for many. –  Emmad Kareem Oct 29 '11 at 8:08
add comment

The programs you are after should list prerequisites for entrance. Make sure whatever you take up will fulfill at least the minimum requirements at your top 5 schools. I would suspect that any graduate program involving computing would require a strong background in data structures and theory of computation.

If you know you abilities in math, and are confident that you will survive and thrive in that area, then major in math with a strong backing in CS (either a double major, as wshato suggests, or a major/minor). Graduate school has so much more to do with your passion for the subject and how well you grasp the fundamentals more than whether you took Math 305 or CS 440.

share|improve this answer
add comment

Should Competent Programmers be "Mathematically Inclined"? would be the Coding Horror blog entry about Math and programming that may be worth a read.

I hold a double Honor's Bachelor of Mathematics where Computer Science was one of my majors, for what it is worth. Concrete Mathematics: A Foundation for Computer Science would be a book recommendation if you want how Math can tie into Computer Science topics.

share|improve this answer
    
1st link - my thoughts exactly! During Bachelor studies we were studying math with math students for 3 out of 4 years. It was THE WORST IDEA EVER! So much useless crap that no one cares about when programming, and at the same time most of CS students couldn't do fizzbuzz. Now after 15 years of programming, when I'm faced with math problem, the solution comes automatically out of nowhere. It's intuitive and logic. –  Coder Oct 29 '11 at 9:17
add comment

If you are set on going into AI, you should really try and get an AI bachelor. I don't know if this is an option or not, and it might be more restrictive than a Math or a CS degree but if this is your dream you should follow it.

An AI bachelor, to put it extremely roughly, is a 50% Math and 50% CS degree. The University of Edinburgh School of Informatics (home of AIAI) pamphlet describes their AI degree as:

In first year you will study a general course in Informatics that includes programming, logic, the theory of computation, and the nature of information processing. You will study two other subjects in parallel. For most degrees this includes a Mathematics course tailored to the subject.

In the second year you will have specific Informatics courses that lay the foundations of Artificial Intelligence (such as reasoning, search, planning, inference learning, and language processing), further courses in Mathematics or your joint degree subject, and the possibility to continue with an additional subject.

In the third and fourth year (and fifth year for MInf) your studies will be focused on the discipline(s) of your chosen degree

To further add to the confusion, they offer five AI degrees:

BSc Honours in:

  • Artificial Intelligence
  • Artificial Intelligence and Computer Science
  • Artificial Intelligence and Mathematics Cognitive Science

BEng Honours in:

  • Artificial Intelligence with Management
  • Artificial Intelligence and Software Engineering

You can get a better idea of what they do but going through their open courseware.

If you have the option of an AI degree you should probably contact the university directly (all schools have undergraduate / prospective students advisors) and ask about the degree structure and what career paths it can offer you.

PS. I'm in no way affiliated with the University of Edinburgh :)

share|improve this answer
add comment

If you really want to study advanced math, do it now. The undergraduate years are critical for mathematical development. Your ability to learn serious math will peak soon, then start to decline. Learn as much math as you can now, and you will be able to apply it later. Take CS courses that interest you and have high mathematical content (e.g. algorithms, cryptography). Skip courses oriented to current technology (e.g. Database, OO programming, computer graphics). You can pick up that sort of knowledge easily enough on your own. If you are finding your undergraduate math classes too easy, then talk to profs about enrolling in graduate classes as soon as you can, or find a sponsor for some independent work on some problem that interests you.

Be sure to prepare for and take the Putnam Examination each year. There should be a Putnam study group at your school. Your results on the Putnam will give you a good idea of your relative mathematical talent.

If you can do math and have decent grades, I don't think you will have much trouble getting into graduate programs in CS, regardless of how much CS you did as an undergraduate. Any showing on the Putnam, even an honorable mention, will be quite impressive to selection committees. People switch fields all the time between undergraduate and graduate school. A degree in mathematics is great preparation for graduate school in Math, CS, Physics, or Economics.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.