This lecture will teach you the way program with live objects. We use Test Driven Development and show Object-Oriented Design using multiple examples.
Object-oriented programming is more than just writing algorithms. It is identifying objects, defining the behavior of such objects and how they collaborate together. Object-oriented design experts think in terms of responsibilities and collaborations that an object has. In addition finding a good design is a challenging task that depends on the context and often there is no such thing that the perfect correct solution. There are tradeoffs. Therefore good design is often the result of an iterative process. In this course we will follow the expression: "Designing starts when the program compiles" it means that we will first get a first version and think about it and since we will have written tests we will be able to change the design and improve it. This way you will learn by doing.
In this lecture we will focus on object-oriented programming concepts:
We decided to use Pharo. Pharo is not mainstream but it is used in many Universities in the world to teach object-oriented programming because it is one of the best language to grasp the complex design forces that makes good design. Pharo syntax is small and Pharo model is pure and elegant. What you will learn can be applied to any object-oriented programming language. more…
Throughout this lectures you will:
This lectures also focuses a different vision of the fundamental principles of object-oriented programming mainly polymorphism and late binding.
Each week is composed of several sequences containing several lectures and their slides and associated videos. In addition videos proposing application exercises and programming demonstrations are available.
You can access
You can access
You can access
You can access
You can access
You can access
You can access
You can access
We will use Pharo 50 as the Pharo Mooc. Now you are free to use Pharo 6.1
Stéphane Ducasse is directeur de recherche at Inria. He leads the RMoD team. He is expert in two domains: object-oriented language design and reengineering. His works on traits have been introduced in AmbientTalk, Slate, Pharo, Perl-6, PHP 5.4 and Squeak. They have also influencedJavaScript, Scala and Fortress. Stéphane is also expert on software quality, program understanding, program visualisations, reengineering and metamodeling. He is one of the developers of Pharo. He is also one of the developers of Moose, an open-source software analysis platform. He created Synectique a company building dedicated tools for advanced software analysis. Stéphane wrote several books on programming learning and other topics such as web programming.