# Tutorials
Set of Jupyter Notebooks, along with datafiles, to get started with Scientific Computing in Astronomy  

***

## [How to setup Jupyter notebooks](./Jupyter%20Setup#jupyter-setup )

1. ### [Windows](./Jupyter%20Setup#windows )
2. ### [MacOS](./Jupyter%20Setup#macos )
3. ### [Linux distribution (includes Ubuntu)](./Jupyter%20Setup#linux-distribution-includes-ubuntu )
    1. #### [Installing Jupyter - Using Conda or Miniconda](./Jupyter%20Setup#installing-jupyter---using-conda-or-miniconda )
    2. #### [Installing Jupyter - Using python-pip (Try this only if you are comfortable with terminal)](./Jupyter%20Setup#installing-jupyter---using-python-pip-try-this-only-if-you-are-comfortable-with-terminal )

***

## [How to use Jupyter notebooks](./How%20to%20use%20Jupyter%20Notebooks#using-jupyter-notebooks )

1. ### [Opening the Notebooks](./How%20to%20use%20Jupyter%20Notebooks#opening-the-notebook )
2. ### [Jupyter Notebook Dashboard](./How%20to%20use%20Jupyter%20Notebooks#jupyter-notebook-dashboard )
3. ### [Creating a new notebook document](./How%20to%20use%20Jupyter%20Notebooks#creating-a-new-notebook-document )
4. ### [Overview of the Notebook UI](./How%20to%20use%20Jupyter%20Notebooks#overview-of-the-notebook-ui )
5. ### [Cell types](./How%20to%20use%20Jupyter%20Notebooks#cell-types )
6. ### [Modal Editor](./How%20to%20use%20Jupyter%20Notebooks#modal-editor )
    1. #### [Edit Mode](./How%20to%20use%20Jupyter%20Notebooks#edit-mode )
    2. #### [Command Mode](./How%20to%20use%20Jupyter%20Notebooks#command-mode )
    3. #### [Running Code](./How%20to%20use%20Jupyter%20Notebooks#running-code )
    4. #### [Keyboard Navigation](./How%20to%20use%20Jupyter%20Notebooks#keyboard-navigation )
    5. #### [Mouse Navigation](./How%20to%20use%20Jupyter%20Notebooks#mouse-navigation )
    6. #### [Cheat Sheet](./How%20to%20use%20Jupyter%20Notebooks#cheat-sheet-for-menu-bar-and-tool-bar )

***

## [Tutorial 1 : Basics of Python](./Tutorial_01)

* Basic syntax, and syntax for loops, conditional statements, and opening simple files, (lists, tuples and dictionaries)
* Parse a file and make a list containing the number of moons for each planet.

***

## [Tutorial 2 : Introduction to NumPy](./Tutorial_02)

* Numpy arrays, indexing, slicing.
* Parse file as above using numpy (np.where, for example).
* Beehive Cluster.

***

## [Tutorial 3 : Functions in Python](./Tutorial_03)

* Defining functions.
* Hubble Law, Number density of galaxies.

***

## [Tutorial 4 : Introduction to Matplotlib (Matplotlib I)](./Tutorial_04)

* Simple Plotting. Labels, colors, title, grid
* GW astronomy

***

## [Tutorial 5 : Introduction to Astropy and FITS format (Astropy I)](./Tutorial_05)

* Using Astropy.io to import datafiles, astropy.table.
* Take the data from a harder to parse data file.
* Introduction to fits files.

***

## [Tutorial 6 : Web Scraping](./Tutorial_06)

* Scrape web for some data (try to do this for constellations)
* Make an image of the constellation using RA, Dec or Mars in retrograde (simple scatter plot)

***

## [Tutorial 7 : Curve Fitting (SciPy I)](./Tutorial_07)

* Curve fitting
* Scrape data from Cepheids, and plot Period-Luminosity relation
* Frequency vs time inspiral

***

## [Tutorial 8 : Image Reduction](./Tutorial_08)

* Using Bias and Flats.
* Reducing an image of a popular target. (And further processing)

***

## [Tutorial 9 : Advanced Plotting (Matplotlib II)](./Tutorial_09)

* Subplots, and Using Object Oriented approach
* Make several HR diagrams, say, with different filters.
* Compare features, and observe that UV filters are good at filtering multiple stellar populations.

***

## [Tutorial 10 : Astropy Quantities (Astropy II)](./Tutorial_10)

* Using astropy quantities, make a black body spectra.
* Using filters (SDSS), find the instrumental magnitude of a star in different bands.
* Have a function which returns these values, given the temperature of a star.

***

## [Tutorial 11 : Classes in Python](./Tutorial_11)

* Make a class for a star and a filter.
* Rewrite the previous codes to make it more adaptable to changes.

***

## [Tutorial 12 : Time Domain Astronomy (SciPy II)](./Tutorial_12)

* Time Series analysis.
* Find a peak/Periodicity search.

***

## [Tutorial 13 : Coordinate Systems (Astropy III)](./Tutorial_13)

* Coordinate Systems and Time.
* Convert coordinates. Plot an analemma of the Sun. See how it changes with latitude.

***

## [Tutorial 14 : Differential Equations (SciPy III)](./Tutorial_14)

* Differential Equation solving. Scipy.integrate.solve_ivp.
* Solve differential equations for some system numerically.

***