Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

France Université Numerique

Programmation objet immersive en Pharo / Live Object Programming in Pharo

via France Université Numerique

This course may be unavailable.

Overview

Cette nouvelle version du Mooc est basée sur Pharo 8.0, github,
et mise à jour avec 70 nouvelles vidéos.
This new version of the Mooc is based on Pharo 8.0, github,
and comes with 70 new videos.

Langue / Language

Ce cours est entièrement bilingue français/anglais
et sous-titré en français 🇫🇷, anglais 🇬🇧, espagnol 🇪🇸 et japonais 🇯🇵

This course is fully dubbed in french and english
Subtitles in french 🇫🇷, english 🇬🇧, spanish 🇪🇸 and japanese 🇯🇵

À propos du cours / About this course

Que vous soyez un débutant ou un expert en programmation orientée objet, ce MOOC va changer votre façon de penser objet : venez apprendre ou redécouvrir la programmation objet avec Pharo!

Pharo est un langage à objets pur, inspiré de Smalltalk, qui offre une expérience unique de développement en constante interaction avec des objets vivants. Pharo est élégant, fun à programmer et très puissant. Il est très facile à apprendre et permet de comprendre des concepts très avancés de façon naturelle. En programmant en Pharo vous êtes immergés dans un monde d'objets vivants. Vous modifiez en live sans cesse des objets qui peuvent représenter des applications web, du code lui-même, des graphismes, du réseau…

Pharo c’est aussi un environnement libre très productif utilisé par des entreprises pour le développement d’applications Web.

A travers ce MOOC :

  • vous apprendrez à programmer en Pharo,
  • vous vous immergerez dans un environnement vivant et vivrez une expérience de programmation nouvelle,
  • vous développerez une application web pour mettre en oeuvre les différentes facettes de Pharo présentées dans le cours.

Le Mooc débute par une séquence facultative, dédiée aux Débutants pour présenter les bases dela programmation orientée objet.
Tout au long du Mooc, nous faisons un focus sur la pile Web de Pharo qui a la particularité de changer la manière de construire des applications Web.
Nous revisitons également des concepts essentiels de la programmation en illustrant comment Pharo les utilise. Nous présentons des heuristiques et des Design Patterns pour mieux concevoir des applications objets. Ces concepts sont applicables dans n’importe quels langages objets.

Ce MOOC s’adresse aux personnes ayant une expérience en programmation, mais toute personne motivée pourra également suivre le cours grâce aux nombreuses ressources proposées. Il peut également intéresser les enseignants d'informatique car Pharo est un bon outil pour enseigner la programmation orientée objet et ce cours est l'occasion de discuter de points de conception objet (par exemple : polymorphisme, envoi de messages, self/super, design patterns).

Ce MOOC apporte également une nouvelle vision des fondements même de la programmation objet que sont le polymorphisme et la liaison tardive.

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…

Pharo is also a very powerful open-source environment used by companies to develop web applications.

Throughout this MOOC you will :

  • learn how to program in Pharo,
  • be immersed in a live environment and live a new programming experience,
  • develop a web application to apply the different aspects of Pharo presented in the course.

The Mooc starts with an optional sequence for Newbies to introducethe basics on object-oriented programming.
All along this MOOC, we present more specifically Pharo’s Web stack which changes the way you build web applications.
In addition we present fundamental programming concepts and how Pharo uses them. We 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. it also has 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).

This MOOC will also provide a new vision of the fundamental principles of object-oriented programming, i.e. polymorphism and late binding.

Témoignage / Testimony

Un participant / A participant

"I have just completed week seven of the Pharo Mooc (beginner and object oriented tracks) I am starting a redo of the Mooc with the web track (TinyBlog project). I have already learned so much ! I have spent the last 20 years or so in software development and, following this Mooc, I realized I hadn’t really grasped the essence of object oriented design."

Format

Les contenus du cours sont organisés en 7 semaines, mais notez que l'ensemble des contenus est disponible pendant une durée de un an afin que vous puissiez suivre les différents parcours de formation, à votre rythme.
Chaque semaine est composée de séquences contenant une vidéo de cours de 6 à 10 minutes, de quiz, et de travaux pratiques ou démonstrations de l’environnement immersif de programmation sous forme de tuto vidéos.
Le cours est bilingue français/anglais. Les vidéos, en français ou en anglais, sont sous-titrées en français, anglais et également en japonais et espagnol. Les quiz et textes explicatifs sont proposés en français ou en anglais. Les supports de cours (format pdf) sont fournis en anglais uniquement.

The course contents are structured around 7 weeks, however all the contents are available for a period of one year from the opening of the MOOC. So you can follow the different learning paths at your own pace.
Each week is composed of several sequences containing a 6 to 10 minutes video lecture, quizzes and application exercises or programming demonstrations through video tutorials.
The course is offered in French and English. The videos, in French or English, are subtitled in French, English, and also in Japanese and Spanish. Quizzes and explanation texts are available in French or English. The course materials (pdf format) are provided in English only.

Prérequis / Prerequisites

Une première expérience en programmation objet est souhaitable.

A first experience in object-oriented programming is better.

Plan du cours / Course Syllabus

  • Semaine 1 : Bienvenue à bord - Découverte de la syntaxe
  • Semaine 2 : Syntaxe Pharo, blocs et inspecteur
  • Semaine 3 : Conception, méthodes de classes et collections
  • Semaine 4 : Héritage & sélection de méthode (lookup) et développement web
  • Semaine 5 : Exception, débogage et réflexion
  • Semaine 6 : Retour sur le lookup et conception orientée objet avancée
  • Semaine 7 : Conception orientée objet et tests
  • Week 1 : Welcome on Board and Syntax Discovery
  • Week 2 : Pharo Syntax, Blocks and Inspector
  • Week 3 : Design, Class Methods and Collections
  • Week 4 : Inheritance & Lookup and Web Development
  • Week 5 : Exception, Debugging and Reflection
  • Week 6 : Rethink Lookup and Advanced Object-Oriented Design
  • Week 7 : More on Object-Oriented Design and Testing

Profils et parcours / Profiles and learning paths

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.

  • Débutant complet [🐥 newbie] Focalisez-vous sur les premiers cours et suivez le cours jusqu’au bout sans essayer de tout comprendre. Détendez-vous et prenez le temps de comprendre que le système est écrit en lui-même. Focalisez-vous également sur les outils de navigation (senders et implémenteurs).
  • En quête de Web [🌐 web] Pour ceux qui se focalisent sur le web, nous conseillons de commencer par la syntaxe.
  • Rafraîchir votre vision OO [🎁 oo] Si vous voulez repenser votre approche de la programmation Orientée Objet, prêtez attention au fait que même des librairies aussi essentielles que les booléens ou les collections vous immergent dans un monde d’objets.
  • Devenir un expert Pharo [🌶 Xpert] Eh bien cela signifie qu’il faut parcourir tout le contenu en laissant éventuellement de côté la partie web si vous êtes pressés.
  • En quête de magie noire [🔮 magic] Si vous êtes intéressé par des notions avancées, proche de la magie noire ;-) comme la réflexion, les méta-classes, la méta-programation, etc... qui font de Pharo un langage OO unique. Bien sûr, vous devrez déjà connaître OO et être un expert Pharo.

We propose five profiles to follow this MOOC at different speed and levels. The profiles are not exclusive: to become a Pharo expert you need to start as a newbie and grow up.

  • Total newbies [🐥 newbie] Focus on the beginning of the lectures and follow until the end of the Mooc but without trying to understand everything. Take it easy and spend time understanding that the system is written in itself. Focus on the navigation tools (senders and implementors).
  • Looking for Web [🌐 web] For those that focus on the web, we suggest to get started with the syntax.
  • Refresh your OO perspective [🎁 oo] If you want to rethink your OO perspective, pay attention that even Pharo essential libraries such as Booleans or collections are plain objects. Yes you send a message to a collection to perform a loop. Yes you send a message to a Boolean to perform a conditional.
  • Wanna be a Pharo expert [🌶 Xpert] Well it means that you should have a look at everything and that you may drop the web part if you are in a hurry.
  • Looking for Black Magic [🔮 magic] If you are interested by really advanced notions close to black magic ;-) It explains things such as reflection, meta-classes, meta-programming, etc... that makes Pharo a unique OO language. Of course, you must already know OO and be a Pharo expert.

Installation de Pharo / Pharo installation

Installez la version spécifique de Pharo pour le MOOC

Rendez-vous sur cette page, et suivez les instructions.

Install the specific version of Pharo for the MOOC

Go to this webpage and follow the instructions.

Les enseignants / Teachers

Damien Cassou

Damien Cassou a obtenu son doctorat en Informatique à l'Université de Bordeaux. Il est actuellement développeur informatique chez Företagsplatsen. Il était précédemment maître de conférences à l'Université de Lille et membre de l'équipe de recherche RMoD chez Inria / CRIStAL. Damien travaille sur les langages de programmation dynamiques (plus particulièrement sur les traits et les modules) et sur l'ingénierie des logiciels (principalement sur les outils pour développeurs).

Damien Cassou received his PhD degree in Computer Science from the University of Bordeaux, France. He is currently working as software developer at Företagsplatsen. Previously he worked as associate professor (maître de conférences) at the University of Lille, France, and was 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).

Stéphane Ducasse

Stéphane Ducasse est directeur de recherche Inria première classe et dirige l'équipe RMoD. Stéphane est expert en conception objet, conception de langages objets, programmation réflexive ainsi qu'en maintenance et évolution de larges applications (visualisation, métriques, meta modélisation). Ses travaux sur les traits ont été introduits dans AmbientTalk, Slate, Pharo, Perl-6, PHP 5.4 et Squeak. Ils ont été portés sur JavaScript et ont influencé les langages Scala et Fortress. Stéphane est l'un des développeurs de Pharo. Il est également l'un des développeurs de Moose une plate-forme d'analyses. Stéphane est par ailleurs co-fondateur de Synectique, une société proposant des outils d'analyses dédiés. Il a écrit plusieurs livres sur l'apprentissage de la programmation et sur d'autres sujets comme la programmation web.

Stéphane Ducasse is directeur de recherche at Inria. He leads the RMoD team. He is expert in two domains: object-oriented language design and reengineering. His works on traits have been introduced in AmbientTalk, Slate, Pharo, Perl-6, PHP 5.4 and Squeak. They have also influencedJavaScript, Scala and Fortress. Stéphane is also expert on software quality, program understanding, program visualisations, reengineering and metamodeling. He is one of the developers of Pharo. He is also one of the developers of Moose, an open-source software analysis platform . He created Synectique a company building dedicated tools for advanced software analysis. Stéphane wrote several books on programming learning and other topics such as web programming.

Luc Fabresse

Luc Fabresse a obtenu son doctorat en informatique en 2007, à l'université de Montpellier 2, France. Il travaille actuellement dans le thème de recherche CAR de l'IMT Lille Douai, au sein de l'Institut Mines-Télécom. Luc est co-auteur de nombreux articles de recherche visant à promouvoir l'utilisation de langages dynamiques et réflexifs comme Pharo pour supporter le développement interactif d'applications pour robots mobiles et autonomes. A long terme, Luc voudrait pouvoir utiliser la Force Jedi pour contrôler des robots mobiles ;-) En attendant, il concrétise ses travaux (modèles et outils) au sein de la plateforme PhaROS (un client Pharo pour l'intergiciel ROS) afin de mieux développer, déboguer, tester, déployer et exécuter des applications de robotique mobile. Chaque année, Luc donne de nombreux cours d'informatique et co-organise des événements (journées techniques, conférences, ...). Il promeut également Smalltalk (membre du bureau d'ESUG) et participe au développement de son implémentation open-source Pharo.

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 IMT Lille 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.

Lectures recommandées / Suggested readings

Toute lecture sur la programmation orientée objet vous permettra de vous préparer au cours. Le livre Pharo par l’exemple disponible gratuitement, vous servira comme support complémentaire pendant le cours. D'autres ressources sur Pharo (en anglais) sont disponibles ici.

Every reading about object-oriented programming will help you get ready for this course. The bookPharo by Example available for free, will serve as a supplementary document during the course. Other ressources about Pharo (in english) are available here.

Évaluation / Grading

Une attestation de suivi avec succès sera délivrée, tous les 3 mois, aux participants ayant obtenu la note minimale requise.L’évaluation est basée sur les quiz à effectuer chaque semaine.

An attestation of achievement will be delivered, every 3 month, to the participants who will have obtained the minimal score required. The evaluation is based on the quizzes which have to be done each week.

Réseaux sociaux /Social Networks

Suivez les actus du MOOC : @InriaLearnLab #MoocPharo

Conditions d'utilisation / Terms of use

Conditions d’utilisation du contenu du cours

Les ressources du cours sont diffusées sous Licence Creative Commons BY-NC : l’utilisateur doit mentionner le nom de l’auteur, il peut exploiter l’œuvre sauf dans un contexte commercial.

Terms of use of the course content

The course contents are shared under Creative Commons License BY-NC : the user must give appropriate credit, he may not use the material for commercial purposes.

Conditions d’utilisation des contenus produits par les participants

Les contenus produits par les participants sont, sauf mention contraire, sous Licence Creative Commons BY-NC : l’utilisateur doit mentionner le nom de l’auteur, il peut exploiter l’œuvre sauf dans un contexte commercial.

Terms of use of the contents produced by users

The contents produced by users are shared under Creative Commons License BY-NC : the user must give appropriate credit, he may not use the material for commercial purposes.

Partenaires / Partners

Ce cours est produit par / This course is produced by

en collaboration avec / in collaboration with


Syllabus

Plan du cours / Course Syllabus

  • Semaine 1 : Bienvenue à bord - Découverte de la syntaxe
  • Semaine 2 : Syntaxe Pharo, blocs et inspecteur
  • Semaine 3 : Conception, méthodes de classes et collections
  • Semaine 4 : Héritage & sélection de méthode (lookup) et développement web
  • Semaine 5 : Exception, débogage et réflexion
  • Semaine 6 : Retour sur le lookup et conception orientée objet avancée
  • Semaine 7 : Conception orientée objet et tests
  • Week 1 : Welcome on Board and Syntax Discovery
  • Week 2 : Pharo Syntax, Blocks and Inspector
  • Week 3 : Design, Class Methods and Collections
  • Week 4 : Inheritance & Lookup and Web Development
  • Week 5 : Exception, Debugging and Reflection
  • Week 6 : Rethink Lookup and Advanced Object-Oriented Design
  • Week 7 : More on Object-Oriented Design and Testing

Reviews

Start your review of Programmation objet immersive en Pharo / Live Object Programming in Pharo

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.