Ask Slashdot: Professionally Packaged Tools For Teaching Kids To Program?
Binestar writes: I've been doing IT consulting for years, but I'm not a programmer beyond bash scripting, perl scripts to make administration easier, and batch files to make Windows easier. I recently found an online course for modding Minecraft that my 9-year-old daughter is really enjoying (she built a custom sword that shoots lightning). Does anyone have any recommendations on online courses that would be age appropriate and worth the investment? It's been easy to get her interested in the Minecraft modding course because, as any parent with young children knows, Minecraft is kinda popular...
The course she's taking now is teaching her Eclipse and Gimp, and I'm sure there are other tools installed that they haven't had her open yet. What other vendors have stuff worth introducing her to? I've also started looking at things like the Kano and Learn to Mod, but as a non-programmer, I'm not really sure which are most useful for introduction and which are accomplishing what they claim vs. being a waste of money/time.
Anyone have experience or suggestions to help sort this out?
The course she's taking now is teaching her Eclipse and Gimp, and I'm sure there are other tools installed that they haven't had her open yet. What other vendors have stuff worth introducing her to? I've also started looking at things like the Kano and Learn to Mod, but as a non-programmer, I'm not really sure which are most useful for introduction and which are accomplishing what they claim vs. being a waste of money/time.
Anyone have experience or suggestions to help sort this out?
It's a great and extremely useful language, and is used at my company for all sorts of important things.
http://scratch.mit.edu/
Gamemaker is the only solution. Every True Programmer uses Gamemaker. Why aren't you using Gamemaker? Gamemaker is the best. Nothing's better than Gamemaker. With Gamemaker, nothing is impossible. Without Gamemaker, you are nothing; a mere husk unfit to exist. Return. Return, I say!
Return, return, return, return, return to Gamemakerdoooooooooooooooooooom!
hopscotch on ipad is aimed at teaching kids to program visually
That's just hacking. Instead, teach them about design patterns. Teach them about the variety of languages, and their pros and cons.
I would (and will) use these cool chips to build programs that really interact with the world.
It is so easy these days.
Of course then I'm not answering your question at all. There are nice interfaces
to program these, but I haven't used any that are made for kids.
ALICE from Carnegie Melon, http://www.alice.org/index.php
Sig withheld to protect the innocent.
They learn to code and they see interactive results in the real world instead of just looking at a display.
Get free satoshi (Bitcoin) and Dogecoins
You could continue to use minecraft to teach her to servers work as well as use eclipse to create server plugins and use APIs. I mean I'm all about riding the train of what people are already interested in. And Java skills are pretty applicable to a variety of languages. Naturally MC servers can have... questionable people on them, but I'm sure she could make a server with friends (and just whitelist). It could be a really interesting project for sure!
I recently bought my little sister, 9, a kano kit from kano.me. It's like a build your own computer kit, just a raspberry pi with a case and color coded cables. It comes with a colorful instruction booklet like a LEGO set. It has some code-blocks like programming environment that walks kids through how to write simple programs. The code she showed me had her making full blown for loops and such. Rather than run your code and print to stdout, it would generate a scene in Minecraft. She told me that she asked a boy in her class who liked Minecraft, "how long would it take you to build a castle in Minecraft" and he said "about a day." She replied "well, I could do it in about 5 minutes, because I know how to program." That right there made it well worth the cost.
I'm afraid I don't have any specific suggestions, but if you want them to get interested in programming, it needs to be an environment that let's them build things that they're already interested in. Generally speaking, that probably means it should be relatively simple to create videogames in the environment you choose. I learned how to program in AppleBASIC on an Apple II+ as a kid, and the very first thing I tried once I reached a basic level of competence was to create a videogame. I've seen this pattern over and over. Even college students seemed to be a lot more enthusiastic about final projects if they had the option of creating games - nearly all of them opted to do so.
Modding existing games is a great place to start, because they're already starting out with something they like, and they can see results very quickly. The downside, of course, is that setting up a modding environment is often rather tricky (depends on the game, of course). Other good candidates are things which affect devices in the real world, such as controlling robotics. Lego Mindstorm comes to mind. Seeing real-world reactions from something you programmed is incredibly addictive.
I've long wished there was a quality multi-media / game development engine (2D would be fine) all in one development environment that contained a lot of sample art assets and an integrated language that's simple, robust, and safe. Many modern development environments are often too difficult to set up, unfortunately, and those "all-in-one game development" packages I've seen have been severely lacking in quality. Granted, maybe there are some good ones out there I haven't seen.
Irony: Agile development has too much intertia to be abandoned now.
Isn't there a KSP addon that allows people to write code for an emulated microcontroller to fly their ship for them? If I didn't completely make it up, that might be a good route.
After being used to more powerful IDEs I was at first unimpressed with the Processing IDE. However, the more I mess around with it, it's not all that bad. It's what the Arduino's IDE is based on and where I was first introduced to it.
I could see it being a very good introduction to programming. Simple interface, easy to set up and tons of examples and tutorials. Write code, click "run".
Ascalante: Your bride is over 3,000 years old.
Kull: She told me she was 19!
Errrm, what does *she* want to do? Make a 3D thingie fly around and shoot hearts at ponies with it? Then Unity 3D is the way to go. Blender will be more useful to her aswell. There are courses for that. Does she want to draw cool graphics? That's easy: Processing. Does she want to build her own robot? Arduino. ... And so on.
Teaching her Eclipse sounds more like torture to me. But then again, maybe you have a fledgling business programmer here - who knows?
At the age of nine focussing on a neat useful interpreted PL probably is the best. Python, C# (Unity 3D) or Processing (Processing and Arduino) are good choices. JavaScript and Chromeexperiments if she's into stuff that comes out of the Intarweb.
I like the fact that your daughter is into this sort of thing. I wish the mother of mine had supported me more/not prevented me in trying to introduce my daughter to programming. All the best to both of you.
We suffer more in our imagination than in reality. - Seneca
Codebymath.com might make some parallels with math your daughter might be learning in school..that is using programming to add numbers, count with for loop and all.
As you specifically mentioned that your kid's interested in minecraft, see if they'd be interested in ComputerCraft which that lets you build 'turtles' that can be programmed to do things using lua.
You can then give her challenges of increasing difficulty to teach her to break things down into steps, and to build on what she's already learned:
I've done the various tunneling stuff ... I assume the other stuff is possible, but I haven't actually tried them. Note that you need diamond tools to make the various types of turtles, so mining turtles should be first ... but then you have a diamond pick that doesn't wear down.
Build it, and they will come^Hplain.
ComputerCraft Institute :
https://github.com/squidsoup/c...
http://blog.nocturne.net.nz/ed...
https://www.youtube.com/watch?...
Build it, and they will come^Hplain.
Eclipse with Java might be the best choice, if she's into it. Or maybe some python (dive into python web site). Could also just give her a decent editor (notepad++, kate ?) and information on HTML and Javascript. That might really interest her. Java and python are I think the most popular languages for teaching programming in college.
If she is interested in learning programming, there's several courses on Khan Academy that do basic Java/Javascript that are age appropriate. My 9 year old had never shown any prior interest in learning how to do anything beyond games and Youtube on the computer, but I set her up on KA one afternoon and she spent about 30 minutes figuring out how to draw boxes on the screen to finish the requirements, then spent another hour and a half drawing things on the screen with Javascript. Access is free, and has other things she might be interested in as well.
I found the W3 schools web site: www.w3schools.com/ to be very helpful. While not specifically designed for kids, it is well written with lots of helpful features. It is a great introduction to HTML CSS JAVASCRIPT SQL PHP among other things.
excitingthingstodo.blogspot.com
Teaching them to program _what_ exactly? Robotics? Video games? Mobile Apps? You're going to have entirely different requirements depending on what you want to program.
The tools were good enough for daddy, they should be good enough for the kid...
And I did try eclipse and other modern wonders — and have gone back with disgust. Disgust mild, but sufficient to want to wash hands — the shiny new shells smelled of mice, if you know, what I mean.
In Soviet Washington the swamp drains you.
These ex-googlers are working on something to to do just that.
https://bitsbox.com/
My first programming language (5 years old, 1985) was Apple BASIC. Online interpreter:
http://www.quitebasic.com/
When I was in 3rd grade, we programmed in LogoWriter. Looks like there is a web-based LOGO interpreter here:
http://turtleacademy.com/
Next, I learned PASCAL.
http://www.compileonline.com/c...
None of that stuff is OOP (although imperative is still a very important paradigm).
Once you want to move past kiddie stuff, I'd set her down with a C# IDE (the free-as-in-beer Visual Studio edition or the free-as-in-really-free MonoDevelop) and some YouTube tutorials.
Ceebot: http://www.ceebot.com/ A well thought-out, gradual curriculum, broken into a series of lessons structured as rewarding game levels. Best thing - they can get through it without constant hand holding.
...maybe consider 2Code which is available as part of Purple Mash, an online offering aimed at infant and primary pupils, and tailored to the national curriculum here in the UK.
That is tantamount to child abuse. You will ruin their social skills and emotional intelligence, leaving them unable to compete in the modern corporate environment (let alone maintain a meaningful relationship). You will also condemn them to a professional life of being under perpetual pressure to overwork, perpetual blame for failing to do the impossible, and perpetual threat of being outsourced.
Do you kids a favor and send them to get an MBA or license to practice law instead. That's where the money, power, and romance all are.
http://www.squeak.org/
Scalable Game Design with AgentCubes online (http://scalablegamedesign.cs.colorado.edu https://www.agentcubesonline.c... fits the bill as it allows your daughter to create 3D worlds similar to Minecraft but includes the ability to design her own shapes and program them.
Raspberry Pi Foundation has loads of stuff - see under Resources, Teach and Learn and Make http://www.raspberrypi.org/ - all intended for young people (and its on Creative Commons licences). The "Teach" stuff is written by Carrie-Ann Philbin, who is a professional teacher - she has quite a few videos of good stuff on Youtube.
The Mag-Pi, a magazine free to download (28 issues already) , has tutorials for games in both Scratch and Python, and Minecraft - anfd there's plenty of stuff in there that might fire YOU up! http://www.themagpi.com/
"Cock Up Your Beaver" does not mean what you think. This sig is intended to clog filters and annoy do-gooders
Just outsource to your daughter. She's taking yer jerrrrrb.
I'm guessing that your kids doing this level of programming are not in elementary school, this guys daughter is 9! Good Grief!
Personally I would not even consider trying to get a 9 year old kid into programming outside of school (boy or girl). If she want's to mod Minecraft good for her, but don't pressure her or even encourage her beyond this. 9 years old is an age where kids should be learning social skills and exercising their imaginations. Motor skill development at this age is also important. Teach her chess and play with her, make sure she has social activities with friends her own age, let her get involved in school plays and be in the band, baseball and soccer are other great activities. Sculpting, painting, drawing, reading, Tai Kwon Do, anything but encouraging her sitting in front of a computer for hours at a time.
A game like chess can develop logic skills and planning abilities without the isolation of programming (I.E. Don't dump her off on chess.com and leave her there). Encourage what she should be learning at 9, not what is the most convenient for you to have her learn at 9. Here is a consideration: If your daughter was one of those rare geniuses ready to graduate college when other kids her age are in the 7th grade, you would not be asking the question. She would have picked up C on her own and been programming already, without your assistance.
-The wise argue that there are few absolutes, the fool argues that there are no probabilities.
Baltie is being used in several European countries, it's more of a graphical programming tool and perhaps for younger children. I haven't tried it myself, but it might be worth a look: What is Baltie?
http://pencilcode.net/ fun and geared toward teaching kids.
Geared toward effectively teaching kids - http://pencilcode.net/ Really nice to use and fun way to learn general programming concepts.
If you live in the city, there's probably after school programs or summer programs geared towards kids and computers. Some are technical while others are creative, but most of them provide a mentor who guides groups of children through creative projects. Depending upon your child's personality, she may find it a much more appealing environment.
I wrote a little book of programming exercises for teaching my own children to code that you could check out.
http://www.amazon.com/Pencil-Code-A-Programming-Primer/dp/149434744X
The book is designed to have some range. In 100 exercises it goes from LOGO-like turtle graphics with loops, functions, recursion, through bits of HTML, interactivity, jQuery, and algorithms like sorting and backtracking. A tic-tac-toe AI in 50 lines of code. No explanations, so it helps to have a programmer parent or teacher.
The book goes along with a free open-source website you can use to play with the code - http://pencilcode.net/.
In some circles it's become a cult hit because of its mix of beginner-friendliness and real-world programming.
What's with these campaigns about teaching kids to code? I mean, coding is nice, but I'd rather teach kids mathematics, and encourage them to develop critical thinking. I don't see that coding will be better than mathematics for mental discipline, and it will not do anything much for your critical thinking - I have come across too many programmers who were fervent believers in junk like creationism, UFOs and conspiracy theories. I just wonder if these campaigns just aim to train lots of kids to become brainless code monkeys when they grow up?
That's learning just two tools: Eclipse and Gimp. That's a far, far cry from learning programming.
If you are willing to teach/learn yourself ...
I just started teaching my 8 year old how to write code. We started with regular python and wrote a text base high/low game (Game where computer picks a number and you guess. It tells you whether you are high or low or if you guessed it). Of course my son was thrilled to add a cheat where it always made him win when he entered his name as the player.
Next, I bought some graph paper, down loaded pygame and had him draw a tank, then figure out what polygons to use from pygame to draw the tank. We drew it with 3 rectangles. Just the power of changing the tank size and changing location thrilled him. Over the next few weeks we started demonstrating how to make a bullet move out of the cannon, then how to move the tank with up/down arrows, what rgb values are and how to research those colors on the web and create your own. I had to read ahead and learn this stuff myself first.
This stuff is simple but starts to introduce them to the level of detail required to write something that works. We finished with a game where you had a rocket launcher and two rockets. A tank would come at you at random speeds. You had to pick a fuse time and hopefully the detonation happened on top of the tank.
Don't pressure her. My son's interest comes and goes. I'm there to support when he's inspired. Good luck.
-Nuke the moon
My son, age 11, loves computers so I've wanted to teach him programming for awhile. He loves playing Disney Infinity 2.0 and there is a surprising amount of "coding-light" options in there. (If you step on this switch then this action happens.) He's also gotten to love Blockly which is based on Scratch. He's also joined his school's Lego Robotics club so he's learning some programming there while using Lego Mindstorms.
My sci-fi novel, Ghost Thief, is now available from Amazon.com.
As a rule we have limited screen time a lot (30 minutes/day is generous)
So how should people deal with video games that take 75 minutes just to get to the first save point, like Majora's Mask?
http://en.wikipedia.org/wiki/List_of_educational_programming_languages#Languages_by_age_and_experience
Buy the kid a used Commodore64
http://popular.ebay.com/comput...
Sounds like you need "Rocky's Boots" and "Robotropolis"
Both are excellent and fun games that teach building circuits with logic gates. Unfortunately, they were last on the Apple II....
You can make a free google site at sites.google.com
You can learn Apps Script
https://developers.google.com/...
So not only can kids develop in an IDE in a browser, they get their own web site and do whatever they want. I recently started using it and I figured out how to render a ghetto lightbox with images pulled from my flickr feed. I used nothing but google API stuff, UiApp, etc.
as in monk. I found Python monk to be very slick and good for entry level programmers.
Buy her a Raspberry Pi (or a KANO kit) and let her go at it herself. Maybe provide some gentle nudges with what cool stuff it can do, but if she's curious enough at 9 to be programming in Minecraft, then I don't see why a Pi wouldn't be good fun. Plus, they're quite cheap.
Squeak: http://www.squeak.org/
Gambas: http://gambas.sourceforge.net/
I'm teaching 8-10 year-olds how to use Scratch at CoderDojo (2 hours each Saturday during term-time). They are learning coding fundamentals without knowing it - Scratch V2 even lets them learn multi-threaded concepts (via clone and broadcast). I took them through the creation of a game last Saturday using those concepts, and most of them have only been using Scratch for 6 sessions.
There are lots of example programs out there, and they can experiment by changing. It's interesting to see the different directions they take their programs. One student spends a lot of time decorating her sprites: her games are pretty. Another comes up with ways to make her games challenging (like two sprites with the same appearance, but one boosts your score and the other cuts it :) ). Yet another makes difficult games, with spinning obstacles and barriers that move up and down.
It's not going to get them a job, but when they come to learn "real" coding, many of the ideas will be familiar, and they'll learn faster. That's the idea.
You can also try NCLab https://nclab.com/.
It's a web platform offering courses for kids and students. They can play with robots, create 3D shapes, or develop other python skills -- all depends on age and interests. Courses are self-paced and provides
MIT Scratch is great but for me NCLab is equal competitor.
https://nclab.com/karel-vs-scratch/
Do you know NCLab?
https://nclab.com/
In my opinion its worth competitor to MIT Scratch.
But they should. With a text editor and Shoes you can produce guis that do useful things with 10-12 lines. Great way to start. No equipment, all free, works the same on all 3 platforms.
As a matter of fact, in my experience you can use any of the recommended tools. However, my more pressing question is what PROBLEMS the kids should try to solve since this is tje best way to learn. Of course you can start with a simple game but soon you get into object cloning. You can do pong but you get into general angle reflections. You do anything geometric and get into sine functions. Does anyone know of a nice set of problems to solve, with increasing complexity, for young programmers?
If gaming piqued her interest in modding/coding, you might want to give Stencyl a look. It's based on Scratch, with enhancements specifically geared toward game development. The starting tutorial is well done, and there is a significant amount of tutorials, guides, assets, blocks, and general help available from the community.
http://www.stencyl.com/
http://www.stencyl.com/features/
http://www.stencyl.com/features/faq/
http://www.stencyl.com/education/overview/
I recently had a good time playing with AIDE, an Android app for building Android apps. It comes with a slate of lessons for learning Java and various parts of the Android API. The lessons are subscription based, but the IDE functionality is completely free.
I'm a developer, and I found I could dispose of the Java tutorials, so I can't comment on how well they introduce you to the language. The other tutorials focusing on Android and game development were well done, and about as straightforward as they could possibly be.
What I can say is that cutting out the middleman (your PC) and developing right on the device was hugely compelling, and more than made up for the tools being a little primitive. This is full on mobile programming, possibly a bit much for a 9 year old, but it shouldn't be overwhelming for a kid who is sufficiently keen!
perhaps Codecademy might be good for her, depending on how well her comprehension is: http://www.codecademy.com/skil...
http://about.me/jimm.pratt