The Computer Science Field Guide is an online interactive resource/textbook for high school students learning about computer science, developed at the University of Canterbury in New Zealand.
JavaScript HTML Python PHP CSS CoffeeScript
Failed to load latest commit information.
.github Move CONTRIBUTING file for visibility and typo fixes May 23, 2016
docs Update docs with 'Always' value for expanded parameter for panels Oct 10, 2016
files Merge branch 'develop' into interactive/arrow-point-locations Jul 21, 2016
generator Merge branch 'issue/396' into develop Dec 13, 2016
images Replace broken link to Eliza chatterbot (fixes #384) Oct 5, 2016
interactives Merge branch 'interactive/trig-function-calculator' into develop Dec 13, 2016
output Reorganised .gitignore Aug 10, 2015
text Add introductory tractability video (fixes #401) Dec 13, 2016
.codeclimate.yml Ignored third-party folders and added markdown and php checkers Mar 10, 2016
.editorconfig Changed language settings file to use YAML syntax (build fails) Jun 28, 2016
.gitattributes Update .gitattributes to ignore third-party & docs folders (fixes #353) Jun 6, 2016
.gitignore Cache math images used for print media generation Jun 2, 2016
.travis.yml Removed PDF generation from travis-ci test Aug 22, 2016 Add Code of Conduct May 23, 2016 Fixed broken link in CONTRIBUTING docs Jun 15, 2016 Created LICENSE file. Apr 22, 2015 Rewrite README to reduce duplicate information from documentation May 24, 2016 Add ability to list authors in sidebar Oct 18, 2016
requirements-print.txt Added requirements file for PDF HTML output Jun 9, 2016
requirements.txt Generate output from YAML settings file Jun 29, 2016

Computer Science Field Guide

Build Status

The Computer Science Field Guide (CSFG) is an online interactive resource for high school students learning about computer science, developed at the University of Canterbury in New Zealand. The latest HTML release of the Computer Science Field Guide can be viewed at This repository aims to be the source for all data associated with the CSFG, and also allows users to suggest improvements or create their own version.

Project Philosophy

The CSFG aims to be an document used for teaching Computer Science all over the world in many different languages. After using an internal system for creating the guide (from 2012 to 2015), we have moved to a custom open source system. All areas of the project, from chapter text to website design, are now available for all. We want this project to be as accessible as possible to our many user groups, which includes students, teachers and educators, and developers.


  • Python 3.4+


Download the latest release from the GitHub releases page, or clone the repository for the latest development version.

The required dependencies are listed within requirements.txt and can be installed using the Python package pip (see how to do this here), or can be manually installed to suit your environment.


Run with Python 3. This will produce an student version of the CSFG in English. Details about optional parameters are found within the usage documentation.

Bugs and feature requests

Have a bug or a feature request? Please first search for existing and closed issues in our issue tracker. If your problem or idea is not addressed yet, please open a new issue.


We would love your help to make this guide the best it can be! Please read our contribution guide to get started. Possible areas for contributions include:

  • Suggesting a text edit for a typo, grammar correction, or just clearing up a point.
  • Add a translation for a chapter or interactive.
  • Add a new or replacement image for a chapter.
  • Modify text and create their own version of the CSFG.
  • Add or modify an interactive for the guide.


Documentation for this project is stored in the documentation folder.


The Computer Science Field Guide uses a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license. Read the license file for more details.


This repository is currently primarily managed by Jack Morgan, with Hayley van Waas and Tim Bell as backup administrators.