7 0
A
ABOUT
15
7 0
DABEAZ LLC
T
TEACHING
7 0
C
CONSULTING
7 0
S
SOFTWARE
7 0
B
BLOG
7 0
- - - E P C T O
STATUS REGISTER
E:Python Essential Reference, 4th Edition
P:PLY-3.4 (Python Lex-Yacc)
C:Chicago-area Python Classes
T:Talks & Tutorials
O:Office

[ ADVANCED PYTHON MASTERY ]

Designed for working programmers who want to take their understanding to a whole new level, this one-of-a-kind course dives into what really makes Python tick. The course starts out by looking at subtle aspects of the Python code you are already writing followed by an in-depth examination of various advanced topics including the object model, data encapsulation, descriptors, generators, coroutines, context managers, decorators, metaclasses, packages, closures, and more. By the end of the course, you'll not only know what these features are, but how they can be applied to a wide range of practical programming problems.

This course is especially appropriate for software developers building large applications, frameworks, and libraries for use by others. It is NOT recommended for programmers who are new to Python.

This course is also offered on an on-going basis in Chicago.

Syllabus

The course is taught over four days.

  1. Python Review. An accelerated review of the Python language focused on features that you should already know. Covers the basic language statements, program structure, common datatypes, functions, exceptions, modules, and classes.
  2. Idiomatic Data Handling. An in-depth look at data handling and data structures. A major focus of this section is on Python's built-in container types (tuples, lists, sets, dicts, etc.) with an eye towards studying their performance properties and resource use. Also covers important programming data-processing idioms such as the use of list comprehensions and generator expressions.
  3. Classes and Objects. A review of the class statement and how to define new objects in Python. A major focus is on how to properly encapsulate data, and when to use features such as static methods, class methods, and properties. Concludes with a review of some common object-oriented programming techniques and advanced topics including mixin classes and weak references.
  4. Inside Python Objects. A look at how the Python object system is put together under the covers. Major topics include instance and class representation, attribute binding, inheritance, attribute access methods, and the descriptor protocol.
  5. Testing, Logging, and Debugging. Learn how to test and debug your code. Covers the doctest, unittest, and logging modules. Information on assertions, optimized run mode, the debugger, and profiler is also presented.
  6. Packaging and Distributing Python Programs. This section covers the basics of how to organize programs so that they can be more easily be given to others. Covers packages and basic use of the distutils module.
  7. Working with Functions. A detailed look at more advanced aspects of Python functions. Topics include variable argument functions, anonymous functions (lambda), scoping rules, nested functions, function introspection, closures, delayed-evaluation, and partial function application.
  8. Metaprogramming. Finally understand the secret techniques used by the Python framework builders. This section covers features that allow you to manipulate code. Topics include decorators, class decorators, context managers, and metaclasses.
  9. Iterators, Generators, and Coroutines. Covers the iteration protocol, generator functions, and coroutines. A major focus of this section is on applying generators and coroutines to problems in data processing. You will learn how to apply these features to large data files and data streams.
  10. Extending Python with C and C++. An overview of basic techniques for building C extension modules to Python. Covers the process of writing a hand-written extension module, using the ctypes library, and wrapping C libraries with Swig.
  11. Python Futures (Python 3 and Beyond). A look at recent developments in the Python world. The first part of this section discusses Python 3 with an overview of notable new language features and porting advice. Concludes with a survey of alternate Python implementations including Jython, IronPython, PyPy, and Stackless,

Instruction Format

The course is designed to be taught on a 9-5 schedule with a one hour lunch break. This course consists of both lecture slides and hands-on programming exercises, with most of the time spent programming. Participants should plan on spending 4-5 hours each day working on exercises.

Prerequisites

This course assumes a working knowledge of Python programming. Students should already know know to write and debug programs and be familiar with core language features such as functions, classes, modules, and the most commonly used modules in the standard library.

About the Instructor

All courses are taught by David Beazley, author of the Python Essential Reference and nominated member of the Python Software Foundation. David has been an active member of the Python community since 1996 and is the creator of several Python-related packages including SWIG and PLY. From 1990-1997, he worked part time at Los Alamos National Laboratory where he helped pioneer the use of Python on massively parallel supercomputers. From 1998-2005, he was an assistant professor in the department of computer science at the University of Chicago where he taught courses in operating systems, networks, and compilers. In addition to his work with Python, Dave has extensive experience with C, C++, and assembly language programming. Dave has a Ph.D. in computer science and a M.S. in mathematics. An academic CV is available upon request.

Logistics

The class is best suited for 10 or fewer students. A larger class size is possible, but due to the advanced nature of the material it should not exceed 16 students.

You are responsible for providing the instruction space, a video projector, and machines where students can work on the programming exercises. The course can be taught on Windows, Linux, or Mac OS-X. However, all machines must be equipped with the latest version of Python (currently Python 2.7) and may required a small set of third-party libraries.

2011 Schedule and pricing

Classes are normally scheduled at least 8 weeks in advance. However, classes in the Chicago area can often be scheduled on shorter notice depending on availability.

The cost of Advanced Python Mastery with up to 10 students is $15000. This is an all-inclusive price that includes instructor travel expenses. Additional students can be added for $1200/student.

Classes can be taught internationally, but will be charged at 1.5 times the normal rate to cover added travel expenses. Discounts are available for government contracts and for classes in the greater Chicago area.

Contact

For more information, you can contact me by sending email to "dave" at "dabeaz.com".