Skip to content

Commit

Permalink
Merge pull request #80 from ireapps/copy
Browse files Browse the repository at this point in the history
Update top-level README.md, Basics lesson and add Teacher's Guide
  • Loading branch information
zstumgoren committed Mar 6, 2024
2 parents 48b7a40 + 4a389a7 commit 48c30cd
Show file tree
Hide file tree
Showing 8 changed files with 373 additions and 241 deletions.
56 changes: 38 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,44 +7,64 @@
`-'
```

## Python mini boot camp at [#NICAR20](https://www.ire.org/events-and-training/conferences/nicar-2020/) in New Orleans.
# Python mini bootcamp

In this two-day workshop, we'll use the Jupyter notebook to explore the Python programming language. At the end of the class, we'll give you all of the code from the exercises, along with several cheatsheets and tutorials, to take home with you, all from this code repository on Github.
In this two-day workshop, we'll learn the basics of the Python programming language and how to begin analyzing data in a Jupyter Notebook. What's a Notebook? It's an interactive coding environment that lets you blend words and code.

### Day 1
#### [Introduction](https://ireapps.github.io/pycar/pycar_intro.html)
Confused? Of course.

Bear with us. It will all make sense soon.

> Instructors, check out the [Teacher's Guide](teachers_guide.md).
## Day 1

### Intros

* Who are you, what do you do, what do you want to learn?
* What will we learn?
* What can I do with it?
* The goal of the day is to start to learn how to think about solving problems.
* GOAL: Learn how to solve problems with code.

### [The Basics](basics/README.md)
Key concepts of programming in Python:

- Basic data types - strings, integers, lists
- Lists are your friend!
- etc

> Bonus: a [discussion on debugging][] and handy [cheatsheet](debug/DebugginginPython.pdf)
#### [The Basics](https://github.com/ireapps/pycar/tree/master/basics)
We'll introduce some key concepts of programming and Python types like strings, integers, lists, slicing and loops.
[discussion on debugging]: https://docs.google.com/presentation/d/e/2PACX-1vTCwzQnH0Ps8xmqnxGBYayCyas8-53qJyo-yjIy5qy4P2xUOA-kiAOQCNTiCzRBVX7TxeBabx1pvpBQ/pub?start=false&loop=false&delayms=3000

#### A [discussion on debugging](https://docs.google.com/presentation/d/e/2PACX-1vTCwzQnH0Ps8xmqnxGBYayCyas8-53qJyo-yjIy5qy4P2xUOA-kiAOQCNTiCzRBVX7TxeBabx1pvpBQ/pub?start=false&loop=false&delayms=3000) and [cheatsheet](https://github.com/ireapps/pycar/tree/master/debug/DebugginginPython.pdf)
## Day 2

### [Project #1](project1/README.md)

### Day 2
#### [Project #1](https://github.com/ireapps/pycar/tree/master/project1)
As with many data analyses, it all starts with a CSV. After a white board exercise, we'll start with a file of pseudocode, and we'll walk through writing the program in Python code, running each line in the Jupyter interpreter. We'll hold your hand through each step of the process.

#### [Project #2](https://github.com/ireapps/pycar/tree/master/project2)
### [Project #2](/project2/README.md)

> This project is out-of-date. We'll try to update it in the near future.
This section covers gathering data from the web in two common formats.

In the first part, we'll scrape structured data from an HTML page using a GET request and write the data to a CSV. In the second part, we'll request data from an API to get information programmatically to create a spreadsheet. Our data comes in a new format: JSON. We'll do some more with the white board to show how it's basically a combination of data structures we already know about: Lists and dictionaries (arrays and objects).

#### [Project #3](https://github.com/ireapps/pycar/tree/master/project3)
Now we get to the heart of data analysis with an introduction to the powerful `pandas` library. Building on the basic objects we've already learned, and on a little knowledge of SQL, we'll clean two related tables of data, join and filter them.
### [Project #3](project3/analyzing_data_with_pandas_notebook.ipynb)

Now we get to the heart of data analysis with an introduction to the powerful [pandas](https://pandas.pydata.org/docs/index.html) library. Building on the basics we've already learned, and a little knowledge of [SQL](https://en.wikipedia.org/wiki/SQL), we'll clean two related tables of data, join and filter them.

At the end of the day, we'll __[send you home with](takehome/README.md)__:

* A [lightning dash](https://github.com/ireapps/pycar/tree/master/takehome/PyCAR_basics_takehome_notebook_complete.ipynb) through basic variables, types and functions
* The [working, commented code](https://github.com/ireapps/pycar/tree/master/completed) for each project from our git repo
* A [lightning dash](takehome/PyCAR_basics_takehome_notebook_complete.ipynb) through basic variables, types and functions
* The [working, commented code](completed/) for each project from our git repo
* A walkthrough for [setting up your machine at home with Python](https://github.com/thejqs/pycar/blob/master/takehome/Installing%20Python%20The%20IRE%20Way%E2%84%A2.pdf), version control and virtualenvs
* Good libraries to explore with strong tutorials
* A lifetime support guarantee [from us](CONTRIBUTORS.md) & [PythonJournos](https://groups.google.com/forum/#!forum/PythonJournos)

### Help!
## Help!

If you're working through this code at home and have trouble, please let us know.
The best option is to [file an issue report](https://github.com/ireapps/pycar/issues?q=is%3Aopen+is%3Aissue) of the bug so we can help you.
You can also reach out to any of us [on Twitter](https://github.com/ireapps/pycar/blob/master/CONTRIBUTORS.md) or ping [PythonJournos](https://groups.google.com/forum/#!forum/PythonJournos).

The best way to reach us is by [submitting an Issue](https://github.com/ireapps/pycar/issues?q=is%3Aopen+is%3Aissue) on GitHub.
Loading

0 comments on commit 48c30cd

Please sign in to comment.