Analysing Code – Python lesson for KS4

I’ve just taught this lesson and I thought I’d share it.squirrel-worksheet

I used the excellent “Squirrel Eat Squirrel” pygame program from Al Sweigart at the Invent With Python blog. I made a worksheet to help the students through analysis of the code. They had to use all their coding skills to decipher the finished code, and to “hack” it – change things and improve the code. I’ll elaborate later. Enjoy!

KS4 Worksheet – Coding – Squirrels

Still a geek

webcam1We’re having some work done on the house, as you can see. But wait, that’s not your average smartphone pic from out the window, what’s that URL snippet?

Yes, I set up a webcam to watch the builders at work. As a teacher I don’t have any time to watch, but still.. it’s a geek project and I’m a geek. This is how I did it. For free…

  1. Find an old device. I have a Tesco Hudl that nobody uses any more. You could use an old smartphone.
  2. Install an IP webcam app. I use IP Webcam  Others are available. Configure it and point it where you need it. Mine is in the bedroom window. While you’re at it, get the device powered up constantly, so you’ll need a charger and cable that reaches to the device.
  3. View the webcam on your local network. You must find out the IP address of your device, usually by logging in to your router. Mine is a Virgin SuperHub and it’s there under DHCP. So the device is 192.168.1.20 today. Great, point your browser at http:// 192.168.1.20: 8080 you should see the webcam interface. Super!
  4. While you’re in your router, you have to make sure the device stays on the same local IP address, this is called DHCP reservation. Get it’s current address reserved. So far so good, you have a webcam you can view when you’re on your home LAN!
  5. To make the webcam visible outside your home, you need to go back into your router settings. Find “Port Forwarding” and forward the port (8080) for the device’s IP address (192.168.1.20) to the internet. This makes the webcam visible to the outside world.
  6. You’re nearly done. Find out your current IP address – open a command prompt and type “ipconfig” on Windows  or open Terminal and type “ifconfig” on a Mac – or because it’s C21 and we’re lazy… type “whats my ip” into Google. Say it’s 89.10.191.34 for argument’s sake. Type “89.10.191.34:8080” into the address bar. Boom! Webcam on the web!
  7. Because home IP addresses change often, you might want to set up “Dynamic DNS”. This means you can use a URL to access your home IP address and when it changes, the DNS entry for your URL changes to point at your new address. I use “FreeDNS” from afraid.org, they are geeks but… it’s free and does the biz. If youre a geek too, set this up.
  8. If your device keeps going to sleep or going offline, you need a “keep alive” app. Try this one.  Now you’re done, and like me, you can watch builders do nothing for much of the day!

I post this for two reasons:

a) to prove I am still a geek
b) in case I ever forget how to do it. Time and tide etc…

Have a great half term.

 

 

Mind Mapping the GCSE course

I’m preparing some materials to refresh the walls of my classroom, during half term. I’ve grabbed some free posters from CAS etc. but I could not find what I really wanted, a Mind Map of the course. So I made one.

gcsemindmap

 

Above is a screengrab. I made this with the free open-source FreeMind tool. It’s a bit of a minefield of a tool, but I tried it because it is free and creates only XML so my data will never get locked in. As the makers of FreeMind say “If you have a lot of maps created by FreeMind and you want to switch to another program, writing a conversion program should be easy, especially if that program features Visual Basic scripting facility.” – Er, yes, no problem for this CS teacher. Ahem.

So if you like this, here is a link to a zip file on my Google Drive of various formats to use with FreeMind. I particularly like the clickable HTML, but I have not yet worked out how best to exploit it. Ideas welcome!

Let the kids code, first.

It’s a bit odd that I have discovered, halfway through the year, how to manage a couple of year 7 classes I’d been struggling with. You see.. I was spoilt in my training school.

In training, just over a year ago, I had a lovely huge classroom with tables in the middle and computers around the outside. As a trainee I would sit them in the middle, at tables without a computer, be impressive and try to get the theory delivered early. I would ‘play tricks’ on them, using a piggy bank resulting in the learning of variables, or doing the “robot walk” to teach algorithms. I’d hope they had got it, then let them migrate to the computers placed around the outside of the classroom so they could code in Scratch. That worked in training.

So I have been trying this all year with limited success, and suddenly, today, I tried something else. I reversed it. Coding first, theory later. And it worked. “Get on Scratch, finish your stage and choose a Sprite” I said, not 5 minutes in. After 20 minutes, when I asked for calm, and listening… I got them back. “When you use the code block ‘if’ to decide whether something happens, or not, what is that called?”

Selection, they replied. The rest of the lesson was a breeze. Most Y7/8s just need to get on and code, after 15-20 minutes they are ready to learn what they have just done. So my advice today is…

Let them code first. Often they are very keen computer scientists, sometimes they are just keen to get on the computer. Let them do it, it’s why they love your class. Give them 20 minutes. Then do the theory. It should work for most.

Winding down

germanelidorEdu-blogging will continue soon, I promise, however this is just to say I’ve managed to read two books for pleasure during the break, and I recommend you do too. Reading is escapism for me, it exercises the brain – something I can never do without – but frees me from the incessant cycle of reflection we teachers get into during term time. It took me a week and most of the second book but I have managed to stop thinking about teaching for a couple of days – at least I’ve stopped micro-managing little aspects of my job like mentally rearranging seating plans – and I’ve started to think “bigger picture” like how to engage kids on the thorny topic of binary!

I have two books to thank: an old childhood favourite revisited, Elidor by Alan Garner, which I read over two days (Christmas Eve and Christmas Day) and then a fairly random find: “Seeing Other People” by Mike Gayle. Both come recommended for clearing your head of butterfly-like edu-detritus (edutritus?)

Please do enjoy the break. I’ll be back soon, my own PPA begins again tomorrow so I’ll probably post about my planning and maybe a review of the term. Merry Christmas!

On PGCE block A and “kick the dog” days

At the invitation of my PGCE tutor @EllieMMU, I attended MMU today to visit the next PGCE cohort. I made a presentation for the event, using Prezi which is a lovely non-linear presentation platform, free for basic use at prezi.com. My Prezi is here (a free account requires all your Prezis are public, so avoid using personal data or pics).

I invited the class to write post-its with their current issues, as they are in only week 5 of teaching practice, I tried to think back to a year ago and how I solved those issues. Of course, as always in first placement, the two biggest issues they are facing are are planning and behaviour. Without going into too much detail (sorry Ellie for overrunning!) Some behaviour tips I shared are:

  1. Exude an air of authority to gain authority. Some ways you can do this include: be standing smartly outside the classroom as they arrive, and correcting uniform errors. Give out merits or raffle tickets* to any students lining up correctly, in silence. Don’t accept rowdy behaviour outside or inside your classroom and send back out any children who come in pushing and shoving. These all send signals that you are in charge. Have something to do on entering the class, a “Do Now” or “Connect” activity on the board, instruct them to do it, and reward the first to start.
  2. Students who are just not working can be tricky, they are not disrupting the class, what to do? Speak to the student and tell them politely they are making the wrong choices, that they must work or there will be consequences. Give a quick ultimatum such as “When I come back in 1 minute I will see the title and date and one sentence and then we’ll discuss what happens next, thank you.” – Note the choice of language, as if the student has already complied. This is important. Now walk away and return in a minute, and reward if they have complied. “Now we’re working together, super, have a raffle ticket and see how much you we can achieve today! Looks like I won’t have to speak to your form tutor after all.” – I’m using “we” to send the message this is teamwork. I’m again suggesting with my language that the poor choices have ended. And I’ve suggested that a wider conversation might happen if the student chooses not to work. It takes a very belligerent student to go against this kind of language.

* I have a raffle ticket system, so if the students answer a question or work hard they get a ticket, for small prizes like rubbers and single Starburst sweets 🙂

On planning, one who shall remain nameless admitted he had spent 8 hours planning 1 lesson, and I remember being much the same a year back. It gets easier, this week I planned the week (19 lessons) in 4 hours, so that’s 12 minutes each give or take a few. My tips were

  1. Once you have a Learning Objective and some preferred Outcomes, beg, steal or borrow resources. Your mentor will have plenty, ask for them. Use “The Starter Generator” and “The Plenary Producer“. Use CAS, and… with permission from the owner Mr O’Donohoe… use his JellyMarmite resources. Don’t make everything from scratch, it will kill you. Don’t edit that slide for an hour to make it perfect, if it will be on the board for 2 minutes. If you know your stuff, you can talk about it.
  2. Minimise Teacher Talk. Doing is better than listening for behaviour. Keep talking segments to under 4 minutes. Use videos (bingo cards are amazing for improving engagement with video segments), make a quick Voki avatar segment so a robot or Barack Obama tells the students what they are doing next… Anything but “chalk and talk”.networks
  3. And don’t be afraid of giving discovery tasks without prior learning. As Piaget told us, the best learning is constructed in the mind of the learner from their own experiences. For example, a network topology card sort (see right)… give them the cards… let them have a go… they will be very proud of themselves if they get it, and totally unashamed if not. You then demonstrate the correct answer after the exercise, and everyone wins.

 

But most importantly, today reminded me just how far I have come, and how much is possible in a year. Be very proud you are entering the most noble profession. It’s worth it. I talked about my “kick the dog days” today, and it occurs to me that PGCE is hard because it is an endless cycle of making “mistakes” and correcting them. You’ll probably make hundreds of tiny errors this year, learn from them, and not make them again.  That’s hard. But worth it.

CAS Manchester Conference 2016

CAS Regional Conference – Manchester

Saturday 15th October 2016, University of Manchester

Introduction

This was my second Manchester conference, and the best so far. There were over 100 delegates from all over the North of England, Midlands and Scotland. Presenters included Master Teachers, University Tutors and Education consultants with many years of teaching experience. I chose workshops on 3D printing, “Flowgorithm” flowchart software, Flipped Learning and MicroPython, and they were all excellent. See lots of pictures from the conference here on my Storify, and read on for details.

3D Printing with Tinkercad

Carl Simmons of Edge Hill (author of Teach Computing which is on every PGCE syllabus) demonstrated the Ultimaker 3D printer and some tools and pedagogy. image001We then had a hands-on session and I designed a Halloween pumpkin with Tinkercad – a free web-based 3D design tool which is pretty easy to get to grips with.

According to Carl, 3D printing is great for teaching algorithms, process flow, creativity and optimisation (efficiency of algorithms etc.) and of course, emerging trends in technology.

Flowgorithmimage002

Ellie Overland of MMU (see banner image) introduced this new, freeware software tool that provides a drag-drop flowchart editor, but then converts to program code automatically. It’s a game-changer in many ways, and there were several delegates who were worried about the impact on controlled assessments, might the students just use this to generate their code?

I like the fact that among the languages the program supports (Python, Java, javascript, Ruby) it does pseudocode. It’s not Edexcel standard but it’s still potentially a useful tool. I may introduce this tool to our Y8 scheme to complement the Flowol work and link up the pseudocode to flowcharts and program code. Try the program for yourself (free download), or have a look at this video I shot on the day.

Flipped Learning and MOOCs for GCSE

One of the best workshops, the presenter Alan O’Donohoe is an education consultant with 20 years ICT/CS teaching experience, and now runs the “Exa Foundation”, a not-for-profit organisation providing support for teachers of Computing across the UK.

Alan introduced “Flipped Learning” to his classes many years ago. This is the principle by which students learn independently outside the classroom (i.e. for homework), and then present their learning to the class. In Alan’s model for GCSE Computer Science, he provides an online learning environment called a “Massive Open Online Course” or MOOC, and the students use this to learn the week’s topic, and each creates a single page “Mind-Map” style summary of their learning. Alan marks these, taking about 1 minute per student. He then has one session each week where the students present their learning to their peers, which Alan facilitates ensuring that all the material is covered, and the rest of the week is free for project work.

I think it might be worth piloting this with one topic in KS4 higher ability classes, and I’ll consider how I might do this with a Y9 class in the Spring term.  In the meantime, Alan is simply a mine of useful resources, which he collects here at the memorable URL of tinyurl.com/jellymarmite

At that page, there are 7 pages of links and notes, way too many to list here, but these are my highlights:

  • Lots of free Python books http://pythonbooks.revolunet.com/
  • Skulpt – Python in the browser, can be used on any computer, students can do programming homework anywhere, no need for IDLE or RDS connection to school. See also Repl.It
  • Various webinars as CPD for teaching computer science.

On the next pages I explore the MOOC.

J276 MOOC Overviewimage003.png

Alan’s latest MOOC, based on the current OCR spec J276, is available to all schools for the nominal fee of £100 per school. Considering Codio is upwards of £1000 just to learn coding, this sounds extremely good value for a whole GCSE scheme!.

As Alan advised, all the UK exam boards overlap at least 80% of their spec, so the fact it is OCR-based does not make it irrelevant. See the image on the right to see what topics are included in the MOOC (the more practical topics are not included as they are not suitable for flipped learning).

MOOC abstractimage004.png

A typical MOOC topic page looks like this, with several links to research resources, and embedded videos to watch. The student uses these resources to learn the topic, and creates a summary page to show they have understood the topic. They then present in class what they have learned. This is Systems Architecture Topic 1: The CPU.

Flipped Learning

Alan has had such success with this technique, he describes it as like “changing square wheels for round ones”.

Whether we go “flipped” or not, the MOOC resource is excellent.

Using Mu and Micro:Python

Dave Ames of Edge Hill ran this session. We used the free “Mu” editor to program a Micro:Bit. We used the Raspberry Pi as the development platform, and later connected up the Micro:Bit to the Pi and used it to interact with Minecraft.image005.png

Mu is an excellent editor, and the Micro:Python language is the same familiar Python we use in IDLE.

The session included programming both the Micro:Bit using Mu, and programming the Minecraft-Pi API using just IDLE, and then connecting the two bits of hardware together, to make the Micro:Bit cause actions in the Minecraft world. You can see my videos here and here.

I am currently gathering fun and useful activities for a Micro:Bit club and I’ll add this to the list.

Summary

The conference was excellent, I exchanged contact details with several local teachers and maintained strong relationships with local universities. There were other displays including a Lego Rover programmed via a tablet in a logo-like language, and news that the next Manchester Hub will feature a Micro:Bit session with a 25-lesson scheme giveaway for free.  Feel free to comment below if you have any questions.