Distance Learning Object-oriented and Functional Programming in Python Language, Libraries and modern Design Patterns


Object-oriented and Functional Programming in Python Language, Libraries and modern Design Patterns

Originator and coach: Dr. Daniel J. Duffy  Datasim Education BV.

Click here for course contents.


Summary: What does this Course offer?

The goal of this comprehensive and hands-on course is to become competent in programming Python. You also learn how to design and implement  flexible code using modern system decomposition techniques and design patterns. The course assumes no previous knowledge of Python and it is suitable for novices and beginners. Some modules (for example, modules 4, 5 and 6) may also be useful to more experienced Python programmers.

We adopt a clear step-by-step approach by taking simple and clear examples and then extending them as we proceed in the course while at the same time paying attention to writing correct and maintainable code. One of the unique features of this course is that we use modern design methods in  combination with powerful Python language features to create flexible and adaptable Python programs.

This course is unique and based on modern software principles and best practices applied to making Python code robust and flexible as discussed in the course modules:

  • Fundamental and essential syntax.
  • Correct motivation for object-oriented (OOP) and functional programming (FP) paradigms.
  • Detailed discussion of OOP and FP in Python.
  • Data types, data structures and collections.
  • Multithreading and parallel processing.
  • Persistence and databases.
  • System decomposition and design patterns.

Finally, the realistic examples and test cases are distilled from real-life models and applications from several domains.


The price for full-time students Euro 1395 excl. VAT for full-time students and Euro 2395 excl. VAT for those working in industry.

For beginners, having completed modules A to F it is possible to continue with modules G, H and a possible project. If you have any queries please do not hesitate to contact me, Daniel Duffy dduffy@datasim.nl.

The course starts officially March 15 2022. It is possible to register at any time.

Topic Covered

The course consists of six modules. Each module deals with a major well-defined topic.

Module 1: Essential Python for those with no experience of programming or of Python.

Module 2: Software design principles and their realisation in Python.

Module 3: Object-Oriented Programming (OOP) in Python.

Module 4: Functional Programming (FP) in Python.

Module 5: Advanced Python Topics.

Module 6: System Development and Design Patterns in Python applications.

Module 7: Numerical Libraries.

Module 8: Test Applications A - Z.


This course can be taken on two levels: first, for beginners and novices, we advise modules 1 to 4 while modules 5 and 6 are for more experienced programmers as well as for those who feel confident with the first four modules.

Benefits and Special Features of the Course

  • Unique approach to design of flexible and maintainable Python programs.
  • Detailed treatment of major Python syntax and functionality applied to real problems.
  • Object-oriented and functional programing styles A-Z.
  • Learn Python in a step-by-step incremental approach: lots of exercises.
  • Feedback from coach on student solutions to exercises.
  • Modules for multithreading  and parallel programming.
  • Modern modular design and multiparadigm design patterns.

In contrast to many books and courses where Python is used as a tool  (possibly leading to bad programming  habits), this particular course aims to develop programming and design skills which can then be used to create robust and maintainable code for numerical algorithms, computational finance, data science, machine learning and many other application areas. For example, see the course


in which we discuss numerical methods in combination with Python. Future courses are planned for machine learning and C++ <-> Python interfacing.


What do you receive?

  • Lifelong access to the videos; hardcopy of course contents/slides sent to your home address (please be sure that the packet will be accepted at that address!).
  • Full source code that implements the examples in the videos.
  • Students send solutions to exercises using LATEX (LATEX is easy to learn).
  • Continuing help with exercises and support via email.
  • A signed certificate on successful completion of the course.
  • An initial Skype meeting to set up the course plan and a final Skype meeting prior to certification.


For whom is this Course?

The three main target groups for the course are/could be :

  • Beginners with little or no knowledge of programming or Python. We do assume that they have a Python compiler and editor running on their computer. Installation issues and choice of Python environments are not discussed in this course. Modules 1 to 3 are a suitable starting point.
  • Data scientists, quant developers and those who have already been coding in Python for some time but who wish to improve their design skills and deepen their knowledge of computer science. Modules 1 to 4 and module 6 are recommended.
  • Experienced developers who write production-level code. Modules 1 to 6 are recommended. In particular, multithreading and parallel processing are important tools in the toolbox.

The above are general guidelines but they are globally applicable. If you have any queries, please do not hesitate to contact me dduffy@datasim.nl

If you are a college student please ignore the price below and contact dduffy@datasim.nl for your student price.

Course price

Price (excl. VAT) € 2395.00
Date Start online course directly

Distance Learning Object-oriented and Functional Programming in Python Language, Libraries and modern Design Patterns

Fill in your personal details