

Show HN: An iPad app to teach kids how to program - smj2118

This app is a graphical programming environment for kids to learn coding by creating animations.<p>Although we released it to the app store it's still more of a beta version and we would love to solicit feedback from HNers with iPads. To me, programming is something that kids could really enjoy but the obstacles in their way (getting a programming environment, publishing their code, learning syntax) make the barriers to entry unnecessarily high. We're hoping this will be a good first step in overcoming some of that.<p>http://itunes.apple.com/us/app/daisy-the-dinosaur/id490514278?ls=1&#38;mt=8<p>Tell me what you think!<p>Thanks,
Samantha
======
laironald
I learned to program on my TI-82 calculator because I couldn't pay attention
in my Engrish class. Learning to program allowed me to actually understand the
math I was studying and put it into a practical framework. Especially since I
was replicating a lot of games that I couldn't afford. It was great.. I was
learning and becoming more popular by distributing these games to my
classmates.

I played your app with a kid I mentor (he is 7) and he got bored of it very
quickly. I think the main problem is that it does not have a clear objective.
I can make a dinosaur move, but OK... I get bored super quick. Now. Old school
games like the incredible machine... that's an awesome game because its
colorful, the objective is clear, there are tons of flexible solutions per
stage and it causes him to think with the tools he has in hand.

If you add in a mission based structure, I think that will help in the use and
addictive-ness of the application. A thought to consider!

~~~
dpcan
I totally agree. Programming is a hard thing to "teach" when so many of us
"learn" it in order to accomplish something.

As the saying goes, some things are taught, and others are learned.

I don't have an iPad, so I couldn't try this app, but these are just my
thoughts on kids' applications in general, not the app itself:

I agree that in a learning-based program, a mission of some kind would be
helpful, but too often, creators of these apps think it's good enough to put
in a smiling dinosaur, or a silly animal friend and that'll do the trick. It
does not.

I have a 7 year old, and he is just starting to like to "create" on the
computer. He loves Sploder.com for creating games right now, but programming
doesn't interest him much. If I told him to move a dinosaur across the screen
he'd look around for his 4 year old brother who still likes smiling dinosaurs.
At 7, which I think is a good early age to start programming, they are already
into monster trucks, clone wars, and big time action. No more cutesy stuff. If
that dinosaur didn't devour Jedi's, I don't think he'd like it much.

~~~
missrobot
Agreed that having a mission or goal is important.

What comes to mind for me is a game called the Island of Dr. Brain that I
played as a kid.

There was a section in the game where you would input a bunch of directional
commands to send a robot through a maze. Then you would "run" the program and
see if the robot made it to the end.

Of course, this didn't teach me how to program, but it did teach me how to
think in an input/output sense--input these instructions and this thing
happens--in a way that I hadn't previously learned in school, and the idea of
finishing the maze helped the game hold my attention. Game mechanics...well,
they work.

FWIW I'm female and I was never put off by the fact that neither Dr. Brain,
nor the legos I had, etc., were geared towards girls.

That said, what you have seems like a really good start and I'm very much
looking forward to experimenting with the app.

------
klausa
I always wondered how successful those apps and languages (Logo etc.) are as
learning tools.

It seems like a great idea - you make colorful apps, that are easy to fiddle
with and you sneak in coding under 'move dinosaur few centimeters to the left'
cover - but 'real' programming is not very much like this - it might create
false illusion to those children, that it's and fun and easy, and you get real
programs working after 5 minutes.

Illusion, that will break to pieces when confronted with real world - and I
think that disillusionment might actually discourage kids.

~~~
aaronblohowiak
One of the most important skills a programmer needs is rigorous thinking. You
can not "wish" the turtle to do something different -- and whatever it does is
a direct result of your instructions. With logo, you can start to understand
that "technically correct is the only kind of correct."

Because it is a safe and interactive playground, logo is a great entree to
programming, as you suggested. Given the right tooling and attitude, 'real'
programming _is_ very much like this. I put a great deal of effort in
minimizing my iterative loops because it helps with motivation and
predictability.

Finally, the turtle metaphor is nice because the child imagines themselves as
the turtle and so learns to anticipate what the turtle will do when given a
set of commands by imagining themselves following it -- this is a fantastic
exercise that helps build the skill of mentally modeling the behavior of a
machine.

The turtle can do a lot more than pen-down, move, pen-up, but it is still a
great metaphor for the computer being the automatic executor of the
programmer's wishes.

One of the differences between very good programmers and mediocre programmer's
that I've noticed is that very good programmers understand code as it commands
the machine (virtual or physical,) whereas mediocre programmers understand
code as such.

Logo is much closer to Assembly than to Java, and that's a Good Thing. You are
right that there is a big distance between Logo and professional code --
similarly, there is a big difference between elementary math and actuarial
science.

------
floggit
I would move away from text-based programming and try a visual metaphor
approach, especially on the ipad when touch/gesture are fundamentally easier
for kids to learn, i.e. replace "grow" with growing animation of the dinosaur
Take a look at what <http://launchpadtoys.com/toontastic/> is doing for
animation/story-telling.

~~~
KeithMajhor
It'd be cool to have a lisp that you could edit structurally with an iPad.
Structural editing is a foreign thing when done on a keyboard. But it's 1:1 on
an iPad. I know that's not visual in the way you meant. I just think it'd be
easier to grok than syntax.

Also, Conal Elliot did a talk about how to visualize higher order programming.
He demonstrates a UI for manipulating higher-order functions. I don't know how
directly useful it would be but it's at least a good place to farm for ideas.
<http://www.youtube.com/watch?v=faJ8N0giqzw> The demo starts at 22:22 if you
just want to skip to that.

------
base2john
Great news, I hope this means Apple will allow MIT's Scratch into the App
Store soon. [http://computinged.wordpress.com/2010/04/15/apple-removes-
sc...](http://computinged.wordpress.com/2010/04/15/apple-removes-scratch-from-
ipadiphoneitouch/)

------
jocastette
Getting a programming environment is indeed a barrier which I have experienced
a number of times. This contrasts with schooldays when I could start writing a
basic program simply by switching the computer on.

Why don't Apple, Microsoft etc. package the stuff you need to get start
programming with their OSes? (So one could begin learning with 5 mouse clicks
or less.)

Sorry if this is a hopelessly naive question

~~~
sc00ter
"Why don't Apple, Microsoft etc. package the stuff you need to get start
programming with their OSes?"

They do, or at least Apple does with the inclusion of a version of Ruby as
standard in OSX, various shell scripting options, and Xcode available for free
from the Mac App Store (although I would question how easy that is for a
novice to get started with). Windows? Not so much.

~~~
jocastette
Those sound like good things but as you suggest this doesn't meet the standard
of beginner friendliness.

This would be something like clicking on an application called 'Ruby' in the
applications folder and then a window popping up ready to start typing my
script in. (If there are choices to be made, fine, just make it work with some
default options and I can switch text editor or whatever later.)

The same set-up on every single Mac/PC, out of the box. Every resource
required pre-installed and automatically updated with the OS.

No credit cards, no searching online, no knowledge of what is required
beforehand, no obscure dependencies, no expert friend required, no need to
read instructions about how to set up, etc.

~~~
LeBleu
The reason that is not available is that the universe of options for beginning
programming has exploded since the old boot into BASIC days, and there is no
longer agreement on the easiest way to begin programming.

As for the same set-up on every single Mac/PC, it's already there, it is just
slightly harder to get to than you want. It's called a web browser, and there
are numerous URLs you can go to that let you program right in the browser.

W3schools is probably the easiest to find, and lets you try HTML and
JavaScript right in the webpage. <http://www.w3schools.com/html/> and
<http://www.w3schools.com/js/default.asp>

The online version of "Eloquent JavaScript: A Modern Introduction to
Programming" by Marijn Haverbeke has an integrated JavaScript console at the
bottom to follow along. <http://eloquentjavascript.net/chapter1.html>

If anything, the problem is that there are too many answers, targeted at too
many starting levels, so it is hard to Google for any likely phrases and get
to the answer easily.Searching for "begin programming" seems to give better
beginner answers, whereas "learn to program" tends to give more college-level
answers.

I see no reason why a kid who is interested in how to do it, and grew up in
the modern era around web browsers and search engines and such, would have any
trouble finding something quickly.

------
lowglow
Good luck, Samantha -- looks great :) Also, clickable :
[http://itunes.apple.com/us/app/daisy-the-
dinosaur/id49051427...](http://itunes.apple.com/us/app/daisy-the-
dinosaur/id490514278?ls=1&mt=8)

------
the-kenny
I like the concept and the graphics, but I dislike "website in a
webview"-apps. Why not simply release this app as a website?

~~~
smj2118
Well, there is a slightly buggy webview version at:

<http://gethopscotch.com/index.html>

But since it only really works on iPad we decided to release it as an app.

------
tdenkinger
Congratulations for getting this out in front of people. Good luck. I'll be
checking it out.

------
andycds
Let me know if you want your app in Portuguese. software.pro.br

------
rbreve
It runs very slow on my 1st gen iPad

------
drhowarddrfine
I will never understand why anyone would want to teach little kids to program.
Especially those who barely know how to add and subtract. I know of no
upwardly mobile, reasonably successful adult, 18+, who knows how to program.
This makes as much sense as teaching them brain surgery.

~~~
ryanwaggoner
_I know of no upwardly mobile, reasonably successful adult, 18+, who knows how
to program._

Huh? Surely I'm misreading this or there's a typo here. If not, you've
stumbled into the right place. Say hi to the legions of programmers on HN who
are upwardly mobile and very successful.

