
Why we should teach kids actual programming, not Scratch, etc. - vopi
https://medium.com/@vopi/why-we-should-teach-kids-actual-programming-not-scratch-alice-and-other-intro-languages-c8ba18befee1
======
ultimateedition
Languages like Scratch really shine in the 9-12 year old range where the goal
is to get them playing with the core concepts of languages and inspire them to
pursue computer science further on their own time. The end goal isn't to make
them ready to work in the industry, and it definitely isn't to teach them
typing and syntax skills, as those things become what "programming" is to
them. Some people really only think of computer science as black magic, but
Scratch helps them see the problem solving and joy of creation; the other
parts can come once they have the drive to continue.

I don't think Scratch has much of a place in a high school classroom as a
"beginner" language, and it won't help an already impassioned programmer who
has his or her heart set out to pursue it, like the author. Production
languages work better for that.

I started learning C as a kid and I was hooked, Scratch wasn't for me (and
also wasn't around at the time). But now I teach kids in a volunteer program
and they have trouble paying attention for long periods of time, they have
trouble typing, and most of them haven't chosen programming as their career.
They will either see the light or move onto other things. Fast-tracking them
to the important concepts hopefully better informs that decision.

------
ChiliDogSwirl
If your high school programming class was using Alice or Scratch, that's
probably the real issue. My kids picked up Scratch at around 9 or 10, and
loved it. My oldest got the bug and went on to learn Python, Java, and Lua;
he's a HS Junior and contemplating going into CS. The younger ones are less
inclined to programming proper but still like making things in Scratch. But if
I were presented with Scratch or Alice as a teenager I'd feel a bit
patronised.

If you were already a passionate programmer when you took these classes, it's
not surprising you felt disappointed; but that doesn't mean these aren't
effective tools to introduce the uninitiated to programming concepts.

~~~
photojosh
I have an eight year old (3rd grade) who loves playing around in Scratch, it
seems entirely appropriate for him at this stage. In a year or two I'll likely
get him to do Swift Playgrounds, it was just a bit too hard for him right now.

------
tropo
Scratch and Alice look like actual programming to me.

The odd features: You have a structured editor. You are tightly tied to a
graphics library that focuses on cartoon animation.

I would prefer that you could have one feature or the other, or both, or
neither.

The structured editor is very important. It is like syntax highlighting, but
it actively prevents syntax mistakes instead of just complaining. Structured
editors usually come with non-standard languages, which is a shame. You could
do a decent subset of most modern languages, even C. Code written in a normal
editor could even be loaded into the structured editor as long as the code
doesn't go outside the supported feature set. Look at the code, imagine the
colorful shapes missing, and you can see a pretty ordinary text-based program.

The graphics library is so typical. I suppose it is needed, sadly. Kids
allegedly get bored with printf. I wonder if the kids who seem to require
graphics are simply uninterested. If you can't simply enjoy the pure pleasure
of manipulating data with code, programming might not be your thing. In any
case, a graphics library is the norm.

~~~
stuaxo
Hi, I'm one of those people that got bored with simple printf. Always enjoyed
making programmes with graphics and Sound. These days a lot of my work is "the
simple pleasure of my manipulating data with code", it's OK but I would prefer
to be doing graphics.

------
wjh_
I agree with what you say.

I went to a British Secondary School, and am just about to leave Sixth Form -
I took computer science at both levels.

The trouble is - again, at both levels - there are few teachers who understand
the topic. Scratch and the like are easy to learn for more or less anyone, and
teachers can teach it easily. I know that in some cases CS teachers are IT
teachers who took on the extra subject.

With like Python, unless the teacher has actually written a decent amount of
it then they're going to struggle to teach it well. If they've never properly
programmed, they will also struggle to point out that "Twitter has an API that
you may want to use to analyse tweet contents", for instance.

I'd just like to reiterate that I _am not_ disagreeing with you, I would very
much love a curriculum change. I just think that the lack of qualified
teachers needs to be addressed as well.

------
Const-me
[https://processing.org/](https://processing.org/) is nice alternative. While
still highly visual, this thing teaches real Java programming, not that visual
programming BS.

Personally, I did visual programming more than once during my career, in
biztalk, virtools and unity3d. I like regular programming much better. Could
be the whole idea is somewhat flawed, at least once a program being developed
is larger than three blocks in size.

------
vopi
Author here. First time posting something publicly like this so sorry for any
basic mistakes. If you have any questions feel free to ask! (PS: Sorry for any
grammar mistakes).

------
Samathy
Its really important to consider who the class is for when looking at how you
enjoyed it.

You took the class already having 'lots of prior programming experience'. This
class was clearly designed for people who have never programmed in their life.
This class was not designed for you.

I was in the very same situation when being taught the basic programming
concepts in Python at University, after having held software dev jobs and
written assembly and C for several years.

Scratch, Alice and others are great starting tools for kids around 5 to 13 who
have never programmed before. They're reasonable initial platforms to spend a
couple of hours on for older people too (your age group and even upwards).

It might be worth talking to some of your peers who had never programmed and
asking what they thought. Its super easy to forget than only a little while
ago, you also knew nothing.

I do agree that the whole course should not have been modelled around Alice.
At your age you could probably pick up the Python REPL quickly after an
initial into to the concepts in Alice.

------
nikolay
I started programming in Assembly when I was 10-11-years-old. I feel that
Scratch is underestimating kids' intelligence and sending them the wrong path.
There was an endless polemic when I was a kid that starting programming with
BASIC vs Pascal was disabling kids. I think that Scratch is nowadays' BASIC!

