
How Scratch teaches kids to follow the hacker ethic - steven
https://backchannel.com/the-kids-computer-language-that-became-a-mind-bomb-for-the-hacker-ethic-a0b7e42c229d
======
WillPostForFood
I know everyone loves Scratch, but I think all but the youngest kids can just
as easily absorb a text based language, and ultimately get more out of it.
I've worked with kids in 2nd, 3rd, and 4th using Scratch, Processing, and most
recently Lua (Pico-8). I didn't see any difference in the kids ability to pick
up and build working programs that made them happy, but the kids who did it in
Processing and Lua seemed to have a better grasp of the concepts, and be
better prepared to jump into more common languages.

[https://processing.org/](https://processing.org/)

[https://www.lexaloffle.com/pico-8.php](https://www.lexaloffle.com/pico-8.php)

~~~
primitivesuave
I have run an organization that teaches kids to code and advocates for coding
literacy for the last 5 years, and I agree with you that kids as young as 8
years old can absorb a text-based language when presented in the right way.
However, typing speeds are generally quite slow amongst elementary school
kids, so the rate at which they can make interesting things happen is much
slower. That initial dopamine rush when connecting Scratch blocks is a very
effective way to get them to see programming as an exciting and fulfilling
endeavor. By eliminating the possibility of syntax errors through block-based
languages, you can put their entire initial focus on semantics, without having
to divert their attention toward syntactical correctness.

Also, it takes a certain kind of computer scientist to teach computer science
effectively, and most elementary school teachers do not match that requirement
no matter how much PD you give them. I would say most elementary school
teachers can't handle much beyond the basics of Scratch, but that is more than
enough to get the platform in the hands of kids. If the teachers chooses to
just let the kids mess around with Scratch rather than give them structure and
clearly defined goals, they will still do just fine. If a teacher takes a
similar lax approach with typed programming, the kids will most likely learn
nothing at all, and will often develop an aversion to programming altogether.

But I completely agree with you on the importance of teaching typed
programming. My heart aches when I hear of middle school CS classes using
Scratch. That's the perfect age to start exposing kids to Arduinos, Python,
Raspberry Pi, etc. The BBC Microbit foundation has been doing a great job in
the UK bridging the gap between Scratch and typed programming with their
Microbit platform (microbit.org), and (shameless self-plug) I work on this
problem as well with techlabeducation.com and pythonroom.com.

I think what kids miss most of all from typed programming is the idea that a
language is just like a human language, where each language has its own
metaphors and way of thinking (an idea put forth by Seymour Papert in his 1998
paper "Mindstorms").

~~~
velox_io
I think the main benefit of a graphical language, as opposed to text-based is
the rapid feedback loop. You see the response after every click.

This is the same reason so many people can build complex spreadsheets, yet
wouldn't know where to start if you put them in front of an IDE.

I brought a book 'Computer coding for kids by Carol Vorderman' for a friend's
daughters for Xmas (aged 6 and 8, both VERY bright with grades above their age
groups). As learning to program makes you think differently, especially
problem solving skills. It's gone down really well. Especially with older one
who spends hours reading the book, even when she doesn't have computer access
(and is now set on buying Chromebook with her pocket money).

A language such as Scratch is great for sparking initial interest, before
going on to more depth.

~~~
WillPostForFood
You are right that it is the rapid feedback that really helps with teaching. I
don't think you need a graphical language though, just an IDE oriented toward
rapid feedback. Putting a 3rd grader in Eclipse and having to compile and
build a jar to see the effects of a line of code would be horrible. But IDEs
like Processing Development Environment or Dr.Racket have great tight feedback
loops.

~~~
mpweiher
> You are right that it is the rapid feedback that really helps with teaching

And possibly with obtaining an intuition about whatever it is that you are
manipulating. Maybe "direct manipulation" is mostly about that rapid feedback,
rather than the concreteness of the objects?

I know that when I hooked up an "as-you-type" evaluator[1] to my experimental
programming language[2], I learned more about problems with the language in a
minute than I had previously in days or weeks. The feedback bandwidth is
incredible, and the short cycle times have a more than linear effect.

[1] [https://www.youtube.com/watch?v=sypkOhE-
ufs&t=57s](https://www.youtube.com/watch?v=sypkOhE-ufs&t=57s)

[2] [http://objective.st](http://objective.st)

------
dmoo
Scratch and its clones are a great way to start for kids without the problems
of syntax errors. Everything always works. It might not do what you want but
it always does something.

Kids at my local coderdojo enjoy beetleblocks which is like 3d scratch
[http://beetleblocks.com/run/](http://beetleblocks.com/run/) The files can be
exported and used in a minecraft clone
[https://twitter.com/damianmooney/status/843594021024993280](https://twitter.com/damianmooney/status/843594021024993280)

Microsoft have just announced a block based code environment for minecraftedu
[https://youtu.be/3rKuSlgqePo](https://youtu.be/3rKuSlgqePo)

It seems like a way of coding that has really taken off.

~~~
patja
There is a big difference between Microsoft's Minecraft: Education Edition
product and MinecraftEdu. Microsoft's product offering is a pale shadow of the
much-loved MinecraftEdu. Educators are still complaining about it: the
subscription named-user licensing model, the lack of the ComputerCraft Lua
programmable robot turtles, the lack of classroom management tools, on and on.

It is a great example of a company buying an awesome product and then throwing
it on the trash heap of history.

~~~
dmoo
Can I recommend Minetest

~~~
homarp
is there Minetest Edu ?

------
malkia
Yesterday was "Open House" at my son's elementary school. He showed me a lot
of cool projects, but also scratch and his several .sb2 files he's been
working on, and I was amazed that he's dealing fine with logical statements,
other kinds of blocks, forever loops, variables, etc. We did together some
scratch in the past, but ended up just moving a character in all directions.
And here he showed me a program that asks you for two numbers, then...
operation - and he typed "add" and finally it came - sum of two numbers.
Pretty cool!

~~~
tonydiv
How old is your child? That's awesome!

~~~
whatnotests
23

~~~
malkia
lol. that would've made me a really young father, but he's only 9.

~~~
tonydiv
Awesome, are you an engineer too? A few questions if you don't mind me asking:

1\. How serious are you about your child's coding education?

2\. Do you teach her/him too?

3\. Would you ever hire an instructor in a 1-on-1 or 1-on-2 setting if it were
affordable?

~~~
malkia
1\. I'm trying to be serious, but I often lose touch. My wife is more in
control of the matter.

2\. I'm not sure teaching is the best way to describe it... more like doing it
together, and sharing knowledge. I don't consider myself to be a good teacher
(after seen how others do it). Occasionally I pull real good "teachin'" \-
seriously, but then often I fell into too many details, and he gets bored.

3\. Maybe, but possibly when he goes to middleschool.

I grew up in Bulgaria, and since 7th grade I was in specialized Mathematics
and Informatics (the "eu" word for "computer science") high-school. I went
there because I was good in my elementary, middle school... only to realize I
was just average, or even below compared to the other kids. But then I
discovered that programming is what I really wanted, unlike many of the other
kids (that was back in the 90s), and there was much less competition in this
area. Nowadays its quite different... Back then, even saying that you were
playing video games, and kids would consider you dork/geek/etc.

But back to math-specialized high-school - Since I've started doing poorly, my
parents got me 1-1 (sometimes 1-2) math teacher, just to keep on level. It was
the norm to have 30-40 math exams for homework, and it took everyone of us
hours to finish (Though one difference with schools here, is that there is
rotation when you go to school - one month you go in the morning, the other
month in the afternoon - so there was plenty of time to finish homework).

So, it's definitely beneficial to have an instructor. It helped me. We are
considering, but also from another standpoint - peer pressure. When all our
friends are talking about how their kids go with private tutors/instructors -
then you have to get on that bandwagon... I mean I hate that, but I know we
have to do it.

Last rant, I wish a classroom where the teacher would have only few kids -
5-6, not 20. I feel this would greatly reduce the need for instructors.

And I'm willing to pay more taxes, whether I had or had not kids.

------
RUG3Y
My six year old loves scratch. I got him started, and a couple of hours later
he'd figured out how to make a character jump around the screen, shoot laser
beams, and make sound effects. I was thoroughly impressed. I think the way
they lay things out is great for kids and gets them introduced to logic and
control structures in a really simple and intuitive way.

~~~
yawz
My six year-old loves coding with Disney's Moana characters [1]. It's the same
principle. It's interesting to see him learn how to think differently, and
understand concepts such as looping. :)

[1] [http://partners.disney.com/hour-of-code/wayfinding-with-
code...](http://partners.disney.com/hour-of-code/wayfinding-with-code?cds)

------
valine
I was one of the very first scratch users. I started using it back in 2007, so
I would have been 10 years old at the time. I have a job as a graphics
programmer now, which I completely attribute to the countless hours I spent
building games in scratch. Discovering scratch back then was really a life
changing thing for me. Its exciting to see how huge the community is now and
all the kids discovering programming the same way I did.

~~~
andresmh
That's so cool! What was your handle? Mine was andresmh. I worked on the
community part during grad school :-) Scratch on!

------
hmahncke
The most amazing thing to me about watching my daughter learn and then become
obsessed with Scratch is the community around it. She has dozens of friends in
the network, and they organize to build projects together, have contests,
manage deadlines, and give each other advice on coding. And every interaction
she's had on the system has been positive. I don't know how the Scratch team
managed to build a "nice" social network, but that to me is more important
than any aspect of the syntax or whether she types or drags blocks. She sees
herself as a programmer, and she gets tons of positive feedback for being a
programmer.

~~~
andresmh
The online community was the focus of my dissertation, so it's really great to
hear your daughter has benefited from it. We worked really hard to keep the
community a friendly space for everyone. It was, and continues to be, a lot of
work for the team. I no longer work on Scratch, but I try to donate when I
can. I encourage folks to do so as well:
[https://www.scratchfoundation.org/](https://www.scratchfoundation.org/)

------
patja
Scratch is the tool I go back to over and over for teaching my middle school
(age 11 - 14) students. And it keeps getting better. The classroom feature
they recently added completely resolved my number 1 issue with Scratch which
was the difficulty in getting parents to follow through and approve their
student's accounts to share projects with the class and teacher.

I do really really wish they would get off of Flash however. Managing the
Flash installs on the shared laptops at our school is a headache.

~~~
tonydiv
What curriculum do you use?

I am working on a project in the space, I would love to ask you some questions
if you don't mind!

~~~
patja
I've developed my own curriculum over the past 6 years or so of teaching using
it. I have a series of assignments I created to get them to build simple games
and music videos, leaving a maximum of latitude for individual creativity
around the content, while requiring use of specific programming concepts.

I also teach how to edit music and images for importing to Scratch, including
transparency and layering. Honestly I think that is some of the more broadly
useful stuff in my class -- so many of these kids have no idea how to crop and
resize a photo or cut out a portion and make a transparent background. We also
cover US Fair Use and intellectual property laws.

I only get each class for about a dozen 55 minute classes per year which
really makes me streamline my approach for a minimum of lecture and maximum
hands-on time, which can be a challenge, but on the other hand I get 100% of
the student body passing through my course, so I get the chance to teach all
learners, those with desire and aptitude and those who come in saying "I'm no
good at technology" and leave with a sense of pride in what they've achieved.

------
wallflower
The beauty of Scratch and other similar tools is that instead of the teacher
_asking_ questions, the child learns to ask their _own questions_.

If you are interested in learning more about this mindset, you should read
Mindstorms by Seymour Papert (RIP).

[https://www.amazon.com/Mindstorms-Children-Computers-
Powerfu...](https://www.amazon.com/Mindstorms-Children-Computers-Powerful-
Ideas/dp/0465046746)

Scratch can be a "gateway drug" to languages that professional programmers
use. The extensions/abstractions of Scratch from Berkeley that deal with
making it do complicated things seem like putting a fish on a bicycle.
Sometimes, you just have to leap and try to not fall.

~~~
homarp
Mindstorms first edition is now freely available:
[http://mindstorms.media.mit.edu/](http://mindstorms.media.mit.edu/)

~~~
wallflower
Thank you!

------
adamredwoods
I find it more interesting how the term "hacker" has evolved into becoming a
positive value term. I wonder if the term "hacker" is still considered
positive at the adolescent stage, or is it just a business class perspective?

~~~
malkia
It'll always have two meanings to me, no matter what. Not the same, but the
word pirate - has also two, or maybe three meanings - the really bad old
pirate, the mythical "good" pirate, and the modern day (most of them Somalian)
pirates.

A hacker is just someone who does not respect boundaries, be it what could be
done, and what should not be done, and then more. Just a hacky definition I
just came up with :)

~~~
LeifCarrotson
Where does a modern digital or intellectual-property pirate fit into that
spectrum?

~~~
jordigh
In (Québec?) French, "pirate informatique" is the term used for malicious
security breaker. I rather like that. I'm not sure what phrase is used for
people who share copyrighted materials online, but probably informally
"pirate" is also used.

------
eejdoowad
I showed my 9-year-old nephew Scratch, and within an hour he had designed a
dancing man that made noise and moved around. It makes creating interactive
games and stories easy and fun.

Why isn't there a Scratch for adults? A serious tool targeted to artists and
professionals that makes it easy to publish interactive stories and
presentations using standard web tech.

~~~
austenallred
> Why isn't there a Scratch for adults?

What exactly would be different between a Scratch for kids and a Scratch for
adults?

~~~
e12e
In some ways the the Pharo fork/branch of Squeak Smalltalk might be seen as an
answer answer to the related question of "How would Squeak (Smalltalk) for
adults differ from Squeak".

One problem I see with Scratch is its slow pace in moving forward away from
flash and toward something that is easy to self-host: cloud only is great
until underpowered Internet at your local library forces kids to stop coding
mid session. Flash can sometimes be a challenge to get to work reliably in a
modern browser on a pc you might not have admin rights on (compared to
something based on fairly conservative js, like [https://www.lively-
kernel.org/](https://www.lively-kernel.org/)).

I've briefly looked at the Berkley snap!-project, and it looks a little easier
to get into self-hosting and modifying (but I've yet to do so):
[https://snap.berkeley.edu/](https://snap.berkeley.edu/)

In the same breath, I should probably also mention croquet/cobalt - although
it appears no one has yet picked it up and ported it to the new generation of
vr headsets:

[http://www.opencobalt.net/](http://www.opencobalt.net/)

To save some searching: [http://pharo.org/](http://pharo.org/)

[http://squeak.org/](http://squeak.org/)

~~~
jackewiehose
It's frustrating to upvote a post that favours flash over any other technology
but I have to agree with you. I don't like this always-online trend for all
kinds of applications.

(generally spoken - I don't know the scratch situation)

------
jcoffland
You can go back and forth about which coding environment is best for kids but
it is really great how many options there are now. I first encountered
programming on the trash-80 in the 5th grade. We had a typing program, text
games and Logo and saved things to cassette tape. Back then, Logo was a
triangular turtle on a monochrome screen. We have come a long way in ~30
years. Still I remember loving it. Logo had a huge impact on my life.

More recently, I started helping kids with their programming projects at my
local library's coder dojo using Scratch, JavaScript, Python and other
languages. It's a rewarding and fun way to give back to your community. I
highly recommend trying it out.

------
alextheparrot
In college I took a single credit Scratch class where we'd go out in the
community and teach an after-school lesson for about an hour once a week to
4th and 5th graders. Honestly, it was one of the best parts of my semester.
Seeing them grow and explore was fantastic.

In line with the hacker ethic, we decompiled Minecraft as a demo and started
playing around with the jump math with them. It instantly clicked, based on
their experience moving Scratch characters, what the changes we were doing
were going to do before we ran it. That's a powerful link, even if they didn't
realize that "jumping to the clouds" still causes fall damage (Which was
subsequently turned off in the code).

~~~
jnicholasp
Do you mind sharing what college this was at? My email is on my profile if you
prefer.

My nephews are in elementary school, and we're right next to the local
university. I'd love to see if we could get a program like that going here.

~~~
alextheparrot
Here's a link to the course webpage that might be helpful:
[https://sites.google.com/site/uwmadisoncsafterschool/](https://sites.google.com/site/uwmadisoncsafterschool/).
Andrea (Her email is at the bottom of the linked page) is great and also
teaches a "Grandparent University" in Scratch where grandparents come with
their grandchildren and learn to program together.

~~~
jnicholasp
Excellent, thanks so much.

------
wslh
Always surprises me nobody mentioned ScratchJr [1] for Android and iOS which
in my experience has a lower barrier of entry for younger kids. I have used it
with success with 4 years old children. I have had also success with the
building part of Alice 3D in young kids.

IMHO if the kid is doing complex stuff with Scratch, he/she can move to a
programming language without much problems.

[1] [https://www.scratchjr.org](https://www.scratchjr.org)

------
wonderous
Curious, has anyone ever seen a new user to Scratch figure out on their own
that the ".sb2" file is really a zip file:
[https://wiki.scratch.mit.edu/wiki/Scratch_File_Format_(2.0)](https://wiki.scratch.mit.edu/wiki/Scratch_File_Format_\(2.0\))

To me, this would be more of a sign of a "hacker" than figuring out how to
code something, though maybe it's me.

~~~
Retr0spectrum
Plenty of scratch users have been manually modifying the .json files contained
with in the .zip/.sb2 archive, to create "hacked blocks", which are not
possible to create with the Scratch GUI.

~~~
wonderous
Right, but did the users you've personally known doing this figure it out on
their own and were they "new" to coding. To me Scratch is awesome, but doesn't
to me feel like a tool for teaching people to hack at things.

~~~
Retr0spectrum
I don't know any Scratch users personally. Anyway, that's irrelevant.

IMHO the real reason Scratch teaches its users the "hacker mindset", is the
way it forces you to create complex things with a relatively simple and
limited toolset. In a similar way to how C64 demo coders push the hardware to
its limits to achieve interesting effects.

To give an example, scratch has no 3d rendering capabilities, and the only 2d
rendering techniques are using bitmap/svg "sprites", and the "pen", which lets
you draw arbitrary lines between points. Despite these limitations, many more
advanced users have created 3d polygon rendering engines.

------
tengbretson
I absolutely love Scratch. I think its incredible how it introduces children
to concepts and patterns that are very difficult for even intermediate
programmers. Things like actors and message passing, or thinking in ways that
are compatible with an event-loop type of environment. Its great!

------
ianbicking
Since we're all offering Scratch-asides, I'll note Hopscotch:
[https://www.gethopscotch.com/](https://www.gethopscotch.com/) – it's very
similar to scratch, but I found it far easier to use. With Scratch I often
feel like programming is a task of fighting with tile management. I also like
the stronger emphasis on events in Hopscotch.

The big downside is that it's only really usable on an iPad.

------
strictnein
My son's school does a lot with Tynker. He ends up spending lots of time with
it when he's given an option on what he wants to work on.

I know originally it was seen as a Scratch rip off, but they've really done
some cool stuff, including having the ability to easily deploy Minecraft mods
that he's created, and invite friends to join him to play around with them.

------
jlebrech
I want to see something that grows with you, and you can use it from childhood
right up to the enterprise.

~~~
jamesmishra
Scratch is not far off from growing with you. Back in 2013, I taught a 30-hour
summer class for elementary and middle school students aimed at this.

It was bout 20 hours of programming concepts in Scratch, and then 10 hours of
transferring their learning of Scratch semantics into Python syntax.

Most of the younger students in the class wanted to keep playing with Scratch,
but the older ones intuitively understood they could go far with Python -- and
that Scratch was a nice place to test/debug algorithms before implementing the
"final" version in Python.

~~~
jecel
Logo was supposed to have "a low floor and no ceiling" and while Scratch
certainly lowered the barriers to entry (floor) considerably it has a very
serious ceiling (limits to what can be done in it). An early graphical Logo
called Boxer was much better in this regard and there are projects to extend
Scratch.

John Maloney, who was not mentioned in the article but was the key person to
making Scratch happen is working on:

[https://wiki.scratch.mit.edu/wiki/GP_(programming_language)](https://wiki.scratch.mit.edu/wiki/GP_\(programming_language\))

One of the links on that page is to Snap! which was used to introduce
programming at Berkeley. You can use it as a Scratch written in Javascript and
so able to run in any web browser. The extensions are a bit clunky, but pretty
interesting.

------
pryelluw
OT: Once kids get bored of scratch you can use turtle with python. It
complements well.

------
red_hairing
there are tons of visual programming languages out there that are similar to
scratch and even go beyond scratch

------
venture_lol
Er, what is the hacker ethic? :)

------
donohoe
Every time I sit down and watch my kids using Scratch I have to say what a
horrible piece of crap it is. I'm not just annoyed because I had to install
Flash for them to use it.

Surely we can do better?

~~~
baldfat
There are many many other scratch like languages.

[https://wiki.scratch.mit.edu/wiki/Alternatives_to_Scratch](https://wiki.scratch.mit.edu/wiki/Alternatives_to_Scratch)

Personally my kids didn't like Scratch but my daughter will do some Racket
with me.

~~~
spdegabrielle
Don't forget Bootstrap! though it is aimed at an older age bracket than
scratch or byob

[http://www.bootstrapworld.org/](http://www.bootstrapworld.org/)

~~~
baldfat
Which is actually a sub script of Racket :) Just like Hacker News Arc and my
beloved Racket.

