Advanced Topics with Python


System Programming with Python

Python System Programming "System focused programming" might be the better term than "System Programming". System programming or systems programming means often only the activity of "programming system software", programs which are often part of the operating system. Our topics in this section of our online course deal with Pipes, Threads and Forks and starting and using shell commands and scripts from a Python script.

Python has various modules to support system focused programming.

The sys module is introduced in the first chapter. A focal point are the data streams (stdin, stdout, stderr) and redirections of streams.

The interaction between is the focus in the following chapter of our course.
The interaction between Python and the Linux Shell is another topic of our advanced section. This chapter is followed by Forks and Forking.

You can learn more about threads and threading in our Introduction into Threads. We show how to find the active IP addresses in a local network by using forks.

The chapter, which is subtitled as "Pipe, Pipes and '99 Bottles of Beer'" might be interesting to teetotallers as well, because it's not about alcohol but dealing with alcohol, even though the "99 bottles of beer" in the title give the impression. Instead, we show you how to write a program which is construing the famous American song "99 bottles of beer" by using forked processes and Pipes. So, if you need a good example of pipes and forks working together you will find it here.

Graph Theory

We have three chapters dealing with Graphs.

Mathematics



Computer Science and Computer Linguistics

Finite State Machines are not only used in computer science but in natural language processing as well. We cover the concept of the Finite State Machine in great detail, so that even an amateur in Computer Science can understand the examples. At least we hope so.

Alan Turing's Turing Machines and above all the underlying theory is a must for every computer scientist. We show a simple implementation of a Turing Machine.

If you are interested in Classifying documents, the Introduction into Text Classification using Naive Bayes and our Python Implementation of Text Classification will be the right chapters for you.

Numerical Computations with Python

If you want to get efficient and fast results with arrays and matrices, the NumPy module of Python is definitely the right tool collection for you. You will find answers to your questions in our tutorial, i.e. in our chapters "NumPy Module" and "Matrix Arithmetic".

The module matplotlib is all you will need to plot and depict your data.

We also provide an introduction into Linear Combination

Music

It's also possible to create scores with Python: You can find a complete working example in Creating Musical Scores With Python

If you feel that the above topics are too complicated or sophisticated for you, you might like our course for beginners in Python. You find a documented link list in the following lines:

Databases with Python

An introduction into using database interfaces in Python for SQL, MySQL and SQLite

"Games"

What you find are not real games! We show a recursive solution to Towers of Hanoi and a game Cows and Bulls better known in a commercial version called "Mastermind".

Online Course

You will find a complete introduction into Python in our online tutorial:

Further Topics

News

June 2020:
We are proud to present a new Turkish sibling of our website. Python-kurslari.eu. Thanks to the work of Melisa Atay and Barbaros Akkurt.

June 2020:
I (Bernd) revised the chapter "Python Iterators and Generators"

May 2020:
Bernd changed the chapter on "Magic Methods and Operator Overloading". He added further examples of the __call__ method and sharpened the explanations a bit more.

April 2020:
Great news: The listings in the Python tutorial are getting more colorful. Melisa Atay works hard to turn the existing html files into Jupyter Notebooks, which get automatically transformed into html. This way the code listings get syntax highlighting. She also checks the tests and examples by doing this.

February 2020:
Bernd Klein finally finished two new chapters of my machine learning tutorial:



November 2019:
After having worked so much on Numpy, Matplotlib and Pandas, I (Bernd) concentrated on pure Python. I continued the journey into the the depth of properties. You can join me: "Deeper into Properties" One step further: "Descriptors"

October 2019:
I added a new chapter to the Pandas Tutorial: Replacing Values in DataFrames and Series

September 2019:
I reshaped most of the chapters of my Matplotlib Tutorial:

August 2019:
It was long overdue. Finally we have a chapter on pytest

Juli 2019:
I wrote a new chapter with an extensive example of multiple inheritance in Bursa and Istanbul and did the final touches on a train from Geneva to Zurich. The underlying ideas have arisen while giving Python courses in various locations. The examples were nearly finished as well. All I did in Turkey was writing the explanatory text.

June 2019:
The Chapter on Inheritance has been nearly completely rewritten. Instead of using the old and boring "employee" and "person" classes, we are now using the Robot, which we have also used in our Introduction into OOP. You will meet the robot Marvin and his new friends "James" and "Dr. Frankenstein"!

April 2018:
A completely new chapter An Extensive Example for Sets was added to our tutorial. This chapter is supplementing the chapter Sets and Frozensets

October 2017:
In our chapter on Polynomials we demonstrate how easily and beautifully a class for the creation and manipulation of polynomial functions can be written in Python.

January - March 2017:
We extended our chapters on Generators and Decorators

May 2016:
New chapter on Decorators. In combination with our chapter on Memoisation and Decorators it belongs to the most extensive treatisises on the topic of decoration à la Python!

December - March 2016:
We wrote four chapters dealing with abstract classes as a tutorial on Metaclasses: August 2015:
We added a chapter on Slots and another about the difference between type and classes.

July 2014:
An introduction into using database interfaces in Python for SQL, MySQL and SQLite

March 2014:
We are currently completely revising the chapter on object oriented programming. It's more or less complete rewrite. The old version dealing with OOP can still be accessed, though we recommend to work through the new ones.
The topic now comprises five instead of previously only one chapter:

Our next Training Courses


Our next open Python classes with Bernd Klein, the author of this website:

Amsterdam:


Python Seminar for Engineers and Scientists:
    2nd of Mar - 6th of Mar , 2020
    22nd of Jun - 6th of Jun , 2020

Berlin:


Python Course for Data Analysis and Machine Learning:
    2nd of Mar - 6th of Mar , 2020
    20th of Apr - 24th of Apr , 2020
Python Intensive Course:
    15th of Jun - 19th of Jun , 2020
Python Seminar for Engineers and Scientists:
    2nd of Mar - 6th of Mar , 2020
    22nd of Jun - 6th of Jun , 2020
Python Text Processing and Computer Linguistics Course:
    22nd of Jun - 6th of Jun , 2020

Frankfurt:


Python Intensive Course:
    15th of Jun - 19th of Jun , 2020
Python Seminar for Engineers and Scientists:
    22nd of Jun - 6th of Jun , 2020
Python Course for Data Analysis and Machine Learning:
    20th of Apr - 24th of Apr , 2020

Hamburg:


Python Intensive Course:
    15th of Jun - 19th of Jun , 2020
Python Seminar for Engineers and Scientists:
    22nd of Jun - 6th of Jun , 2020
Python Course for Data Analysis and Machine Learning:
    20th of Apr - 24th of Apr , 2020

Lake Constance / Zurich:


Python Seminar for Engineers and Scientists:
    20th of Jan - 24th of Jan , 2020
    10th of Feb - 14th of Feb , 2020
    2nd of Mar - 6th of Mar , 2020
    22nd of Jun - 6th of Jun , 2020
Python Course: Level I:
    11st of May - 15th of May , 2020
Python Intensive Course:
    15th of Jun - 19th of Jun , 2020
    22nd of Jun - 26th of Jun , 2020
Python Course for Data Analysis and Machine Learning:
    2nd of Mar - 6th of Mar , 2020
    20th of Apr - 24th of Apr , 2020

Munich / München:


Python Intensive Course:
    15th of Jun - 19th of Jun , 2020
Python Seminar for Engineers and Scientists:
    22nd of Jun - 6th of Jun , 2020
Python Course for Data Analysis and Machine Learning:
    20th of Apr - 24th of Apr , 2020

Paris:


Python Seminar for Engineers and Scientists:
    22nd of Jun - 6th of Jun , 2020

Vienna / Wien:


Python Course for Data Analysis and Machine Learning:
    20th of Apr - 24th of Apr , 2020






A Course is not a Course

The question is ambiguous. First we want to explain, why this website is called "A Python Course". This website is seen all over the world and the expression "course" has varying meanings in the English speaking world. Both in the United States and Canada, a course is a teaching unit, which might last e.g. one academic term. The students normally get a grade or some academic credit for attending the course, usually after having passed an exam.

In the United Kingdom and Australia the term "course" usually defines the complete programme of studies required to complete a major or a study path leading to a university degree. The word "unit" is used in the UK to refer to an academic course in the North American sense.

On the one hand, we had the US and Canadian sense in mind: Our Python is one teaching unit and when you have successfully passed it, you are capable of programming in Python. On the other hand, we had the original meaning of the word in mind: A "course of instruction" as it might be used in book titles like "A Course in Programming Python".