Live data from Hacker News

Why SICP Matters

cs.berkeley.edu

31–40 of 130 posts

Re: Why SICP Matters

#31
post #28
post #2

When I was student, my school has decided to stop using Ada as teaching language. They were hesitating between CAML Light and Scheme. They asked me my feeling because I was one of the rare student to know well both of them. I like both of them, but I choose CAML Light. Scheme has a lot of parenthesis that makes it look very old fashion. Scheme type system was also outdated. Programming in CAML Light was more fun for…

Dynamic typing is outdated?!

I'm a big fan of Clojure but I think this is true. I expect that in this decade we'll start seeing a shift to programming languages with so-called algebraic type systems.

Java, Python, Ruby, and Clojure will seem outdated just like C++ seems outdated now (not that it doesn't have its uses).

Re: Why SICP Matters

#32
post #8
post #2

When I was student, my school has decided to stop using Ada as teaching language. They were hesitating between CAML Light and Scheme. They asked me my feeling because I was one of the rare student to know well both of them. I like both of them, but I choose CAML Light. Scheme has a lot of parenthesis that makes it look very old fashion. Scheme type system was also outdated. Programming in CAML Light was more fun for…

Can you elaborate? Is your school still using CAML Light, or have they moved on to some other language (O'Caml?)? How effective was it as a teaching language?

According to their site, they have switched to python followed by java the second year. As it was after I finished, I have almost no feedback.

Re: Why SICP Matters

#33
post #26

Excellent article. I'm immensely glad and lucky to have had Brian Harvey as a professor, and this echoes exactly what he taught us and the general teaching at Berkeley: that the concepts of programming and computer science were of paramount importance, and that you should understand them in the abstract. To this day, this is why I value a good theoretical CS education, why I value university education, and why I cont…

Sounds like Berkeley are making a huge mistake and losing sight of what a University is there for. They seem to have moved to a more practical approach than theoretical approach. This is the type of approach that is more appropriate to a Technical College than a major University. This new approach almost seems like teaching civil engineers how to weld and rivet in order to build bridges, rather than deeply understand…

s/Berkeley/most universities in the States/

Re: Why SICP Matters

#34
I was working through the coursera functional programming course on scala which is modeled on SICP. While the content is really good, it suffers from the same problems pointed out by Dr Harvey. Getting used to scala syntax takes time while Scheme was a breeze.

Re: Why SICP Matters

#35
post #2

When I was student, my school has decided to stop using Ada as teaching language. They were hesitating between CAML Light and Scheme. They asked me my feeling because I was one of the rare student to know well both of them. I like both of them, but I choose CAML Light. Scheme has a lot of parenthesis that makes it look very old fashion. Scheme type system was also outdated. Programming in CAML Light was more fun for…

"Scheme has a lot of parenthesis that makes it look very old fashion." Might I argue that this is a huge advantage? No one knows scheme, and it's very obscure, and looks nothing like other programming languages. This means that you can teach concepts using it and pre-judgements about the language don't get in the way. Then, I suppose the same could be said of CAML and its obscurity.

Which one is obscure ? define factorial (lambda (n) (if (= n 0) 1 (* n (factorial (- n 1))))))

let rec fact = function | 0 -> 1 | n -> n * fact (n - 1);;

There is a little more syntax to learn in caml, but the suppression of 90% of the parenthesis makes the code far easier to read.

Re: Why SICP Matters

#36
SICP is a masterpiece. I took the old MIT 6.001 in Spring 1986 where we burned through the entire book in about 14 sleepless weeks. Sussman was the lecturer and Rod Brooks was my recitation instructor. I was like 19 years old at the time and it was the most intellectually beautiful thing I had ever experienced. I ended up acing the course and went on to get a PhD in CS. I've never read a better book on programming.

Re: Why SICP Matters

#37
post #2

When I was student, my school has decided to stop using Ada as teaching language. They were hesitating between CAML Light and Scheme. They asked me my feeling because I was one of the rare student to know well both of them. I like both of them, but I choose CAML Light. Scheme has a lot of parenthesis that makes it look very old fashion. Scheme type system was also outdated. Programming in CAML Light was more fun for…

I went from SML, Caml Light, and OCaml to Common Lisp, and then to Scheme.

I prefer Scheme by far to any other language I've ever used (which includes a whole bunch of languages not listed above).

For me, Scheme is much more fun to program in than OCaml, etc. With OCaml I found myself constantly wrestling with the compiler to get my program to compile, and had problems decyphring its obscure error messages, which seemed to require taking university-level courses on type theory in order to be understandable.

With Scheme, my programs mostly "just work", and I can program the way I think.

Some people have problems with Scheme's parenthesis, but I personally quickly learned to love them because they make scope explicit and obvious. Through long and bitter experience, I've learned to value explicitness and clarity in programs above almost everything else. Scheme is great for that.

True, Scheme might not be as safe as OCaml and friends, but for ease of programming, speed of development, and sheer pleasure, I find it very hard to beat.

Re: Why SICP Matters

#38
"In my experience, relatively few students appreciate how much they're learning in my course while they're in it."

That quote describes me to a T.

The University of Minnesota taught a sophomore class on OO using SICP. At the time, C++ was hot (this was about 1991 or 1992) and I distinctly remember someone raising their hand and asking "Why are we learning this language that we will never use again? Why isn't an OO class taught in C++?" And I remember thinking to myself "Who cares what language it's in? I'm kind of excited about learning another language." And I truly was.

It wasn't until much later, after being in industry for a decade (currently starting my third decade now ;) )that I recall thinking to myself "You know, that book had a tremendous impact on how I write software and program in general, I need to pick that up again, what was it?" And I re-found it and am on my third reading of it as I write this, mostly just to refresh the ideas in my mind (since I mostly work in Java and JavaScript these days), but I have never truly finished the whole book. The class took us through chapter 3 and then sort of a mixed bag of topics from later in the book, so I've never truly read the whole book, but certainly enough of it to help me.

I didn't realize it was a famous book at the time, it was just our text book. I still didn't realize it was a famous book when I re-bought it a decade later. And now I know why it is a famous book, it is that good. And though the third re-read is very familiar, I still enjoy it and find it profound.

Re: Why SICP Matters

#39
post #18
post #6

But an average student might need the exposure to other "common" paradigms from C, Python, or Java, before getting introduced to SICP, to "fully appreciate" the power of functional language.

Pedagogically speaking, I think this is backwards. SICP isn't a course in functional programming; it's a course in programming. And the use of Scheme is critical, because it doesn't waste time on nonsense like classes and structs and other ephemera -- you just jump right into the conversation with the computer.

When I went to Berkeley, those with no programming experience were encouraged to take CS 3 (Simply Scheme) before taking CS 61A (SICP).

Re: Why SICP Matters

#40
post #12

I have to confess I just discovered you can order a relatively cheap copy (well, compared to Amazon) of SICP direct from MIT. I have only skimmed so far, but combined with the lectures I have to say that I really wish that had been my introduction to programming. Maybe it is just because of where I'm at, but it really feels like in the first 3 lectures some of the more elusive topics of programming are at least touch…

> I have only skimmed so far For the mind-blowing effect to occur, you must actually do the exercises. (-:

Yes, agreed, if you are reading this book, don't skip the exercises! You might need to refresh some math skills (just a bit), but it is worth it.
Post reply on HN