6 ms·
well why things that were relevant 20+ years ago would not be today? SICP is still the best introduction to computer science. The problem is the reliance on sc
by camus2 13y ago
well why things that were relevant 20+ years ago would not be today?
SICP is still the best introduction to computer science. The problem is the reliance on scheme/lisp languages to explain stuffs. it could be taught in almost anything that supports basic FP,it's even taught in JS !
http://www.comp.nus.edu.sg/~cs1101s/sicp/ http://www.comp.nus.edu.sg/~cs1101s/sicp/
- mahmud 13y agoWhy would reliance on Lisp be an issue? It's a basic requirement. Lisp can be learned in 2 hours. If you can't spend 2 hours learning some basic rules, you have no business dabbling in computing. Lisp resistence is a phobia, a problem of the afflicted person, not the wider computing community as a whole.
- camus2 13y ago> Why would reliance on Lisp be an issue? It's a basic requirement. Lisp can be learned in 2 hours. If you can't spend 2 hours learning some basic rules, you have no business dabbling in computing. Yeah right, first you dont know me you are assuming I dont know LISP while i have GCL opened on my computer right now. Second, your kind is the problem, computer science has nothing to do with being able to learn LISP in 2 hours or not.that's good if you did. You must be the smartest computer science guy in the world. I dont know you, but your message makes me say you are arrogant and bigheaded and i'm not interested in people like you. I'm interested in making knowledge accessible, even for those who "cant learn lisp is 2 hours therefor they have no business dabbling in computing". You may be smart but i pity your coworkers that need to endure your arrogance.
- axman6 13y agoFor such a relatively innocuous and general comment, you're taking this very personally.
- camus2 13y agoWell at least i'm sure this mahmud guy has better things to do than trolling me on HN now. I did not come here for a fight just to suggest an alternative version of SICP. I just dont like trolls and I responded appropriately.
- mahmud 13y agoYou read way too much into my comment. I wasn't trolling. My position is that if you're involved in computing in any capacity, you will have to learn countless formalisms and languages. And S-expressions are on the more accessible end of the spectrum. If you and I learned it, so can others. Exclusively seeking out C-like syntaxes will only hinder you, professionally. P.S. SICP introduces all the Lisp you will need as it goes. Really.
- camus2 13y ago> You read way too much into my comment. I wasn't trolling. yes you are trolling,now go back to wherever you come from,because you're not contributing to any constructive discussion.
- dang 13y agoPlease do not address another user this way on Hacker News.
- jinfiesto 13y agoI'm going to support mahmud here, and suggest that your behavior is the least constructive in this particular sub-thread. He's absolutely right that Lisp is simple and the basic rules can be picked up in an hour or two. He's also right that over the course of a career in computing, you'll have to pick up countless formalisms and languages. Additionally, SICP is not for the faint of heart. It is not an easy text, and the use of Lisp is fairly central to its main point. This is not to say that computing shouldn't be accessible. It definitely should be. That being said, SICP covers intrinsically "difficult" material. There's no substitute for an iota of determination here. If you don't have the determination (not intelligence) to be bothered to learn Lisp, you're not going to be able to complete SICP. It's not going to happen.
- rhizome31 13y agoAs someone lacking a solid scientific background, reliance on math was much more of an issue. I managed to get through Chapter 1 very slowly because I had to learn math concepts to understand what the code was about (Khan Academy helped a lot). Some sections took me up to 3 days to complete ! The beginning of Chapter 2 which is about data manipulation was actually much easier for me. Then I got to the section on the picture language which I found boring and I was also having less time to devote to my study, so I've given up at that point. But I'm really glad I made it so far. What I've learned so far is very precious and one day I'll carry on with the rest of the book ! Compared to the math, Lisp was a non-issue. I didn't even notice I was learning it. But I'm a "practical" coder lacking formal training, not a science student learning to code.
- deleted 13y ago[deleted]
- JackMorgan 13y agoSkip the picture language section. Better to go through the book skipping a few parts then to stop because you can't do every single exercise the first time through! I just started chapter 4, and judicious skipping has thus far been the right choice. If the options are "skip a little and gain the value of the rest" or "try do it all, but get stuck and quit" choose pragmatism! Also, a trick I like to do with the exercises is struggle with one for 20 minutes or so, and if I am not making progress, look up the answer. Usually that helps me understand what I was missing enough to then do it myself. That happens maybe 1/5th of the time, and usually because the question was vague or oddly worded, or most commonly, I didn't know how to test that it was correct.
- RogerL 13y agoAnd yet Sussman and Abelson themselves were behind the switch from Scheme to Python at MIT. I don't hold them out as infallible, even about their own course, but it should give us pause, yes? They have a lot of data, we have ... opinions. And the data was saying that students were having trouble learning to do practical engineering problems after this course. So, 2 hours or not (and I say not), the reality is that really bright students had trouble with it, and their professors and designer of the course, co-inventor of the language, and author of SICP thought Python a better choice than Scheme for this course. Empiricism trumps all.
- Sirenos 13y agoI don't know about you, but Lisp's uniform syntax makes it really to just dive in and explore the concepts of computation. The only problem I see is that the number of implementations in the Lisp family can be daunting to some people, especially those used to languages with a canonical implementation.
- bodski 13y agoScheme syntax and main semantics are taught by the first couple of lectures IIRC. The main issue for me with the book and to some extent these videos is the assumption of the student being fairly comfortable with certain (fairly basic) mathematical ideas and techniques. This motivated me to pick these up as I went, but meant that the workload was fairly hefty. I still have not made it all the way through! Tools and environment were another matter, getting MIT Scheme installed and running was a bit of a pain. Next time I'll probably try with Racket and Neil van Dyke's SICP support package : http://www.neilvandyke.org/racket-sicp/ http://www.neilvandyke.org/racket-sicp/ From the looks of it support for the 'Picture Language' is supported, looks like fun. :-) There's something reassuring about these vids, possibly the timelessness of what they attempt to convey. The enthusiasm, Sussman's especially for me, shines through well. They were filmed at HP in the 1980s, there's some great examples of 80s fashion going on there at points :-)
- a3n 13y ago> Tools and environment were another matter, getting MIT Scheme installed and running was a bit of a pain. Next time I'll probably try with Racket and Neil van Dyke's SICP support package I followed along with the video lecture in Racket using van Dyke's SICP package, and it went just fine. For all practical purposes I don't know scheme. It was nice trying to run the sqrt procedure that I had built up, be told that the 'average' procedure was not defined, quickly define it and successfully run sqrt. Such a simple thing, but ... it just worked. Interesting seeing fractional results displayed as actual fractions. I think it's very helpful, having programmed for >25 years, that I knew where the lecture was heading. Nevertheless, it was a wow experience. I wish I'd been exposed to this in my early years.
- kenferry 13y agoThe picture language is supported, BUT includes different primitive images. SICP uses 'wave' and 'rogers'. The package for racket includes only 'einstein'. FYI.
- hardwaresofton 13y agoI think it's the simplicity. Towards the end, when they start building the machine simulator lisp, you get a very natural transition to machine-level thinking -- they build up to it with simple constructs, just like everything else in lisp, and I think that's beautiful. You can clearly see how you could wire up some buffers and wire up an ALU, and wire up some circuits and end up with a completely generic calculating computer. The bottom-up approach a lot of classes take is somewhat more burdensome to pull together and hold in your head
- exDM69 13y ago> SICP is still the best introduction to computer science. The problem is the reliance on scheme/lisp languages to explain stuffs. it could be taught in almost anything that supports basic FP,it's even taught in JS ! The fact that Scheme uses Lisp is what makes SICP work at all. The course would be difficult or impossible to complete using most other languages. The keyword is: homoiconicity, the "code=data" property of Lisp. Most of the course focuses on writing interpreters and compilers for Lisp and making variations on it (lazy evaluation, non-deterministic). This would be very painful if a non-homoiconic language is used. And indeed, the "JavaScript version" you posted is very painful to read. It's difficult to understand how the data structures used by the interpreter are related to JavaScript code. And the code most definitely is not idiomatic JavaScript. I would not consider this an improvement over the original Scheme version.
- camus2 13y ago> And the code most definitely is not idiomatic JavaScript. I would not consider this an improvement over the original Scheme version. in javascript functions are data.While javascript doesnt allow lazy evaluation,it's good enough to teach most of SICP concepts. For someone that knows basic javascript,it's good enough. I dont agree with you saying it is not idiomatic javascript. There is nothing such as idiomatic javascript ,that's why people keep arguing on how to write javascript,javascript doesnt care. If javascript did care,it would be a different language. Anyway my point is ,what matters are the concepts , not the language. Most SICP concepts can be taught in many different languages.It's not about LISP, or javascript. It could be Haskell,CAML,or even Python it doesnt matter.
- ilcosrn 13y ago> The course would be difficult or impossible to complete using most other languages. The keyword is: homoiconicity, the "code=data" property of Lisp. But if that is the case, wouldn't SICP be less language agnostic since (most of) the concepts taught cannot be universally applied to non-homoiconic languages?
- yeahbutbut 13y agoThe problems can be solved in other languages, the tools are just clunkier. Lisp lets you solve the hard problems simply, and the solutions (not their expression) are what matters.
- JackMorgan 13y agoWhile possible to do in other languages, I think of it this way, "why NOT have it in a language new to people?" I'd rather it in something new to me (scheme) than be shoehorned into a language I know already. That way I can gain additional benefit of seeing similar concepts in a new form. Trying to protect someone from having to learn a new language just doesn't make sense, like protecting people from regular exercise. Everyone should have the benefit of knowing multiple tools, and a language should be no exception.
- reddit_clone 13y agoOne of the main reasons SICP is still relevant today is _because_ it uses a timeless language like lisp(scheme). If it was written using the flavour of the month language then, it would have disappeared into obscurity by now.