<p>Think back to when you were 10 years old. If you could go back and teach yourself the most fun and interesting things about computers, what would you teach the young you? </p>
<p>Would it be programming? robotics? math to train the mind? art so you could use computers to make really great graphics?</p>
<p>What would be the most fun activities to do in a computer club with other 10 year olds?</p>
<p>Be fun and creative in your answers!</p>
<p>*** The reason I'm asking my 10 year old son loves programming (C++), flash animation, is working on a webpage. He's done a programming camp (Cybercamp), a game programming camp (IDTech), and this summer is doing flash animation camps with both the above outfits, as well as a video production camp. Mostly he learns about computer stuff from books and his older brother. He wants to start a computer club at school and I don't trust an elementary school teacher to lead them in the right direction, so I'm asking for your help! ***</p>
<p>Hmm... I'd think for 10-yr-olds... maybe start small? Like... dreamweaver/flash small? Where those that won't like to code all the time can just click and drag? I'd think kids would like instant results so small, easy projects where you can see it on a webpage so the kid can also show off to mom and dad would be good.</p>
<p>Unless of course, the times are coming much faster than I thought and 10-yr-old programmers is a norm now.... o___O</p>
<p>I'll see if I can get Mathson to respond. He got interested in programming at a very young age when his Dad spent a Christmas vacation putting together something that would work as a lab notebook for him. It involved using Visual Basic. The first program I remember him writing was one that had a rocket go around the moon. It was incredibly crude, but cute. In fifth grade gifted class they had a project where everyone was asked to teach something simple to the rest of the class in about 15 minutes. I was there to observe and from what I saw most elementary school kids, even bright ones, are really ready for the abstract thinking that simple programming requires. (Not that my son was a great teacher, but still, the kids seemed so dense!) So I'd start with things like flash and dreamweaver that are very intuitive and give a lot of bang for the buck. Visual Basic (the old version anyway) is probably easier than C++ for beginners. AP Comp Sci now uses Java, which my son also thinks is easier than C++. One early cool project my son worked on was a version of the old "Adventure" or "Zork" game. You basically go through a maze and can give limited commands to pick up objects and move in various directions. He wrote his own version in 3rd grade after reading a book with a sample program. Basically it was a simple version of the Collosal Cave Adventure game which I played on the Arpanet way back in the 1970s. <a href="http://en.wikipedia.org/wiki/Adventure_game%5B/url%5D">http://en.wikipedia.org/wiki/Adventure_game</a> This article has links to source code: <a href="http://en.wikipedia.org/wiki/Colossal_Cave_Adventure%5B/url%5D">http://en.wikipedia.org/wiki/Colossal_Cave_Adventure</a></p>
<p>We were very frustrated when he was your son's age and there was nothing out there except a few limited summer programs geared to his interests.</p>
<p>Thanks, and I'd love Mathson's advice. I think my son's motivation is to draw his friends into sharing his interests. Using Visual Basic and Flash to program games seems like a good way to start.</p>
<p>I asked this question on another thread and they said build and take apart some computers, so we'll do some of that. Also got a suggestion to do some robotics, so maybe we'll probably do Lego FIRST robotics league in the fall.</p>
<p>My son also wants to learn Java and Python, although I don't know what for?
Could you ask Mathson, why would he want to learn these languages and what's the easiest way to do it?</p>
<p>(Mathson here)
Java and Python are good general purpose languages. Java is one of the most common languages for servers in particular. Python is generally thought of as slightly more of a scripting language than Java or C++. If he likes Python he may also want to take a look at Ruby, as they are often used for similar tasks. In either case the syntax is quite similar to C++'s so it should be easier to learn than something like Lisp.</p>
<p>Java and Python both have plenty of books to teach the language. I know that Thinking in Java is pretty good, and it is available online. I learned python by looking through the documentation and reading a few online tutorials, so I don't know of any books in particular.</p>
<p>Scratch seems very similar to Logo + various turtle languages, but using drag-drop visual components instead of text. Squeak is a complete programming language that isn't entirely targeted at kids, so it might be a bit more difficult.</p>
<p>(Mathmom back)
Mathson spent 15 minutes or so playing with Scratch which is a free download from MIT - it looks like your son's friends might have fun with it. You can make sounds, do special effects and draw patterns with it. They've got a page of ideas to get you started.</p>
<p>Thanks for the ideas. I had never heard of Scratch.</p>
<p>Actually, I know that most 5th-6th graders won't get programming, because we tried doing robotics last summer, and except for Matt, the only kids that had much success with the Lego robotics language were middle-school age.</p>
<p>But, if they can have some fun and success with some simple stuff, and get their hands on some hardware, then when they are ready to program, Matt will have a peer group.</p>
<p>So I realize I'm trying to ask two questions at once: what is a fun way to get 10 year olds into computers (his friends), and how can he keep learning. By the way, he learned C++ from "C++ Without Fear" by Brian Overland. I'm going to buy Thinking in Java for him - thanks for the suggestion!</p>
<p>I think that python is probably an easier first language than many more common first languages (C/C++/Java), so it might be a good choice for your son. There's less seemingly unnecessary odd syntax issues than with other languages. He also might have fun with VPython (<a href="http://vpython.org/)%5B/url%5D">http://vpython.org/)</a>, which is some extension of python which is quite easy to use for graphics. I haven't worked with it much, but its much less of a hassle than graphics in C++ and Java. Different languages are better for different things, so its helpful to know a bunch of different ones so that you can choose the best one for the job. Java and Python are both good choices as they are widely used.</p>
<p>For teaching other kids his age, he might want to look into Alice. (<a href="http://www.alice.org/%5B/url%5D">http://www.alice.org/</a>) I don't know a lot about it, but its some sort of interactive 3-D thing that is intended to interest middle school students (particularly females) in programming, and the researchers claim to have had quite a bit of luck with it.</p>
<p>DS1 built a website in 4th grade and quickly learned that html wasn't his passion. </p>
<p>DS1 started with programming his TI-83+ calculator when he was in 5th grade. He did games, study cards for math, etc. That used a variation of BASIC and his games were quite popular among his friends. Then he moved on to TrueBasic and VisualBasic, then C++, and then to Java. Like mathson, DS1 greatly prefers Java to C++. In middle school, DS's computer classes use LOGO in 6th, then moved on to TrueBasic. DS's programming in middle school focused on doing projects for science fairs. He'd learn a language to do the project. </p>
<p>For the long run, the best way to help your son tackle harder and harder programming is to keep the math skills moving with the CS. After a certain point, it becomes as much math as CS, and the ability to get through the math makes for better algorithms, etc.</p>
<p>I wouldn't expect an elem teacher to be able to teach programming. Even in specialized math/sci/cs middle school programs, there were problems with teachers who struggled to keep up with really motivated, self-directed kids. We found the best way to help DS1 was to stay out of the way and buy manuals when he asked. He takes CS classes at school, but 90%+ of his knowledge is self-taught, whether by figuring it out himself or through competition problems.</p>
<p>My son is self-taught too. A parent can help by providing a new, super fast, super capable machines and monitors every two years (ouch!)--along with a super fast, super broad, internet connection. My son's capabilities jumped up every time he added a new machine. (His desk at home looked like a flight deck by the time he finished high school). His capability jumped exponentially when he discovered online programming forums--the CCs of the programming world. </p>
<p>If your son gets interested in computer graphics, consider sending him to London for a summer course--to Ridley Scott's Escape Studios. <a href="http://www.escapestudios.co.uk%5B/url%5D">www.escapestudios.co.uk</a> There is no age limitation although most of the students are post grads. A computer geek knows no age though, ;) .</p>