CAS Community   >   Resources   >  

Computer Science from the Metal Up

High-quality, free resources for teaching Computer Science at A-level

Richard Pawson

Created by Richard Pawson
last edited Oct 08 2020 by Richard Pawson

Update 8th October 2020: This page has now been made public, and the Student Version of each book (with associated resources) added directly to this page. For the Teacher Version - and further explanation - of each resource, please follow the links below. You will need a CAS log-in to access the teacher resources, or you may request them by emailing the author (rpawson at - in which case please attach a link to your profile page on your school/college website, or other confirmation that you are a teacher.

Computer Science from the Metal Up is a set of resources written specifically to support the teaching of A-level Computer Science. The resources adopt a rather different approach to that found in most A-level Computer Science textbooks:

  • The resources aim to build understanding, rather than simply ‘teaching to the exam’. These resources are intended to be followed by practice of past exam questions, readily available online, but there are deliberately no exam-style questions in the resources themselves.
  • Emphasis is placed on the ‘why’ rather than just the ‘what’: where possible each new idea is introduced as the response to a specific need, building a clear narrative around the technology.
  • ‘Learning by doing’, wherever possible. This takes two primary forms: by constructing a solution, and/or by exploring a ready-made simulation.
  • As much use of program code as possible. This has two motivations: it aids understanding of the principles being taught, and it increases fluency in coding, which will help pupils taking any on-screen programming exam, and, especially, those undertaking a programming project.

Most of the resources are published with both Student and Teacher editions, the latter including model answers – and a simple Electronic Answer Document (EAD). Where the resources involve programming, the hope is to provide versions of the resources customised for specific programming languages, the range of languages broadening over time.

Published resources

Object-oriented Programming - with a Foreword by Alan Kay Learn OOP by building two different substantial and interesting applications from scratch: an interactive drawing program, and a records management system.

Assembly Language Programming Learn how to write interesting programs in assembly language using the purpose-written ARMlite simulator.

Functional Programming Learn the principles of Functional Programming using Haskell, and how to adopt the same approach in C# or VB.

Understanding REST Explore a working RESTful API to understand how REST works and why it is so important an idea.

Ray Tracing Explore a visually-interesting ‘ray tracing’ graphics program, to reinforce understanding of OOP and of vectors.

An Introduction to Programming in C# for pre-university Maths/Science pupils Unlike the other resources in the series, this one is aimed at A-level pupils not taking A-level Computer Science. It teaches modern programming techniques in a Maths/Science context.

Further resources in the series are planned. For enquiries please contact Richard Pawson (rpawson at

Downloaded 222 times.


This resource has attached files: to access these files, please tick the box below to assent to the license terms
License: The resources on CAS website are under Creative Commons Attribution-Share Alike 3.0 licence unless otherwise specified by the resource creators.

You must confirm that you have read and agree the licence's ToS before you can download the attachments of this resource.

I have read the licence agreement of this resource and agree to abide by its terms and conditions.

Feedback and Comments

Available when logged in (join via the front page, for free):
  • View 0 comments on this resource.
  • View resource history, links to related resources.
  • Leave feedback for the author(s), or help by editing the resource.

All Rights Reserved © Computing At School 2020
Using the websiteDisclaimer of liabilityCookies policyPrivacy policy