# Labor

These notebooks and exercises were prepared by Andrew Valentine as a class that can be followed in roughly numerical order to progress through more complicated features of python and more difficult problems.
 
## Getting started with python and jupyter

Some simple introductary notebooks to help you learn both notebooks and python at the same time.
We ran through some of this in our [meet-and-greet](../FirstSteps/Introduction2Python/0-CharacteristicsOfPython) with python programming 

 - [Exercise 1 - Getting started](ex01-getting_started)
 - [Exercise 2 - Variables and functions](ex02-variables_and_functions)
 - [Exercise 3 - Loops and conditionals](ex03-loops_and_conditionals)
 - [Exercise 4 - Guessing Games](ex04-guessing_games)

## Arrays of data and loops

Moving on to data types that bundle multiple items together, thinking about how address individual 
items in those structures and how to access all of them in turn. This builds upon our [quick introduction to python 
data types](../FirstSteps/Introduction2Python/5-PythonDataTypes)

 - [Exercise 5 - Lists, tuples and dictionaries](ex05-lists_Etc)
 - [Exercise 6 - More loops](ex06-more_loops)
 - [Exercise 7 - Strings](ex07-strings)
 - [Exercise 8 - Reading and writing files](ex08-read_write_files)

## Python idiosyncrasies

 - [Exercise 9 - Modules](ex09-modules)
 - [Exercise 10 - Exception handling](ex10-exceptions)

## Doing things with python

Here we begin to explore the commonly used packages that are readily available in the python 
ecosystem. These exercises give you an introduction to the topic and you can dig deeper later.

 - [Exercise 11 - Numpy](ex11-numpy)
 - [Exercise 12 - Plotting](ex12-plotting)
 - [Exercise 13 - Radioactive Decay](ex13-radioactive_decay)
 - [Exercise 14 - Pandas](ex14-pandas_databases)
 - [Exercise 15 - More plotting](ex15-more_plotting)
 - [Exercise 16 - Maps](ex16-maps)
 - [Exercise 17 - Fourier analysis and Milankovitch cycles](ex17-fourier_analysis)

## More advanced material

 - [Exercise 18 - Object-oriented programming](ex18-objects)
 - [Exercise 19 - differential equations](ex19-differential_eqs)
 - [Exercise 20 - Sorting](ex20-sorting)

There are more [in-depth examples](../python-advanced/00-intro) that you can now start to work through. These will
assume you understand python and are trying to understand the programming process.