So You Want to Teach Computer Science?

Computer Science is an exciting and important subject where the demand for competent teachers outweighs the supply. This makes it an appealing option for many considering choosing it as a subject for initial teacher training or as a new subject within an existing teaching career.

In this article we will look at some points to consider when determining whether teaching Computer Science at GCSE or A Level is a good choice for you.

As a slightly tongue in cheek cultural observation, it’s interesting to note that “nerdiness” and “geekiness” (two qualities often associated with computer programming) have ceased to be the pejorative terms they once were. Indeed these days it’s not uncommon to see “nerds” in charge of corporations worth billions of dollars and having armies of workers at their command. Another example of the cultural shift I’m referring to is the popularity of the Big Bang Theory which recently became the longest running TV sitcom ever. And most of the main characters were – scientists!

It seems fair to say that scientific competence, including high-level computing skills, are often a ticket into a successful and prestigious career. And as a Computer Science teacher you get to inspire the next generation of techno-wizards!

Any hoo, back to the main paint of this article…

What qualities, skills and resources do I need to teach Computer Science effectively?

You have to enjoy computing

This probably goes without saying. If you want to inspire, you must feel inspired, or at least remember what it felt like to feel inspired. Many who teach Computer Science GCSE or A Level are hobbyist programmers, or have some tech-related passion like robotics or gaming.

You have to be reasonably good at Maths.

It is an unavoidable fact that Computer Science involves a certain amount of mathematics. How could it not? – It is a science after all. Don’t be deceived on this point. The mathematical requirements at GCSE are relatively basic (such that a student predicted a solid level 5 in Maths could handle comfortably for example), but students and teachers who really struggle with maths need to give some serious consideration as to whether Computer Science is the right choice for them. There is some truth in the idea that studying Computer Science can actually help with mathematical ability, and that is great and to be encouraged, but however it comes about, that mathematical competence will be required. This is of course even more true at A-Level.

Some mathematical topics which aspiring Computer Science teachers should be comfortable with are:

  • Variables
  • Arithmetic (adding, subtracting, multiplying and dividing)
  • The modulo operator
  • Converting units – e.g. kilobytes to bytes
  • Place value for decimal, binary and hexadecimal
  • Using formulas – e.g. to calculate file sizes for images and audio -The ability for follow algorithms (e.g. column addition, column multiplication, multiplying fractions)
  • Problem solving skills

The willingness to keep on learning

This probably applies to most subjects and teachers as well, but Computer Science is an area where you have to keep on learning. Whether it’s due to changes in the curriculum, technological advances, having to teach a new level or for a different exam board, or a student who needs to have a concept explained in a new way so they can grasp it – you have to keep on learning. If you are not willing to do so, you probably won’t make a great Computer Science teacher.


Excellent resources are essential to any teacher. Many choose to make their own which is great, but I always like to keep the distinction in mind between teaching and resource creation. They are different jobs, and having to do both at once can compromise the quality of each.

Having resources which you trust is makes a huge difference to a teacher’s confidence and effectiveness. The ability to identify and select great resources is a very important skill which can take years of experience to develop.

There are many criteria for great resources, but one which I consider particularly important is:

  • Full solutions must be provided in both written and digital form (i.e solution files).

This is not laziness on my part – having full solutions available in the the specific format required by the examining body means that the teacher can give all their mental energy to the act of teaching rather than solving the questions for themselves. It also seems obvious to me and yet is surprisingly rarely done, that solution files containing program code should be available for all programming exercises.

Do shed-loads of practice

Unless you are an experienced programmer, you have to do lots, and I mean lots, of practice to get good. Don’t underestimate the work (play!) involved. It’s OK to admit to a student that you don’t know the answer to a question, or can’t debug their program, but you want to keep this as a rare occurrence!

For a great place to get lots of practice with programming, check out codewars or codingbat. Both require that you understand functions though , so if you have not got that far in your learning yet, maybe check out some of the resources mentioned here.

I hope that gives you some idea of what it means to become a Computer Science teacher. If you decide to, it is certainly a rewarding career and your skills are likely to be in demand for a long time to come. Do remember though, Computer Science is a science! This may sound obvious, but it’s worth emphasizing that as such, it requires mental discipline and rigour, which may not appeal to all.

How can Compucademy help?

In the near future we will be offering training in all aspects of Computer Science teaching. If you want to find out more, please get in touch using the details on our contact page.

We also have the following resources

Don’t forget to sign up to our newsletter to be kept up to date with information and offers relating to Computer Science education.

Sharing is caring!

1 Comment on “So You Want to Teach Computer Science?

  1. At A level the emphasis is more on theory for example understanding dynamic data structures, networks, regular expressions and object oriented programming

Leave a Reply

Your email address will not be published. Required fields are marked *