Programming Science


So a few Scientists and a few developers met last Wednesday. It was hard to know where we were going to end and thanks so much to everyone that participated. The following is a summary of the tips we (scientist + developers) thought was a good idea

Tips for scientists writing code (1st Round):

  • Talk to other scientists that work on similar projects and share a list of your most used functions (I cant remember the name of the person suggestion
  • Every now and then meet up with other scientist writing similar code to you to talk specifically about the code you write, after all if you know the tools you are working with better, you are bound to be more productive
  • Use source control. There are pretty good open source alternatives and many places that offer free storage. Some source control options: Git, Mercurial, subversion. Some places to host your code: github, bitbucket, google code, codeplex
  • Use variable names that indicate what you are talking about.
    • Some bad examples: your_cat_name, sss, ttt, etc. Some good examples: portionOfSphere, portion_of_sphere.
  • In the case of IDL, avoid for loops and try to use functions
  • Try to get used to reading others people code so that you realise where you can improve, or point out things that can be done i na more effective way

 Help a scientist day

The above is all well and good, however. We were also thinking about collaboration. So Philippe came up with a great idea: Help a scientist day.

  • A scientist submits (somewhere to be discussed) a problem she or he thinks it could be solved with some help of more developers
  • people can ask questions about the idea (either technical details or just to check that its a problem similar to theirs)
  • People can vote on ideas (no need to sign up )
  • The ideas with most votes (that are doable) will be the ones that will be implemented by developer during “Help a Scientist Day”

So, we need to organize this day, please comment on G+ so we can get this going


3 Responses to “Programming Science”

  1. 1 Philippe Duval

    Just a note: I think ‘Help a Scientist Day’ is not just about solving some cool scientific programming problem: There is to be a learning experience going both ways:
    * The scientists need to be ready to arm themselves with patience and explain the science behind the problem to the devs
    * The devs need to be ready to arm themselves with patience and explain basics of appropriate programming best practices to the scientists.

    so the day really is ‘Help a coder do science, help a scientist do code day’ but I agree that’s a bit unwieldy

  2. “A scientist submits (somewhere to be discussed) a problem she or he thinks it could be solved with some help of more developers”

    This should probably be a fairly high level description so that lay people can get their head around it, but should probably include:
    1. Result description.
    2. Proposed solution algorithm
    3. Required language for solution (although maybe not much help to get for IDL)
    4. Constraint on the running solution.
    5. Supporting algorithms. There are many algorithm implementations out there and it may help come up with a solution in a different language.

  3. “(although maybe not much help to get for IDL)”

    My guess is that every one in our group is only proficient in IDL. I know that for myself, I would not do a science project in something other than IDL at the moment. I would guess David and Shane would be willing to try python, however. I’m not saying I wouldn’t try to do something in another language with the help of the pros, but I only know IDL.

    Any way, have David send us all an email when you know where you want to post the ideas.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: