Live data from Hacker News

Structure and Interpretation of Computer Programs (SICP) Book

mitpress.mit.edu

51–60 of 77 posts

Re: Structure and Interpretation of Computer Programs (SICP) Book

#51
post #17

My girlfriend has told me a couple times she wants to learn to program but this is the only intro book I own. I feel bad giving it to her because it just beats you with recursion right from the beginning (that isn’t to say it’s bad, I love it, that’s why I own a copy. I just feel like you’ll appreciate it most if you already know a little of some non functional language.) On the other hand she took it with us on a pi…

I have high hopes for this Fall's MIT course in Computational Thinking [1]. While it was discussed here on HN, I don't think it got all the attention it deserves. I think this course will end up to be the start of a revolution in online teaching. We've had MOOCs and OCW, and other courses online for a while now, but this is a whole different level. They enlisted 3Blue1Brown (Grant Sanderson) to lecture. Arguably, he…

I wonder if Grant feels lucky to get to work with MIT. MIT is obviously an amazing school but I really feel like they are the lucky ones. Even before covid, I thought that his work was light-years ahead of most math education. Now that everyone is scrambling to move online I'm sure he's even further ahead.

Re: Structure and Interpretation of Computer Programs (SICP) Book

#52
post #17

My girlfriend has told me a couple times she wants to learn to program but this is the only intro book I own. I feel bad giving it to her because it just beats you with recursion right from the beginning (that isn’t to say it’s bad, I love it, that’s why I own a copy. I just feel like you’ll appreciate it most if you already know a little of some non functional language.) On the other hand she took it with us on a pi…

I suggest you trust the authors to know best when it comes to teaching programming. Sounds like you're worried it will be too hard for her. It might be. Non-programmers have lots of romantic ideas about what they think programming is. But the only way to know whether someone possesses any talent in it is to try it. I tried to teach one of my ex-girlfriends to program but I could tell before long that she didn't have the gift so encouraged her to do other things.

Re: Structure and Interpretation of Computer Programs (SICP) Book

#54
If you decide to work through this book, I suggest to follow along this YT channel [1] as the owner of this channel is going through each chapter (and exercises) roughly every week right now (currently at chapter 4.1)

[1] https://www.youtube.com/watch?v=oA-FdE3KV88&list=PLVFrD1dmDd...

Re: Structure and Interpretation of Computer Programs (SICP) Book

#55

I finally read SICP half way through my career, but at that point it was too much old news to keep me interested, even if I recognized that it was a really well written book. So I actually stopped half way. Does anyone know of a good summary or alternate text of all the knowledge in it?

My advice: Take SICP, and use it to teach someone else.

There is a certain depth that comes from teaching which you won't get any other way. You'll discover things you never thought about.

That's even true if you're teaching little kids arithmetic, if you do it well. You'll discover structures in the multiplication table you've never thought about.

Look at SICP not just for the CS component but for the pedagogical and writing components too. Analyzing this sort of book is one of the best ways to become a great teacher and writer.

Re: Structure and Interpretation of Computer Programs (SICP) Book

#56

I finally read SICP half way through my career, but at that point it was too much old news to keep me interested, even if I recognized that it was a really well written book. So I actually stopped half way. Does anyone know of a good summary or alternate text of all the knowledge in it?

> too much old news to keep me interested

Did you try working the exercises? That was what kept me engaged with it.

Re: Structure and Interpretation of Computer Programs (SICP) Book

#57
post #35

Earlier quoted context omitted.

Recursion seems to be one of those inflection points that some people just can't get past.

What I personally see in academic setting is that when recursion is taught, it's taught using examples where you would not want to use recursion. It's easy to understand why recursion is useful when you are tasked with traversing a file system. It's not when the first example you are given is calculating Fibonacci sequence.

I like the way SICP handles this, actually. They state clearly (in the text, haven't watched the videos) that the naive recursive form for Fibonacci is only illustrative, then they proceed to provide the iterative form. Following that they have this paragraph:

> One should not conclude from this that tree-recursive processes are useless. When we consider processes that operate on hierarchically structured data rather than numbers, we will find that tree recursion is a natural and powerful tool. But even in numerical operations, tree-recursive processes can be useful in helping us to understand and design programs. For instance, although the first fib procedure is much less efficient than the second one, it is more straightforward, being little more than a translation into Lisp of the definition of the Fibonacci sequence. To formulate the iterative algorithm required noticing that the computation could be recast as an iteration with three state variables.

Hopefully a professor in a course would make similar statements (I know mine did, repeatedly). And, at least in my early programming courses, we quickly (within a week or two) went on to those other problems where recursion was a natural and useful solution. The professors [0] introduced problems where recursion was either necessary (using for/while loops would be a non-trivial transformation with no performance gain) or, like naive Fibonacci, natural expressions of the problem.

[0] I transferred universities, not all courses lined up so I got to see the second school's introduction to this topic even though I was past that point academically. I was an unpaid TA (technically I guess I was paying to be the TA).

Re: Structure and Interpretation of Computer Programs (SICP) Book

#58

Earlier quoted context omitted.

SICP was used as the reference book for the introductory course on programming on my degree. People with prior experience had the most trouble with recursion. Students with no programming experience whatsoever grasped the concept pretty easily. I would try it out. It might need some analytically wired thought process, but again that is true for any kind of programming paradigm.

Recursion seems to be one of those inflection points that some people just can't get past.

[deleted]

Re: Structure and Interpretation of Computer Programs (SICP) Book

#59

I finally read SICP half way through my career, but at that point it was too much old news to keep me interested, even if I recognized that it was a really well written book. So I actually stopped half way. Does anyone know of a good summary or alternate text of all the knowledge in it?

There is at least http://www.sicpdistilled.com

That's gooood. Thanks!

Re: Structure and Interpretation of Computer Programs (SICP) Book

#60

Earlier quoted context omitted.

SICP was used as the reference book for the introductory course on programming on my degree. People with prior experience had the most trouble with recursion. Students with no programming experience whatsoever grasped the concept pretty easily. I would try it out. It might need some analytically wired thought process, but again that is true for any kind of programming paradigm.

Let's not forget to draw a distinction between programming and computer science ... SICP was created to be an introductory computer science textbook back in the day when anybody who actually enrolled in a computer science course could reasonably be expected to be an absolute nerd. It's a book for teaching computer science to people who already have some amount of programming aptitude. It is not a book that tries to t…

It depends on the person. How they like to think. I promise!

Whether we look at it as programming or computer science, it's abstract enough that it's highly personal and each person has their own idiosyncratic style of learning.

I did and would benefit much more from a book like SICP than books that are written into a more specific purpose.

Post reply on HN