I am here at the 227th meeting of the American Astronomical Society (AAS) in Kissimmee, Florida. In the past few years, these semi-annual meetings have offered professional development classes, and many of these are in the area of software engineering and applications development methodologies. Demitri Muna and his colleagues run the SciCoder workshops, which aim to teach robust development skills to astronomers, such that they can process that extraordinarily rich (and big!) data sets now available, and this year he and Ivelina Momchev have brought this workshop to the AAS.
The aims of the AAS workshop are, quoting from the introductory slides, to help scientists with the following:
- Begin a transition to writing object-oriented code.
- Learn to write code intended for sharing and reuse from the first version.
- Learn to write command line scripts.
- Separate “bookkeeping” code from analysis code document code.
- Document code.
All the workshop materials (data, presentation, solutions) are available in Demitri’s Git repository: https://firstname.lastname@example.org/demitri/aas227python.git.
A particularly useful part of the workshop was the introduction to object oriented code and how it is used in Python – recommended for anyone learning this important concept. See these slides here. Here is just one sample of the course presentations:
The class worked through exercises aimed at illustrating the above goals. These exercises involved writing a Python script to read the 1D spectra measured with the Hubble Space Telescope (HST) and to read the redshift probability distribution, plotting them and performing some analysis on them. Subsequent exercises involved refactoring the script into a class.
I would recommend the materials and exercises to astronomers with some Python experience who want to learn how to develop more complex and sustainable tools for processing astronomy data.