Object Oriented Design


🧑🧔 Between 6 to 10 people

🕜 16 hours (4 blocks of 4 hours)

📊 80% practice - 20% theroy

📍 Remote or In site

🎁 A free course at our campus

¡Sounds good!
💡 This course is for companies: 👉 If you are looking courses for you as developer, please visit our campus


We all know how important it is to master object-oriented programming. That’s why we propose to explain to you in a clear, simple and, as we usually do, with lots and lots of practice, how to design in the best possible way using the object-oriented programming paradigm.

In this course, we will cover all the fundamental concepts of object-oriented programming, and we will make the team reflect on good practices.


This course covers the following topics:

  • Classes, objects
  • Abstract class vs Instance class vs Static class
  • Abstract class vs Interface
  • Aggregation, Association, Composition
  • Inheritance, Polymorphism
  • Cohesion and Coupling
  • Object Calisthenics
  • 4 rules of simple design
  • SOLID principles

Value of the course

Once you acquire the skills that I will teach you in this course, you will gain the following advantages in your development:

  • You will have the ability to better model your domain
  • Reduce complexity and coupling
  • Minimize incidents in production
  • Reduce development costs
  • Improve the codebase to work on
  • Reduce the time of new deliverables thanks to a scalable design


The most challenging part of a course is putting what you’ve learned into practice. That’s why in this course, students spend most of their time programming. We dedicate 80% to practice and 20% to theory.

The course is divided into modules, and each module consists of a theoretical and a practical part.

The practical part is organized by working in pairs, where a communicative environment is encouraged through short exercises. We will do different programming katas so that students can practice each concept that we are learning.

We will work with mob programming


This is a course for people with a minimum knowledge of programming.

The language is not important because it is a generalist training. In fact, we use different languages as demonstrations, such as Javascript, Typescript, Java, C#.

Other languages can also be used in practical exercises, which is not a problem.

Contact us

If you are interested in this course, please fill out the following form and we will get in touch with you.