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

Device specifications

Device Specifications is a simple site with a huge database of smart phones...

Smart phone specs explained

This excellent site is a detailed guide to smart phone specifications, expl...

Software as a Service (Saas)

This short video gives an overview of Software as a Service (SaaS), which s...

Amazon EC2 - Elastic Cloud Server

Amazon Elastic Cloud (Amazon EC) is a good example of Infrastructure as a S...

Changeover notes

IGCSE ICT provide short but clear notes and diagrams covering the different...

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...

Resources discount offer

1.2 Software and Software Development

Click here for recommended OCR A-Level Computer Science textbooks.

1.2.1 Systems software

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

1.2.2 Applications generation

Utility software

Utility Software and Models

Some students find the difference between operating system software and utility software hard to understand. This video should help clarify the differences (and also the difference between application software and utility software), with plenty of good examples. It also covers the basics of computer software models.

Updated: 2018-02-17

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

1.2.3 Software development

1.2.4 Types of programming language