Milknhoney Posted March 9, 2016 Share Posted March 9, 2016 My son is interested in learning programming. My brother, an EE, told me to download Microsoft Visual Studio and then find an online tutorial for C++. Wondering if anyone has had experience with a tutorial or book that is user-friendly for kids (son is 11). I don't have time to work with him on it, so he needs to be able to figure it out on his own. Thank you! Quote Link to comment Share on other sites More sharing options...
keirin Posted March 9, 2016 Share Posted March 9, 2016 (edited) I would not recommend C++ as an eleven year old's first exposure to programming. Have you already looked at Scratch? https://scratch.mit.edu/ and http://scratched.gse.harvard.edu/ (this has educator resources for using scratch which would be handy for you as well). Some scratch books to consider: http://www.amazon.com/gp/product/1593275439?keywords=scratch&qid=1457548052&ref_=sr_1_1&sr=8-1 http://www.amazon.com/Coding-Games-Scratch-Jon-Woodcock/dp/1465439358/ref=pd_sim_14_1?ie=UTF8&dpID=51VmrW0zBPL&dpSrc=sims&preST=_AC_UL160_SR134%2C160_&refRID=02FBEP93SN60N4QBMMN6 I'd also highly recommend code.org - https://studio.code.org/Your son might be able to handle the accelerated course. And finally I think small basic would be a great place for him to start / enrich programming: http://smallbasic.com/ Small basic is from Microsoft, and it's a simplified version of Microsoft Visual Studio with a subset of basic as the programming language which makes it a much gentler place to start. Edited March 9, 2016 by keirin Quote Link to comment Share on other sites More sharing options...
shawthorne44 Posted March 9, 2016 Share Posted March 9, 2016 Check out codeacedemy.com. We use jscript at work, and it is beneficial to a few of customers to learn it too. We recommend codeacedamy to them and it is free. They don't have C++, but they do have javascript. There is a great deal of commonality in the Java/C group of languages. This uses a wizard to walk you through lessons. After that the online lessons should be do-able for an 11-year-old. Quote Link to comment Share on other sites More sharing options...
SparklyUnicorn Posted March 9, 2016 Share Posted March 9, 2016 One of mine enjoyed Homeschool Programming. They don't have C++. He used the Java and the Android courses. They have C# and some other stuff. He was able to use it completely on his own and did start about that age. Homeschool Buyer's Coop often has group buys and offers on their site. The courses are very well done. And the good thing with that is if you started with something that was maybe too difficult, you could set it aside and try one of their lower level courses before that. You could also check out your local library. They may have Dummy Guides for that. He could at least flip through that to get an idea of what it is like. He may or may not be able to get started with that. My kid thought stuff like Scratch was very babyish. Not all kids do though so that is also something to consider for him. Quote Link to comment Share on other sites More sharing options...
MrSmith Posted March 10, 2016 Share Posted March 10, 2016 Might I recommend C instead? Easier to learn by far and it's widely used in industry. The details of <insert current fad language here> is hard to grasp, but the logic of languages in general is not. 11 is probably too soon (although I learned at 11...) for all the minutiae of any language I think. My old standby has always been 'Teach Yourself C in 21 days'. It teaches all the basics of the language and programming in general. Sadly it is not that kid friendly (no cartoon characters) but the text is not difficult to understand. Quote Link to comment Share on other sites More sharing options...
achong Posted March 10, 2016 Share Posted March 10, 2016 (edited) I've taught around 200 kids programming over the last 2 years. I've used maybe 25 languages over the years, though never "officially" had a programming job. The problem at 4th and 5th grade, is that they can learn syntax (where to cross your t's and dot your i's), but the synthesis of the 5 or 10 steps to writing a program is VERY difficult. Maybe 1 out of 20 can at that age. A large minority can understand other's programs superficially enough to modify them. A big part of the problem is that synthesis is completely foreign to them. No part of their schooling so far requires them to do anything like it. They're asked to 1) follow directions 2) memorize and regurgitate things and 3) solve simple 1 step problems. It's the same problem that makes proofs in high school Geometry the hardest class anyone takes. It's the same thing I saw good A students struggling with on math team year after year. At 6th grade, a bare majority can handle simple programs, but often with a lot of handholding. Some of my brighter students had done things on their own, but in a limited fashion, and would often on their own get stuck debugging for hours on 1 minute problems. I remember doing the same on the very earliest microcomputers in 4th-8th grade (and that was without manuals or the internet) The other big problem they have on their own is that at that age, critical reading skills are low. And finding the answers to problems often requires searching the net and reading lots of documentation and other code. We use Scratch for the younger kids, but it doesn't help with the synthesis part. Much of what they can do, is follow along on a template that we show them, making their own modifications. And it's still a very labor intensive process, which I handle by hiring lots of high-school and college kids as teaching assistants. Scratch teaches the right things with regard to synthesizing problems, but when they get a little better, it has a large number of other artificial barriers that you just don't get in other languages. For the older ones, I wrote 200 pages of lessons in C. I mostly keep data structures, functions, and pointers out of the picture so that it's not much different than BASIC. Anyone that masters the basics of C can usually do simple arcade game type programming with a library in the later lessons. And that is a very strong motivation for them. I introduce Object Oriented Programming later with Javascript or Python or Java. Python seems to have the largest number of books out there for learning on your own, but my experience in handing these to 6th graders was that they still needed a mentor. In almost all other beginning C/C++/Java (don't use C++ for kids), the language in the books is for college aged kids, and most kids will be lost. Though, if you've taken the old fashioned path and yours is living on a diet of Dickens, Austen, Dostoevsky, Shakespeare, Homer, and Virgil, they'd probably be ok. Edited March 10, 2016 by achong 1 Quote Link to comment Share on other sites More sharing options...
keirin Posted March 10, 2016 Share Posted March 10, 2016 (edited) If you want to know what the Computer Science Teachers of America recommends for K-8, I'd recommend http://www.csta.acm.org/Curriculum/sub/CurrFiles/CS_K-8_Building_a_Foundation.pdf They give a number of options. I've only taught high school students myself (10+ years as a computer science teacher) but I think the recommendations I gave would be a good start for a middle school student. Edited March 10, 2016 by keirin Quote Link to comment Share on other sites More sharing options...
daijobu Posted March 11, 2016 Share Posted March 11, 2016 Would C or C++ be a good thing to learn if you want to write scripts for an Arduino? How about if you have a high school student who knows python and some Java? Quote Link to comment Share on other sites More sharing options...
MrSmith Posted March 11, 2016 Share Posted March 11, 2016 Would C or C++ be a good thing to learn if you want to write scripts for an Arduino? How about if you have a high school student who knows python and some Java? The language used by Arduino is C with some extras and some libraries for interfacing with the board. I think there are alternatives to C for Arduino but you cannot interface with the board directly. Although you can buy a Netduino, which uses the .NET framework, and then use C# (which is pretty close to Java). Python is not supported for direct interfacing to Arduino board (though you can 'cheat' and talk to the board using the serial port). The syntax of Python is not like C, so there will be some learning curve. Java is like C++ but not exactly, so again learning curve but smaller. The power for all languages lies in the functionality provided by various libraries, so there will always be some learning curve involved (for example on Arduino there is the avr-libc). 1 Quote Link to comment Share on other sites More sharing options...
Kerileanne99 Posted March 11, 2016 Share Posted March 11, 2016 Just as a fun supplement for anyone interested in kids learning C+, C++, or Java: We were gifted a really neat board game called C Jump that is fairly fun and useful! http://c-jump.com Quote Link to comment Share on other sites More sharing options...
Kuovonne Posted March 11, 2016 Share Posted March 11, 2016 One of the problems with starting with something like Java, C, C+, Python, etc. is that it is difficult to create output that will satisify an 11 year old. The syntax for these languages is also really pesky. Chasing down syntax errors is a pain and really discouraging to newbie programmers, especially when the error is nowhere near where the program breaks down.. When I was a kid, "Hello World" was pretty cool. I can't imagine one of today's kids being nearly as excited. So, what does he want to do with programming? Many kids think of writing games when they think programming. If he wants to make games, Gamemaker is an easy to learn interface that can produce cool results. There are also lots of resources and a very helpful community. It also allows the kid to start with a drag-and-drop interface where he doesn't have to worry about syntax, then move to writing code with just text here and there. https://www.yoyogames.com/gamemaker If he has an iPad, there are lots and lots of apps that also teach the basics of coding and also let you make really cool apps. I wouldn't worry too much about the specific language or programming environment. Once he understands how programming works, the basic concepts (at least the ones a middler schooler would learn) translate to almost all languages. Good programmers can pick up new computer languages even easier than a polyglot can pick up a new human language. Quote Link to comment Share on other sites More sharing options...
mumto2 Posted March 11, 2016 Share Posted March 11, 2016 Check out codeacedemy.com. We use jscript at work, and it is beneficial to a few of customers to learn it too. We recommend codeacedamy to them and it is free. They don't have C++, but they do have javascript. There is a great deal of commonality in the Java/C group of languages. This uses a wizard to walk you through lessons. After that the online lessons should be do-able for an 11-year-old. My son started with Codeacedemy also and he was about 11 at the time. It was a great environment for him to learn in. He went on to do quite a few other courses online including python on coursera. Quote Link to comment Share on other sites More sharing options...
AEC Posted March 12, 2016 Share Posted March 12, 2016 I've been a professional SW eng for ~20 years, taught several people (adults and kids) - I suggest NOT going with codeacademy. We tried it here (for python) and I was quite disappointed. Codeacademy focuses very much on syntax - and provides almost no instruction or feedback on how to architect a program, make it testable, make it readable by anyone else, etc. Realistically, how could it - but that's by far the more difficult portion of programming. This is like using a grammar book to teach essay writing. I'm unconvinced it's a good approach, even for just 'trying it out'. IME, it creates more frustration than necessary and promotes bad habits. I think it's also likely to end up with a student who's finished the 'course' but then still can't really program anything. I'm generally a fan of book-learning - but for most people I think you need the feedback of an actual person to learn to program. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.