- write a function in a module and load it in the notebook, including `help`
- readable functions ... i.e. use long, meaningful variable names (and take advantage of autocompletion)
#### speeding up code with numba
- demonstrate simple loop example
-*comment*: the second `idx` definition in `process_numpy` could be replaced by `idx = ~idx` and that should be (marginally and probably irrelevantly) faster (:
- use `nb.vectorize` to create an np ufunc
### Session AM2: Python Basics II
- TODO
#### Defensive Programming
- assertions
- simple example for test-driven development
- Debuggung ... long monologue and emphasize the important points, not going to repeat all of that here ... [I put some work into the presentation here, so they can take it home](https://github.com/swc-bb/2017-05-15-python-novice-lessons/blob/master/lesson-notebooks/lesson-tim/defensive%20programming.ipynb)
#### command line programs
- that was fun
- explain the shebang and how to make a script executable
- using sys.argv and showing how useless it is
- go to argparse and show how awesome it is
- ad different kinds of arguments, let them play around if possible
- read from stdin
- show the argcomplete magic
## DAY 2 PM
### Session PM1: Python Final Project
- TODO
- load stuff in pandas and plot it
- use `describe`, `loc`, `T`, various ways of pandas indexing
- the actual project:
- easily get nice results so everybody is happy
- give the loading of the data file for free as this could set people back
- but then have some backup questions so even the quick people have enough to do
- finally do a challenge that actually involves some reading of the docs and thinking