Maybe I have bitten off more then I can chew.

liudr:
Just my two cents here: when I was around 12 I was in a BASIC club using HKC 8800 machines (possibly apple II clones). I made a program that draws lines and circles and produces da-da-da sound (a function call). I then drew a helicopter with it and the sound and drew some background mountains (a few lines as mountain tops) and made the helicopter rescue a person (person slowly ascending a rope). That was the most popular code in the club, copied on many tapes and played many times on those machines. So many years passed I don't remember what we were taught by the club director, our school computer programming teacher, but I still remember that program. So if I try to teach 12 year old I will try to teach programming by examples, not starting from data types and logic operations. Their little brains are not up for logic yet. I learned my programming and computer science all by myself, mostly reading books but I could remember not being able to understand certain concepts until certain grades/ages. Human brains don't grow mature one night.

This following is newly brewed in my head so don't laugh if you think it's funny or silly: I would try, if I had a chance, to teach programming like what English profs. teach English 101, a lot of readings of nicely written (no tricks just nicely written) codes that do something. You didn't learn your English from ground up (grammar first), you did it by reading lots of classic pieces and learned from others about how to write a nice paragraph and on to articles. If you learn a computer language, you should start from reading good codes and enough reading and you can start dicing codes and mimicking with the help of teachers, teaching some basics so now all those things start to make sense, like what there is always a "int a=0;". That means a variable a is defined and it is given value of 0. I'm sure if I just said that to a bunch of 12yr old they'll look at me with strange facial expressions.

Oh, DO make them type entire programs to the IDE over and over. You can't learn syntax with ctrl+C and ctrl+V.

Other things I remember fondly from childhood would be typing in codes from 4 books of BASIC programs (fun and useful codes), trying to correct mistakes (some very obvious) with my brother. Oh, those apple games we played:)

That is pretty much what I had intended to do. I was going to make a project and have them watch. Then have them see me type in and run the program. Then they copy what I made and wrote. After a month or so of that then I was going to have them do things like change the timing or pins or something simple. I haven't done the projects yet so I can't be specific. But it will be something like change the hello world program to say hello < your name >.

By the way you are lucky. I wrote my first code in my second year of high school. It was in fortran using pencil and paper. I then gave the paper to the person that did the input and they gave me a handful of cards back. I don't remember exactly what it was about but I remember it had something to do with logarithms. No helicopters no da-da-da sounds just boring numbers. I hated it. But hey back then for electronics I made a five tube radio. Have you even seen a tube in something?? The only people I know that still use tubes are audiophiles that have old McIntosh amps. You can heat your house with those things.