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

Practice paper 3 exam questions

One of the drawbacks of the yearly case study is that there are no past p...

Emergency Management System Explainer Video

This short video gives an overview of some EMIS features. It includes many ...

Geographic Information Systems (GIS)

For some functionality, an EMIS may also be connected to a GIS (Geographic ...

Programming languages - from Scratch to machine code

The CS Field Guide has a very comprehensive guide to different types of pro...

Assembly language simulators

There are several assembly language simulators available for use online. Si...

Little Man Computer (LMC)

The Little Man Computer (LMC) is a software simulator of a simple computer ...

Lesson - Data representation - sound

This download contains all lesson resources necessary to teach students how...

Predictive placement

Predictive placement is a feature of some CAD systems that enables more e...

AI to help emergency dispatch phone operators

The Singapore Civil Defence Force (SCDF) may trial an AI system to help tra...

Resources discount offer

D.3 Program development

Click here for recommended IB Computer Science textbooks.

D.3.8 Static 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

D.3.9 Internationalization

Internationalization

Internationalization

This pair of videos from Computerphile explain some of the issues that arise when trying to create software for international audiences. The first, The Problem with Time & Timezones covers issues with global time calculations and some of the special cases which exist.

The second, Internationalis(z)ing Code, covers many issues relating to language - which go far, far beyond simple ASCII and Unicode character set issues.

The videos use multiple real life examples to highlight social and cultural differences across the globe, and how they affect programmers. They are implicitly address quite a few issues related to the IB TOK course.


Updated: 2015-05-25

D.3.10 Ethical and moral obligations of programmers

Free software

Free Software

Free software is a video which does a good job of explaining how free software is much more than free (gratis). It talks about the freedoms offered by FOSS and provides lots of examples. It also covers some of the more practical benefits of free software by explaining problems that can occur when commercial closed source developers drop support for their older versions.

A common question that students ask is how companies can make money with free software. Where's the money in free software? accompanies the above video and addresses this issue.


Updated: 2015-04-29
Linux Live Distributions

Linux Live distributions

Linux is one of the best-known examples of free software and today many Linux distributions include live CD functionality that allow users to try the operating system without formatting or partitioning their hard drives. Trying a live distribution from CD (or USB flash disk for better performance) can be a great way to introduce students to free software and the programs that are available in a relatively safe environment.


Updated: 2015-04-20
Open source software

Open Source vs Free Software

The Open Source Initiative page has a very clear definition of what it considers to be open source software. The Free Software Foundation page is slightly less clear but also worth reading. It should be remembered that although often grouped together, "open source software" and "free software" are not the same thing.


Updated: 2015-04-29

Software development ethical case studies

The following ethical case studies involving software developers make excellent material for assignments or classroom discussions and debates:

The Occidental Engineering Case Study from Santa Clara University. This case study focuses on a software engineer pressured by management to certify a safety critical system he knows is not finished.

Therac-25 is a classic computer science case study. Between 1985 and 1987, software errors in the Therac-25 radiation therapy machine caused death or severe injury to six patients. Involving mistakes throughout the development and support processes, the case highlights the need for professional standards when dealing with safety critical systems.


Updated: 2015-04-29