Friday 28 October 2022

Books for budding computer scientists: A comprehensive reading list

Literacy and reading is important for every subject. Indeed every teacher should be a teacher of reading. Given the importance of subject-specific texts, I have compiled a list of books for all age groups.

Books For Budding Computer Scientists Poster Reading List

A JPEG is available here and printed versions can be bought from here.

The list in Excel format is here

Thanks to all the authors, illustrators and content creators who have inspired me to write and publish computing books.

For more resources, mostly free and a few paid, you can visit:

Friday 13 May 2022

Developing principles for teacher education programs and practices

I am coming to the end of my first year of an Msc in Teacher Education. For our most recent assignment, we were asked to reflect on our principles. Five years ago, I was asked to write my principles of practice (educational philosophy) for a job application. I wrote this educational philosophy as a computer science teacher and head of department, but I have never written principles for teacher education. I have tried to list those most important to me below:

1. Develop meaningful relationships built on sensitivity, trust, honesty and multiple perspectives.

2. Modelling needs to take place in all interactions with teachers – from the way we speak, the way we address teachers to the way we instruct. Teachers also need to practice modelling before attempting procedures and techniques with their pupils.

3. There will be many occasions where we need to think aloud to make our tacit knowledge explicit and also to provide a rationale for what we are doing, how we are doing something and importantly why we are doing something.

4. Feedback should be concrete and actionable. When providing lesson feedback, consider the feedback with the maximum leverage for the teacher at that moment in time. 

5. Accept that contexts and individuals differ and therefore, there are many ways to address a problem.

6. Research and evidence should inform educators’ work and therefore also inform a teachers’ work.

7. Be mindful of workload. If we cannot put ourself in a teacher’s position and realistically do what we are asking them to do, then there may be a workload issue.

8. Make these principles explicit and encourage teachers to write their own principles and to also share these with their peers and students (where appropriate).

Our principles guide everything that we do as teachers and teacher educators. By making these explicit, we understand ourselves and help our learner teachers understand our rationale. I believe this could be a useful exercise for all teachers. You could share these in your team to identify conflicting or competing principles that you hold and discuss why you think principles are important. What principles resonate with your own beliefs about teaching and teacher education?

Further reading:

Korthagen, F., Loughran, J. and Russell, T. (2006) Developing fundamental principles for teacher education programs and practices, Teaching and Teacher Education, 22(8), 1020-1041  
Loughran, J. (2006) Developing a Pedagogy of Teacher Education: Understanding teaching and learning about teaching, Routledge: Abingdon (Chapter 6, Principles of practice)  
Crowe, A.R. and Berry, A. (2007) Teaching prospective teachers about learning to think like a teacher: Articulating out principles of practice, in T. Russell and J. Loughan (eds.) Enacting a Pedagogy of Teacher Education: Values, relationships and practices, Routledge: Abingdon

Wednesday 13 January 2021

Computing pedagogy blogs: Blogs I read

If you're a regular reader of this blog, you will hopefully have found some of my blogs useful. The most read ones are shown on the side panel on the right.

Here are some other blogs which I read to keep up with the latest research on Computing pedagogy and research:

NCCE Pedagogy

The Quick Reads on NCCE Pedagogy by @LegoJames are excellent. Sign up to the Research Bytes newsletter and also check out the podcasts.

Sue Sentance

Sue taught computing in secondary schools before moving to research and academia. She is now the Chief Learning Officer of the Raspberry Pi Foundation. Her blog covers computing curriculum, policy and pedagogy. Of particular interest is the work she did with Jane Waite on PRIMM - a methodology for teaching programming.

Miles Berry

Miles is the principal lecturer and subject leader for Computing Education at University of Roehampton. His website has some insightful blogs relating to ITT and Computing education in general.

Alfred Thompson

Alfred has been reflecting on his teaching through a blog that goes back to 2005. Although his context is in the US, it provides a fascinating read.

Computing Ed

Curated by @guzdial. Mark Guzdial is a Professor in Computer Science & Engineering and Engineering Education Research at the University of Michigan. His Computing Ed Research Blog offers an academic research lens and covers secondary and higher education.

More to follow

Sunday 3 January 2021

Remote teaching during a pandemic

(10 Min Read)

Teaching remotely has the same goals as teaching face to face. Some of these goals are:

  • Transfer of declarative knowledge and procedural knowledge (skills)
  • Engagement with learners
  • Assessment of learning
  • Covering the curriculum and beyond
  • Highlighting misconceptions
  • Supporting learners to achieve the learning outcomes
  • Safeguarding and pastoral care

However the way in which teachers achieve these goals remotely is different. McAleavy et al (2020) succinctly state that "online teaching should not try to mimic the entirely synchronous teacher-student engagement of the conventional school." We also need to consider access to technology and teacher's digital literacy. We cannot assume that all students will have access to a desktop or laptop, some may be accessing remote learning through a small mobile phone or tablet. A simple, structured approach is always better than trying to use as much tech as possible.

McAleavy et al's report available here focusses on ensuring that remote teaching maintains structure, adaptation and assessment. The key takeaways from the report are:

  • Teaching presence - Social interaction needs to be intentional with high levels of engagement and teacher visibility. This visibility can take several forms e.g. live modelling and explaining content and thought processes in an engaging way, asking questions, assessment, diagnostic feedback, and adapting resources / learning sequence in response to students' progress.
  • Remote learning traps - Excessive personalisation and self-paced study can lead to underachievement. Give opportunity for students to work independently with some real-time Q&A.
  • Blended learning - Use of both live (synchronous) and asynchronous methods. Consider the use of printed materials instead of purely online digital content.
  • Assessment - Use of automated self-marking quizzes e.g. Google Forms, Microsoft Forms, SMHW. Use of paper-based assessment e.g. pupil self-assessment against teacher supplied models and mark schemes.
  • Community focus - Building a collective identity and sense of belonging. Do not allow students to become pre-occupied with competitive achievement.
  • Minimising workload - Use of centralised resources either created by the school or sourced externally. Then modifying these where necessary.
  • Realistic transition - Do not expect to go 100% remote, online and synchronous straight away. Consider virtual office hours, fixed times when teachers can provide one-to-one support.
  • Continuity for all - Maintaining education for all students in the cohort, particularly the vulnerable and disadvantaged is the number one priority. If an initiative might alienate learners or be inaccessible due to technology issues, then a simpler alternative needs to be sought. 

An area which may be controversial is the suggestion that teaching needs to be engaging and interactive. However, for students it is very easy to cognitively switch off or multi-task when learning experiences are not cognitively engaging. We need to consider how much passive time there is in our teaching activities.

From a personal experience, finding a balance between lecturing for 50 minutes and providing students with sufficient time to work independently is key. While students are working independently, students need a method to be able to ask questions, a chat/message feature on Microsoft Teams or Google Meets is fine or this. Some classes may work fine with audio Q&A, other classes you may want to limit to the text-based chat.

Once students have completed some independent work, the teacher needs to somehow assess this. It may not be realistic for teachers to read 30 pieces of work, so they may take a sample and offer whole-class feedback.

Teachers can also set an automated online test (this needs setting up in advance). These low stakes tests are fairly easy to setup on Show My Homework (Tutorial here) , Google Forms (Tutorial here) or Microsoft Forms (Tutorial here). I would advise using the platform which your school already currently uses - for our school, SMHW Quizzes work well, they can be accessed via the app and all students have a login which they use daily. All platforms can provide immediate data to the students and teachers. Alternatively, teachers may want to ask a hinge question with multiple-choice options as answers in the chat feature. Multiple-choice is more likely to increase student participation and the teacher can announce how many students have given an answer and encourage others to do so. Once answers have been submitted, the teacher may ask a student to explain their choice.

One of the best ways to resolve access issues is by using printed resources alongside some online content, the printed resources will mean that students are not reliant on a fast internet connection to access video and software to download or view files. Of course, if we're trying to increase teacher visibility then there are several ways of doing this. One way could even be on a conference call, alternatively the teacher could use e-mail or SMS to check-in on vulnerable or disadvantaged students. The idea of virtual office hours which could include scheduled phone or video calls is also worth considering. If access issues are resolved and engagement remains low, teachers and pastoral leads need a way of contacting these families to help students break down some of these barriers to learning. In some cases students may need to be encouraged to come into school (if it is safe) where they will receive more direct support with their learning.

For teachers in schools that have decided to go with synchronous or asynchronous video lessons, there are a few considerations in Brame's literature review (2016) available here. The report focusses on three areas:

  • Cognitive load
  • Student engagement
  • Active learning

Practices to maximize student learning from educational videos

The three areas work together. If the video input is short, snappy and well designed, student engagement is maintained, and there is a focus on keeping learners cognitively active and involved, then lessons are likely to be more successful. A full table of recommendations by Brame is reproduced below. The examples are quite helpful.


Element to consider




Cognitive load

Use signaling to highlight important information.

Can reduce extraneous load.

Key words on screen highlighting important elements

Can enhance germane load.

Changes in color or contrast to emphasize organization of information

Changes in color or contrast to emphasize relationships within information

Brief out-of-video text explaining purpose and context for video (e.g., learning objective for video)

Use segmenting to chunk information.

Manages intrinsic load.

Short videos (6 minutes or less)

Can enhance germane load.

Chapters or click-forward questions within videos

Use weeding to eliminate extraneous information.

Reduces extraneous load.

Eliminating music

Eliminating complex backgrounds

Match modality by using auditory and visual channels to convey complementary information.

Can enhance germane load.

Khan Academy–style tutorial videos that illustrate and explain phenomena

Narrated animations

Student engagement

Keep each video brief.

Increases percentage of each video that students watch; may increase total watch time.

Multiple videos for a lesson, each ≤ 6 minutes

May decrease mind wandering.

Use conversational language.

Creates a sense of social partnership between student and instructor, prompting the student to try harder to make sense of the lesson.

Placing the student in the lesson by use of “your” rather than “the” during explanations

Use of “I” to indicate the narrator’s perspective

Speak relatively quickly and with enthusiasm.

Increases percentage of each video that students watch.

Speaking rates in the 185–254 words per minute range

May increase sense of social partnership between student and instructor.

Expressions of instructor excitement, such as “I love the next part; the way the feed-forward mechanism works is so elegant,” or “Consider how the cell solves this tricky problem of needing to regulate three genes in sequence; it’s really cool.”

Create and/or package videos to emphasize relevance to the course in which they are used.

Increases percentage of each video that students watch.

Videos created for the class in which they are going to be used, with instructor narration explaining links to preceding material

May increase germane cognitive load by helping students recognize connections.

Explanatory text to situate video in course

Active learning

Consider these strategies for promoting active learning:

Packaging video with interactive questions.

May increase germane cognitive load, improve memory via the testing effect, and improve student self-assessment.

Integrate questions into videos with HapYak or Zaption, as described by Obodo and Baskauf (2015) 

Follow short videos with interactive questions within an LMS, as done by Keithly and colleagues (2015) , or within Google Forms, as done by Caudel and colleagues (2015) 

Use interactive features that give students control.

Increases student ownership and may increase germane cognitive load.

Create “chapters” within a video using HapYak or YouTube Annotate

Use guiding questions.

May increase germane cognitive load, reduce extraneous cognitive load, and improve student self-assessment.

Senchina (2011)  provides guiding questions for videos designed to introduce physiology students to professional ethics related to experimenter–subject interactions, such as the following: “Observe the subject’s behavior and responsiveness during the dehydration period. What changes as the subject becomes dehydrated? What problems does he have? Observe the experimenters’ behavior and responsiveness as dehydration progresses. What do they do differently? Why?”

Make video part of a larger homework assignment.

May increase student motivation, germane cognitive load, and student self-assessment.

Package videos with a series of questions or problems that ask students to apply the concepts from the videos. iBiology Education videos (e.g., What Can You Learn with a Light Microscope?) provide one example (iBiology, 2016 )

By weeding out un-necessary information and keeping teacher input concise, students are also more likely to avoid zoom fatigue - a phenomenon highlighted by Torrey Trust here.  

One common piece of advice from the sources above and anecdotal evidence from teachers is to incorporate paper-based resources during remote teaching. Having taught for over 6 months remotely this year in a school which uses paper-based booklets, I can confirm these are ideal for schools and students who do not have 1:1 laptop/desktop devices at home. The booklets are well-structured and low tech.

Example workbooks for Computer Science can be found here. You will notice that there are paper-based low stakes tests built into the booklets in the form of Do Nows either with the lesson or at the back of the booklet. There is text content with optional videos followed by at least 20 minutes of independent practice.

There are also hundreds of workbooks for various subjects here:

  • Science curated by CogSciSci here
  • More Science resources here
  • English by Douglas Wise  here
  • Geography by internetgeography (£60 subscription) here
  • Search or post on Twitter as there are always teachers willing to help


For many schools in the UK, high quality remote teaching will include some video. I will try to highlight the minimum requirements in terms of technology. If your laptop has a built in webcam, this will suffice. If you have a desktop, a webcam from a reputable company such as Logitech or Sandberg are recommended. Some teachers may also want to teach remotely with a visualiser, we use Ipevo visualisers. I do not currently use a separate microphone, as the webcam and visualiser have these built in.  I do advise using headphones. The last piece of technology which may improve call quality is an Ethernet cable. This cable can be plugged directly into your router at home and will provide a stable and fast connection, particularly if you experience WIFI or other connectivity issues. Regarding software, for live lessons, use the platform that your school currently uses. Do not assume students can train themselves to use a new platform i.e. if you are a Google school, use Meet, Microsoft schools should use Teams. Some schools use Zoom, which is the least secure of the three platforms. For safeguarding and to avoid "Zoom bombing" where uninvited guests join a lesson and take over the broadcast, you should:

  • Change screensharing to “Host Only”.
  • Disable “Join Before Host” so people can’t cause trouble.
  • Disable “File Transfer” so there’s no digital virus sharing.
  • Disable “Allow Removed Participants to Rejoin” so booted attendees can’t slip back in.
  • Use Mute All during teacher input (students can ask Qs in the chat).
  • Be aware that students can still record or screenshot the lesson even with recording disabled.

Tips via Ana Agneshwar

What this section highlights is the significant preparation and technology that all teachers need access to. Thankfully, my school bought all this hardware for teachers and dedicated a morning of CPD to training teachers back in September. If you need to buy time to provide training and create paper-based booklets, a temporary measure could be to use lessons on Oak National Academy or BBC Bitesize.

In Summary, consider vulnerable and disadvantaged students in your provision. Be wary of cognitive load, engagement and keeping students cognitively active. Consider using paper-based resources. Try to include live modelling, questioning, low stakes testing and diagnostic feedback. Lastly, be prepared to adapt resources and the learning sequence in response to students' progress.

Further reading:





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?