4 ms·
I am working through HtDP now. I was initially watching Gregor Kiczales' accompanying playlists[0] on YouTube concurrent with the material. They were good and s
by loosetypes 8y ago
I am working through HtDP now. I was initially watching Gregor Kiczales' accompanying playlists[0] on YouTube concurrent with the material. They were good and short enough that I charged through and finished them before reaching the corresponding material in the book.
I think the biggest win is that it's the first source I've found that incrementally teaches a pragmatic understanding of recursion[1]. But also why it works, with the structure of the code following the structure of the data definitions and downward. The videos classify natural, mutual, structural, and generative recursions and explain the who/why/what/etc of each. Gregor's video explanations were great, and the book similarly seems to anticipate many questions I have while working through the problems. At times, parts have been slow, probably due to some prior knowledge[2], but definitely worth the trek.
The first time I learned recursion was basically a "now draw the rest of the owl" trope. I was hoping for so much more in way of explanation and have always felt incapable whenever struggling to approach and solve recursive problems. And questions always just led to non-didactic Inception movie references.
I used to think maybe I was just bad at that type of problem. And maybe I am, but more and more, it feels like people generally - including those teaching - don't actually know the concepts here themselves. It's like the world has just collectively memorized a few examples and refuses to acknowledge the giant spaces between them.
In that sense HtDP has been incredibly refreshing.
[0] https://www.youtube.com/channel/UC7dEjIUwSxSNcW4PqNRQW8w https://www.youtube.com/channel/UC7dEjIUwSxSNcW4PqNRQW8w
They are the videos that go with the edx course mentioned elsewhere here.
[1] Although I've heard The [Little|Reasoned|etc.] [Schemer|Lisper] books may do similarly.
[2] I'm in my last semester of a CS degree and I have work experience programming