

App for Kids Makes iPhone App Programming Easy - bootload
http://www.fastcodesign.com/3050238/this-app-for-kids-makes-iphone-app-programming-as-easy-as-lego

======
noamyoungerm
I don't get why people always think that "programming for kids" has to be done
with blocks and drag-drop interfaces. It feels like it limits the complexity
of what you can build to what fits on a screen, and makes applying anything
beyond basic programming logic (like functions) more complex. It also feels
like talking down to them instead of letting them experience an actual
challenge.

I think it would be far more pedagogically correct to build a simple scripting
language than to limit kids to these interfaces. If it weren't for the sheer
age of it, I'd still recommend
[http://tedfelix.com/qbasic/](http://tedfelix.com/qbasic/) as a way to wrap
your head around the basics.

~~~
simonh
Before I reply, can I just say the fastcode site is one of the worst reading
experience I've had in years. Truly appalling.

For young kids, the problem with traditional languages is that you have to
spend a huge amount of time dealing with syntactical issues like whitespace,
nesting brackets, the right kinds of colons, singe/double quotes, etc, etc on
any non-trivial program. I've taught my girls (10 and 11) a little Python, but
kept it small scale largely because of this. On the other hand they can create
pretty complex interactive animations in Scratch without having to deal with
any of that, because they can focus their attention on the logic and the
functionality of the commands.

I suspect that once they get to 12 or 13 this will be less of an issue, and my
eldest coped with the syntax issues better than her sister when writing a bit
of Python, but when they first started learning Scratch at age 8 and 9 I think
it would have been extremely challenging for them to use something like Python
or BASIC.

~~~
jeffwass
One thing I loved about the default BASIC on the computers of the 70s and 80s
was the ease of doing graphics and easily seeing something tangible on the
screen.

What is the equivalent of that today? For instance, is there an easy-to-use
Python library that lets kids do simple drawing with ease?

Ie, on the TRS-80's Level II BASIC, just doing SET(X,Y) coloured a white pixel
at that coordinate, and RESET(X,Y) turned it black. And you could see
immediately the utility of applying FOR loops to make horizontal and vertical
lines, etc.

I don't remember QBASIC, but the customized BASIC on my Tandy 1000 In the late
80's had graphics modes with I think PSET(X,Y,C) to light pixel with color C,
and even had some built-in commands for making line, rectangles, circles, and
ellipses.

So it was very easy to type a few lines and get something cool on the screen,
but still required a bit of thought on x,y coordinages and some programming
constructs to do anything complex.

I only dabble a bit in Python, but what's the best way to do something like
that today?

I think there's much more of a feeling of "Wow, look what I made!" after
drawing something this way than just using the painting mode for sprites in
Scratch.

~~~
simonh
Modern computer operating systems won't let you arbitrarily switch pixels on
the screen on or off, so you'd need to either write a program that uses a GUI
library to create a window, controls, etc, or generate an image file you can
open in a viewer.

For Python, matplotlib(1) will let you generate plots and graphs, including
simple x/y graphs, or you could use the built-in TkInter(2) library to do a
simple GUI with a drawing canvas.

(1)[http://www.labri.fr/perso/nrougier/teaching/matplotlib/](http://www.labri.fr/perso/nrougier/teaching/matplotlib/)
(2) [http://www.python-course.eu/tkinter_canvas.php](http://www.python-
course.eu/tkinter_canvas.php)

~~~
jeffwass
Thanks. The drawing canvas seems just what I'm looking for.

(And yeah, I totally get I can't just flip arbitrary screen screen pixels, any
more than I can access arbitrary system memory like I used to be able to with
PEEK and POKE).

------
bootload
_" The Everything Machine, aims to change all that. The second part in their
Diguital Toys series of apps, The Everything Machine turns all the components
and sensors in an iPhone or iPad into Lego-like bricks of programming logic,
allowing kids to program anything they can imagine: from a simple flash light
app to a face-detecting fart machine."_

I know this is a Sub, I've included because of the silliness of this idea: A
_" face-detecting fart machine"_, now that's something worth building.

