Live Object Programming in Pharo
Description
About this course
If you are either a beginner or an expert in object-oriented programming, this course 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.
In this course, 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 course is intended for people with a programming experience but everyone motivated could follow the course thanks to the numerous resources proposed. This course 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 course 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 course will also provide a new vision of the fundamental principles of object-oriented programming, i.e. polymorphism and late binding.
Format
This course includes 7 parts : each part 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.
Prerequisites
A first experience in object-oriented programming is better.
Course Syllabus
Part 1 : Welcome on Board and Syntax Discovery
Part 2 : Pharo Syntax, Blocks and Inspector
Part 3 : Design, Class Methods and Collections
Part 4 : Inheritance & Lookup and Web Development
Part 5 : Exception, Debugging and Reflection
Part 6 : Rethink Lookup and Advanced Object-Oriented Design
Part 7 : More on Object-Oriented Design and Testing
Suggested readings
Every reading about object-oriented programming will help you get ready for this course. The book Pharo by Example available for free, will serve as a supplementary document during the course. Other ressources about Pharo (in english) are available here.
The different media of this course constitute a course 7 weeks hosted on the platform France Universitaire Numérique : https://www.fun-mooc.fr/courses/inria/41003S02/session02/about
Collections
5 : Exception, Debugging and Reflection
- CASSOU Damien
- DUCASSE Stéphane
- FABRESSE Luc
- niveau 1 niveau 2 niveau 3
- document 1 document 2 document 3
4 : Inheritance and Lookup and Web Development
- CASSOU Damien
- DUCASSE Stéphane
- FABRESSE Luc
- niveau 1 niveau 2 niveau 3
- document 1 document 2 document 3
3 : Design, Class Methods and Collections
- CASSOU Damien
- DUCASSE Stéphane
- FABRESSE Luc
- niveau 1 niveau 2 niveau 3
- document 1 document 2 document 3
2 : Pharo Syntax, Blocks and Inspector
- CASSOU Damien
- DUCASSE Stéphane
- FABRESSE Luc
- niveau 1 niveau 2 niveau 3
- document 1 document 2 document 3
1 : Welcome on Board and Syntax Discovery
- CASSOU Damien
- DUCASSE Stéphane
- FABRESSE Luc
- niveau 1 niveau 2 niveau 3
- document 1 document 2 document 3
7 : More on Object-Oriented Design and Testing
- CASSOU Damien
- DUCASSE Stéphane
- FABRESSE Luc
- niveau 1 niveau 2 niveau 3
- document 1 document 2 document 3
6 : Rethink Lookup and Advanced Object-Oriented Design
- CASSOU Damien
- DUCASSE Stéphane
- FABRESSE Luc
- niveau 1 niveau 2 niveau 3
- document 1 document 2 document 3