Wednesday 24 June 2020

The Little Book of Algorithms 2.0


Following the success of the Little Book of Algorithms - Over 20,000 downloads and hundreds sold worldwide, I'm pleased to announce version 2.0. The publishing model will stay the same, the digital PDF will be available free of charge (See bottom of post). For those who want to support me by buying a hassle-free printed physical paperback, you can do so on Amazon or directly here.

What's new in version 2.0?

Teaching, like software development and learning is about refinement. In this new version there are two key changes.

Firstly, challenges now directly follow each relevant skill. This reflects the structure of most mathematics textbooks and workbooks. It means there’s less time and effort spent flicking backwards and forwards.

Secondly, there are a greater number and range of challenges because you will become a better programmer and computer scientist by solving a greater number and range of problems.
While answers remain in the back of the book, I have also started creating walkthrough video solutions to some of the more complex challenges. These are available on Youtube here.

The Little Book of Algorithms 2.0 concisely presents 18 problems which computer science students will commonly encounter. These problems are solved efficiently using programs written using Python. However, reading these programs is not enough, so this new version of the book now comes with 48 challenges so that you can apply what you have learnt in various ways:

  • Writing your own programs
  • Solving Parson’s puzzles
  • Completing quizzes 
  • Tracing 
  • Gap fills

This range of exercises will help you to become more fluent in Python and ensure that you are comfortable with any question format in a programming exam.

  • After finishing this book, you should feel more familiar with:
  • While loops and For loops
  • Concatenating different data types
  • Using procedures and functions
  • Working with 1D and 2D lists and arrays
  • File reading and writing 


This book will show you how to write better Python programs and will expose you to the key skills that are required to do well in any secondary school programming assignment or exam.

I wish you the very best on your learning journey.

Free version: Here
Pre-printed paperbacks: Amazon
Preview below:




Walkthrough tutorials:

Wednesday 22 April 2020

Remote CPD for teachers


During the lockdown, I have received a few emails from teachers about what we can do to keep abreast of curriculum changes and also develop our subject knowledge, and pedagogical content knowledge. Here are my recommendations.

General pedagogy, teaching and learning:

Dylan Wiliam’s latest videos offer some input and then a discussion point which you can have with yourself, an online community or your peers: LINK

ResearchED have had some incredible speakers. Take your pick from Daniel Willingham, Becky Allen, Sam Sims, Nick Rose, Daisy Christodoulou, John Sweller, John Hattie, Dylan Wiliam, Pedro De Bruyckere and more: LINK

I'm a big fan of the Teach Like a Champion blog as it discusses techniques in written form and then shows a relevant video. The current posts reflect on remote teaching and the previous posts are based on the classroom and sports coaching: LINK

Tom Sherrington’s Kitchen pedagogy series. This series focusses on research-informed ideas: LINK

As mentioned in my last post, we are essentially communicators and public speakers. One of my favourite videos for how to engage and speak publicly: 

GCSE Computer Science

There are new specification changes from Sept 2020. OCR have launched their new GCSE Computer Science course J277 and Paul Long has discussed the changes on this excellent post. A summary of the key differences are on the last page: LINK


  • As the spec changes are quite minor, I still recommend Computer Science Tutor’s tutorial series: LINK
  • Craig N Dave have also updated their video series for J277: LINK
  • Mr Weir has a great presentation style which I enjoy: LINK


Technocamps have a range of “activity packs” mainly aimed at KS3 and KS4 and they are great for teachers too: LINK

If you want to become more fluent in Python programming, the Little book of algorithms might help.
I am also a big fan of these two sites:

Cambridge Nationals in Creative iMedia

There are some great tutorials for content on these channels:
Photoshop tutorials - For those of you who do not have Photoshop, Photopea is an excellent free online alternative

GCSE Stretch and A-Level Computer Science:

Isaac Computer Science launched their full content this week. There are lots of mini exercises and the explanations are clear and concise. All the material is written by current or former A-Level Computer Science teachers who I respect.


Two years ago, I took to learning PyGame as so many of our students were interested in making games for their A-Level projects. These two sites are (almost all you need):

If you just want some useful videos for you and your A-Level students, I’ve curated a playlist here

Computer Science Education Research


Finally, if you're interested in CS Ed Research,There is:

Lots of videos from the Cambridge Computing Education Research Symposium
The CS Ed Research Book Club?

Thursday 16 April 2020

What every teacher training programme should teach


I have been very fortunate to have had the opportunity to observe hundreds of lessons and work directly with mentoring and supporting more than 30 Newly/Recently Qualified Teachers. I also base my reflection on the incredible books that have been recommended to me as well as my own experience teaching over 8000 lessons in 5 different schools over 14 years. 

The aim of this article is not a critique of any particular teacher training programme – it could perhaps be considered as a compilation of the best practice from the various programmes and teachers that I have had the pleasure of observing, developing and working with. Coverage of the following would ensure a solid foundation for any teacher. Some might even use this as a knowledge audit to identify areas for development in themselves or in teachers they are mentoring.

Communication

If we spend roughly 70% of our working day directly teaching lessons, I would argue that the majority of this time is spent communicating. We communicate ideas, subject content, our ethos and our expectations every day. So perhaps sessions on the following would be useful:
  • Voice training
  • Regular feedback on presentation-a weekly exercise could be for developing teachers to communicate a complex idea, perhaps something from their subject specialism or a specific learning theory. I really enjoy Wired’s 5 Levels series so perhaps it could be inspired by that. Trainees should have the experience of trying to teach a concept with or without certain aids e.g. without a whiteboard, with only a whiteboard, with only powerpoint, with only a visualiser and to reflect on which content is best taught through which medium.
  • Handwriting practice (on a whiteboard)-this will be one of the primary methods of communicating ideas for many teachers, learning how to write legibly on a board is often neglected.
  • Other strategies from Doug Lemov’s excellent Teach Like A Champion (TLAC) 2.0 book e.g. Threshold, RADAR, Breaking the plane, Strong Voice, Circulate, Strong Start. I cannot emphasise enough the importance of Lemov’s work and his book. I would argue that not a single day lesson goes by without me using at least 5-10 of his techniques. Likewise, when I look to help teachers improve, frequently I will identify a TLAC technique as the best action point or lever for improvement.

Routines

As aforementioned, Lemov’s TLAC 2.0 book should be a core text for any teacher training programme, when it comes to routines, Lemov’s book and accompanying videos distill the most effective strategies used by great teachers around the world. Whilst Lemov’s section on Systems and Routines mentions only six techniques, I would argue that the whole chapters 1,3,5 and 7 cover another 20 routines which are essential for an efficient and effective classroom.   

Resource Design

Beginning teachers often spend some time learning to design resources, but they may often be left to their own devices to “explore what works” and “try things out” based on their initial lesson observations of other teachers. Based on the principles of direct instruction that we would use with novice students, I would argue that beginning teachers also need to be taught in the same way, with direct instruction and only gradual fading once expertise has been developed. Here are a few things which every teacher should know how to design:
  • Multiple Choice Questions
  • Do Nows which interleaves, reviews and provides a form of low stakes testing and formative assessment
  • Exit tickets
  • Worksheets or workbooks which follows the “I, We You” and Shed Loads of Practice (SLOP) format – starting with teacher modelling, followed by joint construction and leading to lots of independent practice questions
  • Sequence of lessons- which build on prior knowledge and allow for revisiting of content
  • A spreadsheet marksheet/tracker – SUM formula, VLOOKUP, Conditional formatting.
  • A seating plan (preferably in a spreadsheet) and what data to use. The data I always start with is prior attainment to ensure weaker students have a strong partner near them. I would also then check this seating plan with the Head of Year for potential behaviour issues and compatible working pairs.
  • Functional wall displays

Workload and time management

This is something that all teachers will struggle with at some point, but certainly in the early days when lesson planning may take hours in itself. A few useful strategies:
  • Stephen Covey’s Time management matrix
  • Planning by the week (Not by the day)
  • Importance of Sleep
  • Use of technology e.g. Quizlet, Google/Microsoft Forms, Online resource banks and communities (Facebook, Twitter and subject specific communities), using email filters, classroom management software

Marking and feedback

  • Sampling and Whole Class Marking and Feedback
  • Immediate and precise feedback during circulation
  • Peer marking
  • How to mark summative assessments (Question by Question), identifying misconceptions and actions to address these gaps

Science of learning and research-based instructional strategies

Instructional principles and pedagogy should be based on research along with experience of the tutor. I will provide an extensive reading list later. However, here are the key theories which every beginning teacher should be aware of:

  • Direct instruction and gradual release
  • Cognitive Load Theory
  • Dual Coding
  • Cognitive Apprenticeship
  • Retrieval Practice and low stakes testing
  • Interleaving
  • Variation
  • Elaborative interrogation – asking how and why
  • Reflection
  • Spacing
  • Semantic Waves (Legitimation Code Theory)


In addition to the above general theories. I would also include sessions on subject-specific pedagogy.

Additional sessions

Classroom culture is such an important topic and although most students are taught about high expectations, it would also be useful to talk about explicit strategies for building a culture of success in the classroom. A strong learning culture encourages students to learn from mistakes, to participate and be proactive in their learning and students will have a strong (collective) purpose for being in that classroom.

Oli Knight and David Benson discuss the importance of thinking like an expert in a specified subject in their book “Creating Outstanding Classrooms”. This concept is based on David Perkins’ “Playing the Whole Game”. Students and teachers need to know how to think like a Mathematician, Computer Scientist, Artist, Musician, Historian etc. What does it look like or mean to be an expert in this field. This has to be the end goal for students and we need to design our curriculum not only to match the specifications (which will change regularly) but also to prepare students for the real world. For some teachers, they may enter the profession directly from university, without much industry experience. It may therefore be useful to have industry talks and panels to map the talent pipeline and get insights from industry. What are the most important and in-demand skills in the industry, how can we teach “junior versions” of this.

Closing thoughts

All of the above would produce a solid foundation for any teacher. After 14 years, I still think I need to work on certain areas above. It is an ambitious and utopian teacher training programme. The big picture is complex and I’ve tried in the past to codify it in a diagram, shown below:




You will notice that I have not really focused on behaviour management in this post. This is partly because Lemov's book is a solid starting point and clear routines themselves lead to fewer behaviour issues to start with. I may decide to do a later post on behaviour inspired by the work of Bill Rogers and Michael Linsin.

Some may think that I am prescribing a particular way of teaching for all. I do not believe in “Roboteachers” and a set way. These techniques are a toolkit and the way we use these will vary as teachers develop their own teaching style. Joel Klein once said, “You can mandate adequacy , but you cannot mandate greatness: it has to be unleashed.” Eventually, teachers will build on this foundation and discover their own teaching style.

Recommended reading

These are the books that I would recommend for all teachers. They're the best books that I've read over the past 14 years:
  • Teach Like A Champion 2.0 – Doug Lemov
  • Principles of Instruction – Barak Rosenshine
  • Why Don’t Students Like School – Daniel Willingham
  • Make it Stick – Peter C Brown, Henry L. Roediger and Mark A. McDaniel
  • An Ethic of Excellence – Ron Berger
  • The Hidden Lives of Learners - Graham Nuthall
  • Embedded Formative Assessment – Dylan Wiliam
  • Creating Outstanding Classrooms – Oli Knight and David Benson
  • The Motivation Breakthrough – Richard Lavoie
  • How We Learn – Benedict Carey


Further reading

  • The End of Average – Todd Rose
  • Why We Sleep – Matthew Walker
  • Start With Why – Simon Sinek
  • Cleverlands – Lucy Crehan
  • Inventing Ourselves – Sarah-Jayne Blakemore
  • Legacy – James Kerr
  • The Chimp Paradox – Dr Steve Peters
  • The Art of Learning – Josh Waitzkin
  • Get Better Faster – Paul Bambrick Santoyo
  • Theory of Instruction: Principles and Applications - Siegfried Engelmann and Douglas Carnine



Sunday 1 March 2020

Computing At School (CAS) London Conference 2020

24 hours have passed since my third CAS London conference, so here is a write-up. This is my second time presenting at the CAS London conference. You can find my slides from last year’s session on secondary pedagogy here.

The organisation leading in to the 2020 event was incredible, Jane Waite and Jo Brodie clearly sacrificed a lot to put together such a smooth and successful event. The more seamless the event, the more well-organised it is. You never seem to notice when things don’t do wrong!

I was escorted to my room on arrival which was already set up. I quickly loaded my slides, checked everything was working and went back downstairs to catch up with friends and fellow teachers from the CAS network. I spoke to one of my seniors from the Teach First programme, Peter Kemp who is currently in charge of the ITT course at Kings’ College London. We chatted about our open source projects Pete’s A-Level WikiBooks and my Little Book of Algorithms and Computer Science Colouring Book (sneak preview below).



I also got chatting to Rochelle Laurencin from ScreenSkills. ScreenSkills support Peter Kemp’s 3DAmi animation school and it was fascinating to hear of all the work they do, from their bursaries for courses to their apprenticeships. I have a student who does not want to go to university and wants to go into the film industry, so we exchanged details and I picked up some flyers and posters to share when I returned to school.

The Keynote was by John Nixon. He’s an HMI (one of Her Majesty's Inspectors) and Ofsted's National Lead for Computing and Online Safety. I wasn’t expecting to take so many notes. However, with the new inspection framework, I found myself scribbling away furiously and I realised that the four pages I filled, was the most amount of notes compared to any of the other sessions on the day. His keynote deserves its own separate blog post.





I figured that a lecture theatre operates very much like a stack data structure, last in first out (LIFO), so I made sure I was at the end of the second row and made a speedy exit to get to my session. My session was about one dimension from Legitimation Code Theory – Semantics. I hoped to introduce attendees to Semantic Waves and how they could apply some of the associated principles immediately on their return to school on Monday. I started out by looking at the big picture of classroom best practice and then considered the role of Semantic Waves in our practice.




Perhaps Semantic Waves are a missing piece of the infinite and addictive puzzle that we also call “teaching”.
A bold claim.

We looked at the theory and went through some practical tasks, along with a sample lesson. All of these resources are available here.

In choosing sessions for a conference, I have a few parameters that go into my so called selection algorithm:

  1. Have I attended the session before?
  2. How good is the speaker? – What is their background? Do they have a proven track record? How good were their previous sessions?
  3. Can I make use of their workshop in the next week, day, month or year?




Based on criteria 1, I therefore automatically de-selected Sue Sentance’s and Peter Kemp’s sessions on PRIMM, Programming with Python and Flask and 3DAmi. All excellent sessions which I chose based on criteria 2 and 3 at previous conferences. The three remaining sessions, I must admit I went by the presenter’s reputation first. I chose:




I was not disappointed. I left trying to pick a favourite session and at first I thought it was Hardip’s, but then I couldn’t put it above either Paul’s or Katie’s. So why were these sessions chosen and why do they all receive a resounding 5-star review from me?

Hardip is a rare gem in that he currently teaches both OCR and AQA A-Level Computer Science. He taught himself how to write computer games on the Commodore 64 in the 80’s and his understanding and ability to break down and deliver complex concepts will leave you in awe. His session used a programming language called Forth. Hardip told us that Forth is a programming language, an IDE and a philosophy too (woah, mind blow already). He reeled us in further by telling us Forth was used to write programs for robotic arms on the International Space Station and some of these programs are less than 4kb! The language is clearly robust and it is entirely stack based which make it wonderful for teaching and learning stacks. Despite not using Forth for 30 years, Hardip demonstrated fluency whilst also pacing us gently through the exercises, which were all of course mapped to AQA and OCR spec points. I chose this session based on Hardip’s reputation and I was not disappointed. I left feeling as though I’d just been given the cheat code to teaching stacks. How had I not realised the sequencing and thought about using a stack-based language sooner? His iterative approach, re-visiting how stacks are used was a key theme throughout the conference. Thanks Hardip. You’re incredible. If you’re reading this wondering how you can find out more about Hardip or whether he might be able to help your school, he does outreach work as he is currently part time. So if you require some training or 6-12 week development/teaching particularly at A-Level standard, you can email Hardip at HardipmATgmailDOTcom.



Lunch was great as usual. I recalled that at my last visit to Gladesmore Community School (GCS) I was impressed by the facilities and I must say, my return left me thinking it really is a brilliant venue with great staff and students. Between Igli and his team at GCS and Jane and Jo’s CAS London team, it sets a high standard for other conferences. The conference’s 200 tickers were sold out and 80+ were on the waiting list. The success of this conference made me think back to the CSTA conference – an international conference that I attended in Baltimore in 2017. I wouldn’t be exaggerating if I said that I think we could host something of similar scale in the UK – 1 week of Computing CPD in the summer or Easter holidays. I’ve got so much faith in Jo, Jane and her team. I don’t know if the CAS National Conference will make a return or not, but I can envision an international conference within the next 5 years in the UK. We definitely have the quality in terms of workshop /session facilitators. It was clear that many of the sessions on Saturday could have lasted 90 mins or even 2 hours. A format that the CSTA conference sometimes uses, allowing for 3 sessions in a day over the week. It's something worth thinking about…

Back to the sessions. Session 3 was a somewhat unusual choice for me. My session was entitled, "Going from abstract to concrete and back again with Semantic Waves" so why did I also attend Paul Curzon’s session entitled "Semantic Waves"? In the run-up, Jane expressed slight frustration that I had chosen to deliver a session with the same focus as Paul’s. However, having attended both, I can assure her now that attendees would have got something different from both sessions and it was totally worth it. I chose Paul’s session for several reasons. I’ve been attending Paul’s training sessions since I first started teaching in 2006; he’s been running sessions at Queen Mary University London (QMUL) often with William Marsh and Jo Brodie – quite possibly they were doing this before the existence of CAS. I always leave those sessions thinking Paul is a crazy genius (in the nicest possible way) and that I could never deliver or teach like he does. This is exactly the reason why I keep coming back. Paul recently won the IEEE Computer Society 2020 Taylor L. Booth Education Award. The previous link goes into a some detail about Paul’s contributions to computing education. However, his attitude and work rate were exemplified by the fact that he delivered four sessions on Saturday (including a lunchtime one!). I just about had enough head space to run one session and deliver a TeachMeet presentation. Paul clearly operates on another level. He is a seasoned professional on the conference and CPD circuit.

The most important takeaways from Paul’s LCT Semantic Waves session was firstly that Semantic Waves can be used to evaluate lessons and lesson planning. His clear division of disciplines into technical language and abstract concepts was also powerful. Lastly, I left with the important differentiation between a teacher planning Semantic Waves in their lesson activities and students actually doing the repacking themselves and riding the wave themselves.

Yes, you may be teaching…but what are the students doing and what are they thinking about?

This emphasis on the students doing the repacking, not just the teacher was such a simple point, but it is an important lever in working with Semantic Waves. We had different foci and emphasis in our sessions and I left feeling even more informed. Of course, I also got to witness some signature unplugged teaching activities from Paul too.

The fourth session was with Katie Vanderpere-Brown. Katie is a regular contributor on the weekly #CASChat on Twitter (Every Tues at 8pm). I signed up to Katie’s session based on our similar views on computing education, our interest in cognitive science and our skepticism towards some online learning platforms. We met briefly over lunch and when someone tells you that they’ve come up with a way to print onto post-it notes, you realise that you’re talking to someone who is serious about their teaching craft or someone who is addicted to stationary or both. Katie is both.

There’s a few people who have debated with me about the importance of passion and enthusiasm in teacher delivery style. A prolific tweeter once proclaimed that it just wasn’t their style and enthusiasm and passion were not important-you just need knowledge and good behaviour management. I have to disagree! I think I can spot a good teacher within 30 seconds of watching them teach. This sounds arrogant, but I’m quite confident in my “thin slicing” after developing and observing (probably over fifty) teachers over the years. One of the things I subconsciously notice very quickly is whether or not the teacher wants to be there-how passionate are they about the subject and the lesson they are teaching? Would I want to be taught by this teacher? Within ten seconds, Katie passed this test. Her relaxed and humble demeanor, enthusiasm and informed delivery puts you at ease. After a minute, it felt like I was sitting at home catching up with an old friend. Except, this was someone I’d never met before. Katie went through three different ways of teaching the fetch-execute cycle and I have no doubt that if you ask any of her students, they could tell you the name and function of the registers and memory during the CPU’s fetch execute cycle. The first activity was a card sort with printed post it notes, the second an unplugged physical activity and then she consolidated by demonstrating how we could use different LMC simulators. We were her guinea pigs for some NCCE/Isaac Computer Science material and I think we all left pretty impressed, particularly given that she was weaving metacognitive theory in between her tasks.

The first task with post it notes, simple as it was, generated a lot of debate about sequencing. It made us all think about what the pre-requisite knowledge was for teaching the fetch execute cycle. The three simulators that we saw: 101 Computing , Peter Higginson’s new RISC LMC and Higginson’s AQA LMC  were all new to me. I'd grown so used to the original LMC, I had not really invested the time into exploring the new versions and I have to admit, the 101Computing one is my favourite.

LMC900


Whilst the physical unplugged task which demonstrated the use of cache memory would be difficult for me to implement in my computer suite, I could see how it would work if we had a different room layout. It is a lovely idea and clearly shows how some instructions in cache clearly have a faster access time. The misconception we need to be careful of here is the student's discussion of distance. Frequently students say that the cache is nearer than the RAM and this is why it is faster. Distance is somewhat insignificant in the fetch execute cycle as electrical signals move so quickly over such short distances. This is something that a lot of students misunderstand. The real focus of the activity should be on the access speed of different memory types and the overall execution time.

After the last session, I managed to catch up with a few old colleagues and friends before delivering my TeachMeet presentation. My TeachMeet presentation was on the importance of language, etymology and storytelling in computing education. My example was on the origins of cache memory and how the term "cache" originates from 18th century French Canadian fur trappers! This presentation was inspired by one of my former head teachers, the great Oli Knight. I hope those that attended will share this story far and wide.

Image result for fur trappers cache

What a day! My thanks go out to Jane, Jo and all the volunteers for ensuring the conference was a success. Thanks to all those who ran workshop sessions and it was good to catch up with some old friends. I hope we can grow this conference into something much bigger with a wider international reach. However, for now I still love the intimacy of our London CAS community conference. Until next time… 

Saturday 15 February 2020

A Just Cause


I’ve been reading Simon Sinek’s “The Infinite Game” during my morning reading session with my sixth formers. 




Occasionally, I’ll read excerpts to them as it’s such an insightful book on long-lasting success. One particularly powerful chapter is chapter 2, “Just cause”. Sinek argues that every company and every leader that wishes to have sustained success needs a just cause - a vision for the future. Sinek states that a just cause must fulfil five criteria:

  1. For Something – affirmative and optimistic
  2.  Inclusive – open to all those who would like to contribute
  3. Service oriented  – for the primary benefit of others
  4. Resilient – able to endure political, technological and cultural change
  5. Idealistic – big, bold and ultimately achievable


In some countries, teachers have to write an educational philosophy. I was asked to write one for a job application once and I have attached it to the end of this post. However, the more I read Sinek's book, the more motivated I felt to write my own just cause. Why do I do what I do, what is it that I believe in and what is my ideal future. My just cause is as follows:


I believe in developing a world where more people know how to use computers to make their lives easier, better and more productive. I aim to teach computing to as many people as possible and I will do this by sharing my resources, knowledge and skillset - primarily through my books, blog, digital and physical resources and videos. Whilst I teach in a secondary school; I want to also help teachers, adults and younger children discover the beauty, fun and utility of computing.
For too many people, computing and computer science in particular seem daunting. Many people timidly or proudly admit to “not being good with computers”. I was once one of these people and I can confidently say that this can change. Everyone can learn about computing, everyone should be exposed to computing and given the opportunity to learn how to use computers to improve our lives.
The process of learning should be straightforward, accessible and involve achievable stepping stones. We should be able to learn about computing regardless of age, gender, race or income. We should be able to learn about computing without the fear of being labelled as a geek. Geeks are great, we should love them. It should be everyone’s aim to be a bit more of a computer geek and I’m here to help you achieve this.

 ----------------------------------------------------------------------------------------

Educational Philosophy – William Lau


From Nanotechnology to Synthetic Biology, from Wearable Computers to Self-Driving Cars; Computing will continue to shape the future that we live in.

Computing teaches us how to solve problems by breaking them down into manageable components. In developing our own original solutions, Computing requires us to be both logical and creative. Computing enables us to develop a skillset and mindset which will be useful in literally every other discipline.

As a teacher, leader and student of Computing, I believe that being a digital native and a mere user of technology is not enough. Technology is changing at such a rapid pace that in order to thrive and succeed in the Information age, we need to understand how computers work. One of my primary aims is to transform users of technology into creators of technology by giving all students the opportunity to think, create, persevere and grow.

To achieve this aim, we must strive to:
  • Create an environment in which all pupils enjoy Computing and feel they can do well in Computing.
  • Create well rounded users and creators of Computer technology with a focus on independent problem solving skills.
  • Engage pupils and expose them to a wide range of Computing tools and skills which will empower them in whatever career path they choose.

Too often, students come into our classrooms with a fixed mindset; the belief that ability is innate and static (Dweck, 2006). As a result some students have got into the habit of giving up easily or not attempting difficult tasks due to a fear of failure. Inspired by the work of Carol Dweck, I believe that the growth mindset is fundamental to teaching and learning Computing. We need to help our students realise that they can achieve great things if they persevere and are resilient when faced with challenges and setbacks. There is a risk of students believing that as digital natives, they have little to learn and that everything they want to do with a computer has already been created or will be invented by someone else. There is also a fear that Computer Science is difficult and too technical. However, by eliminating these misconceptions, our students will be able to push themselves and learn to enjoy the learning process despite the many challenges that they will encounter.

Computing lessons should not just be about ‘doing’; the focus should always be on what the pupils are thinking about. Lessons should aim to teach pupils the real-world relevance of Computing; this relevance comes ultimately from a Fertile Question which feeds into every lesson question.

My teaching methodology revolves around meticulous planning, modelling, formative and summative assessment, feedback and putting the individual learner at the focus of all interactions. In order for a student to understand the standard of what is required, it is important that the teacher models how an expert in the subject should think and perform. This expert may be the teacher themselves, or they may use their students as experts. Having modelled the thought processes and explained the tasks, students should be given an opportunity to demonstrate their skills either through joint construction or independent tasks. It is at this point that formative assessment and monitoring is most crucial. Unless the teachers can visualise student’s thinking, identify misconceptions and mistakes and correct these, a student is not going to make good progress over time. Through regular intervention and feedback, these interactions with the group and the individual allow the teacher to address common errors and help students improve their learning.


Saturday 14 September 2019

Quick Fire Five


The Quick Fire Five is derived from Doug Lemov’s Do Now in Teach Like a Champion 2.0. In brief, a Do Now should:
  • Involve students putting pen to paper
  • Review previous learning (See also Rosenshine)
  • Be completed in silence without any direction from the teacher
  • Be consistent in delivery format e.g. on paper or on the board as students come in
  • Take 3-5 minutes to complete

For more detail see here

Based on cognitive science, Corinne Flett @FlettMiss designed the Quick Fire Five (QFF) in 2017 whilst working as an Assistant Head in charge of Curriculum and Assessment. QFF involves 5 questions which allow for interleaving and spaced retrieval practice. The 5 questions should be one question from:
  • Last Lesson
  • Last Week
  • Last Month
  • Last Term
  • Any time

Many have asked for my bank of QFF Do Now’s. I have included some examples here and here. However, I would say that QFFs are best designed by the teacher, as they should be based on your own students’ misconceptions and will vary based on your sequencing. Some think it will take too long to make. After a year of making them, I can now modify existing QFFs in 5-10 minutes. Writing new ones take 10-20 mins at most.

For more on cognitive science and research-based practice visit:

Further reading:
How We Learn (Carey)

Disclaimer: Whilst I embrace research, I also value experience. Context will shape your practice as will your own gut instinct as to what feels right. I’m a firm believer that there is no “single best way to teach” – if there was, there would be no innovation and no need for new theories. I think if you’re reading this, you’re open to improvement and hopefully open to the view that many of the techniques in the above texts will work but some may not.

William Lau 
September 2019

Thursday 25 April 2019

The Little Book of Algorithms



Version 2.0 has now been released and you can read about this here


The text below refers to the original version.

The Little book of Algorithms is designed to help students build fluency in their Python programming. The book would suit students who have already been introduced to the three basic programming constructs of structured programming, namely sequence, selection and iteration.

Following the publishing philosophy of Al Sweigart, "I write books to teach beginners to code. I put them online for free, because programming is too valuable and needs to be accessible to all. (Though I sell print versions to pay rent.) Get started. It's a great journey."


You can buy printed copies directly here  or via Amazon here.


Download the PDF here which you can print yourself


An embedded book is also below:

Full description:

This book is designed to help those learning and teaching Computer Science. The aim of the book is to help students build fluency in their Python programming. The book would suit students who have already been introduced to the three basic programming constructs of structured programming, namely sequence, selection and iteration. The learning curve for programming can be quite steep and this book aims to ease this transition by encouraging practise and gradually introducing more complex concepts such as lists and 2D lists, file writing and using procedures and functions. Originally, the book was written for my 14-16 year old students studying for their GCSE Computer Science programming exam. However, I hope a wide range of students and teachers will find this book useful.

Sunday 8 October 2017

Research-based instructional principles and mastery learning

In a review of research from cognitive scientists, master teachers and cognitive supports spanning four decades, Barak Rosenshine presents ten research-based instructional principles that all teachers should use (Rosenshine, 2012). These are as follows:

  1. Lesson starts: Begin a lesson with a short review of previous learning.
  2. Present new material in small steps with student practice after each step.
  3. Ask a large number of questions and check the responses of all students.
  4. Provide models.
  5. Guide student practice.
  6. Check for student understanding.
  7. Obtain a high success rate.
  8. Provide scaffolds for difficult tasks.
  9. Require and monitor independent practice.
  10. Engage students in weekly and monthly review.


These steps are summarised in the figure below. The rest of this blog uses Barak Rosenshine’s Principles of Instruction to outline how a typical lesson would be delivered according to the students’ current stage of mastery.

Lesson flow based on Barak Rosenshine's Principles of Instruction (Rosenshine, 2012)

Emerging stage of mastery

In the first lesson of (say) a 6-lesson unit of work, the majority of students will be in the “Emerging” stage of mastery, understanding between 0 and 25% of the concepts required to reach mastery. The lesson should start with a Do Now, a review of prior knowledge which allows students to connect to this lesson’s content.  Following the Do Now, the teacher should then model the thought processes for the new concept or skill. Collins et al state the importance of making the teacher’s thinking visible by thinking out loud in the process known as Cognitive Apprenticeship (Collins, et al., 1991).

In applying Cognitive Apprenticeship to Computing, many of the tasks we perform involve implicit steps or thinking. An example of this is closing a tag in HTML as soon as we open it. We would model this by stating that “HTML Tags generally occur in pairs and therefore it is good practice to create a closing tag immediately after creating an opening tag.” Later in the lesson, the teacher would check that students have internalised this habit by modelling the creation of (say) a  paragraph, opening a <p> tag and then asking students “As I’ve opened the <p> tag here, what should I do immediately, before I even write my paragraph?” The teacher should expect any student to be able to tell them that a closing </p> tag should be created. Unless we make these implicit habits explicit, our students will be lost as they will not be able to make the invisible conceptual leap that exists in the minds of their expert teacher.

The teacher will follow up teacher modelling with a worked example, presenting a finished product so that students know “what a good one looks like”. This is the model which they will judge their work against. They will know if they are on the right track by referring mentally or literally to the teacher’s model. Based on Rosenshine’s research, for new material the construction process should be broken down into small steps with student practice after each step. If for example, students are studying spreadsheets, students should not be presented with four different functions to use in formulae along with formatting and the creation of graphs in one lesson. Rather, the first lesson might focus on arithmetic operators and a spreadsheet might be designed which allows for practice of individual arithmetic operators before moving onto formulae which combine several operators and brackets.


For each of the lessons, Rosenshine advises that students should be attaining a high success rate in their guided and independent practice. Students should be attaining success rates of 80% on their practice tasks. One way to gauge what the class’s current success rate and level of understanding is to stop the students after a set amount of time, model the correct processes and solutions on the board and asking students to mark their own work. At the end of this modelling and self-assessment, pupils may be asked to raise their hand if they achieved 50%, 60%, 70% 80% or more. If it is clear that students have achieved a high success rate the teacher can launch the next task or increase the complexity of the current task. Likewise, if it is clear that very few have achieved a high success rate, then the teacher may want to clarify some misconceptions.


Developing stage of mastery

By the end of the first lesson, students should be developing a sense of mastery and at this stage teacher modelling should be punctuated with increased questioning. The process of modelling at this stage will involve deconstruction of the task, activity or process. Royce Sadler who has researched this area extensively advises that exemplars should be used during the modelling process and that these should be authentic pieces of student work of varying quality (Sadler, 2002). John Sweller is another highly-respected researcher who has spent over thirty years researching Cognitive Load Theory. During this time he has also written extensively about worked examples vs. problem solving. In a recent essay, professor Sweller discusses the benefits of showing highly variable worked examples (Sweller, 2016), referencing the work of Paas and Van Merriënboer (Paas & Van Merriënboer, 1994), he states that  learners who encounter highly variable worked examples learn more than those shown more similar worked examples. The differences in quality allow students to truly understand what is meant by quality, it makes abstract specifications and criteria more concrete. There is no substitute for exemplars; Sadler emphatically states that exemplars covey messages that nothing else can.


In the second or third lesson of the unit, the teacher should still be providing scaffolding for difficult tasks. However, the intention should be that the scaffolding will be removed once the students achieve a high success rate. At this point, students should have the opportunity to complete joint construction through supervision or guided practice. This guided instruction and collaboration is supported by Pearson & Gallagher’s Gradual Release of Responsibility Model (Pearson & Gallagher, 1983) along with Lewis & Wray’s research into literacy (Lewis & Wray, 2000) and Gibbons work on reading, writing and language acquisition (Gibbons, 2002). As students develop their level of understanding, it is worth closing the lesson with a formative assessment in the form of an exit ticket or low stakes quiz.


Secure stage of mastery

By the third or fourth lesson in a six-lesson unit, in order for modelling to be truly effective, we need to encourage students to analyse the exemplars and form their own opinions of quality; by being able to judge quality accurately, students will be able to judge and improve the quality of their own work during independent practice. After initial teacher modelling, To and Carless recommend critical peer dialogue as an effective way of students participating in this deconstruction and reconstruction process (To & Carless, 2016). To and Carless found in their research that peer dialogue and critique can provide a more supportive environment for peers to ask questions about an exemplar thus greatly increasing participation. For reserved students and students who may still fear failure in front of a whole class, pair or small group discussion allows students to make their opinions without fear of judgement from their peers. One area worth guiding students with is identifying weaknesses in exemplars as students generally gravitate towards identifying strengths and rarely identify weaknesses.

Teacher guidance is certainly required during the modelling process particularly during the early stages of a unit of work when it is highly likely that the teacher is the only expert in the room. When a teacher is leading a discussion about an exemplar, possible questions might be:


  • Who is the intended audience for this piece of work? How has the student ensured their work is user friendly and suitable for the audience and purpose?
  • How many marks would you give this student and why?
  • What keywords and technical vocabulary has this student used? What technical vocabulary should a student be using in this answer?
  • What might be a more efficient way of doing this?
  • What data structure could they use for this data set?
  • State three things would you do to improve this program/poster/report/essay/answer?
  • State three strengths of this program/poster/report/essay/answer?
  • What feedback would you give this student to improve their work?
  • This piece of work scored five out of seven what is missing to ensure the student gets full marks?
  • Are there any questions you wish to ask about the exemplars?
  • Why do you think the student has used this formula here? Can you explain their thinking?
  • What is the graph trying to show? How successfully has the student done this? How could it be improved?
  • If you were to pick out the strongest sentence or argument from this paragraph, what would it be?
  • What did you like about this film trailer?
  • What three techniques has the student used effectively to communicate the genre of their film to the audience?
  • List the graphic design rules and principles each of these exemplars have used?
  • What are the similarities between the different exemplars?
  • How might this exemplar be better or weaker than your own?
  • Can you summarise the key differences between the three exemplars we have looked at this morning?


The use of teacher-led modelling, peer discussion and individual deconstruction can take place during any unit of work. These varying methodologies do not necessarily need to take place in a linear sequence as the benefits of each methodology can be reaped regardless of the stage of mastery. However, one key finding based on experience and the literature review is that the choice and range of exemplars do need to be planned in advance.

The use of teacher-led modelling, peer discussion and individual deconstruction can take place during any unit of work. These varying methodologies do not necessarily need to take place in a linear sequence as the benefits of each methodology can be reaped regardless of the stage of mastery. However, one key finding based on experience and the literature review is that the choice and range of exemplars do need to be planned in advance.

Modelling methodologies. Based on (Carless & Chan, 2016) (Sadler, 2002)


As students move from novice to expert, the guidance provided to students should be gradually reduced (Renkl & Atkinson, 2003). Whilst problem solving is a one of the key elements of Computational Thinking and is one of the skills encouraged by Knight and Benson (Knight & Benson, 2014) and Nuthall (Nuthall, 2007), Sweller and researchers who have built on his Cognitive Load Theory have found that problem solving tasks are not suitable for novices during their initial stages of cognitive skills acquisition as they will experience cognitive overload (Sweller, 2016). Once a novice has developed their understanding and skills through varied worked examples, these learners’ intrinsic cognitive load will decrease, allowing them to be exposed to problems which they are required to solve. Renkl and Atkinson go on to state that these initial problem solving tasks will require scaffolding. Through gradual fading of both worked examples and scaffolding, students should complete problem solving tasks independently.

Rosenshine notes that whilst independent practice should be extensive and successful in order for skills and knowledge to become automatic, this independent practice should still involve monitoring. Brief monitoring of no-more than 30 seconds is appropriate. However, formative assessment can also be used to check the understanding of the whole class.

The expert teacher does not simply follow a rigid lesson structure and plan; the expert teacher will elicit feedback through frequent questioning and formative assessment techniques throughout the lesson and adapt their instruction accordingly.

“An assessment functions formatively to the extent that evidence about student achievement is elicited, interpreted, and used by teachers, learners, or their peers, to make decisions about the next steps in instruction that are likely to be better, or better founded, than the decisions they would have taken in the absence of the evidence that was elicited.”- (Kingsbury, et al., 2011)

The use of formative assessment strategies by teachers is similar to the strategies employed by football managers, pilots and heart surgeons. Whilst all the aforementioned professionals approach their operations with a plan, this plan is adapted in real-time. In aviation, when a pilot checks their instruments and discovers that they have deviated from the flight plan’s destination, the pilot makes a course correction. The pilot checks these instruments regularly, not just towards the end of the flight. Similarly, in teaching, expert teachers should be regularly checking that their students are on track to meet their destination and if not, the teacher should introduce a form of intervention to change their student’s trajectory and ensure a high success rate. The formative assessment should not take place only at the end of the lesson as this does not leave sufficient time to offer immediate corrective feedback for students to act on. An expert teacher’s classroom is a responsive classroom and the corrections to the lesson delivery are made throughout the lesson.

At this secure level of mastery, teachers can also rely on peers to provide feedback, correction and instruction. Pair programming is an example of a cooperative learning and peer instruction which is supported by research and industry (Williams & Kessler, 2002) (Hannay, et al., 2009) (Denner, et al., 2014) (Franklin, 2015). The theory behind pair programming is that the programmer (driver) is required to think aloud and the observing peer (navigator) should review the program, offering advice and feedback based on the driver’s programming and thought processes. As both students regularly switch roles after timed intervals, their shared knowledge and understanding allows them to achieve more than if they were to program separately. 

Mastery

The Gradual Release of Responsibility model (Pearson & Gallagher, 1983) states that students should move from teacher-led learning to student-led learning. At this final stage of mastery, Rosenshine states that independent practice is necessary in order to build fluency. The teacher plays an increasingly passive-role with much less intervention and much more observation and monitoring.
Learners at this stage should be independent in their thinking and application of knowledge and skills. The independent practice in the form of overlearning is what leads to fluency and automation. Rosenshine’s research suggests that the material used in independent practice may involve slight variations in the material covered during guided practice. In a Computing classroom, these variations might involve subtle changes in context or content for example re-designing a poster for a different audience or using a similar selection algorithm for slightly different conditions.
At the end of each unit of work, there should also be a summative assessment which tests the students’ stage of mastery by asking them to apply their skills or knowledge to a new scenario or context. These assessments should be conducted in exam conditions and should mirror the assessment requirements at GCSE or A-Level as closely as possible. In many cases, exam boards will release their old exam papers and also supply some specimen exam papers for new specifications. Teachers are encouraged to use these official materials wherever possible to ensure that the assessments are rigorous, accurate and appropriate.

Following a summative assessment, students should spend at least one lesson reviewing their assessment. It is here that the teacher should design resources and activities to correct misconceptions and misunderstandings. Some teachers like to have a digital mark book which directly feeds into a Personalised Learning Checklist (PLC) for each student. Dr Jasper Green (Network lead for Science at Ark Schools) suggests an alternative approach which is marking an assessment with mark scheme at hand and annotating this mark scheme with misconceptions, it soon becomes apparent where the common misconceptions are for a certain unit and what these misconceptions are (Green, 2016).

Indeed, a combination of the two techniques can be used to record and analyse misconceptions.

Before students start their corrections, students could also be given the opportunity to reflect on their learning and current level of understanding. Below is an example of a reflection sheet for a Database unit which is used during the Do Now and revisited as a plenary activity in the consolidation phase. <End of excerpt>

----------------------------------------------------------------------------------------------------------
This is an excerpt from Teaching Computing in Secondary Schools. The full text is available from Routledge and Amazon.


References

Baxter, M., Knight, O. & Lau, W., 2016. GFS Teaching Handbook, London: Greenwich Free School.
Carless, D. & Chan, K. K. H., 2016. Managing dialogic use of exemplars. Assessment and evaluation in higher education, 20 July, pp. 1-12.
Collins, A., Holum, A. & Seely Brown, J., 1991. Cognitive Apprenticeship: Making Thinking Visible. American Educator: The Professional Journal of the American Federation of Teachers, 15(Winter), pp. 38-46.
Denner, J., Werner, L., Shannon, C. & Ortiz, E., 2014. Pair Programming: Under What Conditions Is It Advantageous for Middle School Students?. Journal of Research on Technology in Education, 46(3), pp. 277-296.
Franklin, J. P., 2015. Perceptions by young people of Pair Programming when learning text languages, London: Axsied / King's College London.
Gibbons, P., 2002. Scaffolding Language, Scaffolding Learning. Portsmouth, NH: Heinemann.
Green, J., 2016. Question level analysis in science. [Online]
Available at: http://thescienceteacher.co.uk/question-level-analysis/
[Accessed 29 December 2016].
Hannay, J. E., Dybå, T., Arisholm, E. & Sjøberg, D. I., 2009. The effectiveness of pair programming: A meta-analysis. Information and Software Technology, 51(2009), pp. 1110-1122.
Kingsbury, G. G., Wiliam, D. & Wise, S. L., 2011. Connecting the Dots: Formative, Interim and Summative Assessment. College Park, Maryland, Northwest Evaluation Association (NWEA).
Knight, O. & Benson, D., 2014. Creating Outstanding Classrooms. Oxon: Routledge.
Lewis, M. & Wray, D., 2000. Literacy in the Secondary School. London: David Fulton Publishers Ltd.
Nuthall, G., 2007. The Hidden Lives of Learners. Wellington: NZCER Press.
Paas, F. G. W. C. & Van Merriënboer, J. J. G., 1994. Variability of Worked Examples and Transfer of Geometrical Problem Solving Skills: A Cognitive Load Approach. Journal of Educational Psychology, 86(1), pp. 122-133.
Pearson, P. D. & Gallagher, M. C., 1983. The Instruction of Reading Comprehension. Contemporary Educational Psychology, 8(3), pp. 317-344.
Renkl, A. & Atkinson, R. K., 2003. Structuring the Transition From Example Study to Problem Solving in Cognitive Skill Acquisition: A Cognitive Load Perspective. Educational Psychologist, 38(1), pp. 15-22.
Rosenshine, B., 2012. Principles of Instruction: Research-Based Strategies That All Teachers Should Know. American Educator, Issue Spring, pp. 12-39.
Sadler, D. R., 2002. Ah! … So That’s 'Quality'. In: P. L. Schwartz & G. Webb, eds. Assessment: Case studies, experience and practice from highereducation. London: Kogan Page, pp. 130-136.
Sweller, J., 2016. Story of a Research Program. Education Review, 10 February, Volume 23, pp. 1-19.
To, J. & Carless, D., 2016. Making productive use of exemplars: Peer discussion and teacher guidance for positive transfer of strategies. Journal of Further and Higher Education, 40(6), pp. 746-764.
Williams, L. & Kessler, R., 2002. Pair Programming Illuminated. Boston, MA: Pearson.