Interactive Structure and Interpretation of Computer Programs
HTML Other
Latest commit 63cb04e Feb 22, 2016 @sarabander sarabander Merge pull request #61 from mfdj/master
using https instead of http in index and template
Permalink
Failed to load latest commit information.
content
css
images
js
sicp_raw
.gitattributes
.gitignore
LICENSE Create LICENSE Mar 7, 2015
coding.js.readme.txt Instructions for including the coding-js repo May 22, 2015
index.html
lambda.html
readme.md
render.py
render_all.sh
template.html

readme.md

Interactive SICP

screenshot

Structure and Interpretation of Computer Programs now in an interactive textbook form!

Click on (almost) any code fragment to edit. Ctrl-Enter will re-run the script.

Contributing

NOTE: a lot of the code lives in a separate repository, web-worker-interpreter

This project is a work-in-progress and we need your help!

  • Report any bugs, typos etc that you find
  • Mark-up more code fragments and exercises! I'm currently in the middle of chapter 2-2
  • Write more exercise autograders!
  • Add new features!

The chapter and section files here will be generated by render_all.sh using files in content/ as input. Please make changes there.

todo

  • Display hints as to why user did not pass an exercise
  • Make code changes persist between page reloads by linking to a google account

Contributing

iSICP is built on the web-worker-interpreter/coding.js library. We use the CodeMirror editor and a custom scheme interpreter.

If you just wish to help port more of SICP to this site, here is how to create an interactive code fragment.

<div id="scheme-times-size">
(* 5 size)
</div>
<script>
prompt("scheme-times-size", ["scheme-define-size"]);
</script>

the div contains the initial text. The second argument to prompt is optional and specifies dependencies.