Interactive SICP JS


Interactive SICP JS is an interactive version of the computer science textbook “Structure and Interpretation of Computer Programs” (SICP), a book written by Harold Abelson and Gerald Jay Sussman at MIT. The JavaScript adaptation of SICP was developed by Martin Henz and Tobias Wrigstad starting in 2008 and is used in the module CS1101S in the NUS School of Computing. Both SICP and SICP JS are in the public domain, with a Creative Commons license.

In Interactive SICP JS, the learner can click on programs with dark background. The program becomes editable and runnable on the spot. The learner can experiment with the program, and continue in the text without disturbing their reading experience.


Technical background: SICP JS is an open-source project housed in the GitHub repository

The textbook content is written in XML. Our Interactive SICP JS consists of two components:

* translator of XML content to JSON, written in JavaScript using Node.JS, and

* web-based frontend written in TypeScript using React.JS, js-slang, and MathJax 


Interactive SICP JS augments the learner’s textbook experience with interactive programming features, and is designed to be used along with the traditional PDF version of SICP JS, which is available here:

  • Home
  • Interactive SICP JS