page header photo
share Twitter share LinkedIn

course Advanced Python

This training is OS platform-independent

This Advanced Python course covers language features intended for use in large scale programming projects. One area to explore is testing and debugging of Python code, building packages, etc. Advanced programming techniques such as multithreading are another area covered. Furthermore the course will introduce a selection of available libraries, e.g. for database access and the use of network sockets for data transfer. Read more >>>

Target audience

  • This course aims at Python programmers who already have mastered the basic syntax of the language, and now wish to explore the advanced features of the language, its program development facilities and the use of popular modules.
Duration: 4 days        Register now
Price € 2495,- plus VAT       


Currently scheduled course dates are:

31 May, 1,4,5 Jun 2018   Utrecht will not be cancelled This course will not be cancelled!
19,20,23,24 Jul 2018   Utrecht
6,7,10,11 Sep 2018   Utrecht
6,7,10,11 Dec 2018   Utrecht

Register for this course: "Advanced Python".

More information

Popularity is increasing

Python is used in many places: system administration scripts, creating portable graphical user interfaces, web applications, etc. Installation software for many Linux distributions (e.g. RedHat Linux) is based on Python scripts.

A distinctive feature of Python is its design, from the very beginning, as an object oriented language. Furthermore, the language includes an extensive standard library, upon which your own extensions can be founded.

Prerequisite knowledge

This course assumes basic Python knowledge. This may be obtained via our course "The Python programming language". In case of doubt please consult this assessment to check your mastering of the basic language knowledge. The answers to the questions are here.

Technical content of the course

Topics covered:

  • Overview of Python-interpreters
    An overview that covers the main characteristics of the most important Python-interpreters.
  • Program startup and termination
    Parameter parsing with module argparse and the options of the exit function.
  • Modules and packages
    Various ways to load and use modules. Types of modules. Locations of modules. Combine modules into packages. Practical setup of packages.
  • Package distribution (setuptools)
    Distribution of packages. Installation of packages on the target system. Write a setup-script. Upload/download packages to/from the Python Package Index. Make a virtual environment.
  • Subprocesses
    Startup of commands with the subprocess module. Connect stdin, stdout and stderr to files or pipes. Parent-child synchronization.
  • Multithreading
    Creation and termination of a thread with the threading module. Synchronization of threads with locks. Development of thread-safe functions. Wait for other threads with join. Setup of producer-consumer model with help of queues.
    Impact of the GIL. Multiprocessing as an alternative.
  • Handling binary data
    Unpack (or pack) binary data that has been read from a file or has been received from a network connection, using the struct module. Pitfalls when processing binary data.
  • Decorators
    Structure, use and creation of decorators.
  • Database access
    Introduction on databases and SQL. Explanation of the API that connects to the database server and the way that SQL statements can be performed. Handling of transactions.
  • RESTful (client-side)
    Representational State Transfer. Concepts (HTTP GET, PUT, POST and DELETE). URL conventions. JSON and XML parsing. Requests.
  • Logging
    Generate log messages for which the exact layout and destination is arranged at one spot, using the logging module. Use of loggers, handlers and formatters. Describing log characteristics via configuration files and dictionaries.
  • Netwerk sockets (TCP/IP)
    Socket types. Client and server role. Socket API for stream and datagram sockets. TCPv4 versus TCPv6 sockets. Concurrent server models using multiple threads (thread per connection or producer-consumer model) or single-threaded using the select function.
  • Testing, debugging and profiling
    Unit testing and mock testing. Coding style checkers. Debugging, tracing and profiling.
  • Namespaces and introspection
    Namespaces in general. Use of special attributes and builtin functions to visualize the properties of objects (peek below the surface).


Course attendees receive a student kit containing copies of the presentation, lab exercises, and answers to the exercises.


Shortly after the course the student will receive a certificate as a proof of participation.

Register for this course now!

Valid XHTML 1.0 Strict   Valid CSS2