Wednesday, February 23, 2011

Scientific Programming and Non Computer Scientists

  Increasingly, scientists nowadays are required to code and test their own programs for their area of scientific research. Nature posted an article about recent trends and common pitfalls that scientists run into when they generate their own code. The article found that most scientists have no formal education when it comes to coding and most everything they know is self taught.
Statistics of polled scientists

  Various problems can arise from a lack of formal training while coding. Program breaking bugs may slow down the scientist more than a programmer. Even if the the programs works, the code may contain many small bugs that can alter the results in imperceptible ways, such as a research team out of Scrips Research Institute in California that had to redact 5 published papers because there was a flipped minus sign in the program that altered their output.

  Many scientists verify their code using validation testing, where the scientist would input known values with a known output and compares that to what the program outputs. This method will often miss tiny mistakes that make themselves apparent in other data. Many programmers use more rigorous testing methods, breaking code in to small chucks and testing each chuck individually, then testing how the chucks are put back together.

  Requiring verbose commenting is also a practice that many self taught scientists may ignore. A lack of comments makes understanding or changing code more difficult. A lack of comments also makes using code generated by someone else or someone else using your code confusing and nearly impractical. Encouraging scientists to form groups to share and talk about their programs can foster better communication between scientists and better code.
 
  Seeing as the class is filled with majors other than computer science, I had a few questions about your experiences with coding. How often are you asked to program in your other classes or job? What kind if training have you received regarding coding, such as classes or on the job training, or did you teach yourself? Would you like more classes about proper coding techniques or are they more of an annoyance than a help?

7 comments:

  1. In Geological Engineering they require us to do some Fortran in our data management class. It seems to me though that this would only be necessary to learn for those interested in becoming full-time research scientists. I know I will not be doing any programming when I get outta here working for a consulting company.

    ReplyDelete
  2. As a chemical engineer I do not have to do much programming however I do have experience on it from high school. I think that a simple introduction to programming class would be good for everyone to take since it helps you understand a lot more on how programs work and gives you a good problem solving mindset.

    ReplyDelete
  3. Ok, that's fascinating--I had no idea scientists were required to do this on their own. I wonder why they don't do more interdisciplinary work, where they're writing grants with programmers? Thanks for explaining this. I learned something new here.

    ReplyDelete
  4. As a Mechanical Engineer we do one actual programming class, and use programming in 3 or 4 other classes heavily. Even with a total of 5 classes that I have programmed in, I don't feel comfortable at all doing my own programming. Thankfully I know alot of CS majors!(whom I would feel comfortable consulting with professionally)

    ReplyDelete
  5. I program a lot for my job, but I've only had one formal programming class. I spent a good bit of time writing unit tests. As a physics major, we actually do quite a bit of programming for some of our classes, yet we actually aren't required to take any programming classes... strange.

    Jen, several of my coworkers, physicists and mathematicians, really hate programming. Nearly all scientific fields require programming at some level.

    ReplyDelete
  6. A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
    website: geeksforgeeks.org

    ReplyDelete
  7. A Computer Science portal for geeks. It contains well written, well thought and well
    explained computer science and programming articles, quizzes and practice/competitive
    programming/company interview Questions.
    website: geeksforgeeks.org

    ReplyDelete