Course Description: The course covers intermediate to advanced Python programming techniques. This means that the course is not aimed at programming beginners. This course is compact, instructive, and useful. You learn not only how to use Python well, but also more abstract concepts that are transferable to other languages, as well as how to create a good programming environment. Prerequisites: Creating and using variablesIf-statements, loops and logical expressionsImplementing your own functions and classesImporting from external packagesIn the course we will use Visual Studio Code (VSCode)as the IDE which is free for all operating systems.I assume that you have already Python 3.8 or newer on your system, if not you could install it via Anaconda for example. This course consists of the following topics: Memory management of variables in PythonMutable and Immutable TypesShallow and Deep CopiesThe correct use of containers (list, dict, set etc.)f-Strings formattingFunctions and Decoratorsargs and kwargs ArgumentsObject orientation and inheritanceSpecial Dunder MethodsDataclass, Enum and NamedTupleThe integration of CythonUsing the Python C API (CPython)Using PyBind11 (introductory example)Using Numba and MypycUsing multiprocessing and multithreadingGlobal Interpreter Lock (GIL) in PythonUsing asynchronous programmingBecome a pro today, in the technology of tomorrow! See you in class!