themade.org teaches free programming classes to kids. We've been doing this for 2 years now, and most of the time, our ratios are 50/50. Yesterday, in fact, we had 3 boys and 6 girls for our scratch class, then had 8 girls and 2 boys for our interactive fiction class, taught in Twine.
Couple things we've learned. First, girls default to pair programming. They cluster, they work together, when they have a problem, they solve it for one another before asking the teachers. They work together and don't compete. The boys compete and try to get way far ahead of the teachers, and end up getting lost. The girls all move at the same pace except for the ones who were advanced-class level when they showed up.
Second thing: little girls are not affraid, and not any less able to do this. It's a societal thing that pushes them away. They see the girls in their classes interested in other things, so they don't get interested in computers. Instead, they get interested in facebook, not the computer itself, because their older siblings use it, their friends use it, and they then learn that computers are for socializing. Given the proper environment, they can learn anything a geek would learn, it's just that they don't get spoon fed computer knowledge, they get spoon fed facebook, Snapchat, Pokemon and Minecraft knowledge.
Third: Minecraft cuts across all genders. All kids absolutely adore Minecraft, and about 50% want to learn programming just to make mods for the game.
Finally, girls who come to our classes keep coming back. They have a little social group with the other girls, and they welcome in other girls. The boys are left out, mostly, but that's fine as they're not having trouble learning or keeping up. The girls in our classes are their own support mechanism, and they tend to become friends outside of classes.
How do you get kids modding Minecraft? I suggested this a little while ago for a kid in my brother-in-law's Grade 8 class, but then regretted it because the tools for doing it seemed inaccessible to beginners.
You help them with the tooling. You will also need to say "because, magic" far more often then with most projects, but if you have someone who knows what they are doing walk you through the difficult, boilerplate type, parts, then modding minecraft is generally not exceptionally difficult. The other risk you have is the chance that they will want to interact with some less explored part of the code, in which case the problem goes from boilerplate/tooling difficult to normal difficult.
Probably the best way to go about it is create a dumbed down interface for them to work with. When they inevitably want to go outside of what you wrapped, you can either wrap the additional functionality they need, or show them how to use the underlying API.
You don't. It's Java. It's like a kid asking you to build a car engine from scratch day one. We kindly point them to our Scratch class as a way to learn how to program.
Well, I'm glad I didn't come to the wrong conclusion. It's too bad, though, because Minecraft modding got this kid really excited, and there are many (maybe millions) like him. It seems like it could be a really fruitful area for work.
Actually, when I was looking through stuff for him, I found a project that implemented Minecraft bindings for JavaScript with the aim of creating a friendly environment for kids. The author was an HNer and had posted it here a year or two ago. But the project had languished since then, and it struck me (perhaps unfairly) that it probably wouldn't work out of the box in all configurations. The last thing one should put in front of a kid is something that immediately frustrates them by failing in strange ways. Tools like that need to be really, really well-hammered. Which is one of the advantages of Scratch.
It is a shame that Minecraft modding is so horrific because, as you say, it would be a very powerful motivator to get young people involved in programming.
Even the RPi Minecraft appears to lack information about modding:
So what? My kid went to summer camp for Java graphics/game programming; he had a middle school semester of Python before that and nothing else. He wasn't the youngest in the course, either. Java is not that hard. In fact, because it's so explicit (and wordy and boilerplatey), it might even be easier than some of the alternatives.
You're right, Java is not hard. But I'd wager you paid for that summer camp. We teach a free class to random kids every week. Because it's free, random kids with NO PRIOR COMPUTER KNOWLEDGE show up. This is quite different from a kid who grew up in a house with a computer, an iPad, and a dad who's a programmer. We deal with kids who've never touched a computer before, and only understand phones.
When those kinds of kids want to make Minecraft mods, we start them at the beginning, with Scratch.
I'm sorry if I came off as saying Scratch was a bad idea. My kids got started, when they were much younger, on Scratch.
A good place I think to go here would be a CraftBukkit "framework", something that would make a series of simple plugins easier to write for people with minimal programming ability.
That's how the Java camp was taught: with a game framework that required a few specific pieces of programming to fill in some blanks to make a predetermined game (a brick-breaker, IIRC) work.
What are the ages? I think a lot of the problem stems when the girls grow up to adolescents. That's when all the negative societal pressures start to set in.
How would you keep this up through their teenage years?
Fascinating stuff. We're setting up a 'Code Club' (https://www.codeclub.org.uk) at my kids primary school next term. I'll make sure to consider the pair programming dynamic when we set it up.
Sadly, my two daughters seem really rather interested in the whole affair (probably one two many nudges from dad in the past).
One thing about Minecraft though, even if kids can't make mods, they can learn useful aspects of logic just from playing about when redstone. When my daughter managed to make a set of points that switched automatically when her roller-coaster cart went over a pressure plate, she was well chuffed.
Minecraft is the single most addictive and screams-of-glee-inducing thing in our museum. No matter what we have for the kids to play, they always go "minecraft? You have Minecraft!? Can I play Minecraft!?" which is nuts, because they can play it at home, and playing at the MADE is no more interesting than at home. We don't have enough machines to network it in the museum, and the classroom doesn't have it installed.
I'm told that will change, soon. Hoping to have a club, soon.
We are lucky and have some amazing teachers who make a new game each week in Scratch, and teach it to the kids. It's always Asteroids, or Moon Lander, or Nanacara Crash, or Pac-Man, or Flappy Bird (OMGWTFBBQ!?). Generally the best advice I can give you is to drag a roomful of kids at computers through the Scratch cirriculum MIT has created, and feel free to skip ahead if they get bored. MIT tends to be all engineery about the curriculum, and leaves no corner unexplained.
We find that if you ask kids 8-14 "Wanna learn to make videogames?" the answer is always yes. Then you just have to walk them through it in Scratch. It's super easy for them, and it does exactly what MIT designed it to do: teach kindergarteners how to code.
Couple things we've learned. First, girls default to pair programming. They cluster, they work together, when they have a problem, they solve it for one another before asking the teachers. They work together and don't compete. The boys compete and try to get way far ahead of the teachers, and end up getting lost. The girls all move at the same pace except for the ones who were advanced-class level when they showed up.
Second thing: little girls are not affraid, and not any less able to do this. It's a societal thing that pushes them away. They see the girls in their classes interested in other things, so they don't get interested in computers. Instead, they get interested in facebook, not the computer itself, because their older siblings use it, their friends use it, and they then learn that computers are for socializing. Given the proper environment, they can learn anything a geek would learn, it's just that they don't get spoon fed computer knowledge, they get spoon fed facebook, Snapchat, Pokemon and Minecraft knowledge.
Third: Minecraft cuts across all genders. All kids absolutely adore Minecraft, and about 50% want to learn programming just to make mods for the game.
Finally, girls who come to our classes keep coming back. They have a little social group with the other girls, and they welcome in other girls. The boys are left out, mostly, but that's fine as they're not having trouble learning or keeping up. The girls in our classes are their own support mechanism, and they tend to become friends outside of classes.
So, learn from this what you will.