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

Introduction to Programming with MATLAB (Coursera) Coursera
Vanderbilt University

Introduction to Programming with MATLAB (Coursera)

This course teaches computer programming to those with little to no previous experience. It uses the programming system and language called MATLAB to do so because it is easy to learn, versatile and very useful for engineers and other professionals. MATLAB is a special-purpose language that is an excellent choice for writing moderate-size programs that solve problems involving the manipulation of numbers.

Jun 22nd 2026
5-12 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
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 Web Development (Coursera) Coursera
University of California, Davis

Introduction to Web Development (Coursera)

This course is designed to start you on a path toward future studies in web development and design, no matter how little experience or technical knowledge you currently have. The web is a very big place, and if you are the typical internet user, you probably visit several websites every day, whether for business, entertainment or education. But have you ever wondered how these websites actually work? How are they built? How do browsers, computers, and mobile devices interact with the web? What skills are necessary to build a website? With almost 1 billion websites now on the internet, the answers to these questions could be your first step toward a better understanding of the internet and developing a new set of internet skills.

Jun 22nd 2026
5-12 Weeks
Data Structures and Performance (Coursera) Coursera
University of California, San Diego

Data Structures and Performance (Coursera)

How do Java programs deal with vast quantities of data? Many of the data structures and algorithms that work with introductory toy examples break when applications process real, large data sets. Efficiency is critical, but how do we achieve it, and how do we even measure it? This is an intermediate Java course. We recommend this course to learners who have previous experience in software development or a background in computer science, and in particular, we recommend that you have taken the first course in this specialization (which also requires some previous experience with Java).

Jun 22nd 2026
5-12 Weeks
Interactivity with JavaScript (Coursera) Coursera
University of Michigan

Interactivity with JavaScript (Coursera)

If you want to take your website to the next level, the ability to incorporate interactivity is a must. But adding some of these types of capabilities requires a stronger programming language than HTML5 or CSS3, and JavaScript can provide just what you need. With just a basic understanding of the language, you can create a page that will react to common events such as page loads, mouse clicks & movements, and even keyboard input.

Jun 22nd 2026
4 Weeks
Learn to code with AI (Coursera) Coursera
Scrimba

Learn to code with AI (Coursera)

Imagine waking up tomorrow as a web developer. What would you want to build? With AI tools like ChatGPT, you're already a developer, regardless of your experience, if you know how to work with them. So in this course, you'll build functional, interactive front-end projects while learning how to write effective prompts and debug and refine your code with the help of AI.

Jun 24th 2026
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 à HTML5 - Animations et jeux (FUN) FUN
INSA

Introduction à HTML5 - Animations et jeux (FUN)

Vous avez envie de développer des animations ou des petits jeux pour le web, mais sans trop savoir comment vous y prendre ; vous avez peut-être entendu parler d'HTML5, mais vous n'avez pas de connaissance particulière des langages web. En revanche, vous avez quelques notions d'algorithmique et peut-être que vous programmez déjà un peu. Ce MOOC est pour vous. Mais si vous avez déjà une expérience de développement web, ce MOOC vous intéressera également, car il vous propose de découvrir quelques unes des nouveautés introduites par HTML5 et de les mettre en oeuvre de façon efficace sur un projet d'animation ou de jeu.

No sessions available
5-12 Weeks