MGS Computing Society page

From eLinux.org
Jump to: navigation, search

Back to Education.

Background

The Brief

However, after announcing the new Government Initiative to our Year 9 (14 year olds) last term (Winter 02011), HM decided (and I had to agree) that the boys had shown considerable enthusiasm and to capitalise on that we really needed start something. So we did. I'm using this wiki page to share what we're up to and why we're doing whatever we're doing (mainly making lemonade…). I'm really not holding this up as a model of best practice, just a record of what we're trying, with the hope that others might find it a useful starting point. Criticism and suggestions welcome, but be gentle with me. Discussion of this material is currently occurring on this forum thread[[1]]

About Me

I'm currently Head of Physics and a hobbyist programmer – teething initially on the BBC B and the Commodore Pet last millennium sometime, therefore RaspberryPi is an idea close to my heart. When the initial announcement was made, I flagged to HM that I was interested in helping (I have no idea how many teacher programmers we have but all the rest bar 1 sensibly kept their heads down). I'm a bit of a language junkie, enjoying the actual process of learning, so learning new languages is my idea of fun and sharing what I am learning is my raison d'etre as a teacher.

Currently at MGS

In the junior and lower schools (years 3 to 8) the boys get some exposure to SCRATCH. In the 6th Form (Y12&13) there is an options programme course on programming that samples SCRATCH, Alice, Java and Python, but the exposure is really shallow due to time constraints. In 6th Form Electronics the A2 course involves some PIC programming. It is interesting that low level programming is saved for A2. Abstraction is always difficult.

Resources Constraints

The Computing Services Department are willing to distribute SCRATCH anywhere I ask for it. The largest classroom we have is C2 which contains 30 PCs. Other IDEs make them, not unreasonably, very nervous indeed. The 6th form course is delivered in a room that is otherwise locked and each machine has its own virtual W98 machine into which the boys can install their own stuff, but each boy is tied to a particular machine. Teachers: Just me and one other brave NQT who has come into the profession late from industry where he has some Java experience. The current Head of ICT is also very supportive (he runs the 6th form options course but is also largely responsible for Staff ICT training so his plate is already very full – SIMS has a truly gruesome UI). We're hardly experts. For me, at least I am struggling with debugging my own code on a daily basis, so my head's in the game. Also I'm an experienced teacher and I have huge enthusiasm for the idea of introducing more people to programming.

External Support

The Behind the Screen guys http://www.behindthescreen.org.uk/ are only just getting going. Last week the entire site was just Lorem Ipsum – now it's just the last page (of 3). The projects are Squawk and IBM at Wimbledon. These are tough challenges. Support? Nothing yet.

The Hand I was Dealt

I was delivered the names of some 40 interested boys in Y9. They had been told that this year this would be entirely co-curricular with a commitment of one lunchtime and one hour after school per week. Next year and the year after that they would have some dedicated curriculum time leading to a GCSE-like qualification similar to the Extended Project. The idea of a qualification that is essentially curriculum-less scares the willies out of me as a teacher. I can't seem to find any hard edges to this diaphanous idea anywhere. Specifically, how will it function in detail? So here I am stepping out into the abyss trusting the bridge to assemble itself under my feet as I walk.

First Thoughts

The dichotomy of a first language seems to be this. You can either have something that gives early results and feedback, but is ultimately limiting (Scratch, Alice) or something that will take some time to get out of the command line into GUI (Java, Python, C++, HTML5/Javascript). Motivation is everything here, especially as a co-curricular activity this year, so the former is more important than the latter. However, you're never going to program that Wimbledon App. in Scratch, so sooner or later we're going to have to progress on to another language. Exactly "what", is up for grabs but the teacher expertise lies mainly in Java, so that's the current front runner. Pragmatically, Scratch is available and familiar, so we'll start with that. It's a pretty friendly place to start as you can't make typographical errors, so debugging is easier. It teaches the main control structures in procedural programming, but the individual sprites have a nice OO feel. There's a nod to local and global variables, action listeners and multi threading. However, unfortunately, you can't define a sprite class and then instantiate it. As this rather nice implementation of classic Space Invaders shows, each invader is its own sprite. http://scratch.mit.edu/projects/ifugu/1979494

What we actually did

Session 1 - Th 19 Jan 02012

Expecting some 14 boys for the first meeting 32 turned up (we ran out of computers). In the first meeting I re-introduced Scratch and looked at moving around sprites via a simple game I called "Bomb the Cat". If anyone wants some meat on the bones on exactly how I did that please contact me via my talk and I'll add it here.

Session 2 - Th 26 Jan 02012

In the second meeting I divided the boys up into the Scratch Jedis and the Padawans (ones who actually needed to be taught Scratch). The Jedis were organised into teams and told to implement a classic arcade game, dividing up the coding between them. They decided on Pong, Pacman (two groups) and Super Breakout. The intention is to then push them on improving the user experience and improving the gameplay once they claim to be "Finished". The Padawans continued with Bomb the Cat and were introduced to variables to handle score and lives and we also looked at changing the sprite "costume" on the collision event. Both approaches seemed to be successful for their intended audience in as much as the boys seemed to be enjoying themselves.

Session 3 - Th 2 Mar 02012

Unfortunately I was ill all this week, so essentially everyone carried on with what they were doing from last week which was fine. My partner in crime held the fort, circulating amongst the boys and doing 1 to 1 support as per the original intention. We also added a Monday lunchtime support session for "How do I...?" and debugging queries. As I'm not intending that anything new is taught to the whole group (or either of the two sub-groups) during these sessions, I'm not adding them to this log.

Th 9 Mar 02012

Was Form Tutor Day and so we had no club meeting that day.

Th 16 Mar 02012

Was Half Term.

Session 4 - Th 23 Mar 02012

This was Y9 Parents' Evening. Clubs are usually cancelled on PE nights, but I thought this would be a shoe-in, as all the boys in the club are Y9 - a limit by design - as they all had to be in school anyway, so we went ahead. As it happened, a good chunk of them went home for tea before returning with their parents, so we only got about 50% attendance.

Despite that, I pushed forwards (it had begun to feel like we were never going to get another club meeting after the three previous weeks were all non-starters for varying reasons). The content this week was two fold. Firstly I paced in the Wimbledon app, which had just gone live on the BtS website [2]. This is intending to use various non-code methods of expressing the App design - Dia - which is an OS Flowcharting program. A quick glance seems to suggest that expressing an App design as a flowchart is going to be hard work, although it'll be perfect for my Electronics classes. Flowella is much more graphical, but it's still static. A good halfway house. AppShed actually produces and emulated App in a browser. There was initially a flap because the AppShed website T&Cs say you have to be over 18 to sign up, but BtS (bless them) got straight on to AppShed and got it cleared for educational use for the under 18s (although it may be a little while before the website reflects that, apparently). The focus on the project is split evenly between functionality and design, and I am very encouraged by this first offering, although it is shy of the coding we're also aiming for, so although I'm selling it hard to the boys and will fully support it, I'm also expecting them to go away and do most of the work independently. Oh, and inevitably AppShed and the video content on the BtS website (which is some of the briefing documentation) was blocked by the content filtering policy, so I had to sort that out too (but it caught me wrong footed at the time). The Jedi then continued with their classic games projects.

The other content was a discussion with the Padawans about what might constitute compelling game play. We looked at the fact that most games are not uniformly hard, they get harder. Classically, there is a narrative structure with each "Act" having its own climax, so you often end up with "Levels" and an "End of Level Boss". This gives your players occasional downtime to get a drink or just wipe their sweaty palms and is good psychology. Each new "Level" tends to introduce new elements and difficulties to the game. Players will often want to know how well they did compared with other players and themselves in the past, so games often include a high score if not a table of the top 10. We also talked about the idea of "to err is human" and therefore, the ending of the game due to a single error is very frustrating, thus the concept of lives (and the idea that by scoring or achieving something tricky in-game awards more lives). They then went back to their games to incorporate these ideas.

Session 5 - Th 1 Mar 02012

Our first meeting without other clashes for a while. Only about 2/3 attended. I think it will take a little while to build the attendance back up - habit is everything with young men. Here I was determined to move things forward, although the boys had free choice whether to try the new project I suggested or continue to work on the project they were already involved in. Certainly the Jedi are progressing well with some very pleasing implementations of Pong, Breakout and Pac Man.

Today's project was to press on the edges of what SCRATCH is capable of/suitable for before we move on to another language. I told them that if they really wanted to impress me, then they should try to produce a simple spreadsheet program in SCRATCH (!) but as a halfway house, I suggested Nought and Crosses (Tic-Tac-Toe). This should include a computer AI that plays one side. That should challenge them ;)

I also re-visitied the IBM Wimbledon App project for BtS for those who had missed it last time due to Parents' Evening.