Computer Science Across the Curriculum

As part of a joint project between Oxford University and Queen Mary, University of London, and with funding from the Department for Education, a book entitled “Computer Science Across the Curriculum” has been written, to illustrate the value of Computer Science in various different aspects of the national curriculum.

Overview of Contents

The book contains a general introductory chapter, followed by another that explains how to handle animation and movement, after which it moves on to simulations in Physics (notably modelling projectile flight and spacecraft). Then a chapter on cellular automata (including a model of disease and cell patterning, and the famous “Game of Life”) prepares the way for a chapter on Chemistry, covering models of diffusion and Brownian motion. The chapter devoted to Biology includes co-evolution of hunter and prey (cheetahs and gazelles), evolution of the sex ratio, and flocking behaviour.

Up to this point, the programs have been explained in a fair amount of detail, such as could support teaching in class, but the remaining chapters aim instead to give a brief flavour of more advanced material for independent exploration, with programs and further detail provided online, but only key ideas discussed in the book. In this spirit, there is a chapter on chaos and self-similarity, with mathematical and especially biological examples (population dynamics, algae and plant growth); and another chapter on wave phenomena, which is especially relevant to Physics. Then follows a chapter on games and computer science — implementing three nice examples from cs4fn (tic-tac-toe, Nim, and the knights’ tour), and leading up to the Turing machine — and finally a chapter on Philosophy, covering the Turing test and the theory of the syllogism.

Links to the Programs

  1. 1. Introduction, Computer Science for Fun, and Turtling
    1. 1.4 Simple drawing with pauses
    2. 1.5 Spiral of colours
  2. 2. Animation and Movement
    1. 2.1 Moving ball (using variables)
    2. 2.2 Bouncing ball (using variables)
    3. 2.3 (a) Moving ball (using the Turtle)
    4. 2.3 (b) Bouncing ball (using the Turtle)
    5. 2.4.1 Asking for typed input
  3. 3. Computing in Physics: Cannons and Rockets
    1. 3.1 Movement under gravity
    2. 3.2 (a) Firing a cannon (manual)
    3. 3.2 (b) Firing a cannon (automatic)
    4. 3.3 Launching a rocket into orbit
  4. 4. Cellular Automata: Modelling Disease, “Life”, and Shell Patterns
    1. 4.1 Initialising Conway's Game of Life
    2. 4.2 Spread of disease
    3. 4.5 Conway's Game of Life
    4. 4.6 One-dimensional cellular automata
  5. 5. Computing in Chemistry: Diffusion and Brownian Motion
    1. 5.1 A model of diffusion
    2. 5.2 Brownian motion
  6. 6. Computing in Biology: Evolution and Behaviour
    1. 6.1 Cheetahs and gazelles
    2. 6.2 The sex ratio
    3. 6.3 Flocking behaviour
  7. 7. Chaos, Recursion, and Self-Similarity
    1. 7.1 (a) Logistic equation
    2. 7.1 (b) Logistic spider
    3. 7.2 Mandelbrot set
    4. 7.2.1 Mandelbrot mini
    5. 7.2.2 (a) Mandelbrot spectrum
    6. 7.2.2 (b) Mandelbrot mini spectrum
    7. 7.3 (a) Recursive triangles
    8. 7.3 (b) Sierpinski triangle
    9. 7.3 (c) Sierpinski dots
    10. 7.4 (a) Iterated function systems (IFS) background
    11. 7.4 (b) Sierpinski colour
    12. 7.4 (c) Sierpinski IFS
    13. 7.5 (a) Barnsley IFS
    14. 7.5 (b) Barnsley colour
    15. 7.5 (c) Tree IFS
    16. 7.5 (d) Dragon IFS
    17. 7.5 (e) Dragon colour
  8. 8. Waves and Quantum Mechanics
    1. 8.3 Interference
    2. 8.5 Wave superposer
    3. 8.6 Young's two-slit experiment
  9. 9. Games and Computer Science
    1. 9.1 Knight's tour
    2. 9.2 Nim with multiple piles
    3. 9.3 Noughts and Crosses