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

4.3 Introduction to Programming

Click here for recommended IB Computer Science textbooks.

Programming exercises

This section contains programming exercises to help pupils practise their skills in syllabus sections 4.3.6 to 4.3.13.

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

Nature of programming languages

4.3.1 Fundamental operations

4.3.2 Fundamental and compound operations

4.3.3 Features of a programming language

4.3.4 Higher level languages

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

4.3.5 Translators

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

Use of programming languages

4.3.6 Key terms

4.3.7 Operators

4.3.8 Use of constants, variables, and operators

4.3.9 Loops and branching

4.3.10 Applications of collections

4.3.11 Algorithms using collections

4.3.12 The need for collections and subprograms

4.3.13 Algorithms using collections and subprograms