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!

Is Computer Science physicist friendly?

  1. Dec 10, 2008 #1
    I'm soon to be finishing up my bachelors in physics and I'm wondering if it's possible to go into a PhD program in computer science? I haven't taken any courses at my university in the CS department, but I've spent most of my life learning and fooling around with computers (probably more than the average person who says that).

    I know that I would be at a disadvantage considering I've not had the programming classes, or any other class for that matter... Would they even accept me? If so, would they allow me to take courses to catch up to speed?

    Thanks for any help!
  2. jcsd
  3. Dec 10, 2008 #2
    You will have all the math you need but will be lacking greatly in Computer Science, I would the the key courses are:

    2 semester in Data Structures
    Operating Systems
    Discrete math(if you haven't taken it in the physics program)
    Theory of Computation

    You have to know that programming != computer science though, it is it's own thing. Why do you want to switch fields? Interestingly, I am on the impetus of making the inverse switch over to the world of physics, albeit only for undergrad.
  4. Dec 11, 2008 #3
    When I was in grad school for CS, I shared an office with a student who had majored in physics as an undergrad. He was one hell of a programmer and engineer though... but it *is* possible!
  5. Dec 11, 2008 #4
    The reason I want to to switch fields is because I don't think that I will enjoy doing research in physics. All of my life I've loved computers, when I first entered college I was wanting to go for computer science/electrical engineering but it would have required me transferring to a different college. I just stuck with physics and have somewhat enjoyed the decision.

    I know that I do not have the experience in the computer science field, but like I said before, I've worked a lot with computers. I'm a decently quick learner when it comes to computer structure/operation.

    I just need to find something to do after I get my bachelors and I don't see physics being as good to me as computer science potentially could be.

    I'm trying to look over the course offerings on MIT's OCW site in computer science. Most of the things seem very interesting to me.
  6. Dec 11, 2008 #5
    What do you mean by "worked a lot with computers" and "computer structure/operation"?

    I took an electronics lab class through the physics department oddly enough which went into the details of how microprocessors work, including how they exchange information with other parts such as your mouse or keyboard, how programs are stored in its memory and how it does its operations.

    You haven't taken anything in computer science, so you can't really know. If you have only tinkered with the hardware, then you might enjoy electrical engineering more than computer science.

    Are you already done with your Bachelor's or do you still have some classes to take? You should take at least one programming class to get a slight taste of what computer science is about. Or actually, there are plenty of free tutorials online about programming. A class will ease you into it, but if you don't mind slamming your head against the wall you can still learn a good deal by only going online. Getting a book on programming wouldn't be bad, but they aren't really that useful once you get comfortable with programming. At that point the internet will have all the answers.
  7. Dec 12, 2008 #6


    User Avatar
    Science Advisor

    I'd be lying to you if I were saying you were not at a disadvantage having not taken any courses or done any work related to computer science.

    Computer science is like any other science. While it may not be as "intense" as physics, it still is a science that requires a lot of learning to really "get" what's going on. I'd compare to say working with problem sets in physics in that after a while you "get" QM or EM and in comparison after a while you just "see the code" and design, the algorithmic complexity, and everything else after a lot of experience.

    Like other sciences you need to actively partake in interactive understanding of the subject overwise it will be something more or less related to philosophy.

    Having been a programmer I speak from my experiences. I am undertaking a math degree and I consider mathematics like above, where you have to "do" maths to get it.

    If I can offer my perspective to learn about understanding computers one perspective you can understand is that a computers primary purpose is to make decisions and act upon them in some way. If you understand this you can relate a lot of what constitutes the science of computers, how we program them and the analysis behind this as well as all areas including but not limited to databases, algorithms, interactivity with interfaces and hardware: basically anything in this regard relates to the primary purpose of a computer making a decision.

    With your math training in physics you will should be able to have an advantage of making sense of how these decisions may be analyzed, structured and executed (and mechanics can often give a good sort of physical relational understanding to relating decisions down to atomic consituents but i'll leave that for another day).

    Once you have the decision perspective you will no doubt need a few other perspectives. Like others have mentioned topics that deal with representation (ie data structures) is important. But a lot of this is icing on the cake for what is at the heart of computer science which is basically decision theory. You can talk about turing machines and all of that stuff all you want but at the heart of every program, device whatever is a complex web of decision making.

    Coming back to your question like other departments they would most likely turn you down unless you could demonstrate to them that you had a solid grasp of the science. From what you've stated already it seems that you don't have this.

    If you decide to learn elements of computer science or start learning to program keep the decision mechanism in mind. Think about how everything from the structure of the language, to the interconnected components, to the algorithms to the data structures you use, to the interfaces that are used to connect to the system, to protocols to everything inbetween have evolved to make better, more accurate, more error-free, easier to code decisions.

    You should see that common functionalities have been built into a particular language or way of interacting with the given system and other things.

    Anyway this was a bit more than I intended to write. If you start going into this area good luck. My advice is to learn from the best way possible (like a uni or if you have the discipline some good books), but then again thats kinda obvious ;)

    Good luck with it all

Share this great discussion with others via Reddit, Google+, Twitter, or Facebook