Logo Project: http://el.media.mit.edu/logo-foundation/logo/programming.htm...
Lego Logo Project: http://www.ucls.uchicago.edu/students/projects/1994-95/Lego-...
I'd argue that you start learning programming concepts in everyday life, early on, just nobody explains them to you.
The lunch line at school. Line Up, first in, first out. Right? -Array/Vector (depending on if you know the number of kids in line, like a single class of, say, 30 or if kids just all get in a line together.) What about "Budging", kids getting kicked out of line for bad behaviors....
For the cafeteria workers this is a While Loop - While there are kids in line, serve them.
I can think of so many everyday life happenings that would teach kids computer science fundamentals if presented in such a manner to them.
I have used: http://www.amazon.com/Hello-World-Computer-Programming-Begin... (Not an affiliate link, FYI)
Myself I have taught few people how to understand object orientation like this. Though my example is not good for kids, but older people.
Told them to think about a beer can and asked them what kind of properties they have. Amount of beer in it, the color of the can, the material of the can, the labels and icons. After they realize these properties I have explained them that how they could code these as class variables.
If they understood that I asked them what kind of functionality beer can has. They have answered, opening it and drinking from it. I told them these are the two functions for the class. The opening of beer can is void method with no parameters and drinking from it is a method with parameter and possibly with a return value.
If they understood that I could go into the relationship of beer can and beer crate.
Do the same with teaching them to code. Pull HTML source code from a simple website and paste it to your text editor. Then let your child play around with the code and see how it renders in the browser. It will be fun and exciting for them because they will actually get to see their work right away (instant gratification).
Once you have done this, move on to css.
Good luck!
Another reason is that those web language combos are forever being extended. There is no way children will be able to hold the entire language in their heads. Some people may not agree but even C's success is due to the ability of one person to remember the entire language all at once.
Still another reason is compatibility or the way those languages behave in different browsers. Everyone has his own proprietary css extensions these days, what will a kid need to learn next? JQuery? Ext-JS?
Start with simlicity. Learn a language that really offers instant gratification, with graphics, sound,and file keywords included. Have them learn BASIC. They'll perfecly be able to move on from there.
That's just weird to me. Do you have children? Did you teach them this way, it worked successfully, and now you're passing that information along as a public service? Or are you just talking on a public forum about something in which you have no first hand knowledge? I'm always suspicious of taking advice from someone who just thinks something should work rather than from someone who has actually practiced what they are preaching (and, in particular, I'm suspicious of "parenting advice" from someone who doesn't have children). HN seems to be full of "This is what my parents did for me and I turned out okay, therefore this must be the right way" type of talk.
Start with simlicity. Learn a language that really offers instant gratification, with graphics, sound,and file keywords included.
I fail to understand how HTML/JS/CSS does not meet this guideline. I don't understand why you think that programming in BASIC is a better start than JS. JS has algorithms and all the basic implementation that something like BASIC is going to have.
There is no way children will be able to hold the entire language in their heads.
There is no way you or I at our age can keep the "entire language" of any sufficiently advanced language in our head. I don't see how this matters.
Sorry - I just don't like it when someone positions them self as an expert during a reply yet there is no context provided therein that would improve/prove their position.
As for context, says Paul Graham: "Use succinct languages. More powerful programming languages make programs shorter. And programmers seem to think of programs at least partially in the language they're using to write them. The more succinct the language, the shorter the program, and the easier it is to load and keep in your head.
You can magnify the effect of a powerful language by using a style called bottom-up programming, where you write programs in multiple layers, the lower ones acting as programming languages for those above. If you do this right, you only have to keep the topmost layer in your head."
More here:http://www.paulgraham.com/head.html
How many months does it take to master the HTML+JS+CSS mess?
The only good reason I've seen for teaching a child programming is that the child is interested in it...and that tends to be several orders of magnitude less common than a parent who wants to teach their child programming.
Phrogram seems to be a dialect of BASIC too. But really try FreeBASIC first, unlike Phrogram it's free.
Here's a BASIC for Android: http://laughton.com/basic/ More BASIC compilers and interpreters: http://basic.mindteq.com
The problem we keep running into is that my daughter sounds excited about learning something, but when it comes down to actually doing it, she loses interest fast. We haven't tried programming yet, so far we have been experimenting with other stuff because we plan on homeschooling her.
I'm hoping that isn't a trait she inherited from me. I was a terrible student from about 3rd grade until I "finished" high school. Sometime in my early 20s, I suddenly became interested in electronics, math, and programming. Now that I'm a 30 year old, 3rd year college student, I wish I hadn't wasted so many years.
I know even from personal experience most people don't retain majority of things they've learned growing up or in college unless its something they care about or have done continuously. So maybe your daughter might be ready now, maybe not quite yet. Maybe she'll never be interested. Do the best you can but don't take your ideals upon her if she isn't interested. Believe me, more than anything I hope my kids will have a love for these things too, but its something they must discover to be interesting to them.
On that note, perhaps you could try it from a few different angles and see how it works. Five is still a pretty young age and the average is probably usually a few years older so don't lose hope if she isn't interested just yet