Showing posts with label Scientific Computing. Show all posts
Showing posts with label Scientific Computing. Show all posts

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?