What customers say ...
Good course. Very competent trainer for this introduction. The course offers wide spectrum of topics and goes into depth were participants need it most.
Helmut Dittrich, CEO DiFis-Engineering UG, arrow-fix.com, about the German introducation to Django "Einstieg in Django" mehr dazu ...
Highly recommended. Many aha-experiences and took home many positive inspiratons.
Helmut Dittrich, CEO DiFis-Engineering UG, arrow-fix.com, about the German advanced Django course "Django für Fortgeschrittene" mehr dazu ...
Good course. Very fast progress without any prior Python knowledge.
Daniel Fuchs, GIGATRONIK Ingolstadt GmbH, about the German version of the course "Python for Programmers" more ...
Very nice course, got many useful suggestions.
Dr.-Ing. Ralf Wieland, Institut für Landschaftssystemanalyse, Leibniz-Zentrum für Agrarlandschaftsforschung e.V. about the German version of the course "Python for Scientists and Engineers" more ...
Mike is an outstanding teacher ... I will look for his classes in the future.
Jannifer Trasti, Software/Systems Engineer, Sandia National Laboratories, Albuquerque, NM, USA more ...
The Python Summer Course was a very good opportunity to know almost all about Python. ... Highly recommended!!
Fabio Lamanna, Ph.D. Complex Transportation Networks, Trieste, Italy more ...
We had a wide range of Python experience in our group and each person gained something valuable to take away....
Dr. Ryan Woodard, Chair of Entrepreneurial Risks, ETH Zurich, Switzerland more ...
I can absolutely recommend this course to everybody who wants become productive with Python very quickly. ...
Dr. med. Beat Meister, Bern, Switzerland more ...
The standard Python for programmers and the customized "Python for Experts" course where a great success. ...
Bart Hillaert, Alcatel-Lucent Belgium more ...
[The trainer] knows well what scientists need, so his hints are very practical and valuable. The hands-on course [..] covers a wide range of examples and will be very helpful in my daily work. ...
Dorota Jarecka, University of Warsaw about the course "Python for Scientists and Engineers" more ...
The course "Python for Scientists and Engineers" is a very useful introduction to Python programming for scientific applications ...
Dr Mihai Duta, Oxford Supercomputing Centre more ...
Very good introduction to the programming language.
Matthias Enderle, freelancer programmer more ...
Advanced Python
Target Audience
This course targets medium level Python programmers who would like to dive deeper into the language. Alternatively, participants can attend the course Python for Programmers to be able to take full advantage of this advanced course.
Motivation
The Python programming language is relatively easy to learn and allows to solve real-world problem with a just a few concepts.
But it also offers several advanced features that can help to greatly improve the programming experience. The latest releases of Python 2.x and 3.x add interesting features that can be used passively without deeper understanding about how they work. The course teaches how these features work and provides details about meta-programming and other advanced techniques.
Content
Comprehensions
The principle comes from the functional language Haskell but integrates very well into Python. After list comprehension came generator expressions followed by dictionary and set comprehensions.
The course introduces this style of programming with examples focusing on advantages and disadvantages for certain tasks.
Iterators and Generators
Iterators and generator make lazy evaluation, that is generating an object just when it is needed, very convenient. The concept of yielding instead of returning plays a central role. The course shows how to use generators to simplify programming tasks. Furthermore, coroutines will be used to implement concurrent solutions. An overview over the itertools module shows how to elegantly solve iteration tasks.
Decorators
Decorator provide a very useful method to add functionality to existing functions and classes. The course uses examples for caching, proxying, and checking of arguments to demonstrate how decorators can improve code readability and can simplify solutions.
Contextlib
The with statement helps to make code more robust by simplifying exception handling. The course shows how to use the with statement with the standard library and how to write your own objects that take advantage of with. The contextlib from the standard library helps to make this easier.
Descriptors
Descriptors determine how attribute of object are accessed. The course uses examples to show how descriptors work and how they can be used to customize attribute access.
Metaclasses
Metaclasses offer a powerful way to change how classes in Python behave. Whíle being an advanced feature that should be used sparingly, it can provide interesting help for complex problems. The course shows how to apply metaclasses and gives examples where they can be useful.
Conventions
Python offers a lot of functionality out of the box where other languages need to use design patterns. These patterns are general solutions for certain types of problems.
Python offers what is called the "pythonic" way for solving a problem. The course presents of a few of these solutions:
- wrapping instead of inheritance
- dependency injections
- factories
- duck typing
- monkey patching
- callbacks
Patterns
"It's easier to ask for forgiveness than permission (EFAP)"
One pythonic principle is "It's easier to ask for forgiveness than permission (EFAP)". Opposed to the approach to look before you leap, this principle states that you should first try an action and if it fails react appropriately. Python' strong exception handling supports this principle and helps to develop robust and fault tolerant programs.
Singelton
Singeltons are objects of which only one instance is supposed to exist. Python provides several ways to implement singeltons. These possibilities are shown using examples.
Null Objects
Null objects can be used instead of the type None to avoid tests for None. Implementation, usage as well as advantages and disadvantages are covered.
Proxy
Proxies stand for other objects. Setup and usage of proxies are covered.
Observer
The observer pattern allows several objects to have access to the same data. The principles of this pattern are shown with a comprehensive example.
Constructor
Parameters of constructors are often assigned to instance variables. This pattern can replace a many lines of manual assignment with only one line of code.
Good Style
Python is often described as an elegant language. Consistency is contributing to this. There are several recommendations and tools that help to check for them. The course has a closer look at the Python style guide (PEP8) and uses PyLint and pep8.py with examples. The participants are encouraged to bring their source code for style analysis.
Course Duration
3 days
Exercises
The participants can follow all steps directly on their computers. There are exercises at the end of each unit providing ample opportunity to apply the freshly learned knowledge.
Course Material
Every participant receives comprehensive printed materials that cover the whole course content as wells a CD with all source codes and used software.
Recommended Module Combinations
You should have intermediate Python experience or attend the course Python for Programmers before. You might be interested in the modules Optimizing of Python Programs or Python Extensions with Other Languages as well. Also, have a look at the Python Power Course, eight days of Python courses in a row.
The Python Academy is sponsor of PythonCamp 2012.
The Python Academy is sponsor of EuroPython 2012.
The Python Academy is sponsor of EuroSciPy.
News
Python Academy sponsors EuroPython conference 2012
details ...
Python Academy sponsors EuroSciPy conference 2012
details ...
Python Academy sponsors PyCon DE conference 2012
details ...
Next Meeting of Leipzig Python User Group, May 8, 2012
details ...
Course: "Python für Nicht-Programmierer" (German) in Leipzig April 15 - 18, 2012
details ...
Course: "Python für Programmierer" (German) in Leipzig April 16 - 18, 2012
details ...
Course: "Python für Wissenschaftler und Ingenieure" (German) in Leipzig April 19 - 21, 2012
details ...
Course: "Einstieg in Django" (German) in Leipzig April 23 - 25, 2012
details ...
Course: "Django für Fortgeschrittene" (German) in Leipzig April 26 - 27, 2012
details ...
Python for Non-Programmers (English) in Leipzig June 4 - 7, 2012
details ...
Python for Programmers (English) in Leipzig June 5 - 7, 2012
details ...
Python Power Course (English) in Leipzig June 8 - 15, 2012
details ...
Advanced Python (English) in Leipzig June 8 - 10, 2012
details ...
High-Performance Computation with Python (English) in Leipzig June 11 - 15, 2012
details ...
PyPy Sprint in Leipzig June 22 - 27, 2012
details ...
Advanced Python at EuroPython (English) in Florence, Italy July 7, 2012
details ...
Introduction to Django (English) in Leipzig October 15 - 17, 2012
details ...
Advanced Django (English) in Leipzig October 18 - 20, 2012
details ...
Python Academy founder receives PSF Community Service Award
details ...