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.
http://itunes.apple.com/us/app/daisy-the-dinosaur/id490514278?ls=1&mt=8
Tell me what you think!
Thanks, Samantha
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
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.
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.
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!
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.
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.
From our user testing I think 7 is probably a little young for the app. 9-11 seems to be more of the sweet spot where they want to play games but can go off on their own without much structure.
Thanks for the feedback!
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.
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.
The educational programs serve the purpose of accustoming kids to challenges that await them in real life, and I believe that the prepared ones will be served with the less severe blow.
What we want to do next is add in a way to publish your code to the web through our app (which may morph into a web app if that turns out to be more appropriate). At that point, in my opinion, a user would be doing real programming since she or he would be creating something in code and distributing it to others for use.
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.
Brain surgery is a highly specialized discipline that takes years of preparation before the surgeon makes her first cut--Daisy the Dino is specifically trying to make programming less intimidating to learn with a lower barrier to early success.
Being a programmer myself I know that it can be a challenging field but I also know that it's definitely something kids can do and enjoy as well.
I like the analogy to Legos- not every kid who plays with Legos will grow up to be an architect or civil engineer but they can gain a great deal of enjoyment out of doing a simpler version of what these people do professionally.
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.
http://gethopscotch.com/index.html
But since it only really works on iPad we decided to release it as an app.