We've all had the experience where a code that we swear was working perfectly 6 months ago is giving wrong answers (or crashing) today. This is exactly the type of problem that software engineering practices were designed to prevent. We will introduce some basic concepts from software engineering that are designed to make your life as a scientist easier. These include version control, unit and regression testing, debugging and profiling, safe code styles, prototyping and scripting, build systems, and automated tools for detecting memory issues. The talk is targeted to students who are beginning to work on codes for their research either individually or in a group. Some examples from my own codes will be used to illustrate these ideas. When used properly, software engineering practices can help you prevent and recover easily from bugs.
This workshop is being sponsored jointly with the Stony Brook Astronomy Program: http://astro.sunysb.edu/astro/seminars.html