Teaching the Children Programming at St. Teresa’s Primary School and Merton Park Primary School

After reading the Times article about the amazing work at St. Teresa’s and Merton Park, I dropped them an email to find out how they got started and they’ve kindly let me share it here (many thanks to Nicola Schofield and Anna McGrath who are the ones forging ahead with the teaching!)

Aside from the brilliant way they are both rolling up their sleeves and showing us the way, what’s incredible is hearing that 4-5 year olds are able to write simple programs and 6-7 year olds are suggesting loops to encapsulate repeated instructions.

Anyway, here’s their story:

We decided to teach the children to program in response to an article we read in the Guardian in August 2011 – http://www.guardian.co.uk/technology/2011/aug/28/ict-changes-needed-national-curriculum. We then undertook a part-MA Action research course with a local university and our topic was “Can learning to program teach children to think independently and help with their problem-solving?”.

We used Scratch – http://scratch.mit.edu/, which is a free download from MIT in Boston and can be installed on all school PC’s and by children at home. It works on Windows and Apple, but because it’s Flash-based it won’t work on ipads. Its fabulous – the children find it totally engaging and it appeals to all KS2 (and often younger), boys and girls etc. There are loads of help videos and video resources on the site. There is also a linked educational site http://scratched.media.mit.edu/, and from here we downloaded the Scratch Draft Curriculum http://scratched.media.mit.edu/resources/scratch-curriculum-guide-draft, which has lesson plans and resources all ready made. We used the intro lesson, the maze lesson and the Debug lesson (which the children really enjoyed). We let the children make whatever they wanted at first – but it had to have a London theme, as that was our topic last term – most chose the Jubilee or the Olympics.

Code Club http://www.codeclub.org.uk/ is another free resource. They launched last summer especially for volunteers teaching in schools. It’s for years 5 and 6. If you register as a volunteer, with a CRB number, you get access to a different, graded project in Scratch for each week. We photocopied for each child and left a laminated copy of each one lying around for anyone to try. They’re really good and I highly recommend them.

Children seem to pick up Scratch so quickly, they constantly amaze us and are way ahead of us but it doesn’t seem to matter. We just challenge them and are very clear we don’t know more than them. The other things we did prior to Scratch were:

ask the children to show hands if they think computers are clever. Then tell them that computers aren’t clever – it’s the people that programme them who are clever.

Discuss this process of giving instructions and saying “Go” – instruct the children similarly
showing the children some Youtube videos of programmed objects eg Robot of the Year, Robot lawnmowers and hoovers, dishwashers etc, with lots of chat about how they might work

programming each other (blindfolded) to walk in a square – discuss what’s difficult

screen turtles, eg 2Simple, iBoard, Logo and several online ones. Most were school software but you can find some online. We progressed from v simple ones in Reception to more complicated as they got older.

But, amazingly, Reception started writing small programmes and year 1 suggested looping eg to make squares – they noticed the repetition of instructions. Honestly, we have been flabbergasted by how young they pick it up.

Welsh Joint Education Committee (WJEC), Getting the GCSE Computing Syllabus Right

I’ve just read the new sample GCSE paper which has been revamped following the recommendations from the Royal Society and the Computing at School Working Group about computing education in the United Kingdom.

In the new revamped GCSE the student is assessed on the following:

  1. Understanding Computer Science (45%) – 90 minute examination to assess understanding of the theory content of the specification.
  2. Solving Problems Using Computers (30%) – 2 hour external assessment to assess the practical application of knowledge and understanding through a series of on-screen tasks.
  3. Developing Computing Solutions (25%) – externally assessed and externally moderated 15 hour controlled assessment to develop a piece of work using programming software following a task brief issued by WJEC. There will be a choice of two task briefs.

For me, this represents a sea change in the direction of the academic subject at this level and is very strong statement of intent by the WJEC on how seriously they view the subject’s implications for helping our children develop and seek careers.

Here’s a link to the sample WJEC GCSE Computing paper

John Naughton’s suggested syllabus for teaching computing

This morning I read John Naughton’s great Observer article on “Why all our kids should be taught how to code”

John Naughton is professor of the public understanding of technology at the Open University and what I loved about the article, aside from his obvious love for wanting to share and impart knowledge, was the following suggestions for what we should start teaching.

Here’s what he suggests:

  • Algorithms (the mathematical recipes that make up programs)
  • Cryptography (how confidential information is protected on the net)
  • Machine intelligence (how services such as YouTube, NetFlix, Google and Amazon predict your preferences)
  • Computational biology (how the genetic code works)
  • Search (how we find needles in a billion haystacks)
  • Recursion (a method where the solution to a problem depends on solutions to smaller instances of the same problem)
  • Heuristics (experience-based techniques for problem-solving, learning, and discovery)

That’s a pretty tasty and hefty list and I can immediately see that some of the topics will require a minimum age group e.g. Computational biology, Heuristics and I suspect that I’d argue that these are subjects that could be considered “Further learning”.

If we’re going to radically overhaul the way computing is taught we need to get the balance right and not put anyone off the subject and that’s a really important part of this exercise.

There are many comments on the online Observer piece that articulate just that concern but this will be a work in progress and all things considered I think we have to dive in and see how the children respond.

In my short, experience as a father, one thing I know for sure is that you should never under estimate a child’s ability to learn something new quickly – quicker than probably you or I would! No-one likes being condescend to so let’s start this project by not doing that 🙂

Teaching Kids to Program (or Don’t Try to Teach 8-Year-Olds Java Subclassing)

Here’s a nice article called Teaching Kids to Program (or Don’t Try to Teach 8-Year-Olds Java Subclassing) featuring Nathan Torkington who taught children programming in a New Zealand school.

Again there’s a strong message of just getting stuck in but also some good recommendations for starting out:

  • Lectures don’t work – short and sweet then let them get on and explore
  • They don’t have math skills
  • Girls are more advanced
  • Most kids can’t type
  • Follow their interests
  • Help them to maintain their attention

As you can see I’ve bolded the bit about typing, ignore this at your peril!

Teaching Children To Program (Programming) at St Teresa’s Primary School (Merton, London)

There’s a great article on the Times online edition (behind the Paywall unfortunately but here’s the link) that looks at the incredible work being done at St. Teresa’s Primary School. The teachers and ICT staff decided to just roll their sleeves up and dive in – there was no ‘professional ICT person there’ which is just brilliant. On that, I think everyone can learn to use this technology and you don’t necessarily need computer scientists – but I think having them can help greatly!

I’ve read the article and the outcome reported is overwhelming positive. What interested me most was an observation that it had positive side-effects not obviously connected to programming, but as someone with 16 odd years in development they’re things I’ve seen plenty of time in “adults”:

  • The “one problem many solutions” nature of problem solving taught them resilience and persistance
  • Girls were particularly engaged
  • It encouraged a trial and error philosophy through learning
  • They were more engaged and creative when they worked in groups
  • Respectful peer working emerged naturally
  • Children with usually challenging behaviour were totally engaged and absorbed in what they were doing
  • It levelled the playing field so even teachers were mucking in

The three I’ve bolded are the ones that I thought were really interesting, although the part about girls is brilliant, I already knew this having the good fortune to be surrounded by smart and strong women 😉

The part I am excited about is that we work better and are more respectful when in groups – think us grown ups could learn some things here!

Here’s the link to the St. Teresa Primary School Blog.

I’ve dropped them a line and hopefully I can delve into their methods and findings a bit more soon.

Teaching Children under 7 Programming via the British Computing Society: ICT Programme of study (draft)

As part of the game platform I’m building I’ve been reading through the initial draft of the BCS ICT Programme of study (copied in full below). The foundation of which is the realisation that we’re not teaching our children correctly and this reduces their options for work. The thinking is that they’re not all going to be programmers but having a good understanding of how digital technology works should to be a foundation skill, like maths and english.

This was announced formally this year as Education Secretary Michael Gove scraps the existing ICT curriculum.

It’s a very good start at outlining the ages at which we think children (marked through key stages) are capable of understanding core computing concepts. Many of the concepts and target ages, e.g. Algorithms to be understood by 5-7 year olds, are really interesting and destined to create a good and healthy debate. Personally, I agree with much of but it depends very much I think on the pupil and their setting. My hunch is that we can also teach this stuff to the parents too, so I think if we can get it right, it has a very wide impact 😉

For example, I have a daughter who is 5 next March. She’s somewhat lucky/unlucky in that her father’s a computer scientist, as I’m going to try and teach her the key stage draft. My initial sense is she will pick it up quickly but there are obviously factors that will skew the outcome a little – namely, it’s just the two of us and I’m her dad who writes code every day (milage may vary as to quality depending on sleep deprivation levels but I largely know what I’m doing 😉

So the draft proposal outlines Key Stage 1, which covers children aged 5-7, as follows:

  1. Use software on a range of devices; create, manipulate and evaluate digital media in a range of formats for use by an audience with whom they are familiar; use the web as a tool for learning and research.
  2. Understand what algorithms are and that these are implemented as programs on digital devices; use knowledge of algorithms to write simple programs.
  3. Store and retrieve data and know some ways in which information is represented digitally.
  4. Communicate safely and respectfully online, keeping personal information private; recognise common uses of IT beyond school.

So, breaking that down, point 1 is pretty straightforward, that’s teaching our kids to make stuff (e.g. drawings, writing, music perhaps) on laptops, pads and show it to us. Point 2 is the real meat of this, ‘algorithms’, know what they are, how to implement them and write simple programs – wow, 5-7 year olds, that’s 3 months away for my daughter, this is not going to be easy. Point 3 is, or can be, interpreted more easily e.g. writing a memo on an ipad and retrieving it. Point 4 is a good one and is something all parents will want to encourage.

To recap that, we want all 5-7 year olds to be able to be able to use pc’s, pads, etc to create, save and retrieve things on digital devices, be safe online and treat others with respect AND (and here’s the science so concentrate) understand/write algorithms.

For non-nerds ‘algorithm’ is just a fancy name for a list of steps to solve a problem, what makes them really useful is that when you’ve solved a problem with an algorithm, you can often re-use it to solve similar problems.

If you’ve ever been stopped in the street by someone who’s lost and you’ve given them directions, you’ve pretty much devised an algorithm e.g. go straight ahead, take the first left, go on until the lights and it’s first on your right.

If you think of a cooking recipe, it’s basically an algorithm too.

So, fancy name but really simple and really powerful because you can stick them together and solve more and more complicated problems. Back to the cooking analogy, if you know a pastry recipe and a beef stew recipe you can make a pie.

So that’s the challenge, can we teach our 5-7 year olds those four things, I think absolutely and I think I should go and find out by getting a bunch of them!

If you have one or more and please get in touch, I’d love to hear what you think (particularly from non-technical parents!)

you can email me at dan [@] inpractice [dot] org or get me on twitter @danfbridge

Here’s a copy of the whole BCS draft and here’s a link.

Oct 22 2012 Initial Draft, not endorsed by DfE

Initial Draft, coordinated by BCS and Royal Academy of Engineering.
Initial Draft (not endorsed by DfE): ICT Programme of study

Purpose

A high-quality ICT education teaches pupils how to understand the world through computational
thinking, and provides a sense of empowerment and excitement in using and developing digital
technology.

ICT includes

:
 Digital Literacy (DL) is the ability to access, use, and express oneself using digital technology,
including a critical understanding of technology’s impact on the individual and society.
 Information Technology (IT) covers the use and application of digital systems to develop
technological solutions purposefully and creatively.
 Computer Science (CS) is the subject discipline that explains how computer systems work,
how they are designed and programmed, and the fundamental principles of information and
computation.

ICT is important educationally. It requires logical thinking and precision. It encourages innovation,
collaboration, and resourcefulness: pupils apply underlying principles to understand real-world
systems, and to create purposeful artefacts. This combination of principles, practice, and invention
makes ICT an intensely creative subject, suffused with excitement, both visceral and intellectual.
More broadly, it provides a “lens” through which to understand both natural and artificial systems.
ICT has great economic and societal value. A foundation in ICT provides pupils with the knowledge
and skills to contribute to the digital economy. It enables pupils to play an active role in a world
where new technologies are invented daily. ICT has power to make the world a better place, and
understanding of ICT is the key to exercising that power.

Aims and Principles

Aims: The National Curriculum for ICT should ensure that all pupils
 Can critically evaluate and apply information technology (including new or unfamiliar
technologies) confidently, responsibly, collaboratively and effectively to solve problems and
work creatively.
 Understand the fundamental principles of computer science, including algorithms, data
representation, and communication protocols.
 Learn to see problems in computational terms, and have repeated practical experience of
writing computer programs in order to solve them.
 Develop awareness of the individual and societal opportunities, challenges and risks raised
by digital technology, and know how to maximise opportunities and manage risks
appropriately.
Opportunity and progression: From KS1 to KS3 the school curriculum should include all three
strands (CS, IT, and DL), though these may be taught together. By the end of KS3 pupils should be
sufficiently competent in ICT to support their learning across the curriculum at KS4. Students with
suitable aptitude must have the opportunity from KS4 to specialise in specific aspects of ICT,
including both CS and IT-related areas (e.g. digital media), leading to distinct KS4 qualifications.

Key Stage 1

Pupils should be taught to:

  • Use software on a range of devices; create, manipulate and evaluate digital media in a range
    of formats for use by an audience with whom they are familiar; use the web as a tool for
    learning and research.
  • Understand what algorithms are and that these are implemented as programs on digital
    devices; use knowledge of algorithms to write simple programs.
  • Store and retrieve data and know some ways in which information is represented digitally.
  • Communicate safely and respectfully online, keeping personal information private; recognise
    common uses of IT beyond school.

Key Stage 2

Pupils should be taught to:
 Select, use and combine a variety of software (including internet services) on a range of
electronic devices to accomplish a given goal, including collecting, analysing, evaluating and
presenting data and information; apply good design practice when creating digital products
for a given audience; work collaboratively in digital media and manage small projects; use
search engines effectively and appreciate how results are selected and ranked.
 Write programs to accomplish given goals; solve problems by decomposing them into
smaller parts; recognize that there may be more than one algorithm to solve a single
problem; detect and fix errors in algorithms and programs.
 Use ‘if … then … else’ and loop structures in algorithms and programs; use variables and
tables to store, retrieve and manipulate data; work with different forms of input, data
representation and output.
 Describe computer networks including the Internet and be aware that networks can provide
multiple services, such as access to the Web.
 Analyse and critically evaluate digital content; respect individuals and intellectual property;
store personal information securely; use technology responsibly; recognise the personal,
social and ethical impacts of technology on their and others’ lives.

Key Stage 3

Pupils should be taught to:
 Work creatively on individual and team projects in a range of digital media; select, use and
assemble multiple applications across a range of devices to achieve complex goals, including
analysing data and meeting the needs of known users; create, reuse, revise and repurpose
digital content with attention to design and audience.
 Represent the relevant aspects of a problem as abstractions that can be described within a
program, including a conceptual understanding of how data is represented and how
instructions are processed within a computer system.
 Generate, develop and implement creative programmatic solutions to a range of engaging
computational problems. Explain how and why an algorithm works, and why it represents a
good solution to the problem.
 Know the hardware components that make up a computer system, how they interact, and
how they affect performance; understand how computers can be connected with, monitor,
and control physical systems.
 Recognise the impact of digital technologies on society and the implications of technological
innovation; describe their use in a range of professions; make responsible and effective use
of digital technologies.

Key Stage 4

All pupils should be taught to:
 Develop their knowledge and understanding of the use of digital technologies, including but
not limited to managing their online identity, participating in online communities,
developing and critically evaluating digital media, and taking account of ethical, moral, legal
and environmental aspects of information systems.
 Develop and apply their computational thinking skills.
All pupils must have the opportunity to study information technology and computer science beyond
this core entitlement, in some combination, leading to qualifications at KS4.

Nesta: Digital Makers Fund – Workshop December 10th 2012 notes

I attended the Nesta workshop on the Digital Makers initiative (twitter hashtag #digitalmakers) and thought I’d share my notes incase anyone missed anything – if you were there please let me know if anything’s incorrect and I’ll amend asap!

As a side note, the fund has at its heart the recommendations from the Nesta ‘Legacy of the BBC Micro’ report, which as someone who had a ZX Spectrum for Christmas in 1983 is a huge call to arms 😉

The Workshop was panelled by:

There is an ether pad link for notes written within the workshop

  • The initiative is aimed at projects that will encourage young people (age 6-18) to create digital products
  • It is jointly overseen by Nesta, Mozilla and the Nominet Trust
  • It is likely to be extremely competitive, the room was over subscribed and it was suggested all previous and future workshops have the same level of interest – which is a great thing but also a good indicator of your chances
  • Your product should already be working at some level, i.e. beyond the idea stage. This was the hot topic for everyone I think. I got the impression that there were a lot of people with strong ideas/concepts but they were not currently implemented and suspect a few were ready to be ‘opportunistic’ with the fund.
  • The most common question of the day was about what constituted a prototype and whilst the panel took the time to handle the many different nuances of the same question with care, one thing was clear: they were looking for demonstrable engagement, i.e. proved concept. That is, if faced with only being able to fund 5 projects and 5 of 6 applicants were already in the field with small success but the 6th was a prototype with great potential but no real usage, that would not as strongly favoured as the other 5.
  • Mozilla encouraged applications to use as much of their framework and tools as possible, not so much to improve chances of success but because they are free 🙂
  • Projects with match funding in place/being explored are going to be viewed positively
  • Nominet Trust has some additional funds that might be more suitable, especially if your project is at an earlier stage
    • Digital Edge
    • Open Innovation Fund
  • There is a big emphasis on being able to reach a large audience and this would influence your application if able to reach a very large group
  • Strong encouragement for collaboration, especially perhaps for organisations that can reach large audiences and those that might be specialists with technology – I’m open to that with non technical teams so if anyone wants to get in touch drop me a line on twitter @danfbridge

Here’s the Nesta URL for more and much more accurate details NESTA digital makers open call for ideas

HTML5 & Javascript: The New ZX Spectrum (or … insert 8-bit machine of choice with BASIC interpreter)

Raspberry Pi

[DRAFT]

That is a Raspberry Pi. It’s awesome and it’s the brain child of very awesome minds. One of which is a child hood hero of mine, David Braben. Yes, that David Braben. The one who co-developed Elite. Yes, that Elite.

So that is a Raspberry Pi and it’s supposed to ignite a whole ‘new’ generation of kids who’ll pick it up for $25ish and learn to code. Only it wont.

Raspberry Pi won’t get kids coding

Just so you know, I don’t want that to be true, but I think it will be. Sadly, and I hope I’m wrong as there are a lot of smart, generous and wonderful people behind it, the only people who will be into it are people like me (and likely you). We’re coveting them, right now, because they are tiny and cute and it tugs wistfully at our nostlagia. (can you tug wistfully? and if you can, can you tug at nostalgia – Look, I think we both know you can’t, ignore that bit, just imagine it makes sense)

I hope I’m wrong on that but on the positive it will create an enormous buzz around the subject of Computer Science in and outside of education. That is a success in itself! This will be no mere moral victory as anything raising the profile and attraction of computing to current generations is a must. Software is our final frontier, a place where anything can be built and we need people who can build software, software to help at work, at play and importantly to help advance healthcare and science – how much of a DNA sequence can you hold in your memory?

So what’s this got to do with the ZX Spectrum and Javascript?

I’m glad you asked!

The reason a generation grew up unafraid to write code was due to those little 8-bit black, grey and beige boxes plugged into our TVs. Our parents bought them to “help with the homework” but they never saw a jot of homework (if yours did, you have my sympathies).

No, they were for more important things: playing games. And for most, you had to write a program to play a game, even if it was something as simple as: Load "". Let me repeat that, it’s simple but enlightening. To play a game you had to enter some BASIC into the machine. That’s a program. Might be trivial but it’s a start!

This was BASIC. It was built in. It was a service that was part of the box, like being able to add on a calculator, something we would take for granted. It was just there.

Some of us learned to use it to make the computer do things, usually as a result of boredom with a current game, such as: draw things on the screen, print infinite loops in Dixons telling everyone “Martin is Ace”, maybe even a game. Digression: this is a true story, I wrote a basic version of a Teletext on my spectrum and each morning would update the stories from newspapers so my gran could flip through the news in big print on the TV, I was about 11 when I did that. I’m now 38 and have been a professional software developer since 1996. I never had a fear of programming because I’d been doing it since I could remember. For me, code is just part of my language in general.

There’s a platform and language that has the same ubiquity as Micros and BASIC: it’s the Web and Javascript.

The web browser with its Javascript interpreter is the perfect modern equivalent to the 8Bit micro and BASIC. Many households will have at least one and some more than one. In my eyes, the web browser is now also the world’s largest game console. For me, Facebook and Zynga have started proving this.

As a language Javascript is perfect for teaching on, it’s interpreted, it has garbage collection and now with HTML5 and OpenGL a very simple, but powerful, way to draw.

It’s beyond the scope of this rambling but this is all you need todo to draw a line:

var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");

context.beginPath();
context.moveTo(100, 150);
context.lineTo(450, 50);
context.stroke();

The Spectrum’s BASIC had plot and draw which could be used liked this:


PLOT 0,100:
DRAW 80,-35

What makes it similar to the 8Bit generation (remember those listings in magazines for games) is that because it’s interpreted you can view Javascript in any website simply by viewing source! This is how we really learn, we find something we think is cool, copy and change it to see how it works. We learn by doing.

I’ll rewrite this so it’s more conscise but that’s the jist of my argument

All in all, I’d love to see Raspberry Pi in the hands all school kids but part of me thinks they’ll be playing with browsers and apps – and if we can keep them on HTML5, then we’ve got a chance to teach them some code.