3 : Design, Class Methods and Collections
Descriptif
We will discuss object-oriented design: why we code with objects and classes the way we do it. Beyond design, part 3 will present Pharo's different kinds of variables and returns as well as the collection libraries and class methods.
Exercises part 3 :
Click on the exercises titles to download the documents.
- Expression Results - Solution for week 2 exercise
- Rewriting Expressions
- [Mini-project] TinyBlog: Solution Exercise Week 2 + A Simple Teapot Web Interface
Solutions for the new exercises will be provided in the section "Exercises" of the following part.
Vidéos
Essence of Dispatch 1/2
Pour ce cours, on va parler essentiellement de conception objet et on va regarder ce qui est l'essence du dispatch ou de la liaison tardive dans le langage à objet. Ce cours prend Pharo comme exemple
Essence of Dispatch 2/2
Dans le cours d'avant, on a regardé comme on avait implémenté les booléens, not et or. Et il nous restait en suspens la question 3: pourquoi diable a-t-on posé cette question ? C'est ce qu'on va
Variables
Dans cette séquence, on va voir les variables et les différents types de variables qui existent en Pharo. En fait, il existe deux grands types de variables: les variables locales qui commencent
A Simple HTTP Application
Alors dans cette séquence on va revisiter la syntaxe Pharo, c'est-à-dire qu'on va la revoir quasiment entièrement sur un exemple concret, l'exemple d'une l'application toute simple: http donc issue du
[Live] Nautilus 4 - How to become a super Pharo developer: understanding Sender and Implementors
Dans cette vidéo, je voudrais vous montrer les analyses un peu plus poussées qu'on peut faire sur du code avec Nautilus. Donc ouvrons Nautilus, on va prendre par exemple une classe simple,
[Live] Nautilus 5: Navigating Fast inside Classes
Dans cette vidéo, je voudrais vous montrer comment Nautilus nous permet aussi de naviguer à l'intérieur des classes, et faire un petit peu des analyses un peu plus fines...
Class Methods
Dans cette séquence nous allons parler des méthodes de classe. Alors en Pharo nous avons vu que tout est un objet et qu'on pouvait envoyer des messages et des objets. Donc si on prend ces 2
An overview of Essential Collections
Alors dans cette séquence, nous allons voir les éléments essentiels de la hiérarchie des collections en Pharo. Donc vous allez voir que Pharo est riche du point de vue des différents types de
[Live] Spotter 1: Find and Browse a Class
Je voudrais vous montrer comment browser très rapidement le code d'une classe avec Spotter. Pour obtenir Spotter il faut faire shift enter, et on va taper le nom de la classe Point, là je peux choisir
[Live] Spotter 2: Filter Results by Category
Dans cette vidéo, j'aimerais vous montrer que spotter vous propose des catégories pour trier les résultats de vos recherches, et comment on peut les sélectionner...
Iterators
Dans cette séquence, on va voir les itérateurs. On va revenir sur les collections et voir comment est-ce qu'on peut les parcourir facilement, grâce aux itérateurs en Pharo. Vous allez comprendre la
Stream Overview
Dans cette séquence nous allons parler de la bibliothèque de Stream qui est fournie de base avec Pharo. Nous verrons ce que sont les streams et comment les utiliser, et dans quels cas ils peuvent être
Understanding Return
Dans cette séquence, nous allons parler du return. Comment peut-on retourner une valeur d'un block ou d'une méthode? Quelles sont les valeurs de retour par défaut? Il y a 4 cas à étudier. Une méthode
[Redo] Coding a Little Domain Specific Language
Cette vidéo est un Redo pour le MOOC. Re-do dans le sens où on vous demande de le refaire, de suivre la vidéo et pas à pas de le refaire. C'est aussi une invitation à regarder comment on code. Donc
Intervenants et intervenantes
Titulaire d'un doctorat en Informatique (Bordeaux 1, 2011)
Maître de Conférences au sein de l'équipe RMoD du Centre de Recherche en Informatique, Signal et Automatique de Lille (CRIStAL - UMR CNRS 9189 - INRIA - IEEA) de l'Université Lille 1 - Sciences et Technologies
Titulaire d'un doctorat en Sciences appliquées (Nice, 1996)
Directeur de recherche, responsable de l'équipe "Évolution réflexive des systèmes logiciels éternels" (EVREF) au sein du Centre de Recherche en Informatique, Signal et Automatique de Lille (CRIStAL - UMR CNRS 9189 - INRIA - Université de Lille)
Titulaire d'un doctorat en Informatique (Montpellier, 2007)
Maître-Assistant à l’école des Mines de Douai