Pharo (http://pharo.org) is a pure dynamic and reflective object programming language inspired by Smalltalk. Pharo offers a powerful environment with unique features (https://pharo.org/features). It focuses on simplicity (full syntax on a postcard) and immediate feedback.
Immersive Object Programming with Pharo
Inria (French Institute for Research in Computer Science and Automation) via YouTube
Overview
Syllabus
Objectives - Live Object Programming in Pharo [W1S1-EN].
Pharo: an Immersive Object-Oriented System [W1S2-EN].
Pharo Vision [W1S3-EN].
Pharo Object Model in a Nutshell [W1S4-EN].
Pharo Syntax in a Nutshell [W1S5-EN].
Class and Method Definitions [W1S6-EN].
Selecting and executing expressions [W1-LiveA-EN].
Learn Pharo with Prof Stef [W1-Live B].
Syntax Highlighting gives Feedback [W1-Live C].
Learn Keyboard Shortcuts [W1-Live D].
Packages, Classes et Methods [W1-ReDo1-EN].
Adding some unit tests [W1-ReDo2-EN].
Looking back at method creation [W1-ReDo3-EN].
Save your code with Iceberg [W1-ReDo4-EN].
Object initialization [W1-ReDo5-EN].
Better printing with printOn: [W1-ReDo6-EN].
Looking a commit history and changes with Iceberg [W1-ReDo7-EN].
Understanding Messages [W2S1-EN].
Messages for Java Programmers [W2S2-EN].
Messages: Composition and Precedence [W2S3-EN].
Understanding Messages: Sequence and Cascade [W2S4-EN].
Introduction to Blocks [W2S6-EN].
Loops [W2S7-EN].
Booleans and Conditions [W2S8-EN].
Parentheses vs. Square Brackets [W2S9-EN].
Yourself [W2S10-EN].
Exercises for Essence of Dispatch [W2S11-EN].
Finding methods with the Finder [W2-LiveA-EN].
Look closer at objects with the Inspector [W2-LiveB-EN].
Browsing a class [W2-LiveC-EN].
Working with scoped operations [W2-LiveD-EN].
Xtreme TDD [W2-ReDo1-EN].
Essence of Dispatch: Taking Pharo Booleans as Example [W3S1-EN].
Essence of Dispatch [W3S2-EN].
Variables [W3S3-EN].
A Simple HTTP Application: As a pretex to revisit Pharo Syntax [W3S4-EN].
Class Methods [W3S6-EN].
An Overview of Essential Collections [W3S7-EN].
Iterators [W3S9-EN].
Stream Overview [W3S10-EN].
Understanding Return [W3S11-EN].
Understanding Implementor / Senders [W3-LiveA-EN].
Understanding class references [W3-LiveB-EN].
Find information using Spotter [W3-LiveC-EN].
Implementing Die mechanics [W3-ReDo- part1-EN].
Implementing a Die handle [W3-ReDo-part2-EN].
Finalizing the DSL [W3-ReDo -part3-EN].
Inheritance Basics [W4S1-EN].
Inheritance and Lookup: Lookup [W4S2-EN].
Inheritance and Lookup: the case of Super [W4S3-EN].
Inheritance and Lookup: doesNotUnderstand: aMessage [W4S4-EN].
Inheritance and Lookup: Lookup in metaclasses [W4S5-EN].
Class Methods at Work [W4S6-EN].
Overview of Pharo Web Stack [W4S7-EN].
Seaside: An Innovative Web Application Framework [W4S8-EN].
Seaside: Rendering Components [W4S9-EN].
Seaside: A Glance at MetaData and REST [W4S10-EN].
Voyage [W4S11-EN].
Git: New project creation [W4-LiveA-EN].
Git : Creating a remote repository to an existing project [W4-LiveB-EN].
Loading a project with Metacello [W4-LiveC-EN].
Applying Refactorings [W4-LiveD-EN].
Live Quality checker in Action [W4-LiveE-EN].
Seaside: Composing Components [W5S1-EN].
Really Understanding Class Methods [W5S2-EN].
Common Errors [W5S3-EN].
Powerful Exceptions: an Overview [W5S4-EN].
Debugging in Pharo [W5S5-EN].
SUnit: Unit Tests in Pharo [W5S6-EN].
Files in Pharo [W5S7-EN].
Reflection: Basic Introspection [W5S8-EN].
Benchmarking in Pharo [W5S9-EN].
Advanced Spotter actions [W5-LiveA-EN].
First look at the Debugger actions [W5-LiveB-EN].
Find a bug with the Debugger [W5-LiveC-EN].
Did You Really Understand Super? [W6S1-EN].
Understanding the Implementation of ifTrue:ifFalse: [W6S2-EN].
Dice new vs. self class new [W6S3-EN].
Message Sends are Plans for Reuse [W6S4-EN].
Hooks and Templates [W6S5-EN].
Runtime Architecture [W6-S6-EN].
Characters, Strings and Symbols [W6S7-EN].
Dynamic vs. Literal Arrays [W6S8-EN].
Customized tabs in the Inspector [W6-LiveA-EN].
Personalize your image startup [W6-LiveB-EN].
Advanced Points on Classes [W7S1-EN].
Variable Size Objects [W7S2-EN].
Understanding Metaclasses [W7S3-EN].
Reflective Operations for Live Programming [W7S4-EN].
DoesNotUnderstand: a Precious Hook [W7S5-EN].
Reflection: Stack as an Object [W7S6-EN].
Avoid Null Checks [W7S7-EN].
A Journey in Pharo: A Bright Future [W7S8-EN].
Taught by
Inria Learning Lab