Object Approaches to Programming |
Bienvenue sur la page d'accueil du cours de Programmation Orientée Objet donné à l'EPITA en première année du cycle Ingénieur. Vous trouverez ci-dessous les transparents associés à chaque chapitre du cours.
This course on object oriented programming is divided in two different parts. The first part deals with the classical approach (class-based, static typing, single dispatch) while the second part presents a more general, multi-paradigm approach (still class-based, but also dynamically typed, functional, and with multiple dispatch and a meta-object protocol).
Chapter 0 relates the history of the paradigm, its origin and its evolution.
Title | Slides |
---|---|
00. Introduction | PDF (fr, en) |
Part one presents the “classical” approach, that is, the most commonly used today. This is the approach of languages such as C++ and Java, which are both used for illustration purposes. The characteristics of this approach are the concepts of “class” for structuring information, “message passing” (single dispatch) for modelling dynamic behavior, all of this in the general context of statically typed languages.
In this part, we present the fundamental concepts underlying this approach and the basic modelling principles that go with it. We also exhibit its limitations and emphasize on the tight connection of those limitations to the underlying languages specificities.
Title | Slides | Companion Code |
---|---|---|
01. Classes et Objets | PDF (fr, en) | tar gz |
02. Agrégation, Composition, Héritage | PDF (fr, en) | tar gz |
03. Surcharge, Masquage, Ré-écriture | PDF (fr, en) | tar gz |
Part two presents an alternative approach to object orientation as described in part one. Although still based on the concept of class, this approach features a number of distinctive traits, in parrticular: dynamic typing, multiple dispatch, and meta-object protocol. Our goal here is to demonstrate that there is no single view on object orientation, and also that the weaknesses of the classical approach disappear in this more expressive version.
Title | Slides | Companion Code |
---|---|---|
04. CLOS: Common Lisp Object System | tar gz | |
05. CLOS Avancé | tar gz | |
06. Étude de Cas 1: Méthodes Binaires | tar gz | |
06. Étude de Cas 2: Design Patterns | tar gz |