4 ms·
Question: will you recommend SICP as an intro to programming book for say high schoolers? Or, does it assume some prereqs?
by yumraj 7y ago
Question: will you recommend SICP as an intro to programming book for say high schoolers?
Or, does it assume some prereqs?
- ng12 7y agoIt assumes none. It walks you through the very fundamentals of computation.
- inimino 7y agoIt does not assume anything except algebra (and I think some minor calculus concepts are mentioned in passing, as using higher-order functions to estimate derivatives or some such, but not at all required). However, it is designed to be used in an introductory university course led by experienced instructors. Without support, even a highly motivated high school group would have a hard time with the material and pace. So I would say it all depends on the high schoolers, and especially on the support available.
- westoncb 7y agoThis is not true. I've watched conversations on this over the years on HN, and inevitably you get a few people saying the math is nothing to worry about, and then a bunch of people saying they had to give up because they didn't have the math background (oftentimes these are professional programmers). My recollection from the bit of time I spent with it was that most of the examples were drawn from mathematics, often times relying on implicit bits of knowledge that would lose a reader unless they'd had long interest/experience in math. I think the issue in divided opinions here is a matter of lost perception of the range of math knowledge: I've noticed this same communication difficulty when playing new people at Go and they ask whether I'm good or not. I never really know how to reply because on an absolute scale I'm an abysmal player—but against anyone who's never really studied the game I'll appear incredibly skilled. When people answer that SICP requires very little math background, I think that's an accurate phrasing relative to a more global scale of math knowledge. But in the realm of folks with no particular interest in math, it requires a relatively sophisticated knowledge of mathematics. If a high-schooler is training for math olympiads or they're on track to study math/CS/etc. at a top-tier university, they'll probably be fine. All the others will likely be completely lost. Here's another example from today's thread: https://news.ycombinator.com/item?id=21301474 https://news.ycombinator.com/item?id=21301474
- inimino 7y agoFrom some other replies it seems my recollection of the density of calculus in the exercises was incorrect. However, I do think the math shouldn't be a great hurdle with the right guidance, but: > If a high-schooler is training for math olympiads or they're on track to study math/CS/etc. at a top-tier university, they'll probably be fine. All the others will likely be completely lost. This is probably the right answer.
- brians 7y agoIt requires significant math not available to most high schoolers or indeed most adults. Using it with adults with non-CS degrees, we ran into big problems with the symbolic algebra system that motivates the early chapters.
- eyeundersand 7y agoOff topic: I appreciate your username!
- yumraj 7y ago:)
- harry8 7y agohttp://people.eecs.berkeley.edu/~bh/ss-toc2.html http://people.eecs.berkeley.edu/~bh/ss-toc2.html Bills itself as an intro to SICP for high schoolers.
- sn9 7y agoHow to Design Programs is probably the more appropriate choice: https://htdp.org/2019-02-24/ https://htdp.org/2019-02-24/
- yumraj 7y agoThanks. How do SICP and HDP compare? I did a quick glance and HDP seems to use DrRacket, but is the material comparable, with HDP just more appropriate for beginners??
- abecedarius 7y agoHtDP is all about a 'design recipe' which is worth understanding even if you've studied SICP. On the other hand it's very slow-paced in comparison and won't stretch you the same way.
- sn9 7y agoYes HtDP was designed to be more approachable for a wider audience and doesn't require familiarity with undergraduate freshman math, physics, and electrical engineering. It could be used as an introduction to programming and CS for anyone who's taken middle school algrebra. For high school students, it's likely to be more appropriate. That said, if a student expresses an interest in SICP, they shouldn't be dissuaded from tackling it. They overlap some, but also each have unique lessons from a student would benefit.