OOP and Clean Design Practical courses

EDAG Freelance de logo 1 Hochschule Esslingen Targenio Seidenader Samsung Bundesamt für Seefahrt und Hydrographie Nuernberger Versicherung

Customized OOP and Clean Design training

Would you like to improve the design of your programs and minimize error sources sustainably? We teach you in a simple and structured way how to use modern object-oriented techniques. Get to know the basics of object-oriented design and object-oriented programming. Features like classes, inheritance, and interfaces will no longer be foreign words to you. Make use of the most important design and architecture patterns for your needs.

We will certainly find the optimal combination for the needs of your team. Bring all your questions. We are happy to take the time to advise you individually.

All courses live

In the Academy or online

Your Team Benefits at a Glance

  • Customized Topics

  • Flexible Dates and Training Formats

  • Experienced Trainers

  • Certificate for Active Participation

  • Learning Material

  • Practice-oriented, Compact and Lively

OOP and Clean Design topics and modules

Does your team work regularly with object-oriented programming and strives for clean design in software development? If so, we have just the thing for you! Customized trainings also for developers who specialize in object-oriented programming and clean design. Get the most out of your software projects. Thanks to individual modules, your development team can receive customized training focused on the principles of clean design and object-oriented programming.

What topics are included in the area of modern object orientation and clean architecture? Courses in this subject area typically consist of a selection of the following modules. The following list includes the most common modern object orientation and clean architecture topics in all languages, but the training can be adjusted to the level of your team. Based on this, our trainer will maintain the individual objective of the course.

We don't preach theory, we solve problems! Get the maximum knowledge for your team. Compile the topics according to your previous knowledge and needs, depending on the project. Because individual learning brings the desired success!

Object Orientation

This section covers both fundamentals of object orientation that are independent of the programming language you use, as well as mechanisms that the programming language of your choice provides for implementing object-oriented designs. In the section on programming language-specific modules, you will find links to additional topics that are relevant for the various programming languages.

  • Basic concepts of object orientation
  • User-defined data types
  • Inheritance, abstract classes, and interfaces
  • Protocols (for Python)
  • Templates (for C++)
  • Multiple inheritance (for Python, C++)

Brief introduction to patterns and UML

Graphical representations are sometimes easier to understand than code for recognizing large relationships. In this short module, you'll learn how to use some of the diagram types in UML to sketch out the structure and interactions of your software on the whiteboard. We'll also briefly cover what design patterns are and why they're a great way to get quick, in-depth insights into good software design.

  • What are patterns and why are they interesting for us?
  • Class diagrams
  • Interaction diagrams
  • Sequence diagrams
  • Collaboration diagrams
  • Activity diagrams

Design Patterns

The book "Design Patterns" was the trigger for the wave of publications and conferences dealing with patterns. The four authors of the book are often jokingly referred to as the "Gang of Four", hence the term "Gang of Four Patterns" (GoF Patterns for short) is sometimes used when trying to distinguish them from the multitude of other patterns.

Many of these patterns have proven themselves in countless software projects, and every programmer, designer, and architect involved in object-oriented software should have heard of them.

  • Erzeugungsmuster (Creational Patterns)
  • Factory Method
  • Abstract Factory
  • Singleton
  • Builder
  • Prototype
  • Strukturmuster (Structural Patterns)
  • Adapter
  • Bridge
  • Decorator
  • Facade
  • Flyweight
  • Composite
  • Proxy
  • Behavioral Patterns
  • Interpreter
  • Template Method
  • Observer
  • Visitor
  • Iterator
  • Command
  • Memento
  • Strategy
  • Mediator
  • State
  • Chain of Responsibility

SOLID Patterns

The SOLID patterns are a collection of five design patterns popularized by Robert Martin as part of his Clean Code and Clean Architecture books. In this module, you will learn about the SOLID patterns and see what the benefits (and problems) of using them are and how to make sense of them.

  • Single Responsibility Principle
  • Open Closed Principle
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependence Inversion Principle

GRASP Patterns

The "General Responsibility Assignment Software Patterns" (GRASP) are a collection of nine design patterns for object-oriented design and for structuring responsibilities, published by Craig Larman, which provide a somewhat different perspective on architectural issues than the SOLID principles.

  • Information Expert
  • Creator
  • Controller
  • Indirection
  • Low coupling
  • High cohesion
  • Polymorphism
  • Protected variations
  • Pure fabrication

Architektur-Patterns

Practical Software Architecture and Architecture Patterns

Design patterns can be applied not only at the design level, but also in the area of software architecture one can identify patterns, e.g., different architectural styles of how a system can be structured in the big picture. In this module, we address some commonly encountered architectural styles and show what consequences result from the choice of architectural style.

  • Emergent architecture
  • Architectural styles
  • Layered architecture
  • Pipes and filter architecture
  • Hexagonal architecture

Combining Patterns

In this module, we discuss how patterns are combined in many systems to solve various design problems. Here you will see examples of how patterns can be combined in a useful way, but also how overuse of patterns can make software too complicated and difficult to maintain.

  • Interaction of patterns
  • Antipattern: "Patternitis"
  • Examples: Game programming
  • Examples: Personnel management system

Working effectively as a team

These modules cover techniques that help make teamwork more productive and improve the quality of the resulting software.

The Working effectively as a team module includes the following focus areas:

  • Version control (Git)
  • Docker
  • Continuous Integration (CI)
  • Workflows: Issue Tracking, Pull/Merge Requests
  • Example: working with a local GitLab instance in Docker
  • Kubernetes
  • Elasticsearch/Kibana (OpenSearch/Dashboards)

Example: Customized Clean Software Architecture

This example shows how some courses can be structured to meet typical customer requirements.

Example: Improve or Redesign Software Architecture

What could a course on Modern OOP and Clean Architecture look like?

If your team wants to improve the existing software architecture or wants to learn and apply the techniques for designing and designing effective software architecture with Object Oriented Programming (OOP), then this course is just right for you. A Clean Software Architecture course would typically cover a selection of the following topics:

  • Object-Oriented Design (OOD)
  • Object-Oriented Programming (OOP) in the language of your choice
  • How do I use OOD and OOP correctly? How do I avoid pitfalls?
  • Design and architecture patterns
  • Systems of Patterns (GoF, SOLID, GRASP)

Your Trainers

Dr. Matthias Hölzl
Dr. Matthias Hölzl

Expert: Python, C++, Clean Code, Unit Test, Clean Design

Dr. Stefan Behnel
Dr. Stefan Behnel

Expert: Python, Pytest, Clean Code, Fast Python, Cython

Dr. Max Meier
Dr. Max Meier

Expert: .NET/C#, Software Architecture, Microservice

Questions and answers about OOP and Clean Design training

What course formats are available?

3-day on-site course at the Coding Academy

The course takes place in our modern and top-equipped training rooms. We provide each participant with a modern laptop during the training. Drinks are provided by the Coding Academy. You will receive access to the materials no later than the first day of the course.

3-day in-house training on-site at your location

Our trainers are also happy to come to you if this is expressly desired by you and you have a good training room and the necessary infrastructure for the training.

3-day online course

The course takes place online. All you need is a computer with internet access; however, for some courses, it may be necessary to install the software used; this is indicated in the description of the respective course. You will receive access to the materials no later than the first day of the course.

4-Week Training Program

A new and innovative learning concept. You can find more information about the 4-Week Training Programm here.

What is the formal process (ordering, training, invoice)?

  • If you are interested in a training course, it is best to contact us so that we can clarify the technical topics.
  • If you would like to take the training course with us, we will be happy to send you a non-binding offer.
  • If the offer suits you, please accept it (a short confirmation by email is sufficient).
  • If you need an order confirmation, we will be happy to send it to you.
  • Afterwards, we will find a date that fits well for your team.
  • For online training, we will provide you with the link: MS-Teams, BBBServer, or Zoom.
  • A few days after the training, you will receive an invoice with a payment term of two weeks.
  • Upon active participation in the training, participants will receive their certificates by email afterwards.

Do graduates of the OOP and Clean Design courses receive a certificate?

Of course, as a participant in a OOP and Clean Design course, you will receive a certificate. The prerequisite for this is full participation in all course units and programming tasks, and the successful programming of a small final project. However, after an intensive course, this will certainly bring you more joy than stress.

What distinguishes courses at the Coding Academy?

  • Individual: We specifically address your needs and take into account your previous knowledge, desired topics, and focus areas.
  • Developed by experts using the RAED teaching method®
  • Compact, lively, and entertaining
  • Structured and easy to understand
  • A lot of practice: You can immediately apply the knowledge learned in the course.
  • Theory optimized to the essentials
  • Many examples and tasks, the difficulty of which increases linearly
  • Small groups: max. 8 participants in the 3-day course; max. 15 participants in online coaching
  • Highly qualified trainers with up to 30 years of experience in industry and teaching at German universities and colleges
  • For on-site trainings, we provide modern laptops to the participants at no additional cost.

Customer testimonials

We thank our customers for their trust. 

We have taken as a team a three-day training on "Python Clean Code Architecture" . I can absolutely recommend the courses at this academy....

Show full testimonial

Benjamin Breuell,
Kinexon GmbH

When our employees ask me about training courses in the field of coding and clean code, there is now only one contact name and that is of course you: the Munich Coding Academy! In your courses you have scored with a super performance and great commun...

Show full testimonial

Herr Tim Stuckmann,
VW

NO QUESTION REMAINS UNANSWERED HERE!

We are very happy to take time for you. Use our contact form for a written contact. Our team will respond quickly and within 24 hours at the latest. In case of technical questions and to clarify the focal points, which are target-oriented for your team, please use the possibility of a non-binding consultation appointment.