You are on page 1of 4

John Bryce Training LTD, Hi-tech Technology College LTD and Hi-Tech Mediatech College (2002) LTD are

part of the Matrix IT LTD group

Advanced Python Programming


Course 40842 – 32 Hours

Python is a high-level interpreted language that comes with a rich set of data types, support for object-
oriented and functional programming, and a versatile library. Combined with a large and active
worldwide community of users, it is no surprise that Python is one of the most popular languages in
use today, from commercial software companies to the pharmaceutical industry, to research in such
diverse fields as biology, sociology, and linguistics. Python is also popular among Web developers, for
its strong support for text handling, networks, and databases, and frameworks such as Twisted and
Django.
This course is aimed at programmers with a basic to intermediate knowledge of Python. It covers
control and data structures beyond what is acquired in the basic Python course, concentrating on their
unique Python implementation and application, with stress on object-oriented and concurrent
programming. Third-party libraries and frameworks are chosen for simplicity and demonstration of the
programmatic techniques acquired. This is not a course for learning Python applications.

 Implement object-oriented designs, to any degree of complexity, in Python. In


 Implement user-defined types, such as container-like classes.
 Implement Simple GUI applications in wxPython.
 Implement Concurrent designs in Python.
 Apply Test-driven design with Python unit testing.

 Programmers with some Python experience, who want to take their skills to the next level.

Previous object-oriented programming experience in Python.

John Bryce Training 29 Homa Umigdal St. Tel Aviv 6777129, Israel
Tel. +972-3-7100777 | Fax. +972-3-7100730
Te l - A vi v | H a i f a | J e r u s a l e m | H u n g a r y | www.johnbryce.com
John Bryce Training LTD, Hi-tech Technology College LTD and Hi-Tech Mediatech College (2002) LTD are part of the Matrix IT LTD group

Python refreshment
 Types
 Flow of control
 Functions
 Strings
 Collections

Data abstraction and advanced collection


 Magic methods: Indexed and keyed access.
 Magic methods: Sequential access – Iterator / generator protocol.
 List emulation
 Dictionar
 Bound and unbound methods.
 Using metadata.

Functional programming in Python.


 Inner functions and closure.
 Functions as objects.
 Higher-order functions: decorator.
 Lambda functions: definition and typical uses.

Object-oriented programming in Python


 The need for substitutability. The Python approach: “duck typing”
 Commonality and variance. Inheritance. Abstract base class. Constructor override
 The message paradigm. Left-handed polymorphism. The principle of substitutability
 Double polymorphism: multi-methods, double dispatch
 Polymorphic Design Patterns in Python using metadata: Composite
 Design patterns made trivial in Python: Singleton, Dynamic Pluggable Factory, Factory Method,
Prototype, Proxy

Error and Exception handling


 Writing to stderr
 Controlling warnings
 Exception handling
 Multiple exceptions
 The Python exception hierarchy
 The raise statement
 Raising our own Exceptions
 Assert

Packaging and Interop


 Modules
 Packaging
 Distributing packages (Egg and wheel)
 Package managers
 Documenting code - pyDoc
 Working with C and Python

John Bryce Training 29 Homa Umigdal St. Tel Aviv 6777129, Israel
Tel. +972-3-7100777 | Fax. +972-3-7100730
Te l - A vi v | H a i f a | J e r u s a l e m | H u n g a r y | www.johnbryce.com
John Bryce Training LTD, Hi-tech Technology College LTD and Hi-Tech Mediatech College (2002) LTD are part of the Matrix IT LTD group

Unit Testing
 Test-driven design in Python

Multitasking
 Creating a process from Python
 Waiting for a child
 Using the subprocess module
 The subprocess.Popen class
 Passing data through a pipe
 Processes and threads
 Threads in Python
 Synchronisation objects in threading
 Simple use of Lock
 The trouble with threads
 Using the multiprocessing module
 Queue objects

Python standard library


 The Standard Library
 Pretty Printer
 Operating System interfaces - os and friends
 System specific attributes - sys
 Signal handling - signal
 Converting a signal to an exception
 Configuration files
 The ConfigParser module
 The datetime module and friends
 The platform module
 External function interface - ctypes
 The socket module
 __future__
 collections module

Advanced Regular Expressions


 Regular expressions in python
 Multiline matching
 Named captures

Advanced Data handling


 Files
 Json and XML
 Database access - mysql

From python
 Web development with Djungo

John Bryce Training 29 Homa Umigdal St. Tel Aviv 6777129, Israel
Tel. +972-3-7100777 | Fax. +972-3-7100730
Te l - A vi v | H a i f a | J e r u s a l e m | H u n g a r y | www.johnbryce.com
John Bryce Training LTD, Hi-tech Technology College LTD and Hi-Tech Mediatech College (2002) LTD are part of the Matrix IT LTD group

Useful Packages – the road ahead


 Web development with Djungo
 GUI development
 Numpy
 Matplotlib
 Seaborn
 Pandas – data analysis
 Machine learning - Scikit learn

John Bryce Training 29 Homa Umigdal St. Tel Aviv 6777129, Israel
Tel. +972-3-7100777 | Fax. +972-3-7100730
Te l - A vi v | H a i f a | J e r u s a l e m | H u n g a r y | www.johnbryce.com

You might also like