View on GitHub

Python Computing for Science

Undergraduate/Graduate Seminar Course at UC Berkeley (AY 250)

Download this project as a .zip file Download this project as a tar.gz file
Wheeler 221: Monday 2 - 5 PM FALL 2012 (CCN #060802)

Synopsis

Python is becoming 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 quantative discpline and with familiarily with Python. Those who completed the Python Bootcamp or equivalent will be eligible.

Course Schedule

Date Content Leader
Aug 27 Advanced Python Language Concepts (geared towards Boot Camp graduates)
notebook | lecture (PDF)
Josh
Sep 3 holiday
Sep 10 Advanced versioning, application building (optparse), debugging & testing Isaac
Sep 17 (matplotlib) Advanced plotting and data vizualization, mayavi Stefan/Paul
Sep 24 scipy, numpy, stats Berian/Brad
Oct 1 interacting with the world (xml-rpc, urllib, sending and receiving email, serial)
talking to computers (notebook) | audio IO (notebook) | lecture (part 1) | lecture (part 2)
Josh
Oct 8 scikits: image, learn Stefan/Joey
Oct 15 database interaction, large datasets (HDF5) Josh
Oct 22 GUI (Tkinter, GTK, Traits) Josh
Oct 29 parallelization (ipython), cuda Fernando/Paul
Nov 5 web-frameworks (CGI), Flask/Bottle Josh
Nov 12 holiday
Nov 19 Symbolic, mathematical and Bayesian programming: simpy, sage, R, rpy2, pyMC/emc Berian/Josh
Nov 26 Cython; wrapper around legacy code -- FORTRAN, C, etc Stefan
Onward final project work

Workflow

Each Monday 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.

Contact

Email us at ucbpythonclass@gmail.com or contact the professor directly (jbloom@astro.berkeley.edu). Auditing is not permitted by the University but those wishing to sit in on a class or two should contact the professor before attending.