1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Physics/Comp Math vs. Physics/Comp Sci double major

  1. Jul 2, 2012 #1

    As the title suggests, I am interested in pursuing a double major in either physics and computational mathematics, or physics and computer science. My esteemed interest is scientific computing (whether it be for biological or physical purposes), but I am also interested in artificial intelligence and many other aspects of science. I am in school for the sake of knowledge, and am curious which combination you all feel will make me a better scientist.


    That's the comp math / comp sci curriculum. Yes, I am going to ASU. Lay off the jokes. :tongue2:

    edit: on one end I think maths might make me a more efficient programmer... on the other end I worry that I might end up going through a bunch of proofs that I never use again, and miss out on functional knowledge of CS.

    Thanks all
    Last edited: Jul 2, 2012
  2. jcsd
  3. Jul 2, 2012 #2
    I'd go with the computational mathematics. I wouldn't think of the math as going through proofs you won't see again. You learn the insight behind these proofs and going through them helps to understand the theory underlying the math.

    Going through the courses, I only saw maybe two courses that are entirely proof based: intro to proofs and an analysis (theoretical calculus). Your program gives you the option to take a more applied courses instead of those however. Whatever you decided depends where your interests and goals lie.

    The CS courses you will be taking in the computational math sequence is more than good enough. Another good thing about going with computational math is the option of taking useful electives such as PDE and complex analysis. Of course you can also take them in CS if that interests you.
  4. Jul 2, 2012 #3
    TY for the perspective. What did you study in undergrad?
  5. Jul 3, 2012 #4
    I'm studying physics and math at the moment. I have two more years before I graduate. I am almost finished with my math coursework, though.
  6. Jul 3, 2012 #5
    that's cool man. How do you feel your knowledge of computing is? Do you feel like you are gaining insight from your work in mathematics and physics?
  7. Jul 4, 2012 #6
    I will go the opposite of Pasta here and say go for CS. I'm currently studying physics, and doing CS on my own in preparation (hopefully) for a PhD in CS.

    I think that studying physics makes it much easier to dive into the other math disciplines. In fact, I'm rather capable of learning most math that I'll need on my own. Of course, I can say the same about CS (in fact I'm actually doing that right now), but it's more difficult I think. The CS material isn't inherently easier or more difficult than applied math, but it's different enough from physics that it requires a good amount of fundamental skills that you probably won't get.

    One of the things that helped me a LOT was the fact that I'd started programming when I was 10 years old, and I kept that up through school till I got to college, and got my first research position as a freshman largely because I could program. The experience with that has helped me understand things like algorithms and data structures much more easily than what it might be like for a typical student.

    Doing physics has helped me with the mathematical parts of CS theory, such as graphs and the like. I've needed to learn a lot of different maths for the research I do (for instance, graphs, fourier analysis, and numerical analysis have helped a lot recently in working on quantum computation), but I've been able to learn them rather easily with my background in physics. But doing CS from scratch on my own would just be too difficult.

    There is also the argument of diversity. There are things in CS that you will never touch only doing applied math and physics, such as (you mentioned) AI/machine learning, robotics/control theory, algorithms, complexity and computability, computer architecture, and others. These are the areas that I personally feel interested in, so I've listed them here. I've only been exposed to these topics because I've taken an interest in them, bought books and read their respective Wikipedia articles.

    I think if you are curious about both fields and you want to maximize the amount of stuff you learn, you would be happy majoring in physics and CS. I wouldn't trade my physics education for the world, even if I may not use it much in my chosen career path. But it's changed the way I think. The same can be said about CS as well, though. Computers are a huge part of modern day society. Knowing how they work at a fundamental level, being able to instruct and utilize them, and using them to do higher level work is essential for functioning as a competent technical individual (in my opinion).
  8. Jul 5, 2012 #7
    TY for the reply hadsed!

    I'm still significantly on the fence about this...
  9. Jul 5, 2012 #8


    User Avatar
    Science Advisor

    Hey Gfrant and welcome to the forums.

    With regards to math making you a better programmer, I would say not necessarily.

    Math does help with being able to structurally break things down, establish logical steps for design, implementation, algorithms and so on, but it does not always make you a good programmer.

    The thing about programming is that you are dealing with information. Mathematics typically doesn't care about the nature of information: we usually have numbers mostly real and complex for science and engineering, and discrete for discrete math and number theory.

    Becoming a good programmer means knowing about information and its context. Knowing about information and its relation to how its used will make you a good programmer and mathematics does not aid this, as it's not the focus of mathematics to do so.

    Programming on normal PC's comes down to two very important things: state and flow-control. You can do these in many ways for many applications, but you will need to build up an intuition of tracking the state of your machine and knowing how the flow-control of commands operates.

    You'll start off with very basic examples: simple programs that use a couple of variables, no functions, or recursion and the flow-control will be in one routine top to bottom. Then you will start adding loops, branch statements, functions, recursion, and so on. Later you will look at multi-threaded environments and operating system conditions if you take that elective which deals with how computers really work with things like hardware and software interrupts.

    If you know how the state and flow-control affects any program, you will know how it works, how to effectively debug code that doesn't work, and how to read and write code.

    The science and the rest of it doesn't really have to do with programming, but in terms of programming the above is the most important thing to keep in mind IMO (I used to be a programmer).
  10. Jul 5, 2012 #9
    TY for the reply Chiro!

    I guess programming wasn't the best example. As many have pointed out, there is way more to computing than just programming. I just didn't want to say, "which degree will make me a better computer scientist?" as computer science is in the title of the degree program. That is essentially what I was getting at, though. Would an understanding in mathematics somehow make me more adept and well rounded when I then try to learn about computer science? Also, Chiro, do you think one combination is more powerful than the other?
  11. Jul 5, 2012 #10
    If you're doing physics, you likely have a good background in [applied] math (it's somewhat of a requirement to be a good physicist). The only thing math helped me with CS is the more theoretical aspects, when you prove an algorithm's complexity, for example. But that is fairly easy to learn without knowing a lot of math, and even then a first course in proofs would be sufficient for being comfortable (that is, higher level maths won't help you much).

    Still, one thing I should note is that depending on what sort of work you want to get into as a computer scientist, you may want to focus on certain types of math. Namely, linear algebra, graph theory, and probability. Still, these will be taught to you in a CS course, and definitely will be something you'll pick up as a physics major (maybe not so much graph theory). In fact, in your first year you will probably take a course titled similar to "Discrete Math" where you will learn all of this. Being a physics major will only make you better at this. Note that doing higher level mathematics won't help your competence in these areas because they require skill in the application of the maths, not the discovery or proofs (although both can be useful).
  12. Jul 5, 2012 #11


    User Avatar
    Science Advisor

    For the theoretical work, definitely the answer is a yes as most of the computational and computer science theory is just a form of mathematics. Apart from this though, mathematics does provide a new template for analytic thinking that transcends into many areas including but not limited to programming and software development.

    I don't know about one combination being more powerful than the other: the key is to do what is aligned with your own specific focus.

    Maybe you can outline some kind of specific speculative projects that you think you would like to move towards for more specific suggestions.
  13. Jul 7, 2012 #12
    computational biophysics... i've been interested in this field for a very long time..
  14. Jul 7, 2012 #13


    User Avatar
    Science Advisor

    I don't know anything about computational biophysics, but if a lot of it deals with modelling some sort of system of differential equations (linear/non-linear, partial, whatever), then this kind of thing is going to involve a tonne of numerical analysis including stochastic and non-stochastic techniques.

    My guess is that in the above case you will have some kind of specific model that needs to be analyzed and then implemented in the most optimal way. So if someone (or yourself) has figured out a set of constraints in the form of DE's, boundary conditions, and other things (maybe stochastic properties if they exist, constraints for parameters), then the computational people will have to develop the techniques and theory to look at this phenomenon in a deep and optimal manner.

    This kind of thing is more of an applied math scenario.

    Also the other thing to take into account is whether its applied math, physics, or engineering. Engineering has a specific focus that means having models that are very strict, physics is often less strict, and then applied math is even less strict again. This is a rule of thumb and not an absolute definition, and it ultimately depends on the application.

    I base the above speculation on the fact that physics is basically applied math with a significant portion of that math being calculus including differential equations of all sorts.

    I would take courses on DE's,PDE's,Numerical analysis,Linear Algebra,and as much of that kind of math as you can as well as the relevant programming/comp-sci subjects for preparation: but always do your own homework to double check for yourself to come to your own conclusions.
  15. Jul 8, 2012 #14


    User Avatar
    Science Advisor

    There is also way more to programming that just computer science.

    Being a good programmer is one of the most useful skills one can possibly have in any kind of quantitative science. And what many people do not realize is that in programming, your skill level determines not only how quickly you can do something---on an exponential scale---but also if you can do something at all. Or indeed, if you even would /consider/ doing it. If a domain specific application would be best served by rolling your own symbolic computer algebra system, global optimizer, massively parallel data scheduler, compiler, etc. would you be able to do it? I know many people who became very successful in physics primiarily because they answered "hell, yes! no problem." to these kinds of questions, and were willing and able to learn, improve, and do a good job on *programming* in in such science applications.

    So what does this say about your choice of major? I do not think it matters much. In the end it is always the actual science and proficiency in auxiliary skills (like programming, writing, presentations, etc) which counts, and the latter are best learned through practice in actual projects, not in formal courses.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook