At what age could I reasonably teach my children about programming?
I've been thinking about starting a children's (aged 10-11+) group about programming, get a few cheap computers, install basic programming tools and get into it...
I'm looking to teach basic programming concepts to the kids:
- conditions (if, else)
- loops (while, for)
- functions (what they are, how to use)
- basic data structures (array, hashmap)
I want them to have a basic tool set with which they can attack any problem in any language, and get a working solution which they can use or improve upon.
Looking for any and all input (what to use, teach, explain), do not need donations but always helpful :-) - this will be a local community thing, not a national project, though if it works - I will try to push it into the county level... thanks!
And yes, I do believe teaching something, makes you better at it - So I do plan to benefit from this.
I want to hear your thoughts, a good and thoughtful answer will be rewarded!
I think Web Programming is possibly the best way to go, for quick ROI, since it is the thing they would get (building a website that does neat things), but it has many drawbacks, first it is highly complex in terms of tools required and deployment in the "real world", I want something that they can install at home and share with friends who would also be able to use it... I'm willing to provide a free hosting account for them, but that would make them dependent on me, and I want it fully available, even if I'm not there to provide, something they can do at home with no passwords and internet access.
So my next thought: c# via mono - is strongly typed, plenty of libraries so they aren't stuck on anything, lots of online documentation, free tools and powerful. With a GUI environment, so not everything has to be scripts and console apps. but supports those as well. Fully compliant (even works better) on windows, but also will work in class on Linux. Does everything a programming language should do and more, has proper tools, and the syntax being c based will also assist in learning other languages in the future. UI is also "nicer" than Java so an advantage...
Basic setup: el-cheapo computer with acceptable screen, keyboard and mouse, networked and internet connected. Single printer in network shared by all. basic graphics card, network card, nice HD nothing fancy and enough memory to do almost anything (2-4GB?)
Some sort of desktop friendly free linux (suggestions?) Good Text editor (we can have a choice)? (suggestions?) Relevant IDE? Relevant SDKs? Debug/Deploy Environment (for example web server for web programming, though this is for a later stage?)
A little background info (could answer some questions you might have)
I live in a small community where getting a room to do this in, and store the equipment shouldn't be a problem. I thought of donating some of the computers and maybe getting some other like minded people in the community to donate equipment and time to the project. I think the main problem would be getting kids to come :-(
I have this bad experience when I was taught LOGO? as a kid, I couldn't see the point of drawing on the screen, and it seemed that it had little to do with programming and more with geometry which I hated...