Wednesday, 15 July 2015

Programming Revisited

Computers! It's the passion of the week here at the moment. As almost all kids sporting or other 'extra-curricula' activities pause over the holidays, it has allowed my son to focus on his passion-of-the-week. Which is programming.


So this week he has:

Tinkered with Mod building.

C has been fascinated with Civilization V, which he loves to play with his dad. But it is only recently that he became hooked on the idea of being able to change the units in the game. So DH helped him install ModBuddy and get the software working on our system. And then he handed it over to me, sigh.

So C and I sat down and tried to figure out how to write Mods for the game. Thankfully, writing and understanding code in an unknown language with software that is cryptic with poorly written and conflicting open-source community documentation is one of my strengths, lol.

So C got to learn about the 'real' process of coding - lots of 'what if we ...' and 'let's see what google says ...' and 'hey, this forums got the answer ... no wait! That doesn't work, but how about we ... '
and on, and on, and on. At one point, C got bored and wandered off  and was very disappointed when I stopped too and didn't keep going but instead decided everyone needed to eat.

But he watched the videos we found on setting up code, and learned that getting angry at stuff-not-working is counter productive. We had long family talks (DH and J had wandered back after J decided that DH didn't need anymore pretend tea, cheese and cake), about how in programming things not working is actually the norm and the process of getting it working is a lot of tinkering, and copy-and-pasting then editing code from dodgy help forums! Which is particularly important when you don't know all the syntax for a programming language.

Believe it or not, we eventually did get a Mod working. He wanted rampaging warrior sheep - alas, getting the graphics re-coded to have sheep-not-human was beyond an introduction to Mod-building. But C did enjoy changing the parameters in the XML Mod, building the Mod file, and then playing with his super-strong 'sheep-warrior' to win the game in the minimum number of turns. Hopefully it will be enough to get him back to looking at more hard-core programming at a later time.

Built a Game

C has also been very solidly working on writing his own game in scratch. He's had a great introduction to scratch at Coding Club and he now feels confident enough to create his own game.

And he succeeded is writing a 2-D platform game. It's a blob-jump game where you have to jump and walk your blob through the mazes. But he also managed to code in challenges along the way: hit the lava, and you're sent back to the beginning; walk on the brown (and I'm assuming it's rocket fuel) and you'll zoom to the next screen; walk in the purple, and you're movement is halved. I was actually very impressed with the level of challenge - it was doable, but a little difficult.

He also got a little practice at debugging as his original coding for the effects of colours didn't work. With a little guidance, he learned about the importance of checking his code: is the colour on the screen the same as the coded colour, or are they just a little different?; and do different if-then-else statements contradict each other? (Which happened - he was accidentally resetting the purple effects when he checked for the brown effects and visa-versa).

And really, that kind-of covers most of the core aspects of coding ... but maybe in the future I can sneak in some design patterns and object-oriented coding and watch as my kidlets run, run away ...

But C has now done a mini-boot camp in the basics of computer-coding and lived to survive the tale. And his sister, J loves playing his game as well. Go team kid!


No comments:

Post a Comment

Connect With Gluten-Free Mum