Last night we watched the first two classes of Hal Abelson teaching Structure and Interpretation of Computer Programs in 1986 and they were sooooo amazing.
Danny remarked that this is a great example of teaching a beginning lesson in a language with math while most other intro-to-a-language-via-maths fall flat.
All the stuff about magic is just beautiful (and true).
So as opposed to other kinds of engineering, where the constraints on what you can build are the constraints of physical systems, the constraints of physics and noise and approximation, the constraints imposed in building large software systems are the limitations of our own minds.
So in that sense, computer science is like an abstract form of engineering. It’s the kind of engineering where you ignore the constraints that are imposed by reality.
Sweet that you can download text or PDF of the transcript of the lecture.
Meanwhile, in the night during some dark hour when my knees hurt and I couldn’t sleep I decided to change the scope of my mapping in this transit game, at least at first, and rather than make a perfect walkable (rollable) simulation of the geography of each station (or even this first one) I will abstract it a lot more. It could still be expanded later, but the hugeness of the map started to drag me down and I’d like to get the mechanisms working before that kind of precision. I have often felt that I have to throw out all the code at least 3 times before I know how I want to approach a project and I believe this makes 3. But, that means I’m not sticking it up on github yet until I have a clearer vision and a better prototype.