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!

Computer Programming for Astrophysicist

  1. Jul 8, 2013 #1
    Hi Guys,

    I'm going to start my undergraduate degree in Astrophysics at Columbia University this Fall. From the various conversations I have with professional Astrophysicists, it seems like i have to know computer programming on top of astrophysics, if i want to work in the field. I have ZERO to VERY, VERY LITTLE experience in computer programming ( honestly, I did some MS-DOS and LOTUS 123 in the 90s, but I've completely forgotten how by now ! ). What courses / computer programs should I learn. Which ones are applicable for Astrophysics/Physics ?
  2. jcsd
  3. Jul 8, 2013 #2


    User Avatar
    Science Advisor
    Homework Helper
    Gold Member

    While there are some popular computational-physics textbooks (Gould-Tobochnik, Giordano, Press-Teukolsky, etc... [http://sip.clarku.edu/books/computationalphysics.html ] ) and popular computational languages (java, python, c++, matlab, mathematica, etc...), it might be best for you to get advice from your astro professors.... since they are working in the field and likely have preferences that you should follow if you wish to work with them.

    From poking around the Columbia Astronomy website,
    http://www.astro.columbia.edu/ [to Academics, Undergrad]
    www.college.columbia.edu/bulletin/depts/astro.php?tab=ugrad [to course listings]
    to the course description for "ASTR W4260x Modeling the Universe"....
    http://www.columbia.edu/cu/bulletin/uwb/subj/ASTR/W4260-20133-001/ [Broken]

    ..and then with google...
    Last edited by a moderator: May 6, 2017
  4. Jul 8, 2013 #3


    User Avatar
    Staff Emeritus
    Science Advisor

    Most computational physics programs are written in Fortran or C++. The push these days is object-oriented programming.

    Python is useful, but mostly for script programs that manipulate data, e.g., I/O arrangement. In one system, we use python script files to generate a finite element (FE) model (mesh) for use in a FE simulation.
  5. Jul 8, 2013 #4
    I think you should have a look at this: http://www.codecademy.com/learn At first glance it looks like it the equivalent of khanacademy for learning how to program, looks like a nice guided tour to the fundamentals.

    On the side, try getting started with LaTeX (grab texlive2012 and texniccenter if you're on Windows most of the time) and grab hold of a few good templates for your projects, homeworks, lab reports. It'll be a little more time consuming than doing everything in Word at first, but it will pay off and you'll be happy you learned how to use it later down the line when you're preparing your senior thesis...
  6. Jul 8, 2013 #5
    The short answer is it doesn't matter. You should just start coding something in whatever language. Use your imagination and try to simulate something in a fun way. After a while, if you get the programming bug, you will become curious and explore other languages and a lot more. Maybe python and PySci is a good place to start. But the important part is about realizing that in programming, you can pretty much do anything you want, and harness that.
  7. Jul 8, 2013 #6


    User Avatar

    Most astronomers program in IDL, but you need to pay for a license. So don't worry about that for now. The point is to learn some programming in any language, and it's easy to pick up a new programming language once you know one - it's just syntax from there. The real goal of learning programming is to figure out how the computer thinks, and how to tell it to do something. There are plenty of resources online for learning Python, so start there. Like others have suggested, learning some Linux commands would also be useful. If you have a Mac, great. Open up a terminal window and get started. If you have Windows, try a dual-install of Windows and Ubuntu.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook