Tag Archives: computer programming

Kids Learning Code: My Mentoring Experience

Ladies Learning Code, is, as they describe their own organisation, a “women-run not-for-profit group working to empower everyone to feel comfortable learning beginner-friendly technical skills in a social, collaborative way.”  They offer classes for adults under their Hacker You and Ladies Learning Code brands, and classes and workshops for kids as “Kids Learning Code”.  I had the privilege of mentoring at their inaugural Scratch workshop for 6 and 7 year olds, in their new space, on the weekend.  They have proven for me that kids as young as 6 can and will write computer programming code if given the tools and opportunity.  It was really, really cool.

Community Coding Space

Young Programmer

Daniel is 12 and already mentoring littler kids at Kids Learning Code

Picture this: an amazing, lofty, all-white space.  There are adults and kids milling about: the only way to tell the students from the teachers is that almost universally, the students are either much older or much younger than the LLC staff and teachers.  The Ladies of Ladies Learning Code are all under 30, and successful, entrepreneurial coders, app builders, and web architects.  These ladies have guthub accounts and they know what to do with them.  As the kids settle in to the bright classroom, I over hear 2 kids, who don’t even have their adult teeth yet, exchanging online game usernames the way we older folk exchange business cards.  And it begins.

Making it real: what’s your favourite game?

The first step in the process of getting kids to start thinking about coding and game building is to make it real for them: we have a great discussion on games and gaming: what are their favourite games? What makes the games special, and what do they like?  The two standout favourites among this group of 6-8 years olds were Minecraft by a long shot, as well as Lego Star Wars.  Snakes and ladders and Soory also made it onto the list: when it comes to games, kids don’t discern between “online” or “video games” and board games.  They are all games, and all worthy of attention.  The features they listed as contributing to what makes a game a good game were:

  • When you have to use your brain: learning how to play the game and how to beat the game.
  • Surprises!
  • When you get to make something
  • Where there is an adventure or a quest
  • Collecting
  • Having different powers, things that you could never do in real life

Fun was not the first thing on the list, interestingly.  It was learning.  And winning, or at least competition with other players, was never mentioned.

Rapid prototyping

kids create a paper prototype of a game

Rapid Prototyping a game

I was then witness to the most creative and successful rapid prototyping exercise I have ever seen.  There is nothing like tight timelines to help put focus on a goal, and 30 minutes, it seems, is an excellent time limit.  In 30 minutes, and having been put into groups of 3, these kids came up with viable game concepts and created their games on paper, using glue, tissue paper, markers, and Styrofoam balls.  The primary piece of learning: no one builds a game on their own.  Teamwork, collaboration and learning how to build on other people’s ideas is a cornerstone not of game design and more broadly, software development.  It is, after all, the cornerstone of the opensource movement.

One team had a particularly great teamwork moment: the youngest in the group, a six year old, was insistent that there be an octopus character in a game that they had already decided was to be a matching game: no characters necessary.  But rather than see it either unworkable, or as a compromise that would dilute the game, they folded the idea into the game and actually made it better: the octopus became a wild card villain who introduced the idea of a timer into the game.  If the matches weren’t made quickly enough, the octopus would eat one of the elements of the potential matching pair and the player score would be necessarily lower.  Brilliant!!

Challenges unique to ages 6 to 8

Scratch workshop participant

kids as young as 6 can learn to develop simple games using Scratch

The kids were working with Scratch, an incredible game building and community platform developed by MIT.  Scratch allows kids to assemble computer programming code like puzzle pieces.  Each function, if/then statement, or piece of code snaps together and there are colour cues that help you know what kind of code you’re using.  Controls are orange, and Actions are blue, for example.  Scratch makes game design and development incredibly easy and intuitive, but there were challenges unique to this age group that are worth noting.

1) Typing Skills.  There is not a lot of typing in Scratch, but there is some.  When you don’t have the keyboard memorized from years of use, having to search for every key can slow things down.  It also takes up brain bandwidth that distracts from the actual task at hand.

2) Manual Dexterity.  When kids are 6 or 7 they don’t have the fine motor skills yet to be able to easily manipulate and place the puzzle pieces of Scratch easily or quickly.  They need the same kind of usability guidelines as seniors in many ways: use of larger targets, and less precision required for dragging and dropping elements.  Kids kept dropping their pieces into the wrong “slots”, and seeing really odd behaviour in their game.  At best, this was confusing.  At worst, they found it hilarious and it also tended to distract from the task at hand!

3) Reading.  All of the kids in the workshop could read, but at this age kids are rarely what we would call sight readers.  So their reading of the commands and even finding the right commands according to labels was slow.

4) Family literacy.  In many cases the parents were less digitally literate than their 6 and 7 year old kids.  Any effort to engage and educate kids that are still relying on their parents for their technology learning, who are getting most of their exposure to technology in the home, needs to also educate the parents to be more empowered to use computers as tools.

5) Finally: expectations that the computer would do everything.  The kids in the workshop were quick to expect that by doing one small thing , the computer would do the rest.  This is the primary reason I feel that its important to find a way to teach programming to pre-literate kids: so that they understand the problem solving process, the trial and error, the willingness to try something and fail, over and over, until its right.

It occurred to me that folks in my generation (that is, people who were born before voicemail, and laptops, and even calculators) tend to think that the Millenials’ tendency to google everything rather than “know” it is lazy.  It’s not.  The willingness to try something, make a mistake, google to see if anyone else has made the same mistake, and then learn how to make it better is the foundation of a kind of hacker ethic that is critical for kids to learn.

Kids need to need to develop the skills to fearlessly fail, and seek help, and try again.  To feel empowered to hack their world.  These will be the entrepreneurs and leaders of tomorrow.