Open Courses
Python for Scientific Computing
Date: June 23-27, 2008
Location: Austin, Texas, at Enthought's offices
Cost: 3 days: $1500; 5 days: $2500. You can attend either the
first three days of the course or the entire five days.
Registration: Contact Leah Jones at 1-512-536-1057 to register
via credit card, or email info@enthought.com
with any questions.
Enthought is offering an Open Course targeted for scientists and engineers who are using, or wishing to use Python. The course will be useful for those who want to interact with their data from a command line, write small scripts, build functional modules, or write large-scale scientific applications using Python. (Or some combination of all of these.)
By "open course" we mean that it is open for general admission (rather than the targeted internal training that we also do for our clients). The topics will therefore be wider-ranging and less targeted. We will, however, use specific examples from various domains to help illuminate the exercises. It is expected that participants have experience in programming or scripting (C, FORTRAN, Java, Matlab); familiarity with Python is good, but not necessary. We'll start with the basics and move fairly quickly.
Course participants will be expected to bring a laptop with EPD or equivalent installed. The format of the course will be short lectures followed by relevant participant exercises.
Day 1: Introduction to Python
- Introduction to IPython (we use this throughout the course)
- Basic Python data types: lists, dictionaries, and sets
- Flow control (loops, if-then, etc.)
- Functions and Modules
- Classes
- File I/O
- Exceptions
Day 2: Numerical Python
- Introduction to NumPy arrays and basic plotting
- Multi-dimensional and fancy indexing
- Shaping arrays
- Array attributes and methods
- Array construction
- Math functions
- Universal functions and selection functions
- Broadcasting
- Output formatting and error handling
- Composite data structures
Day 3: Introduction to SciPy
- Overview of the SciPy library
- Linear algebra and FFT
- Interpolation
- Integration
- Signal processing
- Image processing
- Optimization
- Introduction to Weave
Day 4: Python as Glue
- Overview of wrapping Python
- Hand wrapping a library
- Weave: in-lining C/C++ in Python
- f2py: wrapping Fortran code using NumPy
- SWIG: C/C++ wrapping
- Pyrex/Cython: hybrid language for extensions
- Ctypes: calling C-functions in shared library
Day 5: Introduction to the Enthought Tool Suite
- Traits: event handling and rapid building of UIs
- Chaco: interactive plotting
- Mayavi and TVTK: 3-D visualization
- Envisage: building pluggable applications
