Comment suivre ce MOOC ?

5 profils ont été identifiés pour suivre le cours à des vitesses et niveaux différents. Les séquences du cours seront étiquetées en fonction des profils. Ces profils ne sont pas exclusifs : pour devenir un expert en Pharo il faut commencer par le profil newbie et compléter avec les autres parcours.

Table des matières

Sélectionnez un profil pour afficher les séquences et exercices correspondants :
Introduction
Présentation du cours
Activités
Guide d'utilisation de la plateforme
Guide d'utilisation du forum
Ressources complémentaires
Installation de Pharo
Questionnaire 1
Conditions d'utilisation
 
Semaine 1 : Démarrage et découverte de la syntaxe
Newbie 🐥 Presequel Bases de la Programmation Orientée Objet - FACULTATIF -
Newbie 🐥 Lecture 1.1. Objectifs du MOOC
Newbie 🐥 Lecture 1.2. Pharo: un système objet immersif
Newbie 🐥 Lecture 1.3. Vision
Newbie 🐥 Lecture 1.4. Modèle objet de Pharo en 5 min
Newbie 🐥 Lecture 1.5. Syntaxe Pharo en 5 min
Newbie 🐥 Lecture 1.6. Définition de classe et méthodes
Newbie 🐥 Live 1.7.1. Sélectionner et exécuter des expressions
Newbie 🐥 Live 1.7.2. Apprendre Pharo avec Prof Stef
Newbie 🐥 Live 1.7.3. Colorisation de syntaxe
Newbie 🐥 Live 1.7.4. Apprendre les raccourcis clavier
Newbie 🐥 Redo 1.7.5. Développer un compteur
Newbie 🐥 Exercice 1.8.1. Expressions et messages
Newbie 🐥 Exercice 1.8.2. Développer un compteur simple
Xpert 🌶 Challenge 1.9. Challenge 0
 
Semaine 2 : Syntaxe Pharo, Blocks et inspecteur
Newbie 🐥 Lecture 2.1. Comprendre les messages
Newbie 🐥 Lecture 2.2. Messages pour les programmeurs Java
Newbie 🐥 Lecture 2.3. Messages : Composition et Précédence
Newbie 🐥 Lecture 2.4. Comprendre les messages : Séquence et Cascade
Newbie 🐥 Live 2.5.1. Trouver des méthodes avec Finder
Newbie 🐥 Live 2.5.2. GTInspector 1 : inspecter et intéragir avec les objets
Newbie 🐥 Lecture 2.6. Introduction aux Blocks
Newbie 🐥 Lecture 2.7. Boucles
Newbie 🐥 Lecture 2.8. Booléens et conditions
Newbie 🐥 Lecture 2.9. Parenthèses vs. Crochets
Newbie 🐥 Lecture 2.10. Yourself
OO1 🎁 Lecture 2.11. Essence du Dispatch: Un exercice
Newbie 🐥 Live 2.12.1. Nautilus 1: premier contact
Newbie 🐥 Live 2.12.2. Nautilus 2: packages, étiquettes et groupes
Newbie 🐥 Live 2.12.3. Nautilus 3: héritage
Newbie 🐥 Redo 2.12.4. Coder un compteur dans le debogueur
Newbie 🐥 Exercice 2.13.1. Solution : expressions et messages
Newbie 🐥 Exercice 2.13.2. Résultats d'expressions
Newbie 🐥 Exercice 2.13.3. [Mini-projet] Chap 1: A propos de TinyBlog
Newbie 🐥 Exercice 2.13.4. [Mini-projet] Chap 2: Modèle de l'application TinyBlog
Xpert 🌶 Challenge 2.14.1. Solution : Challenge 0
Xpert 🌶 Challenge 2.14.2. Challenge 1
 
Semaine 3: Conception, méthodes de classes et collections
Newbie 🐥 Lecture 3.1. Essence de sélection de méthode 1/2
Newbie 🐥 Lecture 3.2. Essence de sélection de méthode 2/2
Newbie 🐥 Lecture 3.3. Variables
Newbie Web1 🐥 🌐 Lecture 3.4. Une petite application HTTP
Newbie 🐥 Live 3.5.1. Nautilus 4: comment devenir un super Pharoer ; comprendre sender / implémenteurs
Newbie 🐥 Live 3.5.2. Nautilus 5: naviguer rapidement à l'intérieur d'une classe
Newbie 🐥 Lecture 3.6. Méthodes de classe
Newbie 🐥 Lecture 3.7. Un survol des principales collections
Newbie 🐥 Live 3.8.1. Spotter 1: trouver et browser une classe
Newbie 🐥 Live 3.8.2. Spotter 2: filtrer les résultats par catégorie
OO1 🎁 Lecture 3.9. Itérateurs
Newbie 🐥 Lecture 3.10. Survol des Streams
Newbie 🐥 Lecture 3.11. Comprendre Return
Newbie 🐥 Redo 3.12. Développer un petit langage spécifique
Newbie 🐥 Exercice 3.13.1. Solution : résultats d'expressions
Newbie 🐥 Exercice 3.13.2. Réécrire des expressions
Newbie 🐥 Exercice 3.13.3. [Mini-projet] Chap 3 : TinyBlog: Extension du modèle et tests unitaires
Xpert 🌶 Challenge 3.14.1. Solution : Challenge 1
Xpert 🌶 Challenge 3.14.2. Challenge 2
 
Semaine 4 : Héritage et recherche de méthode et développement Web
Newbie 🐥 Lecture 4.1. Héritage
Newbie 🐥 Lecture 4.2. Héritage et Recherche de Méthode
Newbie 🐥 Lecture 4.3. Héritage : Super
Newbie 🐥 Lecture 4.4. Héritage : doesNotUnderstand:
Xpert 🌶 Lecture 4.5.Recherche de Méthode et Métaclasses
OO1 🎁 Lecture 4.6. Méthodes de classes comme mécanisme d’enregistrement
Web1 🌐 Lecture 4.7. Survol de la Pile Web Pharo
Web1 🌐 Lecture 4.8. Seaside : Un framework web innovant
Web1 🌐 Lecture 4.9. Seaside : Rendu des composants
Web1 🌐 Lecture 4.10. Seaside : Un oeil sur MetaDonnées et REST
Web1 🌐 Lecture 4.11. Voyage : Base de données objet noSQL
Newbie 🐥 Live 4.12.1. Comment charger du code d'un repositoire
Newbie 🐥 Live 4.12.2. Comment charger un projet
OO1 🎁 Live 4.12.3. Nautilus 6 : un survol des refactorings
OO1 🎁 Live 4.12.4. Nautilus 7 : utiliser l'assistant de qualité et code critique
Newbie 🐥 Exercice 4.13.1. Solution : réécrire des expressions
Web1 🌐 Exercice 4.13.2. [Mini-projet] Chap 4: Persistance des données de TinyBlog avec Voyage et Mongo
Web1 🌐 Exercice 4.13.3. [Mini-projet] Chap 5, 6 & 7: TinyBlog : Construction de la partie publique en Seaside
Web1 🌐 Exercice 4.13.4. Construisons une gestion de contacts
Xpert 🌶 Challenge 4.14.1. Solution : Challenge 2
Xpert 🌶 Challenge 4.14.2. Challenge 3
 
Semaine 5 : Exception, débuggage et réflexion
Web1 🌐 Lecture 5.1. Seaside: Composing Components
OO1 🎁 Lecture 5.2. Comprendre vraiment les méthodes de classe
Newbie 🐥 Lecture 5.3. Erreurs communes
Xpert 🌶 Lecture 5.4. Exceptions: un survol
Newbie 🐥 Lecture 5.5. Débugger avec Pharo
Newbie 🐥 Lecture 5.6. SUnit: tests unitaires en Pharo
Newbie 🐥 Lecture 5.7. Fichiers en Pharo
Magic 🔮 Lecture 5.8. Réflexion : Simple Introspection
Xpert 🌶 Lecture 5.9. Optimisation en Pharo
Newbie 🐥 Live 5.10.1. Spotter 3 : réduire les recherches
Newbie 🐥 Live 5.10.2. Spotter 6 : recherche, navigation et prévisualisation
Newbie 🐥 Live 5.10.3. Comprendre le débuggeur
Newbie 🐥 Live 5.10.4. Comment trouver un bug?
Newbie 🐥 Live 5.10.5. GTInspector 2 : inspecter fichiers et dossiers
Web1 🌐 Exercice 5.11.1. [Mini-projet] Chap 8 & 9: Authentification et Vue Administrateur pour TinyBlog
Newbie 🐥 Exercice 5.11.2. TinyChat
Xpert 🌶 Challenge 5.12.1. Solution : Challenge 3
Xpert 🌶 Challenge 5.12.2. Challenge 4
 
Semaine 6: Repenser la recherche de méthode et points avancés
OO1 🎁 Lecture 6.1. Avez-vous vraiment compris super ?
Newbie 🐥 Lecture 6.2. Comprendre l’implémentation de ifTrue:ifFalse:
OO1 🎁 Lecture 6.3. Dice new vs. self class new
OO1 🎁 Lecture 6.4. Envoi de messages : planification pour la réutilisation
OO1 🎁 Lecture 6.5. Crochets et Templates
Newbie 🐥 Lecture 6.6. Architecture d’exécution
Newbie 🐥 Lecture 6.7. Caractères, chaînes et symboles
Newbie 🐥 Lecture 6.8. Tableaux dynamiques et de litéraux
Newbie 🐥 Live 6.9.1. Comprendre les fichiers Images et Changes
Newbie 🐥 Live 6.9.2. Utiliser le launcher pour gérer vos images
Xpert 🌶 Live 6.9.3. Obtenir une différence et fusionner du code en Pharo
Newbie 🐥 Live 6.9.4. GTInspector 4 : construire une view dédiée
Web1 🌐 Exercice 6.10. [Mini-projet] Chap 10 : Déploiement de TinyBlog
Xpert 🌶 Challenge 6.11.1. Solution : Challenge 4
Xpert 🌶 Challenge 6.11.2. Challenge 5
 
Semaine 7 : Conception OO et tests
Xpert 🌶 Lecture 7.1. Points avancés sur les classes
Newbie 🐥 Lecture 7.2. Objets à tailles variables
Magic 🔮 Lecture 7.3. Comprendre les métaclasses
Magic 🔮 Lecture 7.4. Opérations réflexives pour la programmation live
Magic 🔮 Lecture 7.5. DoesNotUnderstand : un point d’entrée précieux
Magic 🔮 Lecture 7.6. Réflexion : la pile comme un objet
OO1 🎁 Lecture 7.7. Evitons les tests nil
Newbie 🐥 Lecture 7.8. Futur Radieux
Xpert 🌶 Live 7.9.1. Spotter 4 : le panneau de prévisualisation
Xpert 🌶 Live 7.9.2. Spotter 5 : rechercher dans l'historique de Playground
Xpert 🌶 Live 7.9.3. GTInspector 3 : comprendre l'implémentation interne de Pharo avec l'inspecteur
Web1 🌐 Exercice 7.10. [Mini-projet] TinyBlog: Elements Optionnels
Xpert 🌶 Challenge 7.11. Solution : Challenge 5