June 23, 2017

Nine ideas for teaching Computing at School from the 2017 CAS conference


Delegates at the Computing at School conference 2017 #CASConf17 answering diagnostic questions, picture by Miles Berry.

The Computing At School (CAS) conference is an annual event for educators, mostly primary and secondary school teachers from the public and private sector in the UK. Now in its ninth year, it attracts over 300 delegates from across the UK and beyond to the University of Birmingham, see the brochure for details. One of the purposes of the conference is to give teachers new ideas to use in their classrooms to teach Computer Science and Computational Thinking. I went along for my first time (*blushes*) seeking ideas to use in an after school Code Club (ages 7-10) I’ve been running for a few years and also for approaches that undergraduate students in Computer Science (age 20+) at the University of Manchester could use in their final year Computer Science Education projects. So here are nine ideas (in random brain dump order) I’ll be putting to immediate use in clubs, classrooms, labs and lecture theatres:

  1. Linda Liukas demonstrated some intriguing ideas from her children’s books and HelloRuby.com that are based on Montessori education. I shall be trying some of these out (particularly the storytelling stuff) at code club to keep girls involved
  2. Sue Sentance and Neil Brown from King’s College London gave an overview of some current research in pedagogy.  They discussed research questions that can be tackled in the classroom like (for example) do learners make more progress using visual programming languages (like Scratch and Blockly) or traditional text-based languages (like Python and Java etc)? Many of these research questions would make good projects for undergraduate students to investigate in secondary schools, see research on frame based editors, for example.
  3. Michel Wermelinger from the Open University demonstrated using iPython notebooks for teaching data literacy at the Urban Data School. Although I’m familiar with iPython, it had never occurred to me to actually use iPython in school for teaching. It is a no-brainer, when you think about it, even for primary, because you have your code, inputs and outputs all in one window, and can step through code execution instead of (or as well as) using more conventional tools like Trinket, Thonny or IDLE. Data literacy is fun to teach.
  4. Miles Berry from the University of Roehampton demonstrated Diagnostic Questions in Project Quantum. These are a collection of high quality quizzes to use interactively for example as hinge questions, where teaching is adapted depending on answers given, like this multiple choice question:
    Consider the following Python code:
    a = 20
    b = 10
    a = b
    What are the values of a and b?
    A: a = 10, b = 10
    B: a = 20, b = 20
    C: a = 30, b = 10
    D: a = 10, b = 20

    You’ll have to try these five questions to check your answer. The useful thing here is that DiagnosticQuestions.com (the platform on which this is built) allows you to see lots of responses, for example each answer (A, B, C or D) above was selected by 25% of participants. You can also view explanations which illuminate common misconceptions (e.g. the classic mistake of confusing assignment with equality) as well as providing a bank of free questions for use in the classroom.

  5. Mark Guzdial from GeorgiaTech discussed using learning sciences to improve computing teaching. He demonstrated predictive questions (e.g. ask students What do you think will happen when we run this code? before actually executing it) alongside what he called subgoal labelling. These are simple ideas (with proven benefits) that can be put to use immediately. I’ll also be trying the Live Coding (with Sonic Pi) and Media Computation he demonstrated asap.
  6. Laurence Rogers demonstrated Insight: Mr. Bit  this looks like a good app for using BBC microbits in the classroom, connected to a range of sensors, provided you’ve got access to iPads.
  7. A copy of Hello World magazine was in the conference bag. The summer 2017 issue has an unusual article from Ian Benson from Kingston University and Jenny Cane describing their use of the Haskell programming language to teach 5-7 year olds to reason symbolically and learn algebra before arithmetic with help from Cuisenaire rods. The Scratch Maths project at University College London are doing similar things, building mathematical knowledge using Scratch, rather than Haskell. These are experimental ideas you could try out on unsuspecting (junior) family members.
  8. Lee Goss from Barefoot Computing, described the free CPD for primary school teachers on offer from BT. I’ve signed up and hope to plug some of the shortcomings in the Code Club Curriculum.
  9. Richard Jarvis demonstrated appJar, a handy Python library for teaching Graphical User Interfaces (GUIs). That’s Jar as in Jarvis and Jam, not JAR as in Java ARchive BTW. I’ve not tried GUIs at code club yet, but appJar looks like a good way to do it.

There were lots more people and projects at the conference not mentioned here including tonnes of workshops. If you’re interested in any of the above, the CAS conference will be back in 2018. Despite the challenging problems faced by Computer Science at GCSE level, it was reassuring and inspiring to meet some members of the vibrant, diverse and friendly community pushing the boundaries of computing in schools across the United Kingdom. Thanks again to everyone at CAS for putting on another great event, I will definitely consider attending next year and maybe you should too.

January 20, 2015

What is effective teaching? The willing definition via Grant Campbell

teaching large classes

Teaching Large Classes: Discussion. Creative Commons BY-NC-SA image via Giulia Forsythe on Flickr @giuliaforsythe

(This post is part of a series about the New Academics Program (NAP), I’ll be using this blog to scribble notes about the NAP as I work my way through it.)

Ask ten different people what effective teaching is and you’ll get ten different answers. Here’s a handy definition (let’s call it the willing definition for now) from Grant Campbell, currently Professor of Chemical Engineering at the University of Huddersfield. The original source may possibly be from elsewhere. [1]

 “Effective teaching is inclining people to learn willingly what they would otherwise be disinclined to learn.”

So according to this definition, good teachers make you learn things you wouldn’t normally be interested in, or as campbell puts it Teaching easy interesting stuff is easy. Teaching difficult dull stuff is more of a challenge.

Is this definition useful?

This is an unusual definition, but is teaching easy interesting stuff always easy to do? Probably not. It’s also not always obvious to teachers (or students) how hard or easy things are going to be to learn. Appearances can be deceptive.

Imagine trying to teach somebody something they didn’t want to know or poorly understood. Like the Physicist Akram Khan @ProfAkramKhan, who has been trying to teach the novelist Will Self about Particle Physics, that’s hard (especially with a deliberately difficult student like Self) but the results are entertaining. Most students in higher education are considerably more willing than Self, and more motivated to work their way through the inevitable dull hard stuff that comes with every subject, so IMHO, effective teaching is about both the dull and the exciting.


  1. Diane Salter (2013) Cases on Quality Teaching Practices in Higher Education ISBN-13: 978-1466636613

Blog at WordPress.com.