4 ms·
SICP is an introductory text, and is usually taught to first-year undergraduates. We don't even know what sort of educational background this friend has, but if
by db48x 10y ago
SICP is an introductory text, and is usually taught to first-year undergraduates. We don't even know what sort of educational background this friend has, but if he can do algebra, then he'll be able to do the exercises in the first chapter and check his answers. Furthermore, because Scheme uses the substitution model, doing the exercises on paper is possible. It'll take care and attention to detail, but every Scheme expression can be expanded and reduced according to simple rules, just like in algebra. The same cannot be said for most other languages.
- inimino 10y agoSICP is perfect for studying without a computer. I've done it that way and it was a great experience. However, while it is presented as an introductory textbook, it moves fast. It depends on the learner.
- db48x 10y agoHmm. The pages move only as fast as you turn them :) It's probably safe say that it's more concise than others that I have read. A sentence in SICP could become a paragraph in a lesser book.
- inimino 10y agoRight. In a classroom with lots of bright students and lectures and Q&A it works great. With access to supplemental online resources also great. With none of that I think it would depend on the student and their patience, aptitude, and background.
- RandomOpinion 10y agoGiven that the person is in prison, it seems rather improbable that s/he was on a course to be a first-year undergraduate or is particularly familiar with algebra. The average person doesn't know algebra all that well, you know. Frankly, I do not understand the people who are attempting to push CS textbooks on this person. The original question does not contain the words "computer science" anywhere within it.
- db48x 10y agoSICP is entirely focused on the practical aspects of programming. There's nothing in there about the halting problem, or the Church-Turing thesis. The discussion of run-time and space requirements divides everything into constant time/space and everything else. That's useful for figuring out when your recursive procedure evolves a process that needs only constant stack space. There's no study of algorithms or data structures (well, there's simple lists and tagged data, but no b-trees, red-black trees, etc).