This repository is about a lecture on Advanced Object-Oriented Design given by S. Ducasse and Oleksandr Zaitsev at the University of Fianarantsoa in Madagascar.
-
Exercise descriptions are in the folder Exercises
-
Install Pharo using the PharoLauncher from http://www.pharo.org
-
The file 'resources' contains information to configure Pharo as well as some extra links.
- How to contribute to Cormas (same principle for Pharo)
- [PDF] [Markdown] Counter
- [PDF] [Markdown] CountryFlag
- [PDF] [Markdown] RockPaperScissors
- Introduction: oo design, oo design with Pharo
- Pharo https://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week1/C019-W1S02-WhatIsPharo.pdf
- First look and Hello World in Pharo environment
- http://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week1/C019-W1S05-PharoSyntaxInANutshell.pdf
- trying examples from the presentation in Pharo in Playground
- Small example with creating a few classes and instantiating them in Playground (suggestion)
ProfStef go
- https://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week2/C019-W2S01-Messages.pdf
- https://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week2/C019-W2S02-Messages-ForTheJavaProgrammers.pdf
- https://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week2/C019-W2S03-Messages-Precedence.pdf
- https://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week2/C019-W2S10-Yourself.pdf
- https://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week2/C019-W2S07-Loops.pdf
- https://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week2/C019-W2S08-BooleansAndCondition.pdf
- https://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week2/C019-W2S06-Blocks.pdf
- https://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week2/C019-W2S09-ParenthesisVsSquareBrackets.pdf
- https://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week3/C019-W3S09-Iterators.pdf
- https://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week3/C019-W3S03-Basic-Variables.pdf
- https://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week3/C019-W3S04-TeapotAsAPretext.pdf
- https://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week3/C019-W3S11-UnderstandingReturn.pdf
- https://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week3/C019-W3S07-Basic-ArraySetOrderedCollection.pdf
- https://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week3/C019-W3S10-Streams.pdf
- https://rmod-pharo-mooc.lille.inria.fr/MOOC/PharoMOOC/Week3/C019-W3S06-BasicClassMethods.pdf
- http://rmod-pharo-mooc.lille.inria.fr/AdvancedDesignMooc/Slides/M1-1-Essence-01-NotExample.pdf
- https://rmod-pharo-mooc.lille.inria.fr/AdvancedDesignMooc/Slides/M1-2-Essence-02-Dispatch.pdf
- http://rmod-pharo-mooc.lille.inria.fr/AdvancedDesignMooc/Slides/M1-4-Essence-04-Self.pdf
- http://rmod-pharo-mooc.lille.inria.fr/AdvancedDesignMooc/Slides/M1-5-Essence-05-Super.pdf
- Live Counter by example
- TDD http://rmod-pharo-mooc.lille.inria.fr/AdvancedDesignMooc/Slides/M2-3-Tests-03-TDD.pdf
- Watch Module 1 of https://advanced-design-mooc.pharo.org
- Explain class side methods
- http://rmod-pharo-mooc.lille.inria.fr/AdvancedDesignMooc/Slides/M6-1-DoubleDispatch-01-StoneExercise.pdf
- http://rmod-pharo-mooc.lille.inria.fr/AdvancedDesignMooc/Slides/M6-2-DoubleDispatch-04-NoSymmetrical.pdf
Extend it support Stone paper scissor lizzard Spock
- http://rmod-pharo-mooc.lille.inria.fr/AdvancedDesignMooc/Slides/M3-2-Essence-07-SelfSendsArePlansForReuse.pdf
- http://rmod-pharo-mooc.lille.inria.fr/AdvancedDesignMooc/Slides/M4-4-BasicPrinciples-05-FatClassesAreBad.pdf
- http://rmod-pharo-mooc.lille.inria.fr/AdvancedDesignMooc/Slides/M9-1-Principles-04-LawOfDemeter.pdf
- http://rmod-pharo-mooc.lille.inria.fr/AdvancedDesignMooc/Slides/M9-5-CaseStudy-05-Sokoban-Analysis.pdf
- Watch http://rmod-pharo-mooc.lille.inria.fr/AdvancedDesignMooc/Slides/M4-2-BasicPrinciples-04-AboutObjectsVSData.pdf
- Showcase debugger
- Track code with Git
- Upload code to GitHub and clone from GitHub
###Fun with meta programming
-
How to transform method on the fly
-
Little Visitors on AST
- About process
- Use tests to encode your knowledge
- Refactor
- ESUG
- GSoC
- isLoop