InterPython Workshop
Intermediate Python for Astronomical Software Development
Overview
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 proper training on tools and best practices that help develop reliable, reusable and maintainable software.
Intermediate Python for Astronomical Software Development (aka InterPython) aims to mitigate this problem. The workshop is being developed by a team of TVS SC members, using the Carpentries Intermediate Research Software Development workshop materials as a foundation. Our goal is to create a comprehensive, astronomy-specific workshop that teaches the core skill set necessary for professional programming.
The materials are intended for self-mastering mode of learning with instructor help when needed. The workshop can be taught as a whole or in parts, in online or offline format. Materials are developed following the Carpentries standards and are available under the Creative Commons Attribution License.
Quick Facts
- Funding: LSST DA grant of $7500 for workshop developers and instructors honorariums
- InterPython 1: February 5-9, 2024 | ~20 participants from TVS SC | Online format
- InterPython 2: July 1-4, 2024 | 41 participants across 5 science collaborations, 38 institutions | Online format
- InterPython 3: December 9, 2024 | One-day online workshop on testing and CI/CD
- InterPython HPC: August 18, 2025 | One-day HPC introduction with hands-on Bura cluster experience
- InterPython Poznań: September 17, 2025 | 1.5-hour session at LSST@Europe7 in Poznań, Poland
InterPython 1
February 5-9, 2024 | Online Format | ~20 Participants from TVS SC
This comprehensive four-day workshop was held online for all TVS SC members. Participants engaged in guided instruction and hands-on exercises covering professional software development practices.
Learning Objectives:
- Set up and use a suitable development environment with popular source code management infrastructure
- Use a test framework to automate verification of correct code behavior and employ continuous integration
- Design robust, extensible software through programming paradigms and design techniques
- Understand code review processes and employ them to improve code quality
- Prepare and release software for reuse by others
- Manage software improvement from feedback through agile techniques
Materials:
- Github Repository (pre-alpha version)
- Hosted Github Pages Website (pre-alpha version)
- Example Notebook and Data
InterPython 2
July 1-4, 2024 | Online Format | 41 Participants across 5 Science Collaborations
This workshop expanded participation to members of all LSST Science Collaborations. The same topics and materials from InterPython 1 were covered with participants from 38 institutions and all career stages.
Curriculum Topics:
- Virtual environments and Jupyter Lab IDE
- Best practices for Jupyter notebooks
- Git and GitHub basics
- Python code style conventions and linters
- Unit testing and continuous integration
- Debugging techniques
- Software requirements and architectures
- Programming paradigms and code review
- Creating Python packages
- Collaborative tools of GitHub
Materials:
- Github Repository (alpha version)
- Hosted Github Pages Website (alpha version)
- Example Notebook and Data
InterPython 3
December 9, 2024 | Online One-Day Format
This one-day workshop assumed participants had joined a software development team working on a light curve analysis project developed in Python and stored on GitHub. The focus was on testing, quality assurance, and continuous integration.
Topics Covered:
- Virtual environments, external packages, and Jupyter Lab
- Software testing using unittest, pytest, test parameterization, and defensive programming
- Automatizing code quality checks using GitHub CI/CD
- Automatically run unit tests using GitHub Actions
- Use Pylint to check code style conventions
- Measure code performance with Jupyter magic commands
- Profile resource usage with SnakeViz
Materials:
InterPython HPC
August 18, 2025 | Online One-Day Format
This one-day workshop provided an introduction to High-Performance Computing techniques, tools, and practices. Participants gained hands-on experience running code on Bura, a supercomputing cluster at the Center for Advanced Computing and Modeling at the University of Rijeka.
Topics Covered:
- Fundamental HPC concepts, techniques, and tools
- HPC best practices for scientific computing
- Hands-on use of the Bura supercomputing cluster
Materials:
InterPython Poznań
September 17, 2025 | Parallel Session at LSST@Europe7 | Poznań, Poland | 1.5 Hour Format
This workshop was held as a parallel session at LSST@Europe7 in Poznań, Poland.
Topics Covered:
- Setting up and using a software development environment
- Using integrated development environments
- Best practices and standards for Jupyter notebooks
- Tools for maintaining consistent code style
Materials:
Workshop Videos
The following recordings are part of the InterPython series and are listed here for easy access.
2026 Rubin Community Workshop
Team Members
The workshop developers, instructors and helpers
If you are interested in contributing to the development of materials or joining the instructors' team, feel free to contact us!
Contact & Resources
Email: shr.razim at gmail.com
Channel: LSST TVS Slack server
Meeting Notes: Available on Notion
Documents: Available on Notion
