FUN

Programmation objet immersive en Pharo / Live Object Programming in Pharo (FUN)

Offered by INRIA,
Programmation objet immersive en Pharo / Live Object Programming in Pharo (FUN)

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 ! 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 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.
Ce Mooc débutera par une séquence bonus, facultative, dédiée aux Débutants pour présenter les bases de la programmation orientée objet.
Dans ce Mooc nous présenterons plus particulièrement la pile Web de Pharo qui a la particularité de changer la manière de construire des applications Web.
Nous allons également revisiter des concepts essentiels de la programmation en illustrant comment Pharo les utilise. Nous allons présenter 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. Ce MOOC intéressera également les enseignants d'informatique car Pharo est un bon outil pour enseigner la programmation orientée objet et ce cours sera l'occasion de discuter de points de conception objet (par exemple : polymorphisme, envoi de messages, self/super, design patterns).
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.

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

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.
This Mooc will start with a special, optional, sequence for Newbies to introduce the basics on object-oriented programming.
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 :

  • 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.

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

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

Format
Les contenus du cours sont structurés en 7 semaines, mais notez que l'ensemble des contenus sera disponible dès l'ouverture du cours afin que vous puissiez choisir votre propre parcours de formation.
Cette session 4 est ouverte pour une durée d'un an (date de fin d'inscription 25 avril 2020). Cette ouverture 'permanente' vous permettra de suivre ce Mooc à votre rythme.
Chaque semaine est composée de séquences contenant une vidéo de cours de 6 à 10 minutes environ et de quiz, ainsi que des vidéos proposant des travaux pratiques ou des démonstrations de l’environnement immersif de programmation.
Ce cours est bilingue français / anglais. Les vidéos sont disponibles dans plusieurs versions : audio français sous-titrées en français, anglais, japonais et espagnol; audio anglais (voice over) sous-titrées en anglais, japonais et espagnol . Les supports de cours au format pdf (en anglais uniquement) sont fournis. Tous les autres contenus (quiz, textes explicatifs, etc.) sont proposés dans les deux langues.

The course contents are structured around 7 weeks, however all the contents will be available from the opening of the MOOC. Some more weeks of work are available before the course ends.
This 4th session is open for one year (registration deadline : April 25, 2020). This is a self-paced Mooc.
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. Lectures videos are available in different versions: french audio with french, english, spanish, japanese subtitles; english audio (voice-over) with english, spanish and japanese subtitles. Pdf course documents (in english only) will be available. All other materials (quizzes, explanation texts…) will be offered in both languages.

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

Related Courses

Big Data Analysis with Scala and Spark (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Big Data Analysis with Scala and Spark (Coursera)

Manipulating big data distributed over a cluster using functional concepts is rampant in industry, and is arguably one of the first widespread industrial uses of functional ideas. This is evidenced by the popularity of MapReduce and Hadoop, and most recently Apache Spark, a fast, in-memory distributed collections framework written in Scala. In this course, we'll see how the data parallel paradigm can be extended to the distributed case, using Spark throughout.

Sep 14th 2026
4 Weeks
Socle en Informatique (FUN) FUN
le cnam

Socle en Informatique (FUN)

Le numérique et l'informatique ont une importance toujours croissante tant dans le monde professionnel que dans la vie courante. Maitriser les bases du domaine est donc un enjeu important. La proposition de ce socle en informatique est de centrer l'initiation à l'informatique sur les algorithmes et les programmes. Il s'adresse aussi bien aux débutants, qu'aux faux débutants qui ont déjà des notions mais vagues ou lointaines et aux initiés qui ne se sentent pas sûr d'eux-mêmes et souhaitent consolider leurs connaissances.

No sessions available
5-12 Weeks
Se former pour l’ICN Informatique et Création Numérique (FUN) FUN
INRIA

Se former pour l’ICN Informatique et Création Numérique (FUN)

Un MOOC d’initiation à l'Informatique et à la Création Numérique, pour aider les enseignants de l'option ICN au Lycée et au delà tout citoyen ou citoyenne désirant être éclairé sur ces sujets. Les lycéennes et lycéens de toutes sections commencent à apprendre de l'informatique pour ne plus être de simples consommateurs mais devenir créateurs du numérique : c’est l’enseignement de l'option "Informatique et Création Numérique, I.C.N.", de la seconde à la terminale pour toutes les sections.

No sessions available
2 Weeks
Programmer en C (FUN) FUN
Institut Mines-Telecom

Programmer en C (FUN)

Ce MOOC est le deuxième volet du parcours Le Langage C de A à Z. Chaque jour, nous interagissons avec des centaines de micro-processeurs. Intégrés dans nos smartphones, vélos, jouets ou robots, ils nous accompagnent au quotidien. Pour écrire des programmes pour ces micro-processeurs, la référence est le langage C couplé à Linux, un système d’exploitation open-source. En suivant ce MOOC, vous comprendrez comment fonctionnent les objets qui nous entourent et pourrez vous préparer aux métiers de demain.

No sessions available
3 Weeks
Introduction to Functional Programming in OCaml (FUN) FUN
Université Paris Diderot

Introduction to Functional Programming in OCaml (FUN)

Functional programming is a programming paradigm which is rapidly attracting interest from a broad range of developers because it allows to write expressive, concise and elegant programs. In this course you will discover the power of Functional Programming, using the OCaml language to write concise, efficient and elegant programs.

No sessions available
5-12 Weeks
An Introduction to Interactive Programming in Python (Part 2) (Coursera) Coursera
Rice University

An Introduction to Interactive Programming in Python (Part 2) (Coursera)

This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple.

Sep 7th 2026
4 Weeks
Programmation objet : premiers pas en java (FUN) FUN
le cnam

Programmation objet : premiers pas en java (FUN)

La programmation orientée objet est aujourd’hui incontournable, elle est utilisée partout, elle est puissante et moderne et en suivant ce mooc vous aurez des bases extrêmement solides pour développer vos premières vraies applications. Le langage Java est l’un des plus utilisé dans le monde du développement et nous l’avons aussi choisi pour ses qualités pédagogiques : il est conçu spécifiquement pour la programmation orientée objet.

No sessions available
5-12 Weeks
Introduction to Open Source Application Development (Coursera) Coursera
Illinois Tech

Introduction to Open Source Application Development (Coursera)

This course introduces basic concepts of systems programming using a modern open source language. You will learn to apply basic programming concepts toward solving problems, writing pseudocode, working with and effectively using basic data types, abstract data types, control structures, code modularization and arrays. You will learn to detect errors, work with variables and loops, and discover how functions, methods, and operators work with different data types. You will also be introduced to the object paradigm including classes, inheritance, and polymorphism.

Sep 14th 2026
5-12 Weeks
Persistent Memory Technology - Introduction and Deployment (Coursera) Coursera
EDUCBA

Persistent Memory Technology - Introduction and Deployment (Coursera)

Embark on a dynamic learning journey through this course. In the first module, explore the intricacies of Persistent Memory (PMEM), unraveling its fundamental concepts, characteristics, and operating system support. Transition seamlessly into the second module, mastering transactional concepts, optimizing hardware configurations, and discerning between volatile and persistent libraries. In the final module, dive into advanced programming with libpmemobj, overcoming C++ Standard limitations, and applying insights to real-world scenarios like building a phonebook.

Sep 14th 2026
3 Weeks