Skip to content

Code repository for CIERA's Research Experiences in Astronomy at CIERA for High School Students (REACH) Program

License

Notifications You must be signed in to change notification settings

mcstroh/REACHpy

 
 

Repository files navigation

REACHpy

This is the GitHub repository for CIERA's REACH program. This is built on the IDEASpy package, an introductory Python course tailored to those interested in scientific computing and data science. The course is presented in the form of Google Colab notebooks and assumes no prior knowledge of Python. Each module introduces a new larger topic in Python, as well as at least one challenge set at the completion of module sections. These notebooks can also be downloaded and used in a Jupyter environment.

The modules cover the following topics:

  1. Background

    1. Introduction to Colab Open In Colab
    2. Astronomical Quantities Open In Colab
  2. Introduction to Python

    1. Getting Started with Python Open In Colab
    2. Introduction to Lists and Loops Open In Colab
    3. Conditional Statements Open In Colab
    • Challenge 1: Angular Velocity Open In Colab
    • Challenge 2: Kepler's Laws Open In Colab
    • Challenge 3: Lifetime of the Sun Open In Colab
  3. Introduction to Data and Plotting in Python

    1. Introduction to Functions and Modules Open In Colab
    2. Introduction to Numpy Open In Colab
    3. Plotting with Matplotlib Open In Colab
    • Challenge 1: Using Python to Analyze and Plot Exoplanet Data Open In Colab
    • Challenge 2: Plot the Rotation Curve of the Solar System Open In Colab
    • Challenge 3: The Expansion of the Universe Open In Colab
    • Challenge 4: Creating an Hertzsprung-Russell Diagram Open In Colab
    • Challenge 5: Galaxy Rotation Curves Open In Colab
  4. Advanced Analysis and Tools in Python

    1. Pandas Basics Open In Colab
    2. Reading and Parsing Data Files Open In Colab
    3. Advanced Matplotlib Figures - To do
    4. Advanced string formatting with f-strings Open In Colab
    • Challenge 1: Analyze Gaia Data with Pandas Open In Colab
  5. Advanced Astronomy and Scientific Computing in Python

    1. Measurement Uncertainty and Precision Open In Colab
    2. Introduction to SciPy Open In Colab
    3. Creating Images with Astropy Open In Colab
    4. Tables in Astropy Open In Colab
  6. Projects

    1. Velocity of stars in the Milky Way Open In Colab
    2. Habitable worlds Open In Colab
    3. Accreting black holes Open In Colab
    4. Extracting energy from black holes Open In Colab
    5. Simulating planetary systems Open In Colab
    6. Weighing baby solar systems - Coming soon!
    7. Binary black hole mergers Open In Colab

IDEASpy was originally developed as part of the Integrated Data-Driven Discovery in Earth and Astrophysical Sciences (IDEAS) Research Traineeship program supported by the National Science Foundation under grant DGE-1450006. However, any opinions, findings, conclusions, and/or recommendations are those of the investigators and do not necessarily reflect the views of the National Science Foundation. It has since been modified for use by students with support from Reach for the Stars.

Getting Started

We recommend that you use Google Colab for these notebooks. The links next to each section and challenge problem will automatically open the file in Google Colab.

Remember to save your work to Google Drive.

Running on a local machine

We provide instructions using the Terminal. We recommend installing Jupyter Notebook with Anaconda. To install Anaconda on your local machine, please follow these instructions: Install Anaconda

  1. Open a terminal window.

  2. Change directory to the preferred directory where you would like these notebooks stored

cd Path/To/Directory/
  1. Clone this repository in the terminal
git clone https://github.com/CIERA-Northwestern/REACHpy.git
  1. Change directory to the IDEASpy directory
cd REACHpy/
  1. Change directory to the module of your choice. For example, for Module 1:
cd Module_1/
  1. Start jupyter notebook with the desired section. For example, for Section 1:
jupyter notebook Section_1_Intro_to_Python.ipynb

Prerequisites

If you are using Google Colab or Anaconda, all dependencies will be installed automatically. These include Matplotlib, NumPy, and Pandas.

Contributing / New Modules or New Versions for Different Audiences

As maintainers of this project, we would like to expand its reach to as many students as possible while maintaining its main purpose of introducing a variety of audiences to coding and Data Science through the use of Python. If you would like to use this project as a base for a more directed course, we politely ask you to let us know by raising it as an issue or emailing us at IDEAS@northwestern.edu. There are two reasons for this:

  1. It allows us to further understand its reach when reporting to funding providers or those interested in working with our research center.

  2. If you develop material we are interested in adopting, we would like to open that collaborative channel in order to best further and improve the learning provided within this tutorial.

Please read Contributing.md for details on our code of conduct related to contributing.

Authors

  • Fulya Kiroglu
  • Miguel Martinez
  • Michael C. Stroh

Past Authors and Contributors

  • Katie Breivik
  • Scott Coughlin
  • Michael Katz
  • Diego Munoz
  • Michelle Paulsen
  • Alexandria Romasanta
  • James Schottelkotte
  • Patrick Sheehan

License

This work is licensed under the GNU Public License. Please see our LICENSE.

Acknowledgments

  • IDEASpy was originally developed as part of the Integrated Data-Driven Discovery in Earth and Astrophysical Sciences (IDEAS) Research Traineeship program supported by the National Science Foundation under grant DGE-1450006. However, any opinions, findings, conclusions, and/or recommendations are those of the investigators and do not necessarily reflect the views of the National Science Foundation. It has since been modified for use by students with support from Reach for the Stars.

About

Code repository for CIERA's Research Experiences in Astronomy at CIERA for High School Students (REACH) Program

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 96.8%
  • Python 3.2%