PDA

View Full Version : Programming for a young child?




Rt&Dzine
Sep 10, 2009, 10:24 AM
I've started teaching Xcode to a kid. We've worked through a few simple online tutorials. Seems to understand the basic structure of the objective C code without any explanation. It was super simple code, but still . . . Anyway, I want to encourage this further, but don't want to do anything to overwhelm or turn him off. Do you think Objective-C by steven kochan is appropriate?



ethical
Sep 10, 2009, 10:31 AM
Wow, 7 years old! That's pretty impressive.

I'm making my way through the Kochan book at the moment... and if I remember correctly the third or fourth chapter is all about looping and uses the example of calculating triangular numbers. This is something I think a 7 year old will really have a hard time understanding! By all means go for it... it certainly cant hurt... but you may want to pick the bits of the book you learn from, carefully.

What about taking a look at Apple Script?

iPhone 62S
Sep 10, 2009, 10:38 AM
Wow, that's amazing. Bram Cohen (who made BitTorrent and is now rich) started at 8 I think, so he could have a bright future!

Anyway, I recommend this PDF: http://www.cocoalab.com/BecomeAnXcoder.pdf

Rt&Dzine
Sep 10, 2009, 10:39 AM
What about taking a look at Apple Script?

That's a good idea! I don't know why I didn't think of that.

I do want to continue with Cocoa, because he's really excited about it.

Anyway, I recommend this PDF: http://www.cocoalab.com/BecomeAnXcoder.pdf

That looks good. We've already done some of those exercises, Actually, after a second look, this looks like a good next step for us. Thanks!

.

whooleytoo
Sep 10, 2009, 10:54 AM
Excellent!

I'm not surprised that young children can programme, but I'm impressed that he's picked up Obj-C/Cocoa so quickly. IMO, it has a fairly steep initial learning curve.

From my own early programming memories, I was fascinated with graphics & sound programming (the more obvious and "cool" stuff), you might consider nudging him in that direction. Who knows.. he could end up being the youngest iPhone app/game publisher at 7/8 years old? :p

Rt&Dzine
Sep 10, 2009, 11:14 AM
From my own early programming memories, I was fascinated with graphics & sound programming (the more obvious and "cool" stuff), you might consider nudging him in that direction. Who knows.. he could end up being the youngest iPhone app/game publisher at 7/8 years old? :p

I did some graphics programming myself (many years ago, long forgotten :o) so I'm partial to that. :)

whooleytoo
Sep 10, 2009, 11:24 AM
I did some graphics programming myself (many years ago, long forgotten :o) so I'm partial to that. :)

Ha! I have a theory that programmers develop (or already have?) a very broad, but short-term memory. They need to remember, visualise and understand details of large, complex systems; which comes at the expense of long-term memory. Once the project is over, we're onto the next and forget the previous one. Or to put it another way, we've upgraded our RAM at the expense of any persistent storage! :)

There are lots of graphics options. You could help him with 2D graphics programming (such as a sketch app), and lead nicely into gaming. At some point you could look at something like Core Video, adding special effects to video, so he could start off by tinkering with existing sample code and move on to writing his own, in time.

Rt&Dzine
Sep 10, 2009, 11:37 AM
Ha! I have a theory that programmers develop (or already have?) a very broad, but short-term memory. They need to remember, visualise and understand details of large, complex systems; which comes at the expense of long-term memory. Once the project is over, we're onto the next and forget the previous one. Or to put it another way, we've upgraded our RAM at the expense of any persistent storage! :)

OMG! I don't consider myself a programmer, but that's exactly how I learn! Fast and broad, but short-term.

There are lots of graphics options. You could help him with 2D graphics programming (such as a sketch app), and lead nicely into gaming. At some point you could look at something like Core Video, adding special effects to video, so he could start off by tinkering with existing sample code and move on to writing his own, in time.

Hey, thanks for the ideas. He's already making videos, so that would be perfect. Yikes! Now I have to learn some of this stuff to be able to help him . . .

chown33
Sep 10, 2009, 12:06 PM
He's already making videos, so that would be perfect. Yikes! Now I have to learn some of this stuff to be able to help him . . .

Or let him puzzle it out and then teach you. I can tell you from experience that nothing helps consolidate one's own knowledge of a subject quite like explaining it clearly to someone else. I can also tell you that sharing the experience of honestly exchanging knowledge is deeply rewarding.

Besides, it's easier if he learns now that you're not infallible or omniscient, when there's still a child-like respect for authority, than later in the tween and teen years when that knowledge becomes a weapon of rebellion. Respect for powerful tools must be cultivated, it doesn't pop into existence like magic.

GorillaPaws
Sep 10, 2009, 12:23 PM
Or let him puzzle it out and then teach you. I can tell you from experience that nothing helps consolidate one's own knowledge of a subject quite like explaining it clearly to someone else. I can also tell you that sharing the experience of honestly exchanging knowledge is deeply rewarding.

Besides, it's easier if he learns now that you're not infallible or omniscient, when there's still a child-like respect for authority, than later in the tween and teen years when that knowledge becomes a weapon of rebellion. Respect for powerful tools must be cultivated, it doesn't pop into existence like magic.

That was well put chown33. Another avenue the OP may want to pursue (in addition to the other excellent suggestions) are things like logic puzzles/games. Also, consider exposing him to mystery novels, or other examples of taking real-life problems and deconstructing them into their logical elements. Teaching him the "how" of problem solving and critical thinking is knowledge that will serve him well regardless of whether programming is where his passions ultimately lie or some other discipline.

I only bring this up because there are lots of "fun" things one can do to help prepare someone to be a good programmer that doesn't involve the computer.

Rt&Dzine
Sep 10, 2009, 05:19 PM
That was well put chown33. Another avenue the OP may want to pursue (in addition to the other excellent suggestions) are things like logic puzzles/games. Also, consider exposing him to mystery novels, or other examples of taking real-life problems and deconstructing them into their logical elements. Teaching him the "how" of problem solving and critical thinking is knowledge that will serve him well regardless of whether programming is where his passions ultimately lie or some other discipline.

I only bring this up because there are lots of "fun" things one can do to help prepare someone to be a good programmer that doesn't involve the computer.

Interesting ideas. Thanks!

newb16
Sep 11, 2009, 12:41 PM
What about taking a look at Apple Script?
I don't think it's a good idea.
http://www.codinghorror.com/blog/archives/000672.html

Soon he'll be fighting with 'why the damned applescript doesn't do what I tell it in *straightforward English sentences* '

mysterytramp
Sep 11, 2009, 01:06 PM
Could work the other way, too.

tell application "Mom"
make sandwich with properties {contents:peanut butter, jelly}
set beverage to milk using 2 percent
end tell

As I recall, "please" isn't part of any application's dictionary.

mt

iPhone 62S
Sep 11, 2009, 01:47 PM
Could work the other way, too.

tell application "Mom"
make sandwich with properties {contents:peanut butter, jelly}
set beverage to milk using 2 percent
end tell

As I recall, "please" isn't part of any application's dictionary.

mt

What's wrong with:
http://imgs.xkcd.com/comics/sandwich.png

:p