explaingit

sarabander/sicp

4,510HTMLAudience · developerComplexity · 1/5LicenseSetup · easy

TLDR

A modern HTML5 and EPUB3 edition of the classic computer science textbook Structure and Interpretation of Computer Programs, with crisp vector graphics, proper math rendering, and syntax highlighting for easy reading on any device.

Mindmap

mindmap
  root((SICP HTML5))
    What it is
      Classic CS textbook
      Modern HTML5 format
      EPUB3 download
    Improvements
      Vector graphics
      MathML and MathJax
      Syntax highlighting
      Responsive layout
    How to read
      Hosted online
      EPUB e-reader
      Build from source
    Build requirements
      Texinfo and Perl
      Ruby and Nokogiri
      PhantomJS
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Read the complete SICP textbook online with properly rendered math and highlighted code examples

USE CASE 2

Download the EPUB version to study the book on an e-reader or tablet

USE CASE 3

Build the HTML from source to host a customized version of the book

USE CASE 4

Study core programming concepts like abstraction and recursion from one of the most influential CS books ever written

Tech stack

HTMLMathMLMathJaxTexinfoPerlRubyNokogiri

Getting it running

Difficulty · easy Time to first run · 5min

No setup needed to read, the book is hosted online, building from source requires Texinfo, Perl, Ruby, Nokogiri, and PhantomJS.

Share and adapt the HTML content freely as long as you credit the source and release changes under the same Creative Commons Attribution-ShareAlike 4.0 license, build scripts are GPL v3.

In plain English

This repository is an updated HTML5 and EPUB3 version of a famous computer science textbook called "Structure and Interpretation of Computer Programs," commonly known as SICP. The book was originally written by Abelson, Sussman, and Sussman and published by MIT Press. It is widely regarded as one of the most influential introductions to programming, covering core ideas like abstraction, recursion, and how to think about programs in a rigorous way. The goal of this project is to present that classic text in a modern, readable format. It uses scalable vector graphics for crisp images at any zoom level, MathML and MathJax for properly rendered mathematical notation, embedded fonts, and syntax highlighting for the code examples. The layout also includes basic responsive design so the book adjusts reasonably when read on phones or tablets, though the README notes that more testing on small screens is still needed. You can read it online through a hosted HTML version or download it as an EPUB file to read in an e-reader. If you want to build it yourself from the source, the repository contains a Texinfo source file and a Makefile. Running the build requires Texinfo, Perl, Ruby, a Ruby library called Nokogiri, and PhantomJS. The build process regenerates the HTML files and creates the EPUB. The HTML content and diagrams are licensed under a Creative Commons Attribution-ShareAlike 4.0 license, meaning you can share and adapt the material as long as you give credit and keep the same license. Most of the build scripts are under the GNU General Public License version 3. A companion PDF version built from LaTeX source is maintained in a separate repository by the same author.

Copy-paste prompts

Prompt 1
I'm reading SICP for the first time. Give me a roadmap of which chapters to prioritize if I only have 10 hours and want to understand the core ideas.
Prompt 2
Explain the concept of closures as presented in SICP Chapter 3, using the same plain-English style as the book.
Prompt 3
I want to run the Scheme code examples from SICP. What is the easiest way to set up a Scheme interpreter and try the exercises?
Prompt 4
How do I build the SICP HTML5 site from the Texinfo source on macOS so I can host my own copy?
Prompt 5
I'm on SICP Exercise 1.29. Walk me through the Simpson's Rule numerical integration problem and hint at the approach without giving the full solution.
Open on GitHub → Explain another repo

← sarabander on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.