Teach Computing

Revision notes, activities, lesson plans, teaching ideas, and other resources for GCSE, A-Level, and IB Computer Science teachers and students.

What's New

UK Computing Laws

This video from Computer Science Tutor covers the main UK computing laws re...

Wireless Networking (Wi-Fi, Security, and Hardware)

This video about wireless networking includes everything that is needed for...

Network topology videos

These four excellent videos from Computer Science tutor cover the four ma...

Network protocols

These four videos explain the main networking protocols that students are l...

Embedded Systems video

This short video is a good over of embedded systems, covering the main poin...

Representing Text in Binary

This video clearly explains the two main ways of representing text in binar...

Types of Malware

This video explains the various types of malware including viruses and troj...

Protecting against Malware

Following on from the Types of Malware video, this video explains technique...

Video: Network Security #1

This video gives an overview of the threats to networked computer systems, ...

Resources discount offer

2. Programming

Lesson resources

Algorithms & Programming game
Algorithms & Programming revision game
Recommended GCSE Computer Science textbooks
Edexcel Computer Science textbooks

Programming Exercises

Book of Programming Ideas

Book of Programming Ideas

The Book of Programming Ideas document contains 64 example programming exercises for students to try. The sections cover everything from basic input and output exercises through to subroutines, functions, and file handling. There are Python and Java versions of the document, although all exercises are written to be language-independent.


Updated: 2018-01-10
Book of programming challenges

The Little Book of Programming Challenges

This book contains 27 programming tasks for students. They range from simple assignments that output messages and variables to the screen, to more complex programs to play simple games or solve common problems. Each activity lists the required programming knowledge (e.g. loops) to complete it. This is a really useful booklet for starter or extension tasks, allowing students to work at their own pace. The activities are written so that they are language independent.

This booklet was created by Stuart Lucas and Michael Kölling and is licensed under the Creative Commons Attribution Share Alike licence. You can download the PDF version and a Microsoft Publisher version, allowing you to edit the booklet.


Updated: 2015-05-13
Java help sheets

Java help sheets

These Java Helpsheets cover various aspects of the language including if statements, data types, loops (while and for), and the Scanner class. Each sheet summarises the concept and provides several example lines of code.

The sheets can be printed out on A4 or A3 paper and make excellent wall displays to help students who are new to programming.

This resource was created by Matt Lowe and is released under the CC-BY-ND licence.


Updated: 2015-09-07
Python lesson

Lesson starter: Loops in Python

This Python handout and the PowerPoint version are designed to test students' understand of loops in Python. The second example includes an infinite loop for students to spot. The third example demonstrates working code with awful variable names - a good opportunity to highlight how 'simple' things like these can help make code much more (or less) readable.


Updated: 2017-10-17
Programming project

Programming project: Ice cream shop

This simple programming project requires the input of ice cream preferences (size, sprinkles, etc) and then calculates the total cost. The emphasis is on accepting and validating user input. With many different combinations of ice cream and prices available, this is also a good chance to talk about testing.

The project is written to be programming language agnostic: we have used it successfully with Python and Java, but it is possible to use it while teaching most languages.

Skills required: selection / if statements, while loops


Updated: 2017-10-17
Code Academy

Code Academy

Code Academy is an incredibly popular site for good reason. It has a range of excellent programming tutorials that focus on practical skills development, providing students with 'bite-sized' programming tasks that have clear and easily achievable goals that stop students getting discouraged. The system also keeps track of students' progress and allows them to learn at their own pace. Python seems to be a particularly popular language for beginners (particularly for GCSE and IGCSE), and I have found the Code Academy tutorials to be very useful for my students.

Compiled languages such as Java and C/C++/C# do not generally have tutorials on Code Academy, but as these are generally considered languages for students with more programming experience, this should not be much of a problem.


Updated: 2018-01-10

2.1.1 Programming exercises

2.1.2 Structured coding

2.1.3 Errors in programs

2.1.4 Test plans and test data

Testing

Testing and Defensive Programming

Testing is a topic that is often overlooked in Computer Science courses. This video examines the purpose of testing, different types of testing, and different types of test data (normal, abnormal, extreme). It also explains defensive programming techniques - techniques that can be used to avoid bugs in the first place.


Updated: 2018-02-17

2.1.6 Trace tables

2.2 Constructs

2.2.1 Structural components of a program

2.2.2 Sequencing, selection, and iteration

2.3 Data Types and Structures

2.3.1 Data types

2.3.2 Data structures

Data structures

Data Structures

This video explains different types of data structures - 1 dimensional arrays (or just 'arrays'), 2 dimensional arrays, and records. The example code is given in Python, which makes this video perfect for many GCSE courses.


Updated: 2018-02-17

2.3.3 Using and manipulating strings

2.3.4 Variables and Constants

2.3.5 Global and local variables

2.4.1 User input

2.4.2 Validation

2.6.1 - 2.6.3 Subprograms and functions

Subprograms

Subprograms, Local Variables & Structured Programming

Subprograms are known by several different names - methods, functions, procedures, subroutines, and more. This video explains the different types of subprograms, including those that allow data to be passed in (as parameters) and those that return a value (functions). Even if you know how to create such code, reviewing the theory can be helpful.


Updated: 2018-02-17