Python has become the de facto superglue language for modern scientific computing. In this course we will learn Pythonic interactions with databases, imaging processing, advanced statistical and numerical packages, web frameworks, machine-learning, and parallelism. Each week will involve lectures and coding projects. In the final project, students will build a working codebase useful for their own research domain.
This class is for any student working in a quantitative discipline and with familiarity with Python. Those who completed the Python Bootcamp or equivalent will be eligible
Date | Content | Reading | Leader |
---|---|---|---|
Aug 26 | Advanced Python Language Concepts (decorators, OrderedDict, Generators, Iterables, Context Managers) |
- GIT - scipy §2.1 |
Josh |
Sep 2 | Pandas, Scipy, & Numpy | - scipy §§ 1.3, 1.5, 2.2 - numpy - skim chap 4/5 of McKinney |
Josh |
Sep 9 | Data vizualization (Matplotlib, Bokeh, Altair, Plotly, mayavi) | - Skim Tufte's Vizualization book - colormap talk (Scipy 2015) |
Josh |
Sep 16 | Interacting with the world (requests, email, IoT/pyserial) | None | Josh |
Sep 23 | Parallelism (asyncio, dask, IPython cluster) | - [ipyparallel docs] (http://ipyparallel.readthedocs.io/en/latest/intro.html) | Josh |
Sep 30 | Database interaction (sqlite, postgres, SQLAlchemy, peewee), Large datasets (xarray, HDF5) |
None | Josh |
Oct 7 | Web frameworks & RESTful APIs, Flask | None | Josh |
Oct 14 | Machine Learning I (sklearn, NLP) | None | Josh |
Oct 21 | Machine Learning II (keras [tensorflow]) | None | Josh |
Oct 28 | Image processing (OpenCV, skimage) | None | Stefan van der Walt |
Nov 4 | Bayesian programming & Symbolic math | Probabalistic Programming eBook install: pip install pymc3 |
Brett Naul |
Nov 11 | holiday | ||
Nov 18 | Computational Frameworks (Docker, AWS, Azure, AWS-Lambda) | TBD | Josh |
Nov 25 | holiday | ||
Dec 2 | Speeding it up (Numba, Cython, wrapping legacy code) | TBD | Josh |
Dec 5/Onward | final project work | ||
Onward |
Throughout these lectures we will be peppering in sidebar knowledge concepts:
- Jupyter & JuypterLab
- using git & github
- Docker
- Data science workflows
- reproducible research
- application building
- debugging
- testing
Each Friday we will be introducing a resonably self-contained topic with two back-to-back lectures. In between a short (~20 minute) breakout coding session will be conducted. Homeworks will require you to write a large (several hundred line) codebase.
Help sessions will be conducted interactively on the Piazza site for the course. There is also an in-person help session every Tuesday from 11am-noon at BIDS (in Doe library). Email Josh with any questions.
Email us at [email protected] or contact the professor directly ([email protected]). You can also contact the GSI, Goutam & Hadrien, at ([email protected], ([email protected] . Auditing is not permitted by the University but those wishing to sit in on a class or two should contact the professor before attending.