﻿WEBVTT

00:00:07.880 --> 00:00:11.480 align:middle
Hello and welcome to this Mooc
on Pharo:

00:00:11.640 --> 00:00:14.200 align:middle
Live Object Programming in Pharo.

00:00:14.360 --> 00:00:18.240 align:middle
For this first lecture
I'll present the mooc's aims.

00:00:18.760 --> 00:00:20.520 align:middle
So what are they?

00:00:20.680 --> 00:00:23.920 align:middle
You'll learn to program in Pharo,
obviously.

00:00:24.080 --> 00:00:27.640 align:middle
It's important to understand
and master all the syntax,

00:00:27.800 --> 00:00:29.640 align:middle
the full syntax and model,

00:00:29.800 --> 00:00:31.880 align:middle
and the environment of Pharo.

00:00:32.040 --> 00:00:33.760 align:middle
It's not just a language,

00:00:33.920 --> 00:00:37.680 align:middle
it's a programming environment
with lots of tools.

00:00:37.840 --> 00:00:40.520 align:middle
We'll show you
some of the most useful ones.

00:00:40.680 --> 00:00:43.960 align:middle
The mooc won't limit itself
to just presenting Pharo.

00:00:44.120 --> 00:00:45.680 align:middle
We'll deeply understand

00:00:45.840 --> 00:00:48.640 align:middle
the object-oriented
fundamental mechanisms.

00:00:48.800 --> 00:00:50.240 align:middle
That's really interesting.

00:00:50.400 --> 00:00:53.480 align:middle
We'll illustrate these
with aspects of Pharo itself.

00:00:53.640 --> 00:00:55.600 align:middle
We will also, from time to time,

00:00:55.760 --> 00:00:58.640 align:middle
show you some design heuristics,

00:00:58.800 --> 00:01:02.400 align:middle
heuristics which will let you,
in your life as a programmer,

00:01:02.560 --> 00:01:04.040 align:middle
design applications

00:01:04.200 --> 00:01:07.000 align:middle
in a more elegant,
more extendable way.

00:01:07.160 --> 00:01:10.080 align:middle
You'll work on real examples
in this mooc,

00:01:10.240 --> 00:01:13.600 align:middle
and at the end
you'll deploy your own web app

00:01:13.760 --> 00:01:16.520 align:middle
that you'll have developed
from start to end.

00:01:17.400 --> 00:01:21.120 align:middle
The mooc is structured
over 7 weeks.

00:01:22.000 --> 00:01:26.160 align:middle
We'll start with syntactic aspects
of Pharo

00:01:26.320 --> 00:01:28.880 align:middle
so you can quickly start
doing exercises.

00:01:29.040 --> 00:01:34.680 align:middle
But we're also going to mix the points
linked to object design,

00:01:34.840 --> 00:01:39.120 align:middle
so that you'll quickly understand
certain aspects.

00:01:39.280 --> 00:01:43.280 align:middle
Then we'll look at aspects
linked to Pharo's core functions,

00:01:43.440 --> 00:01:45.440 align:middle
like file systems and so on.

00:01:45.600 --> 00:01:48.520 align:middle
The course isn't always linear.

00:01:48.680 --> 00:01:52.000 align:middle
In the final sessions
we'll go back over concepts,

00:01:52.160 --> 00:01:54.440 align:middle
to be sure you really understood

00:01:54.600 --> 00:01:57.240 align:middle
what we discussed
in the first sessions.

00:01:57.400 --> 00:02:00.120 align:middle
You'll have plenty of exercises
and mini projects.

00:02:00.280 --> 00:02:02.840 align:middle
As motivation, after two weeks

00:02:03.000 --> 00:02:06.280 align:middle
you'll have seen the full syntax
and the model,

00:02:06.440 --> 00:02:09.880 align:middle
and you'll be ready
to do some mini projects.

00:02:10.840 --> 00:02:12.440 align:middle
A quick word about us.

00:02:12.600 --> 00:02:15.400 align:middle
There are three of us,
three colleagues,

00:02:15.560 --> 00:02:18.080 align:middle
all experts
in object-oriented programming.

00:02:18.240 --> 00:02:21.200 align:middle
I've worked on traits

00:02:21.360 --> 00:02:23.960 align:middle
which influenced Perl,
Php and Scala.

00:02:24.120 --> 00:02:26.560 align:middle
We're experts
in object-oriented design.

00:02:26.720 --> 00:02:29.600 align:middle
We're part
of the Pharo core development group.

00:02:29.760 --> 00:02:33.600 align:middle
And we're authors of several
open-source books on the web.

00:02:33.760 --> 00:02:35.560 align:middle
I recommend them to you.

00:02:35.840 --> 00:02:36.960 align:middle
So why Pharo?

00:02:37.120 --> 00:02:41.520 align:middle
Setting aside that we developed it
and think it's a great language,

00:02:41.760 --> 00:02:45.480 align:middle
it's very interesting
from an educational point of view

00:02:45.640 --> 00:02:48.640 align:middle
because you'll be immersed
in a world of objects,

00:02:48.800 --> 00:02:52.480 align:middle
interacting with
and manipulating objects.

00:02:52.640 --> 00:02:53.880 align:middle
As an example,

00:02:54.040 --> 00:02:56.960 align:middle
loops don't exist
as constructers in Pharo.

00:02:57.120 --> 00:03:00.080 align:middle
They're messages sent to objects
that are collections.

00:03:00.240 --> 00:03:03.600 align:middle
Conditions are messages
sent to objects that are booleans.

00:03:03.760 --> 00:03:08.640 align:middle
So you'll constantly be interacting
with living objects

00:03:08.920 --> 00:03:12.160 align:middle
and your programs will be transformed
under your fingers.

00:03:12.320 --> 00:03:15.080 align:middle
The fact that Pharo
is fully written in itself

00:03:15.240 --> 00:03:18.480 align:middle
means you have a wide possibility
for discoveries.

00:03:18.640 --> 00:03:23.160 align:middle
Once you've understood
the syntactical aspects of Pharo,

00:03:23.320 --> 00:03:25.320 align:middle
the whole world
will open up to you,

00:03:25.480 --> 00:03:28.040 align:middle
because it's fully written in itself.

00:03:28.720 --> 00:03:32.720 align:middle
So, to sum up this voyage
that I'm inviting you on...

00:03:32.960 --> 00:03:34.840 align:middle
Pharo is pure and elegant.

00:03:35.000 --> 00:03:38.520 align:middle
There are very few concepts used.

00:03:38.680 --> 00:03:43.200 align:middle
It's fun to program because
of the interaction with objects.

00:03:43.360 --> 00:03:45.880 align:middle
It's highly productive.

00:03:46.040 --> 00:03:49.440 align:middle
Pharo is used in many universities

00:03:49.720 --> 00:03:52.920 align:middle
because of its teaching properties
and the positive aspects

00:03:53.160 --> 00:03:54.520 align:middle
that it teaches.

00:03:54.680 --> 00:03:57.280 align:middle
One point which is often overlooked

00:03:57.440 --> 00:04:00.720 align:middle
is that Pharo
is an empowering system.

00:04:00.880 --> 00:04:03.640 align:middle
Pharo isn't a blackbox.

00:04:03.800 --> 00:04:08.400 align:middle
You'll be able to see
how the system is implemented

00:04:08.560 --> 00:04:10.520 align:middle
and modify things.

00:04:10.680 --> 00:04:14.800 align:middle
The metaphor I often use
is that Pharo is a fish tank,

00:04:14.960 --> 00:04:18.120 align:middle
and you can jump into the tank
and swim with the fish!

00:04:18.280 --> 00:04:20.240 align:middle
That's very special.

00:04:20.400 --> 00:04:25.080 align:middle
We're going to show you some videos
which will explain those aspects.

00:04:25.240 --> 00:04:27.680 align:middle
You'll have access
to the entire system.