►
Description
For more Continuous Delivery Foundation content, check out our blog: https://cd.foundation/blog/
Keynote: Hedy: Creating a Gradual Programming Language - Dr. Felienne Hermans, Leiden Institute of Advanced Computer Science
A
Good
morning,
everyone-
yes,
I'm
here
to
talk
about
hedy,
a
gradual
programming
language
for
programming
education
that
I
made,
but
before
we
really
go
into
the
details
of
hedy,
I
want
to
take
you
through
sort
of
the
history
of
hadi
and
my
history
in
teaching
programming
to
children.
So
in
the
year
2013
that's
getting
increasingly
longer
ago,
as
I
gave
talks
about
this,
I
started
to
teach
programming
to
kids.
So
there
was
a
group
of
kids
in
a
community
center
in
rotterdam
in
the
netherlands
where
I
lived
and
they
needed
a
programming
teacher.
A
So
I
thought
these
are
little
children.
These
were
10
11
12
year
olds.
This
will
be
fine.
I
have
a
phd
in
programming
writing
in
software
engineering.
How
hard
can
it
be?
How
difficult
questions
can
they
ask
me
this?
This
would
be
totally
fine.
I
thought
it
was
actually
a
lot
harder
than
I
thought
and
one
of
the
things
that
made
it
really
hard.
Is
that
subconsciously
when
I
started
to
teach
programming
to
those
children?
I
thought
back
at
how
I
learned
programming
when
I
was
a
kid.
A
A
There
were
no
adults
to
really
teach
me
programming,
so
I
never
really
went
through
a
programming
lesson.
I
didn't
really
have
an
idea
of
what
a
programming
lesson
looked
like
what
I
did
have
was
this
book.
So
this
is
a
book
from
which
you
could
learn
programming
at
the
time
and
it's
like
I'm,
I'm
very
old.
So
this
is
before
the
internet
right.
Well,
the
internet
existed,
but
I
didn't
have
it
in
my
house.
A
A
This
is
printed
out,
programming
list
right,
and
this
is
so
all
that
it
didn't
come
with
a
floppy
or
cd
or
anything
you
just
had
to
manually
type
those
codes
into
the
computer
to
get
it
to
work
and,
as
you
might
hear
from
my
english,
english
isn't
my
native
language,
and
at
this
time
I
didn't
really
know
any
english.
So
none
of
the
words
really
made
sense
to
me.
I
just
copied
everything
into
the
computer
sort
of
until
it
worked
right,
so
so
that
was
really
hard,
and
this
is
not
just
my
experience.
A
This
is
an
experience,
many
people,
the
children
of
the
80s
share.
I
saw
some
people
ignoring
in
the
audience.
Many
of
us
grew
up
this
way
by
learning
from
books
and
just
hitting
the
keyboard
until
it
worked,
and
that
creates
a
certain
culture
of
thinking
about
programming.
Basically,
we've
all
been
sort
of
stockholm
syndromes
into
thinking
that
compilers
are
lovely
teachers
right
yes,
this
is
this
is
fun.
A
This
is
a
good
way
to
learn,
is
just
try
things
and
the
compiler
will
tell
me
if
there's
an
issue
with
that
in
mind,
I
was
teaching
children
in
the
year
2013
programming,
so
the
children
were
very
excited
to
learn
programming
right.
They
were
coming
voluntarily
to
the
community
center
on
saturday
saying
hey.
We
really
really
want
to
learn
this,
so
I
thought
okay,
this
will
be
fine.
I'll
just
show
them
python.
Right.
Python
is
known
for
its
easy
to
learn
syntax.
This
will
be
totally
fine
here,
children.
This
is
python,
it's
very
exciting.
A
What
we're
going
to
do?
We're
actually
going
to
print
text
on
a
screen
super
cool,
and
in
order
to
do
that,
you
have
to
type
print
and
then
brackets
and
then
quotes,
and
then
the
text
and
then
what
you'll
have
is
text
on
the
screen.
So
the
kids
were
like
okay,
okay,
okay,
probably
this
is
programming.
This
is
fine.
A
However,
of
course
it
wasn't
always
the
happy
pads.
Sometimes
kids
made
a
mistake.
An
honest
mistake
like
this
one
accidentally
using
a
capital
p
in
print.
I
just
this
sort
of
makes
sense
because
you
are
supposed
to
start
lines
sentences
with
capitals.
What
does
python
say?
Name
print
is
not
defined.
A
Okay,
so,
as
an
error
message
is
sort
of
okay,
it
tells
you
what's
wrong.
This
is
not
that
hard.
It
got
worse.
Now
we
I
forgot
a
closing
bracket.
Just
all
one
closing
bracket
seems
like
I'm
very,
very
close.
I
should
maybe
get
9
out
of
10
points
for
this.
No
no
python
says
no
syntax
error,
unexpected
eof,
while
parsing
right,
imagine
you
teach
a
bunch
of
10
year
olds
and
one
raises
their
hand
and
says
teach
your
teacher.
What
is
parsing
like
well,
I
don't
want
to
talk
about
that
now
right.
A
I
just
want
to
talk
about
concepts.
Here's
another
one.
This
is
even
worse.
I
think
here
there's
a
space
in
front
of
the
code,
so
everything
is
correct,
everything's,
fine!
It
is
literally
exactly
the
example
that
I
showed
them,
but
there's
a
space
so
is
python.
Happy
can
python
simply
just
ignore
this
space
like
you
would
expect?
No,
no,
of
course,
not
indentation
error,
unexpected
indent
lesson,
one
teacher:
what
is
an
indent
like
I
don't
want
to
talk
about
that
now.
This
is
this
is
too
hard
right.
A
So
over
time
I
saw
kids
getting
more
and
more
frustrated.
They
were
very
motivated
in
the
beginning,
but
after
a
while
they
were
just
like
you
know.
If
this
is
programming,
never
mind,
I
don't
I
don't
see
how
this
will
be
fun.
On
the
other
side,
some
of
them,
of
course,
were
like
okay.
I
know
I
want
to
be
a
programmer.
I
can.
I
can
take
this
pain
for
a
little
bit
longer,
but
many
of
them
disengaged
by
all
these
small
things.
A
So
I
realized.
Okay,
maybe
compilers
are
not
lovely
teacher
right.
Maybe
this
frame
of
teaching
is
just
not
a
right
frame.
There
was
really
a
difference
in
what
I
thought
was
going
on
and
what
the
children
thought
was
going
on.
Something
like
this.
This
is
a
simple
python
program
which
just
lists
one
two,
three
four
or
actually
it
lists
zero.
One,
two
three,
but
let's
say
for
the
sake
of
argument
that
this
is
just
one
two.
Three
four,
so
what
I
wanted
to
talk
about
is
repetition.
I
was
like
oh
children
look
here.
A
A
They
couldn't
really
focus
on
the
concept
of
programming,
the
concept
of
repetition
because
they
were
so
concerned
with
all
the
details,
and
I
learned
a
lot
actually
about
how
people
learn
and
how
people
process
information-
and
I
figured
out
that
this
is
because
programming
causes
too
much
cognitive
load
if
your
brain
has
to
think
really
really
hard.
The
technical
term
for
that
is
cognitive
load,
and
if
you
want
to
know
more
about
cognitive
loads,
I
sort
of
went
on
a
on
a
rabbit
chase
and
I
learned
a
lot
about
programming
and
cognition.
A
A
So
I
got
so
interested
because
I
thought
well
we
as
humanity,
you
know
we
succeed
in
teaching
children
math
all
children,
we
succeed
in
teaching
children,
language,
all
children,
not
just
the
one
that
are
ones
that
are
really
motivated.
So
it's
like
okay,
how
do
other
fields
manage
cognitive
loads?
How
do
we
do
this,
and
one
of
the
things
that
was
so
interesting
looking
into
language
education
is
that
in
learning
to
write
there
are
so
many
different
ways
to
get
it
correctly
right?
A
If
you
have
a
five
or
six
year
old-
and
they
write
like
this-
you
will
not
say
syntax
error
floating
a
right,
you'll
see
if
this
is
a
five
or
six
year
old,
you're
like
well
done
buddy.
This
is
perfect,
those
are
letters
and
not
random
scribbles.
This
is
not
wrong.
This
is
not
almost
correct.
This
is
just
right.
This
is
at
their
level
the
correct
way
of
doing
stuff.
A
Later
on,
we
add
concepts,
we
say:
hey,
there's
more
than
just
letters,
there's
also
words
and
you
can
group
the
letters
together
and
then
they
form
words
and
then
we
add
slowly
different
rules.
After
a
while,
we
say
hey,
every
sentence
now
starts
with
a
capital
letter.
Kids
are
like
okay
practice
practice
practice
and
they
know
this
rule,
and
then
we
say
every
sentence
ends
in
a
period.
Kids
are
like
okay.
Well,
that
makes
sense,
and
there
we're
not.
A
This
is
not
just
syntax
right
because
we're
also
adding
expressiveness
to
the
language,
because
once
we
have
a
period
we
can
make
sentences
that
span
multiple
lines
right,
so
our
language
is
now
more
powerful
because
we
have
the
concept
of
a
period
to
separate
different
lines.
So
I
was
like:
hey
rules
gradually
change.
If
we
teach
language,
how
do
we
do
that
in
programming
education?
A
You
know,
how
do
we
manage
cognitive
load?
Well,
not
very
well.
We
give
kids
the
full
syntax
and
the
full
language
from
the
beginning
right
and
even
when
you
say
well
in
the
first
lesson,
we
just
teach
print.
We
don't
talk
about
code
blocks,
inevitably
because
the
whole
language
is
there,
you
might
have
to
talk
about
it,
because
if
you
put
a
space
there
python
will
say
indentation
right,
so
you're
not
chopping
off
parts
of
the
language.
A
Couldn't
we
teach
programming
like
we
teach
reading?
Couldn't
we
also
make
a
programming
language
that
gradually
changes
and,
as
I
said,
I
was
just
teaching
these
kids
on
a
saturday.
It
wasn't
my
plan
to
to
do
anything
research-wise.
This
is
just
a
hobby,
a
volunteering
gig,
but
I
I
did
have
a
phd
in
in
programming
language
design
and
I
built
an
ide
when
I
was
working
on
my
phd
thesis,
so
I
thought
well.
I
have
the
skills
to
build
something
like
this,
so
I
started
to
experiment
with
something
that
ultimately
became.
A
The
hattie
programming
language,
that
is,
a
gradual
language,
so
in
the
first
level
of
hedy,
you
just
type
prints
and
then
you
type
whatever
you
want
and
it
just
prints
hello
and
then
gradually
we
add
syntactic
elements
and
with
that
also
concept,
so
in
level
four,
we
introduce
quotation
marks
and
later
on
all
the
way
at
the
end
of
the
trajectory.
Only
then
do
we
add
brackets
because
they're
not
necessary.
Initially,
if
you're,
just
printing
one
thing,
you
don't
need
brackets
right,
so
we
made
this
language
a
heady,
a
gradual
language.
A
So
I'm
going
to
show
you
a
demo
with
a
few
screenshots
just
to
give
you
an
idea
of
what
hedy
looks
like.
So
this
is
the
heady
user
interface.
It
runs
entirely
in
the
browser
and
that's
by
design,
because
many
schools
and
programming
clubs
cannot
install
software
on
their
machines
either
because
they
don't
have
the
skills
or
more
commonly
they
just
don't
have
the
right
access
levels
in
computers
to
install
something.
So
you
just
go
to
www.hedicode.com
and
you
can
start
programming
straight
away.
A
The
code
goes
here
on
the
left
side
is
where
you
type
something
like
print
hello
and
then
print
welcome
to
openjs
world,
and
if
you
would
run
that
the
output
appears
on
the
other
side,
so
you
see
no
brackets
no
quotes
nothing.
Your
kids
can
just
focus
on
hey.
This
is
programming.
These
are
the
ideas
in
programming.
Oh,
you
put
some
code
here
and
then
output
comes
on
the
other
side.
That's
what
programming
is
what's
also
a
really
really
important
part
of
hedy
is
that
we
have
built-in
lesson
plans.
A
So
everything
you
need
to
know
is
right
there
in
the
browser,
because
one
of
the
things
I
also
found
to
increase
cognitive
load
is,
if
you
have
lesson
plans
on
paper
or
even
in
another
browser
tabs
kids
have
to
go
from
the
one
thing
to
the
other
thing:
they
read
the
lesson
plan
and
they
have
to
go
to
the
coding
environment
and
that
also
creates
extra
cognitive
load.
So
we
put
the
lesson
plans
right
there,
so
everything
is
sort
of
one
in
one
package.
A
A
A
A
This
is
stated,
we
hope
in
language
that
kids
can
understand,
and
it
shows
you
what
to
do
next
and
one
of
the
reasons
of
course
I
mean
I
am
cheating
a
little
bit,
it's
easier
to
generate
these
very,
very
meaningful
error
messages,
because
the
language
is
so
small
in
level
one.
We
just
have
five
keywords
right,
so
it's
relatively
easy
to
guess
what
kids
meant,
which
I
totally
understand
why
python
error
messages
are
the
way
they
are
because
there
are
so
many
different
things.
That
could
be
the
mistake.
It's
harder
to
guess
so.
A
What
we
also
have
level
one
and
that's
quite
important,
is
the
idea
of
you,
user
input
and
output,
so
not
just
printing,
but
also
asking
we
have
a
keyword,
ask
that
is
going
to
put
an
input
from
there
like,
like
inputs
in
python.
So
it
says
what
is
your
name
and
then
you
can
type
in
the
little
green
field
and
the
echo
will
repeat
your
answer
back
to
you.
So
you
get
this
idea
of.
Oh
I'm
storing
a
value
somewhere,
but
you
don't
need
to
do
anything.
A
We
just
want
to
imprint
upon
children
programming,
it's
a
thing
where
you
have
inputs
and
you
have
outputs
and
just
for
comparison
right.
If
you
want
to
do
this
in
python
in
your
first
lesson,
have
a
very
easy
program
that
just
asks
for
your
name
and
then
says
hello
name.
This
is
what
you
have
to
type
right,
so
just
the
difference
between
this-
and
this
is
so
big
for
a
novice
right.
Getting
this
right,
making
sure
that
all
the
brackets
and
commas
and
the
quotes
are
there
for
some
kids.
A
A
This
is
level
two,
so
in
level
2
we
introduce
the
idea
of
a
variable
more
explicitly
more
explicitly
than
in
echo.
So
you
can
say:
name
is
hedy,
h
is
15,
and
then
you
can
just
say:
print
name
is
8
years
old,
and
if
you
run
this,
it
will
just
output
this
right.
So
for
us,
programmers
are
like
this
is
weird:
how
does
how
does
the
thing
know?
What
is
a
variable
and
what
is
text
right?
A
But
of
course,
it's
not
so
hard
to
do
a
little
bit
of
static
analysis
to
figure
out
what's
a
variable
and
what
is
text,
because
we
want
kids
at
this
level
really
to
be
focused
on
the
concept
of
a
variable
and
not
on
all
the
syntactic
fluff
that
will
come
later
so
sort
of
hedy
does
the
heavy
lifting
of
figuring
out
what's
going
on,
so
that
the
programming
experience
is
easy
and
only
gradually
increases.
So
I'm
not
going
to
take
you
through
all
levels.
A
We
have
18
levels
now
and
at
the
end
of
hedy
in
level,
18
you're
doing
a
syntactically
valid
subset
of
python.
So
we
really
slowly
want
to
get
you
to
python
and
then
our
idea
as
well,
if
you're
there.
You
know
if
you're
at
python
in
level,
18,
you've
seen
conditions
and
while
loops
and
for
loops
and
variables
and
lists
you
could
sort
of
from
there
consume
python
materials
and
and
enjoy
the
rest
of
your
programming
life
in
python
or
in
another
programming
language.
But
before
we
are
there
in
level
18.
A
Just
to
give
you
a
sense
of
what
we
have
in
level.
Four,
we
add
quotation
marks,
but
then
that's
the
only
thing
we
add,
so
we
really
focus
the
attention
of
the
learner
on
the
idea
that
there's
a
difference
between
variables
and
plain
text
strings
and
you
have
to
tell
the
computer,
which
is
which,
in
level
seven,
we
add
repetition,
but
there
also
we
start
gradually.
A
So
one
of
the
things
we're
super
super
excited
about
is
that
hadi
now
as
you've
seen,
it
is
in
english,
but
we
actually
support
multiple
different
languages.
Right,
as
I
said
when
I
was
first
learning
to
program,
I
didn't
know
any
english,
so
I
saw
the
kids
in
my
programming
club,
which
are
dutch
children,
also
struggle
with
error
messages
in
english.
So
you
can
go
to
your
settings
if
you
have
an
account
which
is
free
by
the
way,
and
you
can
set
your
preferred
ui
language
and
also
your
preferred
keyword
language.
A
So,
just
if
we
set
it
to
spanish,
everything
will
change
to
spanish,
including
giving
you
the
option
to
program
with
spanish
keywords,
and
we
didn't
stop
at
spanish
I
wanted
to,
but
then
people
from
the
community
kept
pressuring
me
that
I
also
wanted
other
languages,
including
rights
to
left
languages,
which
I
didn't
want
to
implement,
because
it
was
a
lot
of
work.
But
of
course,
once
we
did
it,
it's
totally
worth
it.
So
we
also
support
right
to
left
languages.
A
You
see
here,
programming,
arabic,
where
the
whole
ui,
of
course
is
swapped
and
also
all
of
the
keywords
are
in
arabic.
We
have
farsi
as
well.
This
also,
as
you
can
imagine,
greatly
lowers
the
cognitive
load
for
children.
You
can
imagine
well
it's
hard
to
imagine
for
me,
but
you
can.
You
can
sort
of
imagine
that
if
arabic
is
your
first
language
and
then
you
have
to
learn
python
that
that's
like
right.
That's
for
us
even
non-english
speakers.
It's
like
this
and
for
english
speakers.
A
A
So
before
you
before.
I
close.
I
want
to
give
you
a
sense
if
you
know
how
stuff
is
going
with
hedy,
because,
as
I
said,
I
built
this
as
a
small
research
prototype
for
a
research
paper
in
one
christmas
break
in
2019,
I
built
the
first
prototype
in
a
few
weeks
and
then
it
sort
of
sort
of
exploded
from
there,
which
was
nice
one
of
the
things
a
few
months
ago.
That
was
really
nice
is
that
I
woke
up
to
this
tweet.
A
This
is
guido
from
rossum
he's
the
creator
of
python,
and
he
said
I
just
discovered
honey,
a
gradual
programming
language,
a
new
idea.
How
did
these
programming
to
beginners
very
cool
and
that
this
is
really,
of
course,
very,
very,
very
nice
to
see,
especially
because
github
also
has
once
said
that
you
shouldn't
teach
python
to
12
year
olds,
which
I
think
sort
of.
I
agree
with
now
that
now
that
I've
tried,
so
it's
really
really
cool
to
see
that
he
thinks
also.
This
is
a
good
way
to
get
kids
into
python.
A
So
far,
so
we
launched
in
early
2020
and
over
2
million
hadi
programs
have
been
created
worldwide,
out
of
which
800
000
are
unique
programs.
Of
course
we
have
hello
everyone
in
the
database
many
many
times,
but
there
are
800
000
different
programs
that
children
have
created,
which
is
like
amazing
and
and
so
far
we
have
an
error
rate
of
about
25.
A
A
Just
so
you
know,
heady
is
free
and
also
open
source
we're
on
github.
So
if
you
want
to
contribute,
we
have,
I
think,
over
100
open
issues.
So
if
you
want
to
help
out,
that
would
be
very,
very
nice
and
you
can't
just
help
out
with
programming,
even
though
we
we'd
be
very
grateful
for
your
help.
We
also
like
to
add
more
languages.
Currently,
we
support
25
different
languages
as
you've
seen
english
spanish
arabic
also
simplified
chinese
hungarian.
A
Well,
I
don't
even
know
the
list.
We
have
many,
but
we've
of
course
like
to
have
more
and
we
use
a
tool
called
webplate
where
you
can
just
translate
in
the
browser.
Even
if
you
don't
know
any
programming,
you
don't
know
any
python,
that's
not
an
issue!
You
just
go
to
our
website
link
and
you
can
translate
some
content
there.
So
if
you
do
want
to
help
out
in
that
way,
we'd
be
really
really
grateful.
A
A
If
you
want
to
read
the
book,
the
programmer's
brain
that
dives
a
lot
deeper
into
all
the
cognitive
aspects
of
programming
and
learning
to
program
not
just
for
children,
but
also
for
programming
professionals,
you
can
go
to
felina.com
book
and
if
you
want
to
know
more
about
hedy,
you
can
go
to
flinder.com
hadi.
Thank
you
very
much.