I love teaching girls to code

Tomorrow, my classes and club will begin participating in the NCSS python programming  Challenge 2014. It’s our second year and I’m quite excited as it’s a really fun challenge.

Like last year, I introduced the software programming and design topic using dance; except this time, I actually linked it to computational thinking straight away – decomposition, pattern recognition, pattern generalisation and abstraction, and algorithm design.  Timing was on my side as the year 9s have been learning new dance steps in preparation for the Year 9 dance. Plenty of inspiration in terms of computational thinking processes, value of coding, control structures and even functions…with parameters!

There is so much hype on teaching kids to code – nearly 12 million views of code.org’s What most schools don’t teach and the rise and rise of many learn to code sites. There’s also the impending implementation of the Digital Technologies curriculum, etc. etc. etc. But for me, it’s far more than the hype – I actually love teaching students to code.

Learning to code is more than just about writing code; it’s the least of it, in my opinion. It’s all the other stuff about computational thinking and systems thinking and critical thinking and creative thinking. That’s a whole lot of thinking – and doing – right there!

With computation thinking, I think it’s important to point out that we all do most of this already.. in real life! Think of all the procedural and component-based stuff like recipes and routines we have, for example. What is less common is algorithm design, especially in school where we teach ‘tried-and-tested’ algorithms. This is true not just in mathematics where we teach (and test) mastery of algorithms but also in humanities subjects like English as we teach the “right way” to write essays, for instance. In schools, it’s rare for students to design their own algorithms, their own way of doing things.  Learning to code provides opportunities for algorithm design, encourages it even. And I love it.

Systems thinking is taught in many subjects. We are surrounded by systems. We’re made of systems. But, it’s rare for students to make their own systems. Learning to code provides opportunities for designing systems.

Teaching kids to code can be daunting and having set “courses” do help. Learn.code.org is a good entry point for beginners (students and teachers alike). I also recommend  NCSS python programming  Challenge . Both are challenge-based and fun.

I also think it’s a good idea to expose students to the experience of learning another language, mapping similarities and differences – the meta stuff. This includes reflecting on problem-solving methods and attitude when faced with difficulty.

I enjoy doing the challenges with the students. Sharing the joy of wrestling with knotty problems and working out solutions. I love that I have a window to how they think. I love it when they come up with creative ways of thinking and solving problems. I love that they don’t ask “when I’m I ever going to use this?” because it’s fun just getting through it.  I love it when they teach each other and work together and share frustrations and wins together. This, for me, is the fun stuff…and I’m lucky I get a chance to be part of it because I teach coding.

The best part is that I get to play along.

print (“NCSS 2014, here we come!”);

Game On 2013

At PLSM back in August I pledged to run a PBL unit getting my computing students to write video games and publish to a public audience. This may not seem like a lot to you but it was for me.

I’ve never written a video game before, let alone teach and inspire students to do so, using a programming language I’ve never really used before. My students have only just learned how to code – in Python – so, a different language (syntax, UI, etc).

While I’ve run PBL before, I’ve never had a public audience. I honestly didn’t think it was necessary until challenged at PLSM. And yet when I launched this PBL with my students, I told them they would have an audience beyond me, beyond the classroom,and possibly beyond the school.

My students took on to the task well enough BUT they did not take the public audience bit that seriously…..which, of course, challenged me even more! and made me more nervous as well. This PBL was running mostly AFTER formal assessments were done so I was also worried about the motivation factor as their efforts would not go towards grades or report comments.

The original plan was to have this Game On event with the public audience being the target audience of the game, i.e. our junior school (K-6 students).  But as end-of-year schedules typically are, it was difficult to find time to schedule the event, let alone synchronise with junior school as well. I’ve yet to share this with our junior school.

And, to complicate matters, we decided to use the event to launch the idea of a computing club ready for next year. The good thing about that was the opportunity to collaborate with @townesy77.

What I really wanted from a Game On event can be summed up thus: give my students a public audience, raise the profile of gaming, raise more interest in computing (why just play games when you can make them, right?), outsource feedback and give purpose to learning (software programming and concepts). Lofty aims needed a big event!

yada yada yada….let me just tell you a few of my strategies (which fortunately worked):

  1. I picked Scratch because no downloads/installs were required for either developer or game player. That, plus Scratch has a Studio feature which makes it super-easy to create and share a game arcade.
  2. I participated in the PBL. That is, I went through the PBL myself and designed and wrote my own game. Two, in fact. This forced me to learn Scratch more. Having to think through different algorithms demanded by the different student projects made me learn super-quick
  3. Get @townesy77 to do her magic…creating posters, organising and running the Xbox station for the Game On event, setting up the computer lab with generic logins ready to play the Game On Arcade, help me to announce the event at assembly, etc etc etc
  4. Get my students to talk up the event, invite their friends as well as speak at assembly
  5. The turning point was getting Google to sponsor the event. Much like how my Google excursion came to be, I just asked. Well, okay, I wrote a proposal! And they gave me enough funds to buy prizes and more besides (and really, this is worth another post…really, really). When I told my students about the sponsorship, they were stunned (as was I) and realised that I was serious about this public audience thing. I told them I sent a link to the arcade as part of the proposal (with only 3 games in it then) and that it wasn’t just me holding them accountable for delivery. Amazing!
  6. I tied prizes to feedback. For every 3 game reviews, each reviewer got a chance to win a prize (chocolates). The drawcard, however, was the Google goodies – which I got from my visits to Google (I just remembered I haven’t blogged about my other visit!). It’s a pity not all my students were at the event because they missed out on feedback that weren’t written – the buzz, the ‘oh, this is fun!’ comments, the ‘that looks good’, etc.
  7. Get my students to decorate and help out at the event.
  8. I called on my PLN to visit the arcade.

The Game On event today was amazing! My room looked amazing. The prizes looked desirable. The ‘sponsored by Google’ thing provided more gravitas. Many came and participated on the 2 main activities: playing Game On and Xbox. All up, I got over 60 entries to the feedback draw with contributions from all year groups! Ditto with Xbox participation. This is awesome stuff considering there were other events happening at the same time!

I’m knackered but my heart is full 🙂

Thank you to Bianca and Lee for staging PLSM and challenging me. Thank you to@townesy77 for being my mockingjay (Katniss). Thank you to Google Australia for sponsoring my event (special mention to Sally for giving me another Oprah moment) and Chris for opening my eyes (and my students) to the wonders of open source software. Thank you to Jeannette for getting her students to visit the arcade. Thank you to all the participants in the Game On event.

Most especially, thank you to my IST students for delivering! There wouldn’t have been a Game On event if there were no games at all.

Now for some pics:

GameOnArcade

Game On arcade – come and play 🙂

gameon1

prizes

gameon4

one of the banners. can you see the letters in Gallifreyan? hmm, maybe not – but it certainly attracted the Whovians!

gameon2

playing and giving feedback

gameon3

so many feedback sheets! yay!

Python Revision FUN

With Year 9 exams next week, I spent some time today revising some software development concepts with my class. With the end of NCSS Challenge ending a few weeks ago, it’s been a while since my students last coded in Python.

The focus today was on errors (ha!) particularly desk-checking and variable tracking. So, I wrote this code on the board:

code part 1

I got student volunteers to write out the values for variables: sites, mysites, i, len(mysites) and print.

Short as this code may be, it provided plenty of opportunities to revise a fair bit of content. Anyway, the sites the girls elected to have were Google, Apple and Sony, so print showed:

Option 0 Google

Option 1 Apple

Option 2 Sony

We then went on to editing the code to start printing from Option 1, instead of 0, etc., followed by this bit code (with opportunity to correct syntax errors for relational operator and if statement):google2And thus updating the value of print to show:

Option 1 Google

This is where we’re going

and I kept writing ‘on November 5′

We’re really going to Google?”

Are we really?”

Plenty of squeals and smiles.

To which I can only reply, “Wasn’t that a fun way to break the news?” *do it in code*

Two birds with one stone. And happy students to boot. Got to love that!

 

Why is it so hard to get girls to study computing?

At my school, an independent all-girls school, there are 3 Computing electives: one in years 9-10 – Information and Software Technology (IST)  and two in years 11-12 Software Design and Development (SDD) and Information Processes and Technology (IPT). I started in this school this year and I was told that while SDD had been offered for years, there were never enough girls to viably run it year-on-year.  We only have IST and IPT at the moment …and for how long?

One doesn’t have to look hard to know that there are initiatives to get more girls into computing, in general, and into software engineering, in particular. For example, Sydney Uni runs Girls Programming Network, UNSW has Robogals, TAFE has Digi-Girls (program seems to have stopped) and Google has BOLD diversity program. Strangely though, my precursory look indicate that Computer Science or Software Engineering degrees don’t seem to include computing subjects as pre-requisites….how will students know if it’s for them if they haven’t been exposed to it previously (just wondering)?

Why is it so hard to get girls to study computing?

Fact is, there’s no easy answer….which means, there’s no easy solution. But first, some ideas on the problem.

Not counting conversations I’ve had on Twitter particularly with @asher_wolf, the following articles I read recently are indicative of the complexity of this issue.

  1. To my daughter’s HS programming teacher – by Rikki Endsley (a woman in IT) about her daughter’s awful experience of sexism whilst still in high school (tbh, there were more issues in that school)
  2. Titstare app at Techcrunch – report/outrage over a showcased app that lets you ‘stare at tits’
  3. The Brogrammer Effect – looking at why there are even fewer women in IT now than in the 1990s; also contains some positive ideas
  4. What it’s like to be a woman in Y Combinator – an interview with Nikki Durkin, creator of 99Dresses; i.e. a success story of a woman in IT and I’ll get back to this article because she has some positive ideas
  5. Terri Oda, Mathematician, debunks ‘women are bad in math’ [sic] myth – includes a brilliant, entertaining and informative slideshow debunking assumptions that the lack of women in STEM fields is due to being worse at science and math

Before I was a teacher, I was also a woman in IT. Luckily, I was never subjected to any of the sexism that Endsley’s daughter had or even Durkin who was “denied” programming electives, being offered Textiles instead (ironically, I teach both at my school).  Durkin is quite upbeat about being in the minority saying it is an advantage because she stands out more and THAT is important for entrepreneurs. And like me, she also hasn’t suffered sexism – the cynics will probably add ‘yet’ to that. My wish for her is that she never does especially in a way that would hurt her positive spirit. This is to say that even though I didn’t suffer from it, I acknowledge that it exists. This is important because when I talk to my students about careers in IT, I can tell them of these 2 sides to the story….as well as some strategies to address it.

Durkin mentioned that part of the problem is that girls aren’t exposed to it. This was also mentioned in The Brogrammer Effect. These 2 articles confirmed my theory which inspired me to change the existing course scope to include software programming  (see related post); that was a risk because girls chose this elective thinking it will be on Digital Media and web design…no mention of coding. Anyway, as it turned out, most of the girls loved it….actually more than I thought.

Endsley’s daughter was lucky to have her mum talk about careers in IT. Most girls don’t have people talking to them about it/IT. As one lady said in The Brogrammer Effect, women just don’t know about the perks of working in IT like flexible hours and “work on amazing projects with amazing people” – certainly an experience I could relate to as well.

…..I’m beginning to sound nostalgic about a past career….let’s move on….

I needed to write this now to reflect on my practice and will use the Stop, Start, Change, Continue framework for some future actions….and this is where your ideas could come in really handy….please make suggestions.

Stop

  • feeling so depressed about the situation; that doesn’t lead to anything but ….well, feeling depressed

Start

  • talking to girls outside of my computing classes about the benefits of studying computing…and that doesn’t mean going into an IT career. Computational thinking is beneficial in and of itself
  • building a community of students who can pursue such interests

Continue

  • searching for ideas to understand and solve the issue
  • connecting with women in IT like @asher_wolf and @kcarruthers  who could be mentors as well as moral support (think: this is worth fighting for so don’t give up)
  • connecting with fellow computing teachers and participating in #ozcschat
  • trying to inspire current computing students
  • seeking help

Change

  • computing course scope to include more Computer Science stuff; after all, students already do plenty of movie-making and web-designing in other subjects

 

Can you help me here please?

OR should I just give up…and go back to IT (that’s adding 1 to women in IT, right?)…or maybe teaching Maths?

Learning to code

Software programming hasn’t been taught at my school for years. It was a bit of a gamble for me to include it in my programs for 3 subjects I teach: 9IST, 10IST and 11IPT. I was intending to do programming with the year 9s but decided to extend this to the year 10s in the hope of drumming some interest for the Software Design  HSC course and to the year 11s because the students expressed interest in learning.

Intro to programming

I used different ways to introduce the topic. First up were the year 10s who I got to play with Context Free Art (visual programming) which I barely learned at the CS4HS at Sydney Uni a few days before. Next up were the year 11s and I took them straight to Python for Beginners course with groklearning; the first couple of modules are free and sufficient to get beginning programmers going. Finally, with the year 9s, I went completely analogue. In groups of 3, they had to design a dance move for 8 beats and write it in pseudo-code. Another group gets to execute the move using the pseudo-code.

The year 9s had the best fun and, in my opinion, really learned what it means to design and code software programs. They experienced the challenge of breaking down the problem (dance move) into smaller components and think of sequencing, concurrent processing and even looping. Then there was the challenge of coding the move. Also, they realised that code – if unclear – could be interpreted in different ways or worse, wrongly (not as designed). They got the big picture: developing algorithmic-thinking and coding skills.  As quoted from @gilfer in a previous post, Software is poetry

… programming is not really the practice of writing lines of code. It is the art of taking big, intractable problems and breaking them down into ever smaller ones which can be understood, explained and then carefully assembled into a living, breathing work of art.

Software is poetry. It’s the expression of ideas in the most elegant form a programmer can devise.

Learning Python

I really enjoyed my road-test of NCSS challenge last year and so changed my new school’s IST course so I can include it in (he he).  As mentioned, both my years 9 and 10 are doing the NCSS challenge 2013 in its spiffy new groklearning platform. It fits right in with the IST syllabus (core topics + software design option) as well as my experiential approach to teaching. I even decided to make this one of the assessment tasks for year 9s; I’d have done the same with year 10s except their doing exams instead.

Both classes started the challenge today – Beginners. Starting with a quick campfire, I told them about pair programming (one of the strategies I learned yesterday as good for success in introductory programming – go on read it; I will try the other strategies later) and of course, remind them to have fun. It’s too early to tell but hey, I’m excited because the students were totally engaged in the challenge and were having fun….hard fun….as in, easy is boring kind of fun.  In both cases, I had to boot them out at the end of the period as they wanted to keep going – and we’re talking they’re supposed to go to recess or lunch….not another subject that perhaps they don’t like!

Perhaps it shouldn’t have surprised me but the year 9s did better than the year 10s. Was it the dance move intro? 🙂

There are a few year 9s who I will have upgraded to the Intermediate challenge as Beginners seem too easy for them. #proudmoment

I thought I’d share my here as well; feel free to reuse, upcycle, remix – if you do, all I ask for is feedback to how it can be better….atrribution would be nice, too. 2013 – 9IST – Assessment 3 – NCSS (PDF)

Using ClassDojo

I used ClassDojo before when I first ran my Digital Media Jedi Academy (also for 9IST). As before, I’m using it to communicate my expectations and award points. The points this time is for a request for an in-school competition outside of the national challenge. I do listen to my students and besides, using ClassDojo really forces me to look at each kid and see if they are showing expected behaviours…and my favourite is “exceeding expectations“. In this way, ClassDojo is my tool to remind me to check in with every kid as I have a visual reminder of eveyrone in my class and the ones who are not racking up points (are they not showing the expected behaviour or am I just not seeing it – go look, Mrs Mawby!). The points system is handy also for the teacher observation component of the 9IST task.

In case you’re wondering, I’m not using the Negative Behaviours (removing points) because in my 6 months with these classes, I’ve never had reason to control negative behaviour….yes, I’m lucky.

expected behaviour

expected behaviour

 

Okay, have shared heaps now and will stop – just wanted to leverage the excitement of the day to churn out a blog post 🙂

UPDATE 12 August 2013: I just added the task in PDF (I forgot to attach it last time….oops!)