One of the biggest problem that I encountered while teaching camp was a lack of (motivation? interest? investment? a mix of the three?) in the students. There were many who would follow along with what was happening, nod their heads whenever I said anything, but when I stopped putting instructions up on the big screen and told them figure it out for themselves, many of them would just sit there blankly; not even making an attempt at a solution. I don’t think this necessarily has anything to do with them not being old enough or smart enough to understand the code.
Previously, back in my home town, I taught a very similar camp (Video Game Makers instead of Video Game Creators). In this camp the children were younger (4-6th grade) and the classes were larger (roughly twice as large). The total programming time for each camp was roughly the same, though VGM was spread out over two weeks. However, at VGM the first week was mostly learning and having them follow along with building predesigned games. Then, on Friday, the entire day was spend with pencil and paper outlining and consulting on the game that they were going to be making the next week. These were all their games, the ones that they would be making. The whole of next week there would by 20+ unique games under construction and many of the students would need help, sure, but they would for the most part be capable of making things themselves. Moreover, because they were working on something that they wanted to make, something that they had designed, they were excited and eager to actually understand what was going on, what the code meant. It wasn’t uncommon for them to continue working at home and come back to class with some very polished games.
Now, there were admittedly some things that made it easier at VGM. We were using Scratch to make our games which is a lot less intimidating to look at than actual code. A bonus to this is that Scratch is online, requires no downloads, and anything you make is easily accessible from anywhere. It’s also free, which is nice (GameMaker also has a trial version, but it comes with a ton of limitations). I think that the point about the Scratch code blocks being less intimidating is an important one. See, it wasn’t just the students who weren’t learning the code at VGC; my assistants also struggled with the code as well. All of them were definately smart enough to learn it, but I think that, like the students, they came into the camp with the idea that code is some sort of arcane mumbo-jumbo that’s beyond them. With this in mind, they didn’t make any attempt to learn or understand the code, so much so that even on the last day students and assistants alike would ask basic questions like: “My character moves right instead of left. What do I do?” (the answer is to flip a plus to a minus).
Reflecting on this, I need to work harder to dispel some of this mysticism on the first day, maybe go even slower with more regular reviews. It’d be more boring, but the tradeoff is probably worth it. I’ve also recently begun separating my code into a block-based organization. In programming there are things called “comments” that don’t affect code, but like little notes that you leave in the margins. In actual code they are incredibly important for keeping things organized and allowing your fellow programmers to understand and modify your code. For VGC I took out all of my comments from the code because it’s a lot of typing and some of the campers type under 10 WPM. I’ve found that adding the comments back in allow me to emphasize the sort of blocky organization that code tends to fall under. It makes the code closer to Scratch’s block system, the blocks are just a little bigger and you have to type them. This helped a bit with dispelling some of the mysticism, more of the kids caught on to the purpose of the blocks and could replicate them and change them a little. It still doesn’t help with actually knowing what each line does individually though, they can’t make something new. It might just be a little too much to try and get actual line-by-line understanding of code in just a week, but that still means that the students don’t get to experience the sense of agency that is what makes coding so rewarding. It’s even more tragic because that same sense of agency is what makes playing video games so fun, the idea that the player/programmer’s actions control what happens. I think that if we just had a little more time to make that connection; to show that learning how to program isn’t all that difficult and gives you the ability to make whatever the heck you want if you’re willing to put in the effort; it’d get them much more interested in continuing to learn once camp is over.