SciPy 2009 Resources

Slides and data here

Introductory Tutorials (see bottom of this page for suggested pre-req's)

Morning:
8:30-10:20. Intro to Python: Gael Varoquaux, Christopher Burns
Quick IPython introduction: the workflow
Basic types:
scalar types: int, float, complex
Collections: list and dictionaries (and tuples, sets, ...)
Control flow: if, for, range, while, break, continue
Functions: definitions, arguments, docstrings, ...
10:20-10:40. Break.
10:40-12:30. Intro to Python (continued): Gael Varoquaux, Christopher Burns
Exceptions handling in Python
Reusing your code: creating modules, '__main__'.
Standalone scripts, command line arguments.
I/O, file handling
Standard library and general utilities.
Timing
Lunch break (on your own): 12:30-2:00.
Afternoon:
2:00-2:30. Debugging: Christopher Burns
effective strategies and effective debugger usage
print statements
%debug in IPython
2:30-3:00. Testing: Stefan van der Walt
the concept: using testing properties of code via a function
doctests
3:00-3:50. Basic numpy arrays: Stefan van der Walt
The array, an n-dimensional object
vectorizing for speed and ease
3:50-4:10. Break.
4:10-4:30. Basic plotting with matplotlib: Mike Droettboom
plotting 1D arrays: points and lines,
plotting 2D arrays: images
4:30-5:00. more numpy: Stefan van der Walt
The memory model
dtypes
views and copies
Array creation
5:00-6:00. Spill-over and Q & A session.
Wednesday
Morning:
8:00-8:30. Optional startup session where the organizers will try to assist with any last-minute setup or installation problems.
8:30-9:30. More matplotlib: Mike Droettboom
customizing colors, styles
legend
matplotlibrc
math text
9:30-10:20. More numpy: Perry Greenfield
advanced indexing
use of where
zen, examples of vectorizing
ieee special number and error handling (5 min)
masked arrays (10-15 min)
10:20-10:40. Break.
10:40-11:30. More numpy (continued) Perry Greenfield
11:30-12:00. Basic 3d plots with mlab: Gael Varoquaux
3D plotting functions
their keyword arguments
the GUI
Lunch break (on your own): 12:30-2:00.
Afternoon:
2:00-3:50. Using scipy for numerics: David Cournapeau, Eric Jones
Linear algebra
random numbers
FFT
special functions
Root finding
Quadrature
ODEs
3:50-4:10. Break.
4:10-5:30. The Whole Enchilada: Eric Jones
Largish assignment to tie all of the above together.
5:30-6:00. Q & A Session



Advanced Tutorials

Tuesday
Morning:
8:00-8:30. Optional startup session where the organizers will try to assist with any last-minute setup or installation problems.
8:30-10:20. Advanced numpy 1 and advanced numpy 2: Stefan van der Walt and David Cournapeau.
10:20-10:40. Break.
10:40-12:30. Advanced topics in matplotlib: John Hunter
Lunch break (on your own): 12:30-2:00.
Afternoon:
2:00-3:50. Symbolic computing with sympy: Ondrej Certik.
3:50-4:10. Break.
4:10-6:00. Statistics with Scipy: Robert Kern.

Wednesday
Morning:
8:00-8:30. Optional startup session where the organizers will try to assist with any last-minute setup or installation problems.
8:30-10:20. Cython: Dag Sverre Seljebotn.
10:20-10:40. Break.
10:40-12:30. Using GPUs with PyCUDA: Nicolas Pinto.
Lunch break (on your own): 12:30-2:00.
Afternoon:
2:00-3:50. Designing scientific interfaces with Traits: Enthought.
3:50-4:10. Break.
4:10-6:00. Mayavi/TVTK: Prabhu Ramachandran.


Conference

Thursday, August 20

9:00 - 9:10 Welcome (Jarrod Millman & Gael Varoquaux)

9:10 - 9:30 Update on the core projects (Charles Harrison, Fernando Perez, John Hunter, David Cournapeau)

9:30 - 10:30 Keynote: What to demand from a Scientific Computing Language -- Even if you don't care about computing or languages (Peter Norvig, Director of Research, Google)
BREAK (10:30 - 11:00)

11:00 - 11:10 nipy.timeseries: Neuroimaging time-series analysis (Ariel Rokem, UC Berkeley)

11:10 - 11:50 Virtual reality: a tool for the highly quantitative study of animal behavior (Andrew Straw, Caltech)

11:50 - 12:10 Parallel Kernels: An Architecture for Distributed Parallel Computing (Nikunj Patel, University of Maryland)

12:10 - 12:20 PaPy: Parallel and distributed data-processing pipelines in Python (Marcin Cieslik, University of Virginia)

12:20 - 12:30 High-Performance Code Generation Using CorePy (Andrew Friedley, Indiana University)
LUNCH (12:30 - 2:30) On your own.

2:30 - 3:00 Panel discussion (Python and Parallel computing, Michael Aivazis, Brian Granger, Nicolas Pinto, moderator: Ga�l Varoquaux)

3:00 - 3:10 Sherpa: 1D/2D modeling and fitting in Python (Brian Refsdal, Harvard Smithsonian Center for Astrophysics)

3:10 - 3:20 Multiprocess System for Virtual Instruments in Python (Brian D'Urso, University of Pittsburgh)

3:20 - 3:30 ESPResSo++: A Python-controlled, Parallel Simulation Software for Soft Matter Research (Olaf Lenz, Max-Planck-Institute for polymer research, Mainz, Germany)
BREAK (3:30 - 4:00)

4:00 - 4:40 Sympy (Ondrej Certik, University of Nevada, Reno)

4:40 - 4:50 Python implementation of weno interpolation and reconstruction (Adrian Townsend, University of Washington)

4:50 - 5:00 Writing Safer NumPy Extensions in C++ with Templates and TooN (Damian Eads, University of California)

5:00 - 6:00 Lightning Talks
Talks 1-4 of the "lightening talks" (very brief talks) given at the SciPy 2009 conference. Speakers and topics are: 1. Olaf Lenz - Parallel Method Invocation (PMI) 2. John Wright - Software technologies used in EU "Total Crystallography" project. 3. Michael Ressler, "Python in the JWST/MIRI Project" 4. Daren Dale, Quantities: support for units and physical constants based on numpy.
Talks 5-8 of the "lightening talks" (very brief talks) given at the SciPy 2009 conference. Speakers and topics are: 5. James Turner, Astrodata - data reduction software for astronomy 6. Peter Wang of Enthought. Chaco Mayav bridge. 7. ? of Enthought. Analyzing investment options. 8. Luke Peterson, UC Davis. PyDy - derive equations of motions for mechanical systems.
Talks 9-13 of the "lightening talks" (very brief talks) given at the SciPy 2009 conference. Speakers and topics are: 9. John Hunter - sphinx sampledoc documentation system. 10. ?. Developing application using traits. 11. Jiao Lin, Caltech. Luban: a generic UI builder. http://dev.danse.us/trac/pyregui 12. Brian Grangers - running matplotlib without requiring -pylab at ipython startup. 13. Mike McKerns, Caltech


6:30 Informal reception (Location: Beckman Courtyard, in front of the conference room - map)

7:30 Astronomy BoF:. Gather together at reception to decide where to hold BoF (e.g., possibly combine with dinner)

8:30 - late BoFs.
Machine Learning/Probabilistic Modeling, Powell Booth, library (upstairs)
PDE BoF, Powell Booth room 120



Friday, August 21

The conference talks are held at the Beckman institute (map).

9:00 - 9:10 Welcome (Jarrod Millman & Gael Varoquaux)

9:10 - 10:10 Keynote: Modeling of Materials with Python (Jonathan Guyer, NIST)

10:10 - 10:30 Hermes and FEMhub Project (Pavel Solin, University of Nevada, Reno)
BREAK (10:30 - 11:00)

11:00 - 11:20 The PyMca Application and Toolkit (Armando Sole, ESRF, France)

11:20 - 11:30 Implementation of automatic script recording and network control for Mayavi (Prabhu Ramachandran, IIT Bombay, India)

11:30 - 12:10 Fast numerical computations with Cython (Dag Sverre Seljebotn, University of Oslo, Norway)

12:10 - 12:30 Fwrap: The Next-Generation Fortran-to-Python Interface Generator (Kurt Smith, University of Wisconsin-Madison)
LUNCH (12:30 - 2:30) On your own.

1:30-2:30: Documentation BoF, Powell Booth, room 100.

Brief presentation by Robert Kern? about stackOverflow (website for getting answers to technical questions), and by Nicolas Pinto about a script to make it easy to use Amazon EC2.

2:30 - 3:00 Panel discussion: State of Python visualization tools (John Hunter, Prabhu Ramachandran, Peter Wang. Moderator: Stefan van der Walt)

3:00 - 3:20 PySAL: A Python Library for Spatial Analysis and Geocomputation (Serge Rey, Arizona State University)

3:20 - 3:30 Neutron Scattering Data Acquisition and Experiment Automation with Python (Piotr Zolnierczuk, Oak Ridge National Lab)
BREAK (3:30 - 4:00)

4:00 - 4:20 Exploring the future of bioinformatics data sharing and mining with Pygr and Worldbase (Chris Lee, UCLA)

4:20 - 4:30 A full software stack for visualizing next-generation sequence information (Titus Brown, Michigan State University)

4:30 - 4:40 Pyclaw - The Evolution of Clawpack into Python (Kyle Mandli, University of Washington)

4:40 - 4:50 NumPy and SciPy Documentation in 2009 and Beyond (Joe Harrington, U. Central Florida)

4:50 - 5:00 Python in science and engineering education in India (Prabhu Ramachandran, IIT Bombay, India)

5:00 - 6:00 Next challenges for Python in Science (moderator: Jarrod Millman)
1st panel: The view of the pioneers (John Hunter, Eric Jones, Charles Harrison, Fernando Perez, Prabhu Ramachandran)
2nd panel: The view of the young generation (David Cournapeau, Pauli Virtanen, Gael Varoquaux, Stefan van der Walt)

Closing Comments




Introductory to Scientific computing with Python tutorial

UPDATE: Please note change of rooms below. The introductory tutorials will be held at Moore 070 and the advanced at Beckman (the original plan was the reverse). The Registration Desk will be open daily in the Beckman Institute Courtyard, 7:30 a.m. - 9:00 a.m. This is also where the coffee break service will be provided.

Audience

Scientists and engineers who are familiar with computers and basic numerical computing.

Location

The introductory tutorial will take place in 070 Moore (in the subbasement, two floors down from street level). You can see it marked on this map of the campus that lists all relevant buildings for the conference. Interactive and printable maps of the Caltech campus can also be found on Caltech's website, on those maps Moore is building #93.

Pre-requisites

Objectives

At the end of the course participants will be:

  1. able to write reasonable quality, procedural Python programs.
  2. broadly exposed to several of the relevant Python packages for numerical computing like ipython (interactive data exploration), numpy (arrays), scipy (numerics), matplotlib (high quality 2D plotting), and mayavi's mlab (simple 3D plotting) in order to write code for typical scientific computing tasks involving numerical algorithms, data analysis, data exploration and visualization.
  3. understand the general tools, workflow and best practices involved in writing good quality, tested, Python programs for scientific computing.

Structure of tutorial

The course will be completely hands on. All of the lecture material will expect users to type along and the sessions will be punctuated with exercises. The solutions for these exercises will also be discussed.