Course Data

Course name: Cython in Depth
Course length: 2 days
Remote: Yes
Open course: Yes
In-house: Yes
Course ID: CYE
German course here

Course Dates

Location Date Registration
Leipzig October 13 - 14, 2022
Remote October 13 - 14, 2022

Combining Topics

Company courses allow to assemble trainings combining topics from different courses.

Course Topics Overview as PDF

You can download our flyer. It has an overview of all our course topics.

Cython in Depth

Our course High-Performance Computing with Python also covers Cython, focussing on the integration with NumPy.


This course is given by a core developer of the Cython open-source project.

Target Audience

The course targets medium level to experienced Python programmers who want to break through the limits of Python performance. A basic understanding of the C language is helpful but not required.

Motivation

The Python programming language has been used successfully in a large number of application domains. Even performance critical applications, such as scientific computation frameworks or text processing applications, have been realized using Python in order to benefit from short development cycles and highly maintainable code.

However, the interpreted language also has its weaknesses. Tight algorithms in numerical computations and character processing often suffer from the overhead of object operations in arithmetic expressions or memory copies in string slicing. In high performance applications, the optimizations that can be performed at the language level may not be sufficient.

This is where the Cython programming language shows its strength. Cython is a general purpose programming language that forms a best-of-both-worlds cross between the Python language and the ubiquitous datatypes of the C/C++ language. It comes with an optimising compiler that translates Python code into C code for Python extension modules, and tightly adapts the generated code to the available static type information.

Cython code can be written as high-level Python code and manually optimised in well selected hot-spots by statically declaring data types or calling directly into external code written in C, C++ or compatible languages. This makes the entire range from simple, expressive Python code down to highly optimized, low-level C code available for programming in a single language.

The objective of this course is to get to know the Cython language, and to learn how to use it to speed up Python code by orders of magnitude. You will also learn how to wrap external C libraries to efficiently and comfortably use them from Python.

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.

Software

We use our online programing system that contains all needed software. There is no need to install any additional software. A modern internet browser and a decent internet connection will be enough.

Hardware for Open In-Person Trainings

For open trainings at our teaching center you can use your own laptop. Alternatively, we provide teaching computers. Please let us know if you need one in your registration form.

Course Material

Every participant receives comprehensive materials in PDF format that cover the whole course content as well as all source code.

How to contact us:
Python Academy & Co. KG
Zur Schule 20
04158 Leipzig / Germany
Tel:+49 341 260 3370
Fax:+49 341 520 4495
mail:info@python-academy.de
How to contact us:
Python Academy & Co. KG
Zur Schule 20
04158 Leipzig / Germany
Tel:+49 341 260 3370
Fax:+49 341 520 4495
mail:info@python-academy.de