# cs 124 PA0: Environment Setup; Jupyter Notebooks and Python

Welcome to `PA0`!
This assignment consists of the following four parts:
* Setup Instructions
* Jupyter Tutorial
* Python Tutorial
* Submitting PA0
  
The goal of this assignment is to get your coding environment set up for the future assignments and provide some useful introduction to `Jupyter Notebooks`.
We are also including a comprehensive `Python` tutorial for you to practice your `Python` skills.

## Part 1: Environment Setup

Decide where you will be doing your assignments. 
There are a couple of different options that we support to varying degrees. 
You can find our recommendation for what you should choose below. 
Setup instructions referenced below can be found in the `platform`
directory.

* If you have a personal machine you can use that is reasonably 
  modern/performant and is running `MacOS`, `Linux`, or `Windows`, we strongly
  recommend you use that for this class. 
  * __If you have a MacOS machine,__ go to the `MacOS.md` file and follow 
  the instructions there.
  * __If you have a Linux machine,__ go to the `Linux.md` file and follow
  the instructions there.
  * __If you have a Windows machine,__ go to the `Windows.md` file and 
  follow the instructions there.
      
* If you are pretty sure that your personal machine won't work for this class,
you can connect remotely to Stanford's Myth or Rice machines. The instructions can be found in the `Remote.md` file.

If you run into any issues during the process that you can't figure out, please
come to office hours and a CA will be able to help you out.
Alternatively, if you post where you're stuck on our online class discussion 
forum, the teaching staff can help you there as well.

The setup instructions you followed in `Part 1` should have directed you 
through all the steps needed to run `Jupyter Notebooks`.

## Part 2: Jupyter Tutorial

Work through the notebook titled `jupyter_tutorial.ipynb`, which will teach you the
basics of `Jupyter Notebooks`.
Note that we will not cover `Python` fundamentals in this notebook. 

## Part 3: Python Tutorial

We highly recommend skimming through our `Python` tutorial, which can be found in the notebook titled `python_tutorial.ipynb`, even if you are very comfortable with `Python`. 

We assume you understand the topics reviewed in this notebook in the rest of our class.

## Part 4: Submit PA0

Now that you have set up everything successfully, you can submit your first PA to Gradescope - see `pa0.ipynb` for more!

## Done!

You are done with `PA0`!
