CAT-SOOP is an Automatic Tutor for Six-Oh-One Problems


CAT-SOOP is a tool for automatic collection and assessment of homework exercises. CAT-SOOP is free software, available under the terms of the Affero General Public License, version 1.0. In accordance with the terms of this license, the source code of the base system that generated this page is available here as a zip archive.

Please note that these terms apply only to the CAT-SOOP system itself and not to any third-party software included with CAT-SOOP, nor to any course material hosted on a CAT-SOOP instance, unless explicitly stated otherwise.


  • CAT-SOOP is written in the Python programming language (v2.7).
  • SQLite is used for data storage.
  • CAT-SOOP makes heavy use of jQuery.
  • CAT-SOOP uses a Python implementation of John Gruber's Markdown markup language.
  • CAT-SOOP uses KaTeX and MathJax for rendering math in the browser.
  • Password-based authentication makes use of an implementation of PBKDF2 from python-pbkdf2.
  • Expression questions use David Beazley's Python Lex-Yacc.
  • Python coding questions can optionally make use of the ACE code editor.


The following courses are hosted on this system: