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 intensive 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 as well as 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  programs.

This course is 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.
  • Essential Numerical libraries
  • System decomposition and design patterns.

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


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


Topic Covered

The course consists of 8 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.


This course can be taken on two levels: first, for beginners and novices, we advise modules 1 to 4 while modules 5 and 8 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.
  • Approximately 100 hands-on exercises.
  • 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: many hands-on 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.

What do you receive?

  • Lifelong access to the videos; hardcopy of course contents/slides sent to your home address.
  • Full source code that implements the examples in the videos.
  • Students send solutions to exercises to the teacher.
  • Continuing help with exercises and support via email.
  • A signed certificate on successful completion of the course.
  • A 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 in 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 4 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 7 are recommended. In particular, multithreading and parallel processing are important tools in the toolbox.

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


We give a student discount. The student price is Euro 1500 (no VAT if you are outside EU). The courses remain accessible forever and you can plan your own schedule but in general it should be possible to complete a course (including exercises and mini-project) in 2-4 months.  See also our Frequently Asked Questions (FAQ) on the Datasim site. Please contact 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