Logo
MOOC

Advanced object oriented design and development with Pharo

Advanced Object-Oriented Design from a programming perspective. In particular it stresses Test-Driven Design (TDD).

Ouvert

17 juin 2024

40 hours

🇬🇧

English

CC BY NC

Course description

This MOOC is about Advanced Object-Oriented Design. You will get to know and understand the key mechanisms and the essence of OOD. Either you are a beginner or an expert in object-oriented programming, this MOOC immerses you in advanced object-oriented design. We are sure that you will not develop the same way after following this unique lecture. It is built on more than 60 years of expert teaching object-oriented design. This MOOC invites you to a journey around 10 modules (with over 60 videos) covering the following topics:

  • Understanding messages
  • Test-Driven Design
  • Hooks: support for evolution
  • Objects: state and behavior
  • Elementary design patterns
  • Double dispatch
  • Object creation
  • Sharing objects
  • Inversion of control
  • About types

The MOOC proposes several design exercises ranging from little interpreters to games and quizzes.

Course objectives

At the end of this course, you will know:

  • elementary concepts around self, super, and the power of dispatching to dedicated objects.
  • how to test applications and how to take advantage of test driven design.
  • how to design abstractions that are extensible using hooks.
  • to make the difference between data, objects and classes, based on basic principles.
  • important design patterns such as composite and state.
  • how to compare usage versus inheritance a way to understand the forces in presence in a design.
  • the double dispatch mechanism and the visitor design pattern which is based on it.
  • patterns to create and initialize objects.
  • different techniques and design patterns to share objects.
  • the law of demeter and different techniques to achieve Inversion of control.
  • typing and its relation with object-oriented design.

Who is this course for?

  • Students, beginners and experienced developers
  • IT teachers
  • Anyone interested in agile methods

Having a first knowledge on object-oriented programming is better to fully understand the advanced topics of this MOOC.

To understand the Pharo syntax, start by taking Module 0: Warm up. If you want to learn more, you can follow the MOOC "Live Object Programming in Pharo" in speed mode.

Course outline

  • Module 0: Little Warm up with Pharo
  • Module 1: Understanding messages
  • Module 2: Test-Driven Design
  • Module 3: Hooks: support for evolution
  • Module 4: Objects: state and behavior
  • Module 5: Elementary design patterns
  • Module 6: About double dispatch
  • Module 7: Object creation
  • Module 8: Sharing objects
  • Module 9: About Inversion of control / Registration
  • Module 10: About Types

Educational team

Authors:

  • Stéphane Ducasse, Research director, University of Lille, Inria
  • Luc Fabresse, Professor, University of Lille, IMT Nord Europe, Inria
  • Guillermo Polito, permanent researcher, University of Lille, Inria
  • Pablo Tesone, engineer, University of Lille, Inria

Pedagogical support:

  • Sherazade Djeballah, Learning Designer, Inria Learning Lab
  • Sabah Khalfa, Learning Designer, Inria Learning Lab
  • Marie Collin, Learning Designer, Inria Learning Lab

Additional resources

Partner

Voir le cours