Program Description

​Code/Astro is a week-long astronomy software development workshop motivated by the growing usage of open-source software in astronomical research. The goal of this program is to teach participants fundamental software engineering skills and best practices for building sustainable open-source packages for astronomy applications. During the workshop, participants will obtain hands-on experience with software engineering by developing a small software package from scratch. The workshop will also serve as a networking and career development opportunity. The workshop is free and open to folks at all career levels. Code/Astro is made possible thanks to support by the Heising-Simons Foundation.

Code/Astro will be hybrid and offer both in-person and virtual synchronous participation. The in-person component will be held at Northwestern University in Evanston, IL. Travel funding is available to support anyone who is accepted to the workshop and needs financial assistance (exact amount will depend on demand, but we anticipate to be able to cover at least the large majority of it). Please note that if you are just looking for access to the course materials and do not want to participate synchronously during the workshop, you don’t need to apply: the course material are on Github with corresponding lectures posted on Youtube.


July 15, 2024 - July 19, 2024


Teaching Assistants


Local Organizing Committee

Local logistics are being organized by the CIERA staff led by Madeline Wilson and also including William Vercellone and Janet Lyons.


Detailed information, agenda, and logistical information will be released at a later date. The workshop will held at CIERA, Northwestern University’s Center for Interdisciplinary Exploration and Research in Astrophysics, and virtually over Zoom. Structured activities will occur from 9am-noon (CDT) each day. The rest of the time is unstructured and participants can work on their packages for their group projects at their own pace. Topics covered each day are as follows:

Mon. Day 1 Tue. Day 2 Wed. Day 3 Thu. Day 4 Fri. Day 5
Development Environments Git Mechanics Releasing Code Software Testing Industry Panel Discussion
Programming Paradigms Debugging Code Documentation Anti-Discriminatory Practices Project Presentations
Git/Github Basics Python Package Tutorials   Code Profiling  
Parallel Programming        

Logisitcal Details

A more detailed agenda and in-person logistical details from the 2023 workshop are avilable here. This will be updated before the 2024 workshop.

Before the workshop starts, we ask all participants to setup their development environment based on these installation instructions and provide us the secret code at the end.

This link will be updated with a detailed schedule of classes and office hours.

How to Apply

We require participants to be familiar with Python or another high-level programming language (e.g., Java, Matlab). Participants are expected to develop on their own computers and have set up their development environment there. Attendence to the workshop can either be in-person or virtual, but participants are expected to particpate synchronously. For those that are interested in the materials but cannot particpate in real time, the code is already on Github with corresponding lectures from previous years posted on Youtube, so please apply only if you intend to participate synchronously. For those that require financial assistance in any way to participate (the workshop itself is free), we have some funding support available for in-person and remote attendence, and we will poll about that after accepting applicants. Anyone related to astronomy is eligible. If you have questions about the application, contact Jason Wang (

Applications for the 2024 workshop are open at this link. Apply by February 16th at 11:59pm Pacific Time.

In addition to some basic questions, the application form has some questions about your programming background and goals for taking this workshop. In the event we receive too many applications, we will use these responses to help us make decisions on admission to the workshop. Part of the application also consists of taking a diagnostic assignment. There is no need to know everything on this assignment. We are using it to get a sense of the Python expertise of the participants and to help get everyone on the same page in programming jargon. Feel free to use other resources to help complete this assignment! The demographic questions at the end are optional and are used by us to identify biases in our advertising or admissions strategy for the workshop.