﻿1
00:00:07,880 --> 00:00:11,480
Hello and welcome to this Mooc
on Pharo:

2
00:00:11,640 --> 00:00:14,200
Live Object Programming in Pharo.

3
00:00:14,360 --> 00:00:18,240
For this first lecture
I'll present the mooc's aims.

4
00:00:18,760 --> 00:00:20,520
So what are they?

5
00:00:20,680 --> 00:00:23,920
You'll learn to program in Pharo,
obviously.

6
00:00:24,080 --> 00:00:27,640
It's important to understand
and master all the syntax,

7
00:00:27,800 --> 00:00:29,640
the full syntax and model,

8
00:00:29,800 --> 00:00:31,880
and the environment of Pharo.

9
00:00:32,040 --> 00:00:33,760
It's not just a language,

10
00:00:33,920 --> 00:00:37,680
it's a programming environment
with lots of tools.

11
00:00:37,840 --> 00:00:40,520
We'll show you
some of the most useful ones.

12
00:00:40,680 --> 00:00:43,960
The mooc won't limit itself
to just presenting Pharo.

13
00:00:44,120 --> 00:00:45,680
We'll deeply understand

14
00:00:45,840 --> 00:00:48,640
the object-oriented
fundamental mechanisms.

15
00:00:48,800 --> 00:00:50,240
That's really interesting.

16
00:00:50,400 --> 00:00:53,480
We'll illustrate these
with aspects of Pharo itself.

17
00:00:53,640 --> 00:00:55,600
We will also, from time to time,

18
00:00:55,760 --> 00:00:58,640
show you some design heuristics,

19
00:00:58,800 --> 00:01:02,400
heuristics which will let you,
in your life as a programmer,

20
00:01:02,560 --> 00:01:04,040
design applications

21
00:01:04,200 --> 00:01:07,000
in a more elegant,
more extendable way.

22
00:01:07,160 --> 00:01:10,080
You'll work on real examples
in this mooc,

23
00:01:10,240 --> 00:01:13,600
and at the end
you'll deploy your own web app

24
00:01:13,760 --> 00:01:16,520
that you'll have developed
from start to end.

25
00:01:17,400 --> 00:01:21,120
The mooc is structured
over 7 weeks.

26
00:01:22,000 --> 00:01:26,160
We'll start with syntactic aspects
of Pharo

27
00:01:26,320 --> 00:01:28,880
so you can quickly start
doing exercises.

28
00:01:29,040 --> 00:01:34,680
But we're also going to mix the points
linked to object design,

29
00:01:34,840 --> 00:01:39,120
so that you'll quickly understand
certain aspects.

30
00:01:39,280 --> 00:01:43,280
Then we'll look at aspects
linked to Pharo's core functions,

31
00:01:43,440 --> 00:01:45,440
like file systems and so on.

32
00:01:45,600 --> 00:01:48,520
The course isn't always linear.

33
00:01:48,680 --> 00:01:52,000
In the final sessions
we'll go back over concepts,

34
00:01:52,160 --> 00:01:54,440
to be sure you really understood

35
00:01:54,600 --> 00:01:57,240
what we discussed
in the first sessions.

36
00:01:57,400 --> 00:02:00,120
You'll have plenty of exercises
and mini projects.

37
00:02:00,280 --> 00:02:02,840
As motivation, after two weeks

38
00:02:03,000 --> 00:02:06,280
you'll have seen the full syntax
and the model,

39
00:02:06,440 --> 00:02:09,880
and you'll be ready
to do some mini projects.

40
00:02:10,840 --> 00:02:12,440
A quick word about us.

41
00:02:12,600 --> 00:02:15,400
There are three of us,
three colleagues,

42
00:02:15,560 --> 00:02:18,080
all experts
in object-oriented programming.

43
00:02:18,240 --> 00:02:21,200
I've worked on traits

44
00:02:21,360 --> 00:02:23,960
which influenced Perl,
Php and Scala.

45
00:02:24,120 --> 00:02:26,560
We're experts
in object-oriented design.

46
00:02:26,720 --> 00:02:29,600
We're part
of the Pharo core development group.

47
00:02:29,760 --> 00:02:33,600
And we're authors of several
open-source books on the web.

48
00:02:33,760 --> 00:02:35,560
I recommend them to you.

49
00:02:35,840 --> 00:02:36,960
So why Pharo?

50
00:02:37,120 --> 00:02:41,520
Setting aside that we developed it
and think it's a great language,

51
00:02:41,760 --> 00:02:45,480
it's very interesting
from an educational point of view

52
00:02:45,640 --> 00:02:48,640
because you'll be immersed
in a world of objects,

53
00:02:48,800 --> 00:02:52,480
interacting with
and manipulating objects.

54
00:02:52,640 --> 00:02:53,880
As an example,

55
00:02:54,040 --> 00:02:56,960
loops don't exist
as constructers in Pharo.

56
00:02:57,120 --> 00:03:00,080
They're messages sent to objects
that are collections.

57
00:03:00,240 --> 00:03:03,600
Conditions are messages
sent to objects that are booleans.

58
00:03:03,760 --> 00:03:08,640
So you'll constantly be interacting
with living objects

59
00:03:08,920 --> 00:03:12,160
and your programs will be transformed
under your fingers.

60
00:03:12,320 --> 00:03:15,080
The fact that Pharo
is fully written in itself

61
00:03:15,240 --> 00:03:18,480
means you have a wide possibility
for discoveries.

62
00:03:18,640 --> 00:03:23,160
Once you've understood
the syntactical aspects of Pharo,

63
00:03:23,320 --> 00:03:25,320
the whole world
will open up to you,

64
00:03:25,480 --> 00:03:28,040
because it's fully written in itself.

65
00:03:28,720 --> 00:03:32,720
So, to sum up this voyage
that I'm inviting you on...

66
00:03:32,960 --> 00:03:34,840
Pharo is pure and elegant.

67
00:03:35,000 --> 00:03:38,520
There are very few concepts used.

68
00:03:38,680 --> 00:03:43,200
It's fun to program because
of the interaction with objects.

69
00:03:43,360 --> 00:03:45,880
It's highly productive.

70
00:03:46,040 --> 00:03:49,440
Pharo is used in many universities

71
00:03:49,720 --> 00:03:52,920
because of its teaching properties
and the positive aspects

72
00:03:53,160 --> 00:03:54,520
that it teaches.

73
00:03:54,680 --> 00:03:57,280
One point which is often overlooked

74
00:03:57,440 --> 00:04:00,720
is that Pharo
is an empowering system.

75
00:04:00,880 --> 00:04:03,640
Pharo isn't a blackbox.

76
00:04:03,800 --> 00:04:08,400
You'll be able to see
how the system is implemented

77
00:04:08,560 --> 00:04:10,520
and modify things.

78
00:04:10,680 --> 00:04:14,800
The metaphor I often use
is that Pharo is a fish tank,

79
00:04:14,960 --> 00:04:18,120
and you can jump into the tank
and swim with the fish!

80
00:04:18,280 --> 00:04:20,240
That's very special.

81
00:04:20,400 --> 00:04:25,080
We're going to show you some videos
which will explain those aspects.

82
00:04:25,240 --> 00:04:27,680
You'll have access
to the entire system.