8 ms·
If this presentation of Lisp and model of computation clicks with you, you owe it to yourself to read Structures and Interpretations of Computer Programs (SICP)
by dharmon 8y ago
If this presentation of Lisp and model of computation clicks with you, you owe it to yourself to read Structures and Interpretations of Computer Programs (SICP).
The Abelson from the OP's lecture is the co-author, and the presentation described exactly follows the structure of the book (including the derivative example).
It opened my eyes to a new way of thinking about coding when I first read it (and worked through the exercises) many years ago.
- krallja 8y agoThere are also SICP video lectures available, from the 80s.
- dmix 8y agoThere's also some newer SICP videos online but the 1980s one is the best and still highly relevant to a programmer from todays era (or any era). I'm self-taught and it's what made me fully "grasp" programming and the power of abstraction.
- avinassh 8y agoDo you have any link to the newer SICP videos
- JJMcJ 8y agoThat book is a miracle of clear presentation. Worth looking at even if you never write a line of Lisp/Scheme in your life.
- justaj 8y agoI've always wondered if recommending SICP would also be applicable to a person who has never programmed before. Perhaps pragmatism aside, would you?
- xyzzyz 8y agoSICP is literally a textbook for programming 101 class. It's whole purpose is to teach programming to people who might have never programmed before.
- mcculley 8y agoMy understanding is that SICP was developed as the programming 101 class for MIT. Do students come into programming 101 at MIT never having programmed before? I would suspect that what is a great book for programming 101 for MIT students is not necessarily the right book for those that have not yet been exposed to programming.
- nostrademons 8y agoI've heard that actually students who had never programmed before did better with SICP than students that had. You have to un-learn a lot of habits from imperative languages when you start working with Scheme. Total novices could take the material as it was presented, but people who had programmed before often tried to shoehorn it into the C/Java/PHP paradigm they'd already experienced and ended up fighting the language. The same effect worked in reverse as they graduated MIT or worked on projects in more mainstream languages, though. Students would have to unlearn some of the elegant recursive formulations and strong abstraction abilities of Scheme and deal with languages that actually have strong industry adoption. That was a major factor [1] in the replacement of SICP with Python in MIT's intro programming class. Python has abundant library support that more closely mimicks what the programmer will have available and what challenges she'll face in the real world. [1] https://cemerick.com/2009/03/24/why-mit-now-uses-python-instead-of-scheme-for-its-undergraduate-cs-program/ https://cemerick.com/2009/03/24/why-mit-now-uses-python-inst...
- mcculley 8y agoI don't disagree that SICP is a better fundamental model than other approaches. I am one of those that was slowed down by learning BASIC as my first language. I was questioning whether or not the typical student learning Programming 101 at MIT is a good template for other students coming into a class with similar goals. I would be surprised if the typical MIT freshman hasn't done some kind of programming in high school or earlier.