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 that I supervise. 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.
  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 or IDLE.
  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 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.

May 5, 2017

Venturing Further in 2017 with student entrepreneurs in Manchester #VentureFurther

venturefurtherVenture Further is a business startup competition that awards £50k of prize money to eight student entrepreneurs in Manchester. Running annually, #VentureFurther showcases the enterprising talent of students and graduates of the University of Manchester in four themed categories: Business, Research, Digital and Social. Here is a quick summary of results from the 2017 competition, now in its twelfth year.

This year there were were 16 finalists selected from a total of 73 entries. I was pleased to be invited to judge on the panel for the digital category, which saw some impressive and well polished business propositions. It was really was hard picking the winners!

The awards ceremony and dinner were held in the Whitworth Hall and attended by members of the North West business community. After a keynote from Dale Murray CBE on her distinguished career as an entrepreneur and angel investor, the awards were announced as follows:

Business category: Commercial potential for new products or services

First prize: Eleanor Trimble, Siddharth Kohli, Mohammed Abdulaal, Meera Dulabh, and Dr Alex Casson for Neurolytics, working on biometric data analysis

Second prize: Amir Khorasani and Mohammad Hajhashem for Russell Food Group’s Locally Sourced, a farming supply chain disruptor.

Runners-up: Bilal El Sayed and Benedict Vardey for UWispa a mobile phone case and Crystal Bromwell for Wardrobe in the City a clothing-rental subscription service

Research category: Businesses that focus on the application of university-based research

First prize: Salman Malik and Muftau Akanbi for Microspray Technologies enabling industrial and research scale particle manufacture using aerosols.

Second prize: Denis Bandurin and Alexander Obraztsov for GrapheX, developing portable x-ray sources with graphene-based cathodes.

Runners-up: Mohammad Nazmul Karim and Shaila Afroj for 2DTronics wearable e-textiles and Niall Coogan and Barry Johnston for Cable Coatings a novel low cost method to boost electricity grid capacity.

Digital category: Businesses that apply digital technologies

First prize: Rishabh Jindal for Otterly a food ordering service

Second prize: Michal Wisniewski and Edmund Moore for Simple terms crowdsourcing and gamifying recruitment.

Runner-up: Mubashshar Rahman, Jonathan Tang and Ali Ibrahim for HollaMe a student services exchange and Caleb Conner for SpareSpace Airbnb for luggage

Social cateogory: Businesses that improve the lives of people and communities

First prize: Duncan Swainsbury, Eve Chancellor, Jessica Stalmach, Ashton Coates and Neil Stewart for Bounceback Education a ‘buy one, donate one’ tutoring service giving disadvantaged students access to free tuition.

Second prize:Kathryn Pierce for Somewhere MCR CIC a social enterprise supporting the LGBT community.

Runner-up:Salman Malik and Jamshed Malik for Second Shave Barbers CIC a barbershop for homeless people and Hamza Arsbi and Farah Abu Hamdan for The Science League an educational platform

Congratulations to all the finalists, making it to the final 16 is an achievement in itself. Thanks goes to

If you would like to get involved in the next round of the Venture Further competition in 2018, as competitor, sponsor or supporter see the Venture Further website and details of the 2017 competition on LinkedIn.

July 29, 2014

A simple and useable classification of software by Aral Balkan via Wuthering Bytes

Three kinds of Software: Enthusiast, Enterprise & Consumer by Aral Balkan

Three kinds of Software: Enthusiast, Enterprise & Consumer by Aral Balkan

It’s getting pretty hard to do anything these days that doesn’t involve software. Our governments, businesses, laboratories, personal lives and entertainment would look very different without the software that makes them tick. How can we classify all this software to make sense of it all? The likes of this huge list of software categories on wikipedia are pretty bewildering, and projects such as the Software Ontology (SWO) [1] are attempting to make sense of swathes of software too. There’s lots of software out there.

Aral Balkan, one of the people behind the Indie Phone, has proposed a simpler classification which will appeal to many people. In his classification, there are three kinds of software (see picture top right), as follows:

  1. Enthusiast software: like a classic car. We tinker with enthusiast software, in the same way motoring enthusiasts tinker with their classic cars. To the enthusiast, it is a joy when the software breaks, because that’s part of the fun, fixing it and getting it back on the road. However, you wouldn’t drive your classic car during your day job, or commute to work. Like a classic car, enthusiast software, is largely for weekends and evenings only. Raspberry Pi software is a classic example of enthusiast software made in garages by hobbyists.
  2. Enterprise software: like a juggernaut truck. We use enterprise software, because our employers mandate that we do so. It might not be fun to drive, or work particularly quickly, but enterprise software is often a necessary evil to get work done on an industrial scale. Cynics will tell you enterprisey software is slow because the engineers have:

    “…added a delay of 3 seconds to every action and now users are feeling it’s enterprisey”.

    Cynics will also tell you, enterprise software has been made by architecture astronauts, purchased by clueless decision-makers who don’t have actually have to use the software themselves, but have been hoodwinked in notorious“vendor meetings” which could explain the unpopularity of some enterprise software. But that’s another story…

  3. Consumer software: like a family saloon car. We rely on consumer software to get the job done, it is purely functional, does the job in a reliable (and boring) way on a daily basis, just like the vehicle you commute in. Consumer software can be found on your mobile phone and most consumer software is Application Software aka “Apps”.

I came across Aral’s classification at Wuthering Bytes last summer, a small and friendly festival of technology in the Pennines. Wuthering Bytes is running again next month, August 15th -17th and is well worth attending if you’re in the North of England and fancy having your bytes wuthered [2]. It’s a great mix of talks by the likes of Sophie Wilson and many others combined with hands-on activities in beautiful Happy-Hippy-Hacky Hebden Bridge for a bargain £10 per day. It’s software (and hardware) for enthusiasts (not enterprises or consumers). What’s not to like?


  1. Malone, J., Brown, A., Lister, A., Ison, J., Hull, D., Parkinson, H., & Stevens, R. (2014). The Software Ontology (SWO): a resource for reproducibility in biomedical data analysis, curation and digital preservation Journal of Biomedical Semantics, 5 (1) DOI: 10.1186/2041-1480-5-25
  2. Brontë, Emily (1847) Wuthering Heights

June 15, 2012

Alan Turing Centenary Conference, 22nd-25th June 2012

Alan Turing by Michael Dales

The Alan Turing statue at Bletchley Park. Creative commons licensed picture via Michael Dales on Flickr

Next weekend, a bunch of very distinguished computer scientists will rock up at the magnificent Manchester Town Hall for the Turing Centenary Conference in order to analyse the development of Computer ScienceArtificial Intelligence and Alan Turing’s legacy [1].

There’s an impressive and stellar speaker line-up including:

Tickets are not cheap at £450 for four days, but you can sign up for free public lectures by Jack Copeland on Turing: Pioneer of the Information Age and Roger Penrose on the problem of modelling a mathematical mind. Alternatively, if you can lend some time, the conference organisers are looking for volunteers to help out in return for a free conference pass. Contact Vicki Chamberlin for details if you’re interested.


  1. Chouard, T. (2012). Turing at 100: Legacy of a universal mind Nature, 482 (7386), 455-455 DOI: 10.1038/482455a see also nature.com/turing

February 25, 2010

Apache Maven: A Misbehavin’ Build Tool?

Filed under: ChEBI,programming,technology — Duncan Hull @ 11:00 am
Tags: , , , , , ,

Chocolate Tools by JanneMOne of the many tools we use in our team to manage the development of the ChEBI software is an automated build tool called Apache Maven. Opinions are often divided on whether Maven is a good or a bad thing. Most of them are very subjective, argumentative and often very extended. See why does Maven have such a bad reputation? and 25 things* I hate about Maven for examples.

All this is fairly predictable, and I could add a few tales of Maven woe to the pile myself. But wondering if Maven is any good reminded me of something Bjarne Stroustrup [1,2,3] (one of the people behind the C++ programming language) once said in an article on the problem with programming:

“There are just two kinds of [programming] languages: the ones everybody complains about and the ones nobody uses.”

Actually when you think about it this applies to build systems too, there are two kinds. It also applies to just about any technology you care to name, you can crudely classify them all into two categories:

  1. Those technologies everybody complains about…
  2. … and the rest, that nobody uses.

So is Maven any good? Worth using? Worth the pain? Depends on who you ask. What we can say for sure, is that like many technologies, everybody complains about it.


  1. Bjarne Stroustrup (2010). Viewpoint: What should we teach new software developers? Why? Communications of the ACM, 53 (1) DOI: 10.1145/1629175.1629192
  2. Bjarne Stroustrup (2007). Evolving a language in and for the real world: C++ 1991-2006 Proceedings of the third ACM SIGPLAN conference on History of programming languages DOI: 10.1145/1238844.1238848
  3. Bjarne Stroustrup (1993). A history of C++: 1979–1991 The second ACM SIGPLAN conference on History of programming languages DOI: 10.1145/154766.155375

* Only 25? That seems like quite a short list to me.

[CC-licensed Chocolate Tools image by JanneM, some commentary on this post over at friendfeed.]

December 3, 2009

It’s Snowing (JavaScript)!

You know it’s December when it starts snowing in your web browser. Let it snow, let it snow, let it snow!

Or programmatically:

snowStorm = new SnowStorm();

There was a time, not so very long ago when JavaScript snow would have been “best viewed in browser x”. Thankfully now JavaScript much more reliable, the JBrowse [1] Genome Browser provides a nice example of this in bioinformatics. JBrowse is one of many proofs that JavaScript can be used to take some of the computing load off the server, and do it in the client (web browser) instead, while providing more sophisticated applications for users – not just gimmicks like snow.


  1. Skinner, M., Uzilov, A., Stein, L., Mungall, C., & Holmes, I. (2009). JBrowse: A next-generation genome browser Genome Research, 19 (9), 1630-1638 DOI: 10.1101/gr.094607.109

[Creative Commons licensed snowstorm picture by Atli Harðarson, JavaScript SnowStorm code by Scott Schiller, move your mouse around to guide the snowstorm.]

July 23, 2009

Josh the Java Junkie

Joshua Bloch at scifooOne of the people I enjoyed seeing at Science Foo Camp this year was Joshua Bloch. Josh is a Java Junkie [1,2,3] and software engineer at Google. When he wasn’t playing harmonica around the foo camp fire (see picture right), he was giving interesting talks about optical illusions, some of which can be found in his book Java Puzzlers. So I bought the book, and have been doing a puzzle a day to keep the doctor away. Most of the puzzles in this book are short Java programs that behave in ways you would not expect. The one below is a nice example:

public class Indecisive {
    public static void main(String[] args) {

    static boolean decision() {
        try {
            return true;
        } finally {
            return false;

What does this program do? Return true or false? Perhaps it does both or something else completely? Does it even compile? Can’t decide? Welcome to public class Indecisive…


  1. Joshua Bloch and Neal Gafter (2005). Java Puzzlers: Traps, Pitfalls, and Corner Cases (isbn:032133678X) Addison-Wesley
  2. Joshua Bloch (2006). How to design a good API and why it matters OOPSLA ’06: Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications, 506-507 DOI: 10.1145/1176617.1176622
  3. Neal Gafter (2008). Is the Java Language Dying? Neal Gafter’s blog: Thoughts about the future of the Java Programming Language.

Blog at WordPress.com.