Introduction to Scientific Computing with Python
Date: October 6-10, 2008
Location: Austin, Texas, at Enthought’s offices
Registration: Contact Leah Jones at 1-512-536-1057 to register via credit card, or email firstname.lastname@example.org with any questions.
Overview: This class is intended for the scientist or engineer interested in using Python for their day-to-day computational tasks. It begins with a day long introduction to the Python language focusing on the standard data structures, control constructs, and text/file processing. Object oriented development is briefly discussed. Day two introduces numeric data processing using NumPy arrays as well as displaying data as 2D and 3D plots. Day three surveys the scientific algorithms available in SciPy including interpolation, integration, linear algebra, signal/image processing, optimization, and others. The fourth day is split between a primer on integration with other languages (C/C++/Fortran) and an introduction to building simple graphical user interfaces with Traits, a package from the Enthought Tool Suite. The last morning covers interactive 2D visualization using the Chaco plotting library.
The class culminates with an opportunity for students to work with experts on a coding project of their choosing. Several members of the Enthought team will join the instructor on for the last several hours to offer design ideas, suggestions, and even pitch in on development.
Teaching Format: Enthought classes are hands-on affairs with 15-30 minute lectures interleaved with programming exercises typically done within IPython. The exercises provide practical experience with the tools on real-world problems. Upon completion, students will be comfortable building computational models and analyzing data at the python command prompt as well as writing scripts to automate their computational tasks.
Target Audience: The class is geared toward scientist and engineers that would like to learn how to use python in their day-to-day work. Practical data processing topics form the meat of the course, but some more involved development topics (UIs and interactive plots) are also covered. Programming experience in some language (C, VB, Fortran, Matlab) is expected. Experience with C, C++, and/or Fortran is useful for some topics. Object oriented programming skills are not necessary but will be helpful on the last two days. Knowledge of calculus, statistics, signal and image processing, optimization, are all valuable but not absolutely required.
Print Materials: Enthought will provide a hard copy of the class materials as well as soft copies of all exercises used in the class.
Software/Hardware Requirements: Students should bring a laptop pre-loaded with Python and the tools to the class. Any number of operating systems including Windows, Linux, and OS X will work fine. A large number of libraries are used including Python, IPython, NumPy, SciPy, Matplotlib, SWIG, Cython, f2py, and the Enthought Tool Suite. EPD (Enthought Python Distribution) provides a convenient way to grab all of these for a variety of different platforms. It is highly recommended to ensure compatibility with class exercises. If necessary, Enthought can provide a computer for classroom use, but it is helpful if the student can work in their “standard” work environment.
Food/Travel: Breakfast and classroom snacks are included with the course. Students are responsible for setting up their own travel and accommodations.