[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [school-discuss] first programming language



> hello
> one of the young guys (13 y.o.) i am teaching to as far as regards
> math and physics repeatedly asks me to introduce him to the world of
> programming (and linux in particular) whose he is very fond of ...
> 
> i'd like to ask you which programming language you think it is more
> advisable in this situation

One thing missing from this discussion is the intended outcome. I say there
is no best answer without considering the audience, and the purpose of the
exercise. The OP does say the audience is one student age 13, which is a
start, but I make the point in the broader context of introducing K-12
students to the world of programming.

Python is good when the goal is to lay a foundation for a career in coding.
From Python the path leads easily to C and Java. It is easy to write
simple, linear programs in Python that are easy to follow, and from there
to introduce control structures.

As someone else wrote, kids love graphics. True, but what kids *really*
love are things that move and respond to inputs. The basic building blocks
of video games. It takes a lot of code to get anywhere near that with
Python (and Java, and C, ...), so much that the beginner cannot manage it.

Now look at Squeak. It's built on top of Smalltalk, my all-time favorite
language for event-driven software. What do we all use, every day? Event
driven software. Most people I know never go to a command line and run a
program like grep or cdrecord. You readers do, but we are a small and
specialized group.

Back when I wrote in Smalltalk my biggest frustration was that it did not
do graphics. It ran in a GUI, and creating GUI apps like mail clients and
data browsers was a snap, but there was no way to make something with the
visual appeal interesting to kids. Squeak not only solves the graphical
piece, it connects the graphical objects to methods. In no time at all you
can have kids creating programs with fish that swim and planes that fly. Or
fish that fly and cats that talk. Everything that makes it happen is
accessible, so your curious 13 year old can dig as far down as they want
and learn all about classes and methods and inheritance, while those that
just want to create a Final Fantasy-like game engine can pursue their
interest without knowing all about why it works.

I do not like Scratch simply because it is only available for PCs and Macs.
However, the Scratch web site does offer a realistic view of what kids can
produce. Sure the artwork looks childish ... that's because this is the
work of children. Squeak can do most of that stuff, and a whole lot more.

A word of caution. If your programming experience is in traditional
languages you will find Smalltalk very strange at first.

Squeak: http://www.squeak.org/

Scratch: http://scratch.mit.edu/

Gary Dunn
Open Slate Project
http://openslate.net/