7 0
A
ABOUT
15
7 0
DAVE BEAZLEY
T
TEACHING
7 0
C
CONSULTING
7 0
S
SOFTWARE
7 0
B
BLOG
7 0
- - - E C P T O
STATUS REGISTER
E:Python Essential Reference, 4th Edition
C:Python Cookbook, 3rd Edition
P: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 offered on an on-going basis in Chicago. It can be taught on-site in Chicago and delivered as a virtual course elsewhere.

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. Modules and Packages. This section covers details related to using modules and packages to organize larger programs. A major focus is understanding the underlying behavior of the import statement and some of the more tricky issues related to organizing packages.
  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.

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

David Beazley is the author of the Python Essential Reference, the Python Cookbook, 3rd Edition, and is elected 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 (Python Lex-Yacc). 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.

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 and may required a small set of third-party libraries.

2016 Schedule

Classes are normally scheduled at least 8-32 weeks in advance. However, classes in the Chicago area can often be scheduled on shorter notice depending on availability. This course can also be taught remotely as a virtual course.

Contact

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