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

CommandPoint CAD

CommandPoint by Northrop Grumman offers a range of CAD systems for various ...

CAD+911 System

TriTech Software Systems is a company that specialises in Computer Aided Di...

London Ambulance CAD failure

The 1992 London Ambulance Service CAD failure is probably the most notoriou...

Washington State 911 Failure

A 911 emergency telephone system in Washington State and Oregon shut down f...

London ambulance failure (2017)

A 2017 failure of a London ambulance dispatch system is believed to have le...

Computer Aided Dispatch outage

A 911 system failure left emergency calls unanswered and is said to have co...

Load balancing videos

This short article and the associated video explain 5 load balancing algori...

Intergraph Computer-Aided Dispatch (I/CAD

Intergraph Computer-Aided Dispatch (I/CAD) is a system offering many of the...

Boolean logic worksheet pack

These three Boolean logic worksheets have exam style questions on logic sta...

Resources discount offer

2.1.7 Programming

Click here for recommended OCR GCSE 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

Programming Languages

(c) Explain the difference between high level code and machine code

Programming languages

Machine, Assembly & High-Level Programming Languages

A clear explanation of the differences between the many programming languages available. Near the beginning of the video is an excellent diagram that shows machine code, low level languages, high level languages, and human languages on the same continuum, to help you understand how they differ. It then goes into more detail about the benefits and drawbacks of each language type.

A good follow up to this video is Translators (Assembler, Compiler & Interpreter), created by the same person.


Updated: 2018-02-17

(d) Explain the need for translators to convert high level code to machine code

(e) Describe the characteristics of an assembler, a compiler and an interpreter

Translators

Translators (Assemblers, Compilers & Interpreters)

The relationships between translators, compilers, and interpreters confuses many students. Throw in assemblers and it can be hard to understand anything about this topic. This video tries to address that confusion, with clear explanations and lots of clear examples.

I'd recommend watching the video Machine, Assembly & High-Level Programming Languages (from the same creator) first, particularly if you're unclear about the difference between assembly language and higher level languages like Python.


Updated: 2018-02-17

(f) Describe common tools and facilities available in an integrated development environment (IDE)

IDEs

IDE Tools

Most pupils will be familar with using an Integrated Development Environment, but many will struggle to explain the benefits they provide. This is particularly true if they have never used a different environment. This video explains the IDE features we might take for granted: project management, syntax highlighting, code completion, and more.


Updated: 2018-02-17

Handling data in algorithms

(o) Use one-dimensional arrays

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

Testing

(r) Select and justify 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