* The From Nand to Teris project, The Elements of Computing Systems: Building a Modern Computer from First Principles book, and/or Coursera course. Builds a hardware stack for a CPU and then a software stack (assembler, VM, high-level language).
* The How to Design Programs book. What the edX course above is based upon.
* Structure and Interpretation of Computer Programs (SICP). Uses Scheme. One can use Racket with the `#lang sicp` language.
YouTube playlist of the course by the authors: https://youtube.com/playlist?list=PLE18841CABEA24090
* Thinking as Computation: A First Course. Uses Prolog to solve problems of thinking.
* Turtle Geometry: The Computer as a Medium for Exploring Mathematics (shares an author with SICP). Uses Logo to explore turtle geometry/graphics. Can use any modern Logo implementation.
* Starting Forth. Uses Forth.
The author's YouTube channel: https://youtube.com/c/TheCodingTrain
Fresh book recommendations delivered straight to your inbox every Thursday.