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:

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:

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.

Intermediate Python HPC Workshop

View Full Playlist

Intermediate Python Development Course

View Full Playlist

2026 Rubin Community Workshop

Team Members

The workshop developers, instructors and helpers

Alex Razim, Ruder Boscovic Institute, Zagreb, Croatia
Markus Hundertmark, Astronomisches Rechen-Institut, Heidelberg, Germany
Riley Clarke, National University of Singapore, Singapore
Angelica Kovacevic, University of Belgrade, Serbia
Konstantin Malanchev, Carnegie Mellon University/LINCC, Pittsburgh, USA
Rachel Street, Las Cumbres Observatory, USA
Jennifer Sobeck, The California Institute of Technology, USA
Federica Bianco, University of Delaware, USA
Azalee Bostroem, University of Arizona, USA
Sid Chaini, University of Delaware, USA
Olivia Lynn, Carnegie Mellon University, USA
Sandro Campos, Carnegie Mellon University, USA
Meet J. Vyas, University of Vienna, Austria
Fabio Ragosta, Istituto nazionale di astrofisica (INAF), Italy
Tomislav Jurkic, University of Rijeka, Croatia
Tobias Géron, University of Toronto, Canada

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