These are my own solutions to the computer science textbook
Structure and Interpretation of Computer Programs - Second Edition by Harold Abelson and Gerald Jay Sussman
- Chapter 1: Building Abstrations with Procedures
- Chapter 2: Building Abstractions with Data
- Chapter 3: Modularity, Objects, and State
- Chapter 4: Metalinguistic Abstraction (except 4.78 and 4.79)
- Chapter 5: Computing with Register Machines (except 5.19, 5.25)
I am using MIT/GNU Scheme, except:
Section 2.2.4 Example: A Picture Language
Exercises 2.44 - 2.52. I used Racket's SICP Picture Language. Running it in DrRacket is the easiest way.
I wrote the exercises using a mix of Markdown .md and Scheme .scm files. If the exercise predominately requires code to be produced, I did it using a Scheme file. If the exercise requires a written explanation, I did it using a Markdown file. However, some exercises require both code and explanations, so there's no hard-and-fast rule for those. I might use comments in Scheme or code snippets in Markdown depending on the balance.
I wrote mathematical expressions using LaTeX format within Markdown. Most good Markdown renderers can display it.
I drew the diagrams using LibreOffice Draw and provide the .odg files, although maybe something like Mermaid would be have been better.