This workshop series will focus on an introduction to the Python programming language in the context of physics and astrophysics applications. All research carried in these scientific fields requires the use of extensive programming, making it a bedrock skill of any scientist. In this seminar, we will start from square one, covering how to install and navigate the programming ecosystem such as the terminal/shell, before moving into how to create scientific programs in python to carry out calculations one might use in a research project. This workshop series is primarily intended for students with little to no exposure to coding or astronomy research. After taking this series, students should be prepared to tackle programming-based courses (e.g., ASTR 255/330) as well as feel comfortable applying to summer research positions.
This series meets twice a week in the afternoon (M/W 5-6). Monday sessions will have (interactive) lectures in which a new programming concept is introduced. Wednesday is a “lab” in which students will work on a weekly assignment targeting those concepts. We expect most students to finish the weekly assignment during the Wednesday session, but they are due the following Tuesday, so time can be taken outside of the seminar if needed.
Signups for 2025 are now closed. Stay tuned for next year’s workshop!
Course Topics by Week¶
Week 1 (Jan 25):
- UNIX, filesystems, environments and the Python ecosystem
Week 2 (Feb 10):
- Pure Python programming, calculations, variables, datatypes and scripts
Week 3 (Feb 17):
- Review of Datatypes
- Introduction to libraries
- numpy and numpy arrays
- Control flow, loops, program logic, and an introduction to libraries
Week 4 (Feb 24):
- Functions and functional programming
- Introduction to ipython notebooks (jupyter)
Week 5 (Feb 26):
- Vectorization and program efficiency
- Final project introductions
Week 6 (March 4):
- Working with astrophysical datasets (loading, analyzing, fitting, visualizing)
Spring Break
Week 7 (March 25):
- Introduction to Object Oriented Programming
Week 8 (April 1):
- Introduction to github and version control + Bonus Content
Week 9 (April 8):
- Final presentations
For a more detailed topic list, click here