Live data from Hacker News

Why and How to Start Your SICP Trek

hackerretreat.com

21–30 of 65 posts

Re: Why and How to Start Your SICP Trek

#21

If folks are interested in having a person to talk to while doing SICP, we're doing it in the iPad app we released last Thursday. We were going to do a Show HN, but hey, HN's already talking SICP! Understudy: https://itunes.apple.com/us/app/understudy/id782635884 The setup is basically like private music lessons. We pair you with a somewhat more advanced student also doing SICP. The deal is to (1) Work on SICP by you…

> Frequent/Intense Mature/Suggestive Themes

Why does your app have this rating? Don't get me wrong, I love Lisps as much as the next person, but...

More seriously, is it because of the video-chat feature?

Re: Why and How to Start Your SICP Trek

#22
post #17

If folks are interested in having a person to talk to while doing SICP, we're doing it in the iPad app we released last Thursday. We were going to do a Show HN, but hey, HN's already talking SICP! Understudy: https://itunes.apple.com/us/app/understudy/id782635884 The setup is basically like private music lessons. We pair you with a somewhat more advanced student also doing SICP. The deal is to (1) Work on SICP by you…

That's an excellent idea. I'd be very interested in having this sort of help, and later passing it forward. The actually app however seems to only run on one make of tablet (that I don't happen to own). I could be wrong, but it seems to me that most people'll be doing SICP exercises on a real computer, rather than a tablet. Why did you decide not to do, say, a webapp - or even to just assign the pairs and let them us…

Mostly because a tablet is very well suited to the whiteboard, and we find that the whiteboard _really_ helps for this kind of working collaboration.

It makes it really easy to gesture and discuss visually.

As far as iPad vs Android - that's just because we have to start somewhere. Also, I worked at Apple for 7 years, so it's definitely the environment I'm quickest at programming.

That said, if people actually like what we're doing, who knows. The main point is the conversation, the tech just enables it.

(Oh - and yeah, you definitely do the SICP exercises on the computer. That's by yourself, though. When we chat once a week, we do often write out snippets of code or problems, but the use of the interpreter already happened.)

Re: Why and How to Start Your SICP Trek

#23

If folks are interested in having a person to talk to while doing SICP, we're doing it in the iPad app we released last Thursday. We were going to do a Show HN, but hey, HN's already talking SICP! Understudy: https://itunes.apple.com/us/app/understudy/id782635884 The setup is basically like private music lessons. We pair you with a somewhat more advanced student also doing SICP. The deal is to (1) Work on SICP by you…

> Frequent/Intense Mature/Suggestive Themes Why does your app have this rating? Don't get me wrong, I love Lisps as much as the next person, but... More seriously, is it because of the video-chat feature?

> More seriously, is it because of the video-chat feature?

Yes. :-) When people tutor kids, they make sure there's always another adult in the room. That's hard for us, so no kids.

Re: Why and How to Start Your SICP Trek

#24
I took 5 assembly-based courses. To make a compiler, all you have to know is assembly, but I took a compiler course, too. You don't need any theory courses to make a compiler, just assembly. If you know theory and you do not know assembly, you cannot make a compiler.

You think I lie? Can you make a compiler? No, right? I made a compiler. I tell the truth.

Re: Why and How to Start Your SICP Trek

#25

If folks are interested in having a person to talk to while doing SICP, we're doing it in the iPad app we released last Thursday. We were going to do a Show HN, but hey, HN's already talking SICP! Understudy: https://itunes.apple.com/us/app/understudy/id782635884 The setup is basically like private music lessons. We pair you with a somewhat more advanced student also doing SICP. The deal is to (1) Work on SICP by you…

Folks, you don't need proprietary software or an iThing to get help with SICP. Hop on #scheme on freenode and check out http://schemers.org/ for resources.

I do love IRC, but what Understudy gives you is a one-to-one relationship with another person who cares.

It means that Thursday evening, when you're tired, it's easier to pick yourself up and work, because doing so gets you a _better_conversation_ on Saturday. I'm a cellist - this comes from private music lessons (and also karate).

See also http://en.wikipedia.org/wiki/Bloom's_2_Sigma_Problem . In that study, the median person learning one-to-one performed at the 98th percentile in a control group. That's huge!

Re: Why and How to Start Your SICP Trek

#26
post #4

For a gentle introduction to functional programming and Scheme/Racket, check out https://class.coursera.org/programdesign-002 and the How to Design Programs book http://htdp.org/ These can be good precursors before starting on SICP. I have to say, though, that I have never felt comfortable with LISP's syntax. The parentheses and the prefix notation are convenient for the parser, not the programmer. Pyret http://www.p…

I am a big fan of HtDP, and Felleisen's in-progress 2nd edition of HTDP is here: http://www.ccs.neu.edu/home/matthias/HtDP2e/ . It contains many improvements over the first (completeness however is not among them).

That said, HtDP's focus is very different from SICP, and I would not sequence one before the other. HtDP focuses on a methodology for writing robust maintainable software. It emphasizes specifications and testing and functional procedures.

SICP is focused on computer science and emphasizes much higher levels of abstraction - e.g. the *nix signal processing model, logic programming, constraint programming, stack machines and dealing with concurrency. It is more directly an introduction to Computer Science [despite Ableson's questioning the utility of the term 'computer science'] whereas HtDP is more of an introduction to the practice of programming.

Philosophically, SICP is ok with the idea of placing the student in over their head, e.g. the digital logic simulator and various mathematical examples treat digital logic and mathematics and banking as domain knowledge that the programmer might not have, but does not need in order to create sound abstractions.

[And Kickzales's course on Coursera was I awesome, I took the first version last summer.]

Re: Why and How to Start Your SICP Trek

#27

If folks are interested in having a person to talk to while doing SICP, we're doing it in the iPad app we released last Thursday. We were going to do a Show HN, but hey, HN's already talking SICP! Understudy: https://itunes.apple.com/us/app/understudy/id782635884 The setup is basically like private music lessons. We pair you with a somewhat more advanced student also doing SICP. The deal is to (1) Work on SICP by you…

Sounds like the learning equivalent of a Ponzi scheme ;) In all honesty, though, this sounds like a really cool idea. I may check it out.

Philipp Schmidt is a big proponent of peer-to-peer learning, and he calls it a pyramid scheme himself. :P http://dmlcentral.net/blog/philipp-schmidt/great-peer-learni...

Re: Why and How to Start Your SICP Trek

#29
post #2

Author here - happy to answer questions and address feedback. I suspect I didn't explain Lisp-in-Lisp as well as I need to, but maybe it's enough to get non-Lispers intrigued. :)

what about the people who did not do a math major. Is this a book they can get through? I tried once and saw that I had to read two other books before I could even read chapter one. one for discrete mathematics and the other for calculus. do you have any tips for the people in my situation?

The big idea for SICP is that mathematics is just domain knowledge. In the same way that a programmer does not have to be an MD to write software that helps physicians, a person does not need to be an expert in Mathematics to write software that solves maths problems.

That said, domain knowledge is helpful, but so is being able to work in fields which are over one's head. The big ideas are not the maths, but the abstractions which are applicable to many fields.

My advice is focus on the parts you understand [this is Knuth's recommendation for The Art of Computer Programming as well] and plan on coming back later as your knowledge increases. SICP can be digested in small chunks over time.

Re: Why and How to Start Your SICP Trek

#30
post #11

Earlier quoted context omitted.

yes, 1 year of calculus. differentiation and integrals were the only two calculus topics that I recognized from that chapter. at the time when I was trying to get through sicp I wasn't sure whether the pay off was worth the effort of covering all those math topics and I wanted to learn other programming related topics as well with my time.

At least up to 1.3.3, if you've already done single-variable calculus, the math isn't bad - it's stuff you likely saw before (if a while ago). It seems heavier on math than it really is because (I believe) the authors want the reader to see the parallels between math notation (functional, declarative, concise) and Lisp implementation (also functional, declarative, and quite concise).

I agree, math is used as a domain for black box abstraction for the same reason banking is used for the example domain for concurrency and graphics for data abstraction - the domain provides good examples for trivial implementations.

A person no more needs extensive understanding of mathematics than they need such understanding of accounting or image processing.

Post reply on HN