If you are either a beginner or an expert in object-oriented programming, this MOOC will change the way you program with objects: come and learn or rediscover object-oriented programming with Pharo!
Pharo is a pure object-oriented programming language in the tradition of Smalltalk. It offers a unique developing experience in constant interaction with live objects. Pharo is elegant, fun to use and very powerful. It is very easy to learn and enables to understand advanced concept in a natural way. When programming in Pharo, you are immersed in a world of live objects. You have immediate feedback at any moment of your development on objects representing web applications, code itself, graphics, network. More…
Pharo is also a very powerful open-source environment used by companies to develop web applications.
In this MOOC, we will present more specifically Pharo’s Web stack which changes the way you build web applications.
In addition we will present fundamental programming concepts and how Pharo uses them. We will present some coding idioms and Design Patterns to better design object-oriented applications. Such concepts can be applied to any object-oriented programming language.
This MOOC is intended for people with a programming experience but everyone motivated could follow the course thanks to the numerous resources proposed. This MOOC will also have an interest for computer programming teachers: Pharo is a good teaching tool for object-oriented programming and the course will discuss object-oriented design principles (e.g. polymorphism, message sending, self/super, design patterns).
Throughout this MOOC you will :
This MOOC will also provide a new vision of the fundamental principles of object-oriented programming, i.e. polymorphism and late binding.
This course lasts 7 weeks.
Each week is composed of several sequences containing a video lecture, quizzes and other videos proposing application exercises and programming demonstrations.
This course is proposed in french and in english. Videos are in french with french and english subtitles. Pdf course documents (in english only) will be available. All other materials (quizzes, explanation texts…) will be offered in both languages.
We strongly suggest to follow the MOOC during the next session on France Université Numérique that will start October 16th, 2017 because you will have support from the teaching team.
But, you can also access all ressources of this MOOC offline on:
To get a version of Pharo ready for the MOOC, please follow these steps:
sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libx11-6:i386 libgl1-mesa-glx:i386 libfontconfig1:i386 libssl1.0.0:i386 curl http://get.pharo.org/vm50 | bash # you now have a pharo-ui script in the current folder to launch pharo images
*.imagefile) on the virtual machine (
You can find free and online ressources in the Documentation page. We recommend the Updated Pharo by Example book, the Pharo cheat-sheet, …
Damien Cassou received his PhD degree in Computer Science from the University of Bordeaux, France. He is working as associate professor (maître de conférences) at the University of Lille, France, and is a member of the RMoD research group (Inria, CRIStAL). Damien is working on dynamic programming languages (most notably around traits and modules) and software engineering (mainly tools for developers). Damien has co-organized many events (including ECOOP’14 and ESUG many times) and co-wrote several books. Because he loves programming, Damien is also an active member of the Smalltalk and Emacs-Lisp communities. Finally, he maintains many packages for NixOS.
Luc Fabresse received his PhD in computer science in 2007 from the University of Montpellier 2, France. He is currently an associate professor in the CAR research theme at Mines Douai, Mines-Telecom Institute. Luc is the co-author of several research papers advocating the use of dynamic and reflective languages such as Pharo to support live programming of mobile and autonomous robots in an efficient way. Luc's long-term vision is to be able to use Jedi mind trick on mobile robots ;-) Meanwhile, he concretizes all his ideas (models and tools) in the PhaROS plateform (a Pharo client for the Robotics Operating System) to develop, debug, test, deploy, execute and benchmark robotics applications. Each year, Luc gives many computer science lectures and co-organizes events (technical days, conferences, ...). He also promotes Smalltalk (ESUG board member) and participates to its open-source implementation Pharo.