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

Programming Fundamentals (Coursera) Coursera
Duke University

Programming Fundamentals (Coursera)

Programming is an increasingly important skill, whether you aspire to a career in software development, or in other fields. This course is the first in the specialization Introduction to Programming in C, but its lessons extend to any language you might want to learn. This is because programming is fundamentally about figuring out how to solve a class of problems and writing the algorithm, a clear set of steps to solve any problem in its class.

Nov 2nd 2026
4 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
ABC du langage C (FUN) FUN
Institut Mines-Telecom

ABC du langage C (FUN)

Ce MOOC dure 3 semaines. Il est le premier volet du parcours Le Langage C de A à Z. Vous souhaitez apprendre à programmer en C mais vous n'y connaissez rien ? Ce MOOC s'adresse aux débutants et aux personnes qui n'ont jamais écrit une seule ligne de code de leur vie ! Le langage C est partout dans notre quotidien : smartphones, consoles de jeux, transports, robotique, objets connectés,... Les exemples sont innombrables tant le langage C est universel et populaire depuis sa création il y a des décennies.

No sessions available
3 Weeks
Functional Program Design in Scala (Scala 2 version) (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Functional Program Design in Scala (Scala 2 version) (Coursera)

In this course you will learn how to apply the functional programming style in the design of larger Scala applications. You'll get to know important new functional programming concepts, from lazy evaluation to structuring your libraries using monads. We'll work on larger and more involved examples, from state space exploration to random testing to discrete circuit simulators. You’ll also learn some best practices on how to write good Scala code in the real world. Finally, you will learn how to leverage the ability of the compiler to infer values from types.

Nov 2nd 2026
5-12 Weeks
Introdução à Ciência da Computação com Python Parte 2 (Coursera) Coursera
Universidade de São Paulo, Brasil

Introdução à Ciência da Computação com Python Parte 2 (Coursera)

Bem vindo ao curso de Introdução à Ciência da Computação destinado aos alunos regulares da Universidade de São Paulo! Esta é a segunda parte do Curso, onde você vai continuar a aprender os principais conceitos introdutórios de Ciência da Computação e também aprenderá a desenvolver pequenos programas na linguagem Python.

Nov 2nd 2026
5-12 Weeks
An Introduction to Interactive Programming in Python (Part 1) (Coursera) Coursera
Rice University

An Introduction to Interactive Programming in Python (Part 1) (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.

Nov 2nd 2026
5-12 Weeks
Parallel programming (Scala 2 version) (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Parallel programming (Scala 2 version) (Coursera)

With every smartphone and computer now boasting multiple processors, the use of functional ideas to facilitate parallel programming is becoming increasingly widespread. In this course, you'll learn the fundamentals of parallel programming, from task parallelism to data parallelism. In particular, you'll see how many familiar ideas from functional programming map perfectly to to the data parallel paradigm. We'll start the nuts and bolts how to effectively parallelize familiar collections operations, and we'll build up to parallel collections, a production-ready data parallel collections library available in the Scala standard library.

Nov 2nd 2026
4 Weeks