/REACHpy

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

Primary LanguageJupyter NotebookGNU General Public License v3.0GPL-3.0

REACH: Research Experiences in Astronomy at CIERA for High School Students

This is the GitHub repository for CIERA's REACH program. This repository is built on the IDEASpy package, which is a beginner Python course tailored to those intereseted in scientific computing and data science. The course is presented in the form of Jupyter 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.

The modules cover the following topics:

  1. Introduction to Python

    1. Getting Started with Python Open In Colab
    2. Data Types and Precision Open In Colab
    3. Functions and Modules Open In Colab
    4. Conditional Statements and Loops Open In Colab
    • Challenge 1: Using Python to Analyze Seismic Data on Mars Open In Colab
    • Challenge 2: Calculate the Mass of the Sun with Python Open In Colab
    • Challenge 3: How Long Will the Sun Live? Open In Colab
  2. Introduction to Data and Plotting in Python

    1. Lists in Python Open In Colab
    2. Loops and List Comprehension Open In Colab
    3. Getting Started with Numpy Open In Colab
    4. Plotting with Matplotlib Open In Colab
    • Challenge 1: Using Python to Analyze and Plot Exoplanet Data Open In Colab
    • Challenge 2: Make a Rotation Curve for our Solar System Open In Colab
    • Challenge 3: Measure the Expansion of the Universe Open In Colab
    • Challenge 4: Plot a Hertzprung-Russell Diagram Open In Colab
    • Challenge 5: Rotation Curves of Galaxies Open In Colab
    • Challenge 6: Optimize a Code with NumPy Open In Colab
  3. Optimizing Python and Furthering Analysis in Python

    1. Code Optimization with NumPy Open In Colab
    2. Pandas Basics Open In Colab
    3. Exploring More Complex Data Files with Pandas Open In Colab
    4. Advanced Reading and Parsing of Data Files Open In Colab
    5. Defining Your Own Functions and Modules Open In Colab
    6. Your First Python Script Open In Colab
    7. Measurement Uncertainty and Error Propagation Open In Colab
    8. Scipy: Python Tools for Science Open In Colab
    • Challenge 1: Analyze Gaia Data with Pandas Open In Colab
  4. Introduction to Astropy for Data Analysis

    1. Astropy Images Open In Colab
    2. Astropy Tables Open In Colab
  5. Research Mini-Projects

    1. How Bright are Accreting Black Holes? Open In Colab
    2. Exploring Binary Black Hole Merger Rates Open In Colab
    3. Exploring the Earth with Climate Models Open In Colab
    4. How Much Energy can be Extracted from Black Holes Open In Colab
    5. Exploring the Properties of Habitable Worlds Open In Colab
    6. Short Gamma Ray Burst Afterglow Modeling Open In Colab
    7. Exploring Stellar Evolution with Gaia Open In Colab
    8. The Effects of Stellar Flares on Exoplanet Atmospheres Open In Colab
    9. Weighing Baby Solar Systems Open In Colab
    10. Velocities of Stars in the Milky Way Open In Colab
    11. Multiwavelength Imaging Open In Colab
    12. Simulating Planetary Systems with Rebound 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 high school students with support from Reach for the Stars.

Getting Started

These programs can be run through jupyter notebook on your local machine or Google Colab on a web browser. It is recommended you use Google Colab if you are uncertain about installing Python/Anaconda, or if this is for classrooms where software cannot be installed.

Follow these instructions if you want to run this on Google Colab. It is required that you have an email address that is hosted through Google in order to save you work for later.

  1. In the table of contents above, click on the "Open in Colab" badge to open the notebook directly in Colab.

  2. Click Copy to Drive

  3. Make sure you work in this new copy if you would like to save your work!

To run locally, we will provide instructions using the Terminal. We generally 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/IDEASpy.git
  1. Change directory to the IDEASpy directory
cd IDEASpy/
  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.ipynb

Prerequisites

If you are using Google Colab or Anaconda, all the packages used in this program will be installed automatically. These include NumPy, Pandas, Matplotlib, etc.

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

  • Katie Breivik
  • Michael Katz

Contributors

  • Patrick Sheehan
  • Michelle Paulsen
  • Alexandria Romasanta
  • Scott Coughlin

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 high school students with support from Reach for the Stars.