Intermediate Python for Astronomical Software Development
Modern astronomical research is tightly related to data analysis and writing software. While many university curriculums include introductory courses on programming, most astronomers never get a proper training on tools and best practices that help to develop reliable, reusable and maintainable software.
Intermediate Python for Astronomical Software Development (aka InterPython) workshop aims to mitigate this problem. It is being developed by the team of the TVS SC members, using the Carpentries Intermediate Research Software Development workshop materials as a foundation. Our goal is to create a short but comprehensive, astronomy-specific workshop that teaches the core skill set necessary for professional programming.
The materials are intended for mainly self-mastering mode of learning with the instructors' help when needed. The workshop can be taught as a whole or in parts, in an online or offline mode.
The workshop is being developed following the Carpentries standards and the materials are available under the Creative Commons Attribution License. Anyone can share and adapt them, and we encourage everyone to use these lessons for organizing your own workshops.
Fast Facts
Dates
1st Workshop
Feb 05-09, 2024
Git Intro
June 26, 2024
2nd Workshop
July 01-04, 2024
Demographics
For the 1st workshop, we had ~20 registered participants from the TVS SC community worldwide, with ~50% being undergraduate and PhD students.
Funding
LSST DA grant of $7500 for workshop developers and instructors honorariums.
Commitment
To develop astronomical software workshop materials and organize at least two workshops in 2024-2025.
The Materials
Contacts
LSSTSC Slack server, or email: shr.razim at gmail.com
Workshop Overview
The 1st InterPython workshop took five 4-hours sessions. For the first three days, the lessons implied self-mastering the materials with many practical exercises. In the last two days, the attendees worked in groups, mastering collaborative tools and best practices.
The 2nd InterPython workshop was rearranged to even out the learning load. The Git-related materials were extracted into a separate 1-day mini-workshop, and collaborative exercises are now included in every session.
The curriculum included the following topics:
- Virtual environments
- Jupyter Lab IDE
- Best practices for Jupyter
- Basics of Git and GitHub
- Python code style conventions
- Verifying code style with linters
- Unit testing
- Continuous integration
- Debugging
- Software requirements
- Software architectures
- Programming paradigms
- Code review
- Creating a Python package
- Collaborative tools of GitHub
The Workshop Developers, Instructors and Helpers
- Alex Razim, Ruder Boscovic Institute, Croatia
- Markus Hundertmark, ARI, Germany
- Riley Clarke, University of Delaware, USA
- Angelica Kovacevic, University of Belgrade, Serbia
- Konstantin Malanchev, CMU/LINCC, USA
- Rachel Street, Las Cumbres Observatory, USA
- Jennifer Sobeck, Caltech, USA
- Federica Bianco, University of Delaware, USA
- Azalee Bostroem, University of Arizona, USA
- Sid Chaini, University of Delaware, USA
If you are interested in contributing to the development of materials or joining the instructors' team, feel free to contact us!
Future Plans
We are continuously improving the workshop materials. Future plans include adding episodes on using professional project templates and best practices for writing software documentation. We will continue to offer workshops to the LSST community and beyond.