This page lists updates to the Computer Science Field Guide. All notable changes to this project will be documented in this file.


We base our numbering system from the guidelines at Semantic Versioning 2.0.0, however since our project started before it was migrated to GitHub, the first open source release is being labeled as 2.0.0.

Given a version number MAJOR.MINOR.HOTFIX:

  • MAJOR version change when system-wide modifications incompatible with previous versions are made (for example: switching to a new backend system).

  • MINOR version change when content or functionality is added or updated (for example: new chapter, new interactive, large number of text (typo/grammar) fixes).

  • HOTFIX version change when bug hotfixes are made (for example: fixing a typo, fixing a bug in an interactive).

  • A pre-release version is denoted by appending a hyphen and the alpha label followed by the pre-release version.

We have listed major changes for each release below. All downloads are available on GitHub


Release date: 31st March 2022


  • Add new chapter ‘Computer Security’.

    • The chapter only contains text currently, images and interactives will be added at a later time.

  • Minor text changes (e.g. grammar corrections) in ‘Grammars and Parsing’ section.

  • Add glossary definitions for:

    • Terminal

    • Non-terminal

    • Production

  • Add new panel type ‘Exercise’.

  • Fix alignment of panels within a nested list.

  • Show chapter section name in browser title.

  • Increase size of context-free grammar parsing challenge working box.

  • Improve interface when context-free grammar parsing challenge has examples.

  • Change relative links within chapter and chapter section text to open in a new tab.

  • Remove search functionality, due to high costs and no user usage.

  • Dependency changes:

    • Remove django-haystack[elasticsearch] 3.1.1.

    • Remove elasticsearch 5.5.3.

    • Remove django-widget-tweaks 1.4.8.


Release date: 26th February 2022

Summary of changes:

This release adds new content on grammars and parsing, QR codes, Fitts’ law, and other ways to represent FSAs.


  • Add new section in ‘Formal Languages’ chapter on ‘Grammars and Parsing’.

  • Add new section in ‘Coding - Error Control’ chapter on ‘QR codes’.

  • Add new section in ‘Human Computer Interaction’ chapter on ‘Pointing at things: Fitts’ Law’

  • Add new content in ‘Finite State Automata’ section on ‘Other ways to represent finite state automata’.

  • Add seven new interactives for new and upcoming content:

    • Fitts’ law

    • Clicking with shaking

    • Index of difficulty calculator

    • Plane turbulence

    • Firewall sorting

    • Password strength - Brute force variant

    • Password strength - Dictionary attack variant

  • Update definition of ‘Parse tree’ in glossary.

  • Fix broken link to padding in cryptography Wikipedia page.

  • Update ‘CFG Parsing Challenge’ interactive:

    • Disable the text field that allows customising the equation text, as it’s prone to errors. This can be re-enabled with the URL parameter editable-target.

    • Modify ‘New productions’ button to ‘Customise productions’, and lower it’s priority in the interactive. The productions menu is also prefilled with the currently loaded exercise. This can be disabled with the URL parameter hide-builder.

    • Increase average difficulty of random equations.

    • Update terms used for user prompts.

  • Update ‘NFA Guesser’ interactive:

    • Allow answer to be optionally viewed after multiple failed attempts.

    • Change answer options to match appearance in NFA map.

  • Update ‘Parity Trick’ interactive:

    • Add optional grid references.

  • Fix incorrect solution for representing ‘water’ as binary.

  • Add tracking of dependencies within interactives using Dependabot.

  • Modify command names to be consistent across UCCSER projects.

  • Remove resource links to websites that do not exist anymore.

  • Add open/close symbols and types titles (for example ‘Curiosity’) on panels. Panels can also be forced to be always open.

  • Pause of playing Vimeo video within a closed panel.

  • Add URL for website status information.

  • Open button links in a new tab.

  • Fix bug where translation files were not generated.

  • Allow build helper command to pass parameters.

  • Allow translations of words within custom Verto templates.

  • Update interactive template block names to avoid overriding.

  • Add notes to documentation on writing custom Verto templates.

  • Change recommended JavaScript indentation to 4 spaces from 2 spaces. Existing code has not be updated.

  • Modify URL parameter decoder to accept equal signs within a parameter.

  • Enable CORS headers for providing version information across domains.

  • Add templatetag for reading file to template.

  • Add syntax highlighting within code blocks.

  • Change environment variable to allow wider Traefik router variations.

  • Update SCSS division symbol away from deprecated ‘/’ symbol.

  • Update logging configuration.

  • Add package-lock.json file.

  • Core dependency changes:

    • Add django-cors-headers 3.11.0.

    • Add Pygments 2.11.2.

    • Update bootstrap from 4.6.0 to 4.6.1.

    • Update codemirror from 5.63.1 to 5.65.0.

    • Update coverage from 5.5 to 6.2.

    • Update crowdin/github-action from 1.4.0 to 1.4.7.

    • Update django from 3.2.8 to 3.2.12.

    • Update django-debug-toolbar from 3.2.2 to 3.2.4.

    • Update django-environ from 0.7.0 to 0.8.1.

    • Update django-statici18n from 2.0.1 to 2.2.0.

    • Update docker/build-push-action from 2.7.0 to 2.9.0.

    • Update docker/login-action from 1.10.0 to 1.13.0.

    • Update lxml from 4.6.3 to 4.8.0.

    • Update MathJax from 2.7.5 to 2.7.9.

    • Update Node 14.17.0 to 14.19.0.

    • Update postcss from 8.3.9 to 8.4.5.

    • Update psycopg2 from 2.9.1 to 2.9.3.

    • Update sass from 1.42.1 to 1.49.8.

    • Update selenium omfr 3.141.0 to 4.1.1.

    • Update sphinx from 4.2.0 to 4.4.0.

    • Update whitenoise from 5.3.0 to 6.0.0.

    • Update yargs from 17.2.1 to 17.3.1.

  • Interactive bin-packing dependency changes:

    • Update interactjs from 1.4.0-alpha.17 to 1.10.11.

  • Interactive box-rotation dependency changes:

    • Update three from 0.101.1 to 0.138.0.

  • Interactive box-translation dependency changes:

    • Update three from 0.101.1 to 0.138.0.

  • Interactive city-trip dependency changes:

    • Update cytoscape from 3.4.2 to 3.21.0.

    • Update cytoscape-automove from 1.10.1 to 1.10.3.

  • Interactive colour-matcher dependency changes:

    • Update wnumb from 1.1.0 to 1.2.0.

  • Interactive frequency-analysis dependency changes:

    • Update es5-shim from 4.5.12 to 4.6.5.

    • Update es6-shim from 0.35.4 to 0.35.6.

  • Interactive jpeg-compression dependency changes:

    • Update dct from 0.0.3 to 0.1.0.

    • Update interactjs from 1.4.0-alpha.17 to 1.10.111.

  • Interactive matrix-simplifier dependency changes:

    • Update dragula from 3.7.2 to 3.7.3.

  • Interactive packet-attack dependency changes:

    • Update phaser from 3.16.2 to 3.55.2.

  • Interactive python-interpreter dependency changes:

    • Update skulpt from 0.11.1 to 1.2.0.

  • Interactive rsa-decryption dependency changes:

    • Update big-integer from 1.6.44 to 1.6.51.

    • Update node-rsa from 1.0.5 to 1.1.1.

  • Interactive rsa-encryption dependency changes:

    • Update big-integer from 1.6.44 to 1.6.51.

    • Update node-rsa from 1.0.5 to 1.1.1.

  • Interactive rsa-key-generator dependency changes:

    • Update node-rsa from 1.0.5 to 1.1.1.

  • Interactive scene-editor dependency changes:

    • Update three from 0.108.0 to 0.138.0.

  • Interactive sorting-algorithms dependency changes:

    • Update dragula from 3.7.2 to 3.7.3.

  • Interactive unicode-binary dependency changes:

    • Update urijs from 1.19.1 to 1.19.8.

    • Update underscore.string from 3.3.5 to 3.3.6.

  • Interactive viola-jones-face-detector dependency changes:

    • Update interactjs from 1.4.0 to 1.10.11.


Release date: 6th October 2021


  • Fix bug where interactives in chapters were not displaying.

  • Redirect non-www requests to www subdomain at Traefik router.

  • Run migration commands in existing container to allow access to created files.

  • Remove Docker compose volumes to avoid issues with development.

  • Dependency changes:

    • Update autoprefixer from 10.3.6 to 10.3.7.

    • Update codemirror from 5.62.3 to 5.63.1.

    • Update django from 3.2.7 to 3.2.8.

    • Update gulp-postcss from 2.0.1 to 2.1.0.

    • Update postcss from 8.3.6 to 8.3.9.

    • Update yargs from 17.1.1 to 17.2.1.


Release date: 29th September 2021


  • Allow greater customisation for the website’s Traefik routing rule.


Release date: 28th September 2021


  • Rebuild search index when updating data, instead of application start.

  • Modify configuration for Docker Swarm services to specify updatedata task.

  • Dependency changes:

    • Update crowdin/github-action from 1.3.2 to 1.4.0.

    • Update autoprefixer from 10.3.2 to 10.3.6.

    • Update intro.js from 4.1.0 to 4.2.2.

    • Update sass from 1.38.0 to 1.42.1.

    • Update sphinx from 4.1.2 to 4.2.1.

    • Update sphinx-rtd-theme from 0.5.2 to 1.0.0.

    • Update django from 3.2.6 to 3.2.7.

    • Update django-environ from 0.4.5 to 0.7.0.

    • Update django-haystack[elasticsearch] from 3.0 to 3.1.1.


Release date: 6th September 2021


  • Modify network name for production deployments.


Release date: 28th August 2021


  • Fix encoding of JPG image that prevented minifying.

  • Modify workflow to only produce production docker image run on published release.


Release date: 25th August 2021


  • Move website from Google Cloud Platform to Docker Swarm hosted at the University of Canterbury. #1380

    • Modifies website infrastructure to use Docker Swarm, running all website components as services.

    • Use GitHub actions for automated workflows. This includes testing, deployment, and internationalisation jobs.

    • Simplify static file pipeline, runs as separate service.

  • Switch to GitHub dependency manager.

  • New Depth section for Computer Vision chapter:

    • Includes new Depth from Stereo Vision interactive. #1375

  • Update Context-free Grammar interactive to always generate valid expressions via brute force, and improve the interface with a history log and consistent formatting.

  • Allow Big Number Calculator to calculate numbers with low digit counts. #1340

  • Dependency changes:

    • Add ansi-colors 4.1.1.

    • Add browser-sync 2.27.5.

    • Add child_process 1.0.2.

    • Add cssnano 5.0.8.

    • Add django-bootstrap-breadcrumbs 0.9.2.

    • Add elasticsearch 5.5.3.

    • Add fancy-log 1.3.3.

    • Add got 11.8.2.

    • Add gulp-concat 2.6.1.

    • Add gulp-imagemin 7.1.0.

    • Add intro.js 4.1.0.

    • Add lity 2.4.1.

    • Add pixrem 5.0.0.

    • Add postcss 8.3.6.

    • Add sass 1.38.0.

    • Add whitenoise 5.0.3.

    • Remove @babel/core 7.1.2

    • Remove @babel/preset-env 7.1.0

    • Remove del 3.0.0

    • Remove featherlight 1.7.13

    • Remove gevent 1.4.0.

    • Remove gulp-babel 8.0.0

    • Remove gulp-jshint 2.1.0

    • Remove gulp-notify 3.2.0

    • Remove gulp-util 3.0.8

    • Remove gulplog 1.0.0

    • Remove gumshoejs 5.1.2

    • Remove jshint 2.9.6.

    • Remove jshint-stylish 2.2.1.

    • Remove node-gyp 3.8.0

    • Remove Pillow 7.2.0.

    • Remove request 2.88.0

    • Remove run-sequence 2.2.1

    • Remove sticky-state 2.4.1

    • Remove wheel 0.35.1.

    • Remove Whoosh 2.7.4.

    • Update autoprefixer from 9.3.1 to 10.3.2.

    • Update bootstrap from 4.3.1 to 4.6.0.

    • Update browserify from 16.2.2 to 17.0.0.

    • Update codemirror from 5.42.0 to 5.62.3.

    • Update coverage from 5.3 to 5.5.

    • Update details-element-polyfill from 2.3.1 to 2.4.0.

    • Update django from 2.2.3 to 3.2.6.

    • Update django-debug-toolbar from 3.1.1 to 3.2.2.

    • Update django-haystack 3.0 to django-haystack[elasticsearch] 3.0.

    • Update django-modeltranslation from 0.15.2 to 0.17.3.

    • Update django-statici18n from 1.9.0 to 2.0.1.

    • Update flake8 from 3.8.4 to 3.9.2

    • Update gulp from 3.9.1 to 4.0.2.

    • Update gulp-filter from 5.1.0 to 7.0.0.

    • Update gulp-if from 2.0.2 to 3.0.0.

    • Update gulp-postcss from 7.0.1 to 9.0.0.

    • Update gulp-rename from 1.4.0 to 2.0.0.

    • Update gulp-sass from 4.0.2 to 5.0.0.

    • Update gulp-sourcemaps from 2.6.4 to 3.0.0.

    • Update gulp-tap from 1.0.1 to 2.0.0.

    • Update gulp-terser from 1.1.5 to 2.0.1.

    • Update gunicorn from 19.9.0 to 20.1.0.

    • Update iframe-resizer from 4.1.1 to 4.3.2.

    • Update jquery from 3.4.1 to 3.6.0.

    • Update lxml from 4.6.2 to 4.6.3.

    • Update multiple-select from 1.2.1 to 1.5.2.

    • Update popper.js from 1.15.0 to 1.16.1.

    • Update postcss-flexbugs-fixes from 4.1.0 to 5.0.2.

    • Update Postgres database from 9.6 to 13.3.

    • Update psycopg2 from to 2.9.1.

    • Update puppeteer from 1.9.0 to Docker image 10.0.0.

    • Update pydocstyle from 5.1.1 to 6.1.1.

    • Update PyYAML from 5.3.1 to 5.4.1.

    • Update sphinx from 3.3.0 to 4.1.2.

    • Update sphinx-rtd-theme from 0.5.0 to 0.5.2.

    • Update uniseg from 0.7.1 to 0.7.1.post2.

    • Update verto 0.11.0 to 1.0.1.

    • Update yargs from 12.0.2 to 17.1.1.


Release date: 2nd February 2021


  • Add context-free grammar interactive. #1364

  • Update the list of editors. #1361


Release date: 11th January 2021


  • Improve consistency of the URL parameters for the RGB Mixer interactive: #1309

  • Update CMY Mixer interactive to be consistent with RGB Mixer: #1306

  • Improve limitations of the Algorithm Timer interactive: #1332

  • Replace broken link in the HCI chapter: #1316

  • Fix typos: #1320 #1358

  • Dependency updates:

    • Update lxml from 4.5.2 to 4.6.2.

    • Update wheel from 0.34.2 to 0.35.1.

    • Update django-haystack from 2.8.1 to 3.0.

    • Update django-modeltranslation from 0.15.1 to 0.15.2.

    • Update sphinx from 3.1.2 to 3.3.0.

    • Update django-debug-toolbar from 2.2 to 3.1.1.

    • Update flake8 from 3.8.3 to 3.8.4.

    • Update pydocstyle from 5.0.2 to 5.1.1.

    • Update coverage from 5.2.1 to 5.3.


Release date: 1st August 2020


  • Add URL redirects for CS Unplugged Pixelmania activity. #1303

  • Update Pixel Viewer interactive: #1300 #1302 #1304

    • Add brightness value mode.

    • Add ability to zoom to specific starting point for an image.

    • Set image when zooming to be pixelated (only on modern browsers).

    • Add parameter to hide mode selector.

    • Add parameter to hide value type selector.

    • Add parameter to show Pixelmania branding.

  • Update RGB Mixer interactive: #1305

    • Show full value of colour in mixed colour.

    • Add parameter to show Pixelmania branding and force hexadecimal notation.

  • Fix incorrect hexadecimal value in content.

  • Dependency updates:

    • Update lxml from 4.5.1 to 4.5.2.

    • Update django-modeltranslation from 0.15 to 0.15.1.

    • Update sphinx from 3.1.1 to 3.1.2.

    • Update coverage from 5.1 to 5.2.1.


Release date: 7th July 2020


  • Add ability to show colour codes in Hexadecimal on the Pixel Viewer interactive. #1277

  • Add Hexadecimal version of colour mixer interactives. #1290

  • Dependency updates:

    • Update Pillow from 7.1.2 to 7.2.0.

    • Update sphinx-rtd-theme from 0.4.3 to 0.5.0.


Release date: 1st July 2020


  • Allow user to choose number of cards shown in the Binary Cards interactive, plus fit cards in groups of 8 on large screens. #1262 #1271

  • Fix issues in LZSS Compression algorithm, expand its functionality, and replace space characters with the open box character for clarity. #1271 #1285

  • Fix bug in JPEG Compression interactive where sometimes a checked checkbox was treated as unchecked and vice versa. #1269

  • Prevent visual overflow of matrices in Matrix Simplifier interactive. #1138

  • Replace downloadable Python programs for searching and sorting with links to updated Python programs on #1279

  • Dependency updates:

    • Update coverage from 5.0 to 5.1.

    • Update django-debug-toolbar from 2.1 to 2.2.

    • Update django-modeltranslation from 0.14.1 to 0.15.

    • Update django-statici18n from 1.8.3 to 1.9.0.

    • Update django-widget-tweaks from 1.4.5 to 1.4.8.

    • Update flake8 from 3.7.9 to 3.8.3.

    • Update lxml from 4.4.2 to 4.5.1.

    • Update Pillow from 7.1.1 to 7.1.2.

    • Update pydocstyle from 5.0.1 to 5.0.2.

    • Update sphinx from 2.3.0 to 3.1.1.

    • Update wheel from 0.33.6 to 0.34.2.


Release date: 22nd April 2020


  • Solved bug in pixel viewer that was affecting some users. #1254

  • Dependency updates:

    • Update Pillow from 6.2.1 to 7.1.1.

    • Update PyYAML from 5.2 to 5.3.1.


Release date: 26th December 2019

Summary of changes:

This release adds a new chapter on ‘Big Data’, various improvements for interactives, and updated project and chapter icons. A configuration tool for the sorting boxes interactive has been added, allowing teachers to setup specific examples for testing.


  • Add new chapter: Big Data.

  • Update project icon.

  • Update chapter icons to better reflect their topics.

  • Update rendering of some mathemetical equations.

  • Add missing glossary terms. #1017

  • Add ability for resulting equation in matrix-simplifier to be copied and pasted into all versions of the scene-editor interactive. #1168

  • Add ability to remove all equations in the matrix-simplifier interactive at once. #1168

  • Fix spelling in title of regular expression search interactive. #1172

  • Update layout, simplify difficult password, and hide plaintext passwords of password guesser interactive. #1172

  • Improve sorting boxes interactive with clearer feedback and configurator for teachers. #1196

  • Update number memory interactive to reuse shorter password if the user remembers the longer one. #1172

  • Fix bug in colour matcher where some bits did not flip when clicked on. #1167

  • Set some external links to open in a new tab. #1175

  • Update sentence about mesh points in computer graphics chapter. #1170

  • Remove deprecated Google App Engine health check logic. #1187

  • Remove use of float-left and float-right Bootstrap mixins. #1171

  • Minor typo and grammar fixes.

  • Dependency updates:

    • Update coverage from 4.5.4 to 5.0.

    • Update django-debug-toolbar from 2.0 to 2.1.

    • Update django-modeltranslation from 0.13.3 to 0.14.1.

    • Update flake8 from 3.7.8 to 3.7.9.

    • Update lxml from 4.4.1 to 4.4.2.

    • Update Pillow from 6.2.0 to 6.2.1.

    • Update pydocstyle from 4.0.1 to 5.0.1.

    • Update PyYAML from 5.1.2 to 5.2.

    • Update sphinx from 2.2.0 to 2.3.0.


Release date: 16th October 2019


  • Rebuild scene editor interactive. #1115

  • Create password guessing interactive. #606

  • Add the ability to edit existing equations in matrix simplifier interactive. #1137

  • Fix print preview to have ability to print more than just one page in Chrome. #1110

  • Add glossary entries for the Computer Vision, Formal Languages and Network Communication Protocols chapters. #1017

  • Enable subtitles in chapter introduction videos. #1089

  • Exclude licences directory from Linkie. #1153

  • Update Django from 1.11.16 to 2.2.3. #1111


Release date: 7th October 2019


  • Rebuild AI sticks game. #574

  • Rewrite RSA interactives. #1119

  • Add note to users about broken interactives. #1152

  • Content fixes and add glossary entries for the Computer Graphics and Complexity and Tractability chapters. #1017

  • Amend content licence to exclude certain properties we don’t own. #1149

  • Update versioning system description to reflect its use in practice. #1143

  • Dependency updates:

    • Update pillow from 6.1.0 to 6.2.0.


Release date: 6th September 2019



Release date: 5th September 2019


  • Rebuild matrix simplifier interactive. #375

  • Fix URL parameters in searching boxes interactive. #1129

  • Improvements to regular expression filter interactive. #1020

  • Content fixes and add glossary entries for coding, data representation and HCI chapters. #1017

  • Add glossary entries for AI chapter. #1136

  • Improve list of contributors. #1127

  • Dependency updates:

    • Update lxml from 4.3.4 to 4.4.1.

    • Update coverage from 4.5.3 to 4.5.4.

    • Update pyyaml from 5.1.1 to 5.1.2.

    • Update cssselect from 1.0.3 to 1.1.0.

    • Update pydocstyle from 4.0.0 to 4.0.1.

    • Update wheel from 0.33.4 to 0.33.6.

    • Update sphinx from 2.1.2 to 2.2.0.


Release date: 24th July 2019


  • Fix bug where navbar mobile menu is positioned incorrectly. #1068

  • Add link to the release archive in footer. #1098

  • Remove references to Picasa. #1099

  • Replace brackets with UTF-8 equivalent in archive links. #1093

  • Update Google Cloud Platform health checks. #1105

  • Dependency updates:

    • Update flake8 from 3.7.7 to 3.7.8.

    • Update pydocstyle from 3.0.0 to 4.0.0.

    • Update django-modeltranslation from 0.13.2 to 0.13.3.


Release date: 18th July 2019


  • Add interactive to demonstrate limitations of short term memory. #144

  • Add second short term memory interactive. #1090

  • Fix broken links to old interactives in the computer graphics chapter.

  • Update about page and introduction chapter. #1082

  • Improve consistency in chapter section beginnings. #1065

  • Align and resize homepage logos. #1050

  • Center homepage icons on Firefox mobile. #1066

  • Add link to Vox video on how snapchat filters work in the computer vision chapter. #367

  • Reduce length of search bar on mobile. #1080

  • Dependency updates:

    • Update django-modeltranslation from 0.13.1 to 0.13.2.

    • Update Pillow from 6.0.0 to 6.1.0.

    • Update python-bidi from 0.4.0 to 0.4.2.


Release date: 3rd July 2019


  • Fix bug where binary cards were not flipping back to white on Chrome. #1056

  • Add background to navigation dropdown on mobile. #1054

  • Add option to reshuffle weights in sorting algorithms interactive. #1070

  • Add link to curriculum guides in useful links. #1052

  • Fix several content errors. #1044

    • Remove broken links that have no replacement link.

    • Improve formatting and correct spelling errors.

    • Correct sentence that states there are 0.6 kilometers in a mile.

  • Fix formatting issues, add glossary links and a glossary term for bozo search. #1060

  • Floating elements no longer overlap the subsection divider. #1059

  • Add a redirect for the old homepage URL to the new homepage URL. #1058

  • Correct spelling and formatting in the changelog. #1037

  • Add a temporary fix for deploying static files. #1046


Release date: 30th June 2019


  • Rebuild the CS Field Guide website to use an open source Django system based off CS Unplugged (see the GitHub milestone). Major features include:

    • Greatly improved translation features.

    • Allowing student and teacher pages to use the same URLs (switch between modes available in page footer).

    • Search functionality for English chapters.

  • Improve chapter content:

    • Chapter sections are now split across pages for better readability.

    • General content, grammar, and spelling fixes.

    • View glossary definitions within a page.

  • Introduce new chapter sections:

    • ‘User experience’ by Hayley van Waas for the Human Computer Interaction chapter.

    • ‘General purpose compression’ by Hayley van Waas for the Coding - Compression chapter.

  • Improve interactives:

    • Introduce automated thumbnail generator.

    • Introduce many ‘uninteractives’ - allowing image text to be translated.

    • Update existing interactives for better accessibility.

  • Introduce new interactives:

    • Algorithm Timer

    • Braille Alphabet

    • City Trip

    • Dictionary Compression

    • Dot combinations

    • LZSS compression

    • LZW Compression

    • Pixel Grid

  • Remove obsolete interactives:

    • MD5-hash

    • ncea-guide-selector

    • ziv-lempel-coding

  • Redesign homepage.

  • Update documentation and contributing guides.

  • Update contributors page.

  • Improve licencing structure to make it easier to find and navigate on GitHub.

  • Rename ‘2D Arrow Manipulations’ interactive to ‘2D Shape Manipulations’.

  • Introduce initial German and Spanish translations.


Release date: 5th June 2018


  • Add optional parameters to Pixel Viewer interactive to specific starting image, hide pixel fill, and hide menu. #630

  • Grammar/spelling fixes for Data Representation and Compression Coding chapters. #626


Release date: 7th March 2018


  • Update Artificial Intelligence chapter to use shorter introduction video.

  • Update Unicode Binary interactive to display UTF mode.

  • Bugfixes for Sorting/Searching Boxes interactives.

  • Grammar/spelling fixes for HCI chapter.

  • Correct quote by Mike Fellows in Introduction chapter.


Release date: 13th February 2018


  • Add Huffman coding section to compression chapter with Huffman Tree generator interactive.

  • Add Viola-Jones face detection interactive.

  • Add 2018 NCEA curriculum guides.

  • Update Pixel Viewer interactive with threshold, blur, and edge detection modes for computer vision chapter. #32 #388

  • Fix bug in Base Calculator interactive where computed value displayed incorrectly. #558

  • Update Microsoft logo. #527

  • Add videos to Formal Languages chapter #518

  • Fix capitalisation of title of complexity and tractability chapter. #513

  • Migrate Mathjax to new CDN. #482


Release date: 18th October 2017


  • Add Bin Packing interactive. #490

  • Correct Two’s Complement text. #503

  • Remove contributor names from changelogs.

  • Update JPEG interactive. #488

  • Remove search as it focuses on outdated releases. #508

  • Correctly detect text size for Unicode Length interactive. #501

  • Fix broken link to CSFG in Network Protocols chapter. #504

  • Fix typo in section 2.1.3. #507


Release date: 3rd September 2017


  • Fix broken links to NCEA curriculum guides. #483

  • Fix broken link to research paper. #484

  • Fix panels showing ‘None’ as title. #485


Release date: 2nd September 2017

Notable changes:

This release adds a JPEG compression interactive, along with many bug fixes, and corrections.

The version numbering scheme now does not start with the v character (so v2.9.1 is 2.9.1). This to make the numbering consistent with our other projects (CS Unplugged and cs4teachers).


  • Update Delay Analyser reset button to avoid accidental resets. #413

  • Add video subtitle files.

  • Clean up homepage for the NCEA Curriculum Guides. #358

  • Replace cosine image. #73

  • Fix bug in detecting defined permissions of files. #73

  • Add Google Analytic skit videos to HCI chapter. #247

  • Fix Washing Machine interactive in Formal Languages chapter. #411

  • Correct spelling of aesthetics and add glossary definition. #405

  • Fix rendering of glossary definition headings.

  • Fix PBM image data. #412

  • Fix link error in HCI chapter. #410

  • Add missing NCEA guides files. #472

  • Fix link to private YouTube video on packets. #408

  • Update binary-cards interactive to handle a higher number of cards. #407

  • Add ability to hide pixel colours in pixel value interactive. #476


Release date: 20th February 2017

Notable changes:

This release fixes a bug in the Computer Graphics chapter where some links to the 2D Arrow Manipulation interactives were broken due to an incorrect regex.



Release date: 27th January 2017

Notable changes:

This release adds an introductory video for the Complexity and Tractability chapter, updated text for Graphics Transformations section of the Computer Graphics chapter, as well as updated versions of the 2D Arrow Manipulation and FSA interactives.


  • Add introductory video to Complexity and Tractability chapter.

  • Rewrite Graphics Transformations section of Computer Graphics chapter. #402

  • Rewrite 2D Arrow Manipulation interactives. #372 #373

  • Add list of authors in the sidebar of chapter page. #396

  • Update FSA interactives. #45 #46 #47 #48

  • Add NFA guesser interactive.

  • Update APCSP framework. #399


Release date: 21st October 2016


  • Update introduction chapter. #231

  • Add notice of changes to AP-CSP curriculum in Fall 2016 release.

  • Skip parsing # characters at start of Markdown links.


Release date: 19th October 2016

Notable changes:

This release adds an introductory video for the Human Computer Interaction chapter, plus a draft of guides for mapping the Computer Science Field Guide to the AP CSP curriculum.


  • Add introductory video to Human Computer Interaction chapter.

  • Add draft of guides for the AP CSP curriculum. #316

  • Update and fix issues in high-score-boxes interactive. #390 #391 #393

  • Add subtraction command to mips-simulator interactive. The interactive can now handle subtraction down to zero. #382

  • Update sponsor information in footer.

  • Improve the visibilty of warning panels. #389

  • Fix positioning of table of contents sidebar. #387

  • Fix typos in Formal Languages chapter. #385

  • Update 404 page to avoid updating after each release. #394

  • Remove duplicate introduction to teacher guide. #213

  • Add link to article on representing a 1 bit image. #376

  • Fix broken link to contributors page in footer. #383

  • Replace broken link to Eliza chatterbot. #384

  • Fix footer link colour in teacher version. #395


Release date: 5th September 2016

Notable changes:

  • Fixed broken link in footer to contributors page.

A full list of changes in this version is available on GitHub


Release date: 23rd August 2016

Notable changes:

New video: Formal Languages now has an introductory video. New interactive: The [hexadecimal background colour interactive interactives/hex-background-colour/index.html) allows a user to change the background colour of the page. New curriculum guide: A guide for NCEA Artificial Intelligence: Turing Test has been added. Updated interactives: The box translation and box rotation interactives are now open source and have been given a new look and made mobile friendly. Generation improvements: Basic translation support. Settings are now specific to each language, and contain the translation text. Website improvements: Added help guide for WebGL interactives. - Also includes bug fixes to interactives, new links to supporting videos, and various text corrections from our staff and contributors.

A full list of changes in this version is available on GitHub


Release date: 14th July 2016

Notable changes:

  • Fixed issue on Human Computer Interaction chapter where duplicate library was causing several UI elements to not behave correctly.


Release date: 16th June 2016

Notable changes:

New feature: PDF output - A downloadable PDF of both student and teacher versions is now available from the homepage. The PDF also functions well as an ebook, with functional links to headings, glossary entries, interactives, and online resources. New feature: Printer friendly webpages - When printing a page of the CSFG through a browser, the page displays in a printer friendly manner by hiding navigational panels, opening all panels, and providing extra links to online resources. New interactive: The binary cards interactive emulates the Binary Cards CS Unplugged activity, used to teach binary numbers. New interactive: The high score boxes interactive was developed to give an example of searching boxes to find a maximum value to the student. New interactive: The action menu interactive is a small dropdown menu with one option that has severe consequences, but no confirmation screen if the user selects that option (used to demonstrate a key HCI concept). Updated interactive: The trainsylvania interactive (and supporting images/files) have been given a fresh coat of colour and a new station name. Updated interactive: The trainsylvania planner is used alongside the trainsylvania interactive, and allows the user to input a path of train trips to see the resulting destination. Updated interactive: The base calculator allows a student to calculate a number, using a specific number base (binary, hexadecimal, etc). Updated interactive: The big number calculator allows a student to perform calculations with very large numbers/results. Website improvements: Redesigned homepage and footer with useful links and a splash of colour. Math equations are now line wrapped, and MathJax is loaded from a CDN. Images can now have text wrapped around them on a page. Generation improvements: Improvements to internal link creation (glossary links in particular). Separated dependency installation from generation script (see documentation for how to install and run generation script). Project improvements: Added documentation for contributing to and developing this project, including a code of conduct.

A full list of changes in this version is available on GitHub


Release date: 13th May 2016

Notable changes:

The chapter and assessment guides have been rewritten to take account of new feedback from the marking process and our own observations of student work.

As part of the rewrite of the Data Representation chapter, the following interactives were developed:

  • New interactive: The unicode binary displays the binary for a given character (or character by decimal number) dynamically with different encodings.

  • New interactive: The unicode character displays the character for a given decimal value.

  • New interactive: The unicode length displays the length (in bits) of text encoded using different encodings.

  • Updated interactive: The colour matcher has been redesigned to display values in binary, plus allow students to see and edit the bit values. The interface has also been restructured for readability and ease of use.

The old version of the Data Representation chapter can be found here

  • Website improvements: A new image previewer was implemented, along with bugfixes to iFrame and panel rendering.

  • Generation improvements: The Markdown parser has been replaced due to existing parsing issues. The new parser also gives us a large performance boost. A text box tag has also been added to highlight important text.

A full list of changes in this version is available on GitHub


Release date: 29th April 2016

Notable changes:

  • Fixed version numbering system to allow hotfix changes

A full list of changes in this version is available on GitHub


Release date: 29th April 2016

Notable changes:

  • Large number of typo, grammar, link, and math syntax fixes and also content corrections by contributors.

  • New interactive: Added GTIN-13 checksum calculator interactive for calculating the last digit for a GTIN-13 barcode.

  • Updated interactive: The regular expression search interactive has been updated and added to the repository.

  • Updated interactive: The image bit comparer interactive has been updated and added to the repository. It also has a changing bits mode which allows the user to modify the number of bits for storing each colour.

  • Added XKCD mouseover text (similar behaviour to website).

  • Added feedback modal to allow developers to directly post issues to GitHub.

  • Added encoding for HTML entities to stop certain characters not appearing correctly in browsers.

  • Added summary of output at end of generation script.

  • Added message for developers to contribute in the web console.

A full list of changes in this version is available on GitHub


Release date: 10th March 2016

Notable changes:

  • Readability improvements to text within many chapters (grammer issues/typos) and to the Python scripts within the Algorithms chapter.

  • Updated interactive: The RSA encryption and decryption interactives within Encryption have been updated and added to the repository.

  • Updated interactive: The searching algorithms interactive within Algorithms have been updated and added to the repository.

  • Updated interactive: The word filter interactive within Formal Languages have been updated and added to the repository.

  • Updated interactives: Both the MIPS assembler and MIPS simulator were made open source by the original author, and we were given permission to incorporate our repository, and have been added to Programming Languages.

  • A list of all interactives are now available on the interactives page

A full list of changes in this version is available on GitHub


Release date: 19th February 2016

Notable changes:

A full list of changes in this version is available on GitHub


Release date: 12th February 2016

Notable changes:

  • Fixed many broken links and typos from 2.0.0

  • Added calculator interactives to Introduction

  • Added RSA key generator to Encryption

  • Rewritten Braille Section in Data Representation

A full list of changes in this version is available on GitHub


Release date: 5th February 2016

Notable changes:

  • First open source release

  • Produces both student and teacher versions

  • Produces landing page for selecting language

  • Added new NCEA curriculum guides on Encryption and Human Computer Interaction

A full list of changes in this version is available on GitHub


The first major step in releasing a open source version of the Computer Science Field Guide. While some content (most notably interactives) have yet to be added to the new system, we are releasing this update for New Zealand teachers to use at the beginning of their academic year. For any interactives that are missing, links are in place to the older interactives.


Release date: 29th January 2016


Release date: 25th January 2016


Release date: 2nd December 2015

Comments: Released at CS4HS 2015.


Release date: 3rd February 2015


The last version of the CSFG before the open source version was adopted.