Writing Clean Scientific Software

Webinar
ECP

The IDEAS Productivity project, in partnership with the DOE Computing Facilities of the ALCF, OLCF, and NERSC, and the DOE Exascale Computing Project (ECP), organizes the webinar series on Best Practices for HPC Software Developers.

As part of this series, we offer one-hour webinars on topics in scientific software development and high-performance computing, approximately once a month. The July webinar is titled Writing Clean Scientific Software; and will be presented by Nick Murphy (Center for Astrophysics, Harvard & Smithsonian). The webinar will take place on Wednesday, July 12, 2023, at 1:00 pm ET.

Abstract:

Most scientists are largely self-taught as programmers. Even many of us who spend most of our time coding have never had formal training in writing software. This webinar is intended for students and scientists who have some experience writing code but who have had to learn mostly on their own. The webinar will describe tips and strategies on how to write readable, reusable, and maintainable code. These tips include writing short functions that do exactly one thing with no effects, and measuring the length of a variable name by the time needed to understand its meaning rather than by number of characters. The webinar will describe strategies for restructuring a complicated function into smaller and more manageable chunks, and provide tips on how to make the best use of comments and error messages. Overall, the webinar will embolden the CS&E community to think of code as communication.

Speaker: 

Nick Murphy is an astrophysicist and research software engineer at the Center for Astrophysics in Cambridge, Massachusetts. Nick attended the University of Michigan as an undergraduate before heading to the University of Wisconsin for graduate school in astronomy. Most of Nick’s research has involved simulating plasma processes in the solar atmosphere. Nick co-founded the American Astronomical Society’s Working Group on Accessibility and Disability, and is now a member of the APS Division of Plasma Physics Diversity Equity and Inclusion Organizing Collective Committee. Nick is one of the core contributors to PlasmaPy: an open source Python package for plasma research and education.