Python Master Classes

with David Beazley
Author of the "Python Essential Reference"
5412 N Clark Street #218
Chicago, IL 60640
Follow dabeazllc on Twitter

Target Audience:

This class is for scientists and engineers with a basic knowledge of Python.

Course Date: Mar 4-8, 2013.

Instructor: Mike Müller

Price:

  • $2500 (all 5 days)
  • $1500 (3-day intro section)
  • $1000 (2-day advanced section)

What's Included?

  • A printed copy of the course notes.
  • Breakfast and lunch at local restaurants
  • Snacks
[ Register | More Information |FAQ]

Python for Scientists and Engineers

[5 days] A full 5-days of everything scientists and engineers would want to know about using Python for solving scientific problems. Taught by special guest, Mike Müller, founder of the Python Academy and recent recipient of a PSF Community Service Award, this course gives an overview of important libraries commonly used for solving scientific and technical problems, techniques for connecting Python to existing code written in C, C++, or Fortran, and critical software engineering topics including testing and version control. You can also sign up for a shortened 3-day version of the course that focuses on using Python's scientific tools, but which doesn't covered related software engineering topics.

Major topics include:

  • Numerical calculations with numpy
  • Storage and processing of large-scale data
  • Plotting and visualization of data with matplotlib
  • Using Python's C-API
  • Extension building with Cython, ctypes, Swig, and f2py
  • Unit testing
  • Version control with Mercurial
  • Object oriented programming
  • Application integration

About the Instructor

Mike Müller has been using Python since 1999 mainly for scientific software. He has been teaching Python courses since 2004 and is the founder and CEO of Python Academy, a training and consulting company specializing in Python.

He has taught thousands of students introductory and advanced Python topics. Since many of his students are scientists and engineers, he is very familiar with their needs. He has been continuously refining the course contents and teaching method for best learning results.

In addition, he regularly teaches tutorials at PyCon US and EuroSciPy. He is a member of the Python Software Foundation, main organizer and of the first two EuroSciPy conferences as well as chair of the first PyCon DE. He also serves at committees of scientific conferences.

Detailed Course Outline

    The first three days of the course are focused on using Python's scientific tools and useful programming techniques.

  1. Overview of Scientific and Technical Libraries for Python. There are a great variety of Python libraries for scientific purposes. A short overview of important libraries is given along with examples.
  2. Numerical Calculations with numpy. The numpy library is the defacto standard for working with arrays and performing linear algebra computations. This section focuses on important numpy issues including array construction, array properties, datatypes, slicing and broadcasting, universal functions, and numerical algebra computations.
  3. Storage and Processing of Large Amounts of Data. Applications in scientific and engineering domains often have to deal with large amounts of data. In this section, techniques for dealing with commonly encountered data formats and data storage options are discussed. This includes column-oriented text files, Microsoft Excel, NetCDF, HDF5, relational databases, and data serialization with pickle.
  4. Graphical Presentation of Scientific Data with matplotlib. The results of scientific and technical calculations regularly need to be presented graphically. This section introduces matplotlib, a library that allows scientists to produce publication-quality plots within Python using only a few lines of code.
  5. Object Oriented Programming for Scientific and Technical Projects. The object-oriented paradigm is currently prevailing in software engineering. However, many scientist and engineers are more familiar with procedural programming. This section introduces important object oriented programming topics and uses examples to show that object orientation can be beneficial for many typical scientific or engineering problems.
  6. Open Time for Problem Solving. Prior to the course, participants will be asked to about the common kinds of tasks that they usually need to solve at work. In this section, solution strategies with Python will be attempted and discussed.
  7. The last two days of the course go into more depth on software engineering topics including interfacing with other languages, testing, and version control.

  8. Extending Python with Other Languages. Python can be readily connected with other programming languages including C, C++, and Fortran. In this section, a computationally intensive example will first be written in Python and then re-implemented in other languages and exposed to Python using different integration techniques. These include direct use of the Python C-API, Cython, ctypes, Swig, and f2py. Note: This is a large class component in which students will be expected to work with a mix of Python, C, C++, and Fortran software.
  9. Unit Testing. An introduction to unit testing for scientists and engineers. This section introduces important unit testing topics and describes how to use commonly used Python testing tools including the unittest and doctest modules, the py.test framework, and nose.
  10. Version Control with Mercurial. Version control is a fundamental tool for software engineering. This section introduces Mercurial, a distributed version control system. You will create a small project under version control and learn how to work individually and in collaboration with others.

Course Materials

Students will receive a bound set of lecture notes along with a complete set of more than class exercises (distributed electronically).

Copyright (C) 2009-2012, Dabeaz LLC. All Rights Reserved.