Hello and welcome to this Mooc on Pharo:
Live Object Programming in Pharo.
For this first lecture I'll present the mooc's aims.
So what are they?
You'll learn to program in Pharo, obviously.
It's important to understand and master all the syntax,
the full syntax and model,
and the environment of Pharo.
It's not just a language,
it's a programming environment with lots of tools.
We'll show you some of the most useful ones.
The mooc won't limit itself to just presenting Pharo.
We'll deeply understand
the object-oriented fundamental mechanisms.
That's really interesting.
We'll illustrate these with aspects of Pharo itself.
We will also, from time to time,
show you some design heuristics,
heuristics which will let you, in your life as a programmer,
design applications
in a more elegant, more extendable way.
You'll work on real examples in this mooc,
and at the end you'll deploy your own web app
that you'll have developed from start to end.
The mooc is structured over 7 weeks.
We'll start with syntactic aspects of Pharo
so you can quickly start doing exercises.
But we're also going to mix the points linked to object design,
so that you'll quickly understand certain aspects.
Then we'll look at aspects linked to Pharo's core functions,
like file systems and so on.
The course isn't always linear.
In the final sessions we'll go back over concepts,
to be sure you really understood
what we discussed in the first sessions.
You'll have plenty of exercises and mini projects.
As motivation, after two weeks
you'll have seen the full syntax and the model,
and you'll be ready to do some mini projects.
A quick word about us.
There are three of us, three colleagues,
all experts in object-oriented programming.
I've worked on traits
which influenced Perl, Php and Scala.
We're experts in object-oriented design.
We're part of the Pharo core development group.
And we're authors of several open-source books on the web.
I recommend them to you.
So why Pharo?
Setting aside that we developed it and think it's a great language,
it's very interesting from an educational point of view
because you'll be immersed in a world of objects,
interacting with and manipulating objects.
As an example,
loops don't exist as constructers in Pharo.
They're messages sent to objects that are collections.
Conditions are messages sent to objects that are booleans.
So you'll constantly be interacting with living objects
and your programs will be transformed under your fingers.
The fact that Pharo is fully written in itself
means you have a wide possibility for discoveries.
Once you've understood the syntactical aspects of Pharo,
the whole world will open up to you,
because it's fully written in itself.
So, to sum up this voyage that I'm inviting you on...
Pharo is pure and elegant.
There are very few concepts used.
It's fun to program because of the interaction with objects.
It's highly productive.
Pharo is used in many universities
because of its teaching properties and the positive aspects
that it teaches.
One point which is often overlooked
is that Pharo is an empowering system.
Pharo isn't a blackbox.
You'll be able to see how the system is implemented
and modify things.
The metaphor I often use is that Pharo is a fish tank,
and you can jump into the tank and swim with the fish!
That's very special.
We're going to show you some videos which will explain those aspects.
You'll have access to the entire system.