Teaching my 10 year old niece how to program.
orangethirty.blogspot.com
orangethirty.blogspot.com
I knew her weakness was video games - so I got her using DS Game Maker (http://dsgamemaker.com/) which allows you to to create games for your Nintendo DS. I had already set her up with a flash cart, so getting the games on there was a breeze. She started off with some real simple things, but as she learned how to do more and more (with some help from me on getting jump 'physics' going in Dynamic BASIC) and she eventually had a little game with her dog as the star in a 30 room game that each had puzzles to solve.
It's amazing what someone so young can accomplish - sadly her interest has dwindled and she is now on track to become a fashion designer. We shall see ;)
Ditto for cooking shows, but it's easier to judge the results of fashion because I can't taste the cooking show results.
I made it a point to tell my niece (just this last weekend) that she should pay attention in school because with that knowledge she can do anything and become anything she wants. If she wants to do fashion design, she will still need to know math because it is important (giving her an example of how me and my 6 year old nephew obviously don't wear the same size shirts - so how would they figure that out?). I just want her to do good in life no matter what route she takes :)
I was so freaking proud. I had never tried to teach her to program because she's as hardheaded as I am. Trying to force it on her was doomed to failure. But because she discovered it, she bit in pretty good. She's playing at being a cheerleader now, but I can't help but think the experience will help her later, even if she never programs again.
IMHO this might be the best way to introduce kids to programming. The book teaches fundamental concepts (she was blown away by the infinite string being less than 2 inches) without bogging them down in jargon and syntax (fuck semicolons...). On top of that, Scratch has really great visual logic and design pieces that fit together like a puzzle and let kids explore the concepts themselves, again without all the nitpicky syntax. This keeps things fun an interesting while they learn.
She is now a Scratch wiz and loves making stuff. Since she is an avid reader, she likes to create characters from her books and make them do crazy stuff. During the months I considered how to approach her education, she has amassed an impressive amount of design notes on her first game, including characters and levels. She is now working out the story to go with it and will begin putting it all into scratch soon. I can't wait to see what she comes up with!
EDIT: Forgot the link for [0]!
[0] http://www.amazon.com/Lauren-Ipsum-Carlos-Bueno/dp/146117818...
In a structured school system she wouldn't be allowed to program a computer until she learned the right amounts of geography and english.
Back to my original point; I think the education system needs to raise the bar slightly above average and attempt to make children reach for their goals.
I'm honestly not surprised that there have not been groups of parents with children around the same age getting together to "time-share" teaching their collective group of kids skills according to their abilities as adults. It's a very different experience to learn something from somebody with a passion for subject X than someone who is paid to teach subject X. Were I a parent, I would rather find 5-10 other talented/smart/skilled parents that each have unique passions and share in the effort of teaching my kid and theirs whatever it is that is in my ability to share.
The good teachers in school are those that are passionate enough that you as a student forget that they are being paid to be there and impart knowledge upon you.
TBH, the closest thing we have to such an arrangement today is Boy Scouts and Girl Scouts. It would be great if a similar program arrangement occupied 6-8 hours of a kids day.
Plus being a teacher has become an institutionalized career, full of needless bureaucracy that in many cases sucks the fun out of what is fun about that job.
I think Google could try something out in this space as a way to attract more talent, maybe by allowing employees who are parents to set up a school taught by other Googlers in their 20% time. If I had a kid already, I would definitely want to join Google if it meant my kid would be taught by the really smart people that work there.
FWIW, I worked as a teacher for 1.5 years. English language teaching to ~11 year olds for 6 months and presentation skills to graduate students for 1 year.
A better approach? Admit that the school was holding me back and allow me to pursue an alternate course of study with my family, without the burden of additional work for classes that aren't at my level. In a lot of places, doing that isn't nearly as easy as it should be.
One thing that children have going for them when it comes to learning is that they've not done very much learning, i.e. they've yet to realise that certain kinds of things are "hard" to learn or that they "are no good" at a particular subject.
Children approach new things with a complete lack of intellectual fear, whereas older kids (and adults) have had years of experience of trying and failing to do things.
Older kids and adults also have to risk more intellectual credibility when learning something new. Once you're somewhat socially established it may not be rational to attempt to learn how to do something which may be beyond your capabilities - your friends may laugh and call you stupid.
My son will turn seven soon. I did some research on programming languages/kits for kids around that age. I finally settled down on Robomind, which is more or less of a modern variant of LOGO. Instead of the well-known turtle, you have a Robot that hovers around. We tried it the first time last night, the boy seemed intrigued. I hope Robomind can warm him up and make him ready for the more advanced kit like Lego MindStorm, which I promised him as the birthday gift.
We'll see how it goes.
But good luck with Robomind and if that doesn't click, try something else (took my son like four different languages until he started to find some that really worked for him)
I had similar thoughts to jbattle. Giving kids the ability to do something, put it online, and make it instantly accesible to their friends and the world is huge. It also helps open their mind to how accesible their creations can be.
That said, Robomind does look pretty cool. I'm sure I would have enjoyed it when I was a kid.
On the other hand, Khan Academy CS chose JavaScript because it made it easy to share the results with others. So... nowadays I wonder.
I wouldn't worry about "technical elitists". It's really the Dunning-Kruger effect at play more than anything. The less someone knows, the more they think they know, and the more likely they are to be outspoken about people they think are "below" them. There's also a fair amount of disdain between people in different programming paradigms (OO vs Functional, Low-level vs High-level languages, etc). NONE of that matters though. Build cool stuff and keep getting better. Let the "technical elitists" spend all their time worrying about what is or is not proper programming while you get on with your life, build cool stuff and continue to get better.
That's a reason I like Javascript. It's not the best language, but you can write something that looks just like any real webpage.
As a kid I never liked software that was kind of like a game with a little programming environment inside: they weren't good games, and they weren't good programming environments.
Adventure Simulator was buggy as crap and would crash pretty regularly with about a 33% chance of corrupting your data when it did so, but I still learned a lot from it.
World Builder was much more solid, but I think most programmers would still consider it fairly awkward. A lot of things (non-static maps, even basic animation) required some weird hacks, and it had a bunch of separate bins that your code went into that all interacted but which you couldn't view at the same time.
Despite the fact that modern programmers (and probably most "real" programmers of the time) would view both of these tools as difficult and limiting, I still thought it was a great, fun way to learn that kept me motivated.
Its so great that you are involving your son with robotics. Really awesome. You should definitely keep working on that. In fact, keep me updated on how you guys progress along. My email is in my profile.
Learning to program doesn't mean you have to choose software as a career. A lot of jobs will become more productive and interesting if the people involved could program in addition to their specialized knowledge - finance; almost all sciences do simulations, machine learning etc; basic data crunching...
I personally dont find software repetitive, or even alienating. In fact, I just ran a national 5K race last Sunday. Had a lot of fun doing it.
Basically, you teach them what they need in order to accomplish a specific task. Are arrays really useful to teach at first if they don't need serialized access to data? Better to wait until they need something like that. The goal is to give them problems that require those concepts and see if they ask for it. Initially, they might make 20 variables (where an array would do), and complain that it gets tiresome. Perfect opportunity to explain an array, while the interest is at a peak.
If anyone has experience teaching kids this age programming, or if you know of any resources available, please let me know. This is a new experience for me.
It's been tested to work pretty well with middle school children, so it seems right up your alley. John Resig (creator of jQuery) made it happen, his blog post on it: http://ejohn.org/blog/introducing-khan-cs/
The Scratch book is probably appropriate for ages 8 and up, the Python one for ages 10 and up (depending on the kid, of course).
Disclaimer: I work as an editor for No Starch.
Especially check out the footnote, A Scheme Story:
Yes.
Computers are just at the very beginning of revolutionizing the way that human society interacts. Why would you not want your children to have an edge?
In addition, the number of jobs that requiring programing skills is exploding and will continue to grow. The basic idea of automating information tasks is useful for many, many tasks.
That sort of thing is quite popular with Boy Scouts and the like. You can get a special magazine for fun father&son activities like The Joy of Spackle. Totally not joking.
http://www.fatbraintoys.com/search.cfm?q=%20bridge%20street%...
Meanwhile, there's little need for toy drywall compound. We have Play-Doh, better in many ways, or for the older and wiser there is papier-mâché or real modeling clay or, well, drywall compound. It's not that dangerous except to your furniture and carpets.
Have we talked to any actual five-year-olds while constructing this metaphor? The ones who are obsessed with Bob the Builder and Thomas the Tank Engine and Wallace and Gromit (tinkerers, ya know) and who own little toy plastic toolboxes and squeal at the sight of construction equipment? Is it only my friends' kids who are like this?
"What will I teach her next? We are going to build her own little startup." This does reinforce the post that was on here a few days ago about the liberal use of the term "startup"...
Thank all of you for the amazing response. My focus with the post was to get people motivated towards teaching children about science and technology. That has been my focus with her. We have had many fun projects, including a pressurized water bottle rocket, and a baking soda propelled boat.
She has agreed to ship her first software project. We will be working on it during the weekend. Expect an update in the coming days. Why do I want her to ship something so fast? Because I want her to design and build her own thing. This will allow her to see that she has the abilities and skills to change the world for the better. She also agreed to talk about her experiences with programming. Something that I'm sure will be of interest to all.
Thank you * infinity.
PS. Keep posted to my blog @ orangethirty.blogspot.com for our updates.
I doubt that would actually be the case these days.
But really, what kind of statement is that? Who/what is a "normal" person? How elite does the author think his/herself to be claiming to be above "normal" people who clearly don't care about technology? (For an answer: read the author's "Why you need to hire me" page, which begins with "I deliver.")
Sweet site layout though, totally nailed it bro.
In 1986, my grade school classroom had 4 Acorn computers [0]. Each student could use the computers for one hour every day — to program in Basic, do word processing, and play educational games. It was an era when most people did not own personal computers, but even back then, they would at least know what computers were.
As far as learning HTML/JavaScript, my daughter also liked Codecademy, and went through several tutorials there. She would get bogged down a little on syntax (Scratch is very visual), but I can't imagine an easier way to learn HTML/JavaScript.
Last school year I taught 2nd graders a little bit using Scratch and many of them got it and with a bit more exposure this year they could be creating programs on their own.
Anyone can host a class anywhere or just use the kidsruby program.
word = "banana"
for letter in word:
print letter
It isn't a counter, but it makes it clear that print is happening for each part of the word. Then you can write programs using arrays and other counters.I appreciate the kind words. Really do.
I plan on introducing her to PHP and Joomla. Just kidding. :)