4 ms·
Racket is used across CS programs that have adopted the How to Design Programs book [1] (some schools do not use the original book, just the textbook for source
by greyb 4mo ago
Racket is used across CS programs that have adopted the How to Design Programs book [1] (some schools do not use the original book, just the textbook for source material).
[1] https://en.wikipedia.org/wiki/How_to_Design_Programs https://en.wikipedia.org/wiki/How_to_Design_Programs
- adamddev1 4mo agoI was just remembering https://htdp.org https://htdp.org fondly yesterday. Working through that book was one of the most wonderful and transformative experiences I've had in programming. I owe so much of my problem solving skills today to that book.
- imjonse 4mo agoHow experienced were you at that time?
- fn-mote 4mo agoHtDP is an introductory textbook. It shouldn’t have new material for someone who has 2 years worth of experience. That said, while I didn’t learn content from it, the exposition of their process was excellent. It really influenced my “personal software process” a lot. Also, it gave me a lot of tools for informal postmortems that I reach for when mentoring junior colleagues. The book’s taxonomy of the different kinds of recursion helped me see what others found difficult about it. Background: I liked SICP but HtDP made it easier to see the content as one unified subject instead of a bunch of tricky/interesting individual exercises.
- adamddev1 4mo agoI was a few years into amateur self-teaching at that time. It helped me think through problems recursively, which was a lot of fun, but my biggest takeaway was learning to think of problems by representing the data with types, then stubbing out functions that dealt with the different types that I needed to solve the problem. Although it's done with an untyped language, it makes you think through the type signatures of all the functions you write. I discovered that whenever something didn't work, the problem was almost always that I misunderstood the data or the type. I also learned how to deal with problems with recursive algorithms through trees and nested data structures like s-expressions. That opened up a whole world of parsing and evaluating.
- acbart 4mo agoIt's an incredible curriculum. I have a lot of fond memories myself. I frequently wonder nowadays if it isn't the right approach to force students to stop and think a bit more about "Computer Science" and not just "Programming" in an introductory context.