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 |
|
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. TinyBlog: présentation et modèle |
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. TinyBlog : extension et tests |
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. TinyBlog : une interface web simple avec Teapot |
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. TinyBlog : persistance avec Voyage et Mongo |
Web1 |
|
Exercice |
4.13.3. TinyBlog : une interface web avec 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 |
Xpert |
|
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. TinyBlog : interface admin avec Magritte |
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. TinyBlog : déploiement |
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 |
Xpert |
|
Challenge |
7.10. Solution : Challenge 5 |