This talk will touch on best practices and approaches to building software and simulations for scientific computation. These include concepts covered in the paper 'Best Practices in Scientific Computing' (Wilson, et al) as well as concepts covered in 'Effective Computation in Physics' (Scopatz, Huff). It describes a set of practices that are easy to adopt and have proven effective in many research settings. None of these practices will guarantee efficient, error-free software development, but used in concert they will reduce the number of errors in scientific software, make it easier to reuse, and save the authors of the software time and effort that can used for focusing on the underlying scientific questions. This talk will also touch on pain points and lessons learned from a series of case studies of real scientists doing their best, recently published in 'The Practice of Reproducible Research' (Kitzes, Deniz, Turek editors).
Dr. Kathryn Huff is an unapologetic advocate for open reproducible scientific computing and for emissions-free base-load nuclear energy. She is currently a Blue Waters Assistant Professor in the Department of Nuclear, Plasma, and Radiological Engineering and the National Center for Supercomputing Applications at the University of Illinois at Urbana-Champaign. There, she leads the Advanced Reactors and Fuel Cycles Research Group. She was previously a Postdoctoral Fellow with both the Nuclear Science and Security Consortium and the Berkeley Institute for Data Science at the University of California - Berkeley. She received her PhD in Nuclear Engineering from the University of Wisconsin-Madison in 2013 and her undergraduate degree in Physics from the University of Chicago. Through leadership with the Hacker Within, Software Carpentry, SciPy, the Journal of Open Source Software, and other initiatives, she strives to advocate for best practices in open, reproducible scientific computing. With colleagues, collaborators, and friends, she has co-authored two books to help scientists with these practices.