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.
If you are interested in participating in the workshop series, please fill out THIS INTEREST FORM!
Course Topics by Week¶
Week 1 (Jan 29):
- UNIX, filesystems, environments and the Python ecosystem
Week 2 (Feb 5):
- Pure Python programming, calculations, variables, datatypes and scripts
- Introduction to numpy
Week 3 (Feb 12):
- Control flow, loops, program logic, and an introduction to libraries
Week 4 (Feb 19):
- 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