Structure and Interpretation of Computer Programs Video Lectures (1986) (ocw.mit.edu)
286 points by gjvc 18 hours ago
ozten 22 minutes ago
I worked through these videos and the full book. Via news groups I organized an in-person study group. What a blast and a big unlock for me. The study group started having attrition about halfway through the book.
neilv 15 hours ago
If you want to work through SICP, you can use MIT Scheme, but another option is to use Racket or DrRacket, with this add-on package: https://docs.racket-lang.org/sicp-manual/
vincent-manis 7 minutes ago
I second the recommmendation, for these two systems with a caveat. MIT Scheme has not been made to run on Apple Silicon, though with a few tricks, the amd64 version is usable on a modern Mac (this will presumably go away once Apple takes away Rosetta2). Racket might therefore be a better choice.
It is possible to use pretty much any decent Scheme system with SICP, but the language has changed since even the Second Edition, so I don't recommend it. That said, once you are working on your own projects, nothing stops you from using a different system, even though you might have to RTFM to see modern equivalents to ancient idioms.
functionmouse 4 hours ago
I think we should only be recommending MIT Scheme. Everything else has got too much going on and can become distracting, for the purposes of education.
brudgers 11 hours ago
MIT Scheme is the simplest thing that might work.
SilentM68 12 hours ago
Awesome!
I was just about to ask just that question?
Thank you, SM
sanmarzano an hour ago
Every programmer should learn LISP. or at least give an earnest attempt to study it. The vast majority of applied programmers only know how to think like C programmers (procedural). LISP is a “beautiful” language in that it is about concepts, not hardware. Totally changed my brain when I worked on a graduate project for a few years at my Alma mater in 1990.
dirteater_ 13 hours ago
I tried SICP straight from the book once, but I think the lectures are much better and the book acts as a supplemental reference.
easytiger 11 hours ago
That is indeed how University learning used to work, for about 1000 years
epolanski 9 hours ago
It's *supposed* to work.
In reality you get lectures from individuals that became professors because they are great at politics/research but not at teaching (very different skill).
If you even get them and not their 25 year old assistants.
And this is apparently super common even in ivy league universities as Youtube lessons have shown me over and over.
nobleach 5 hours ago
dahart 3 hours ago
alpinisme 4 hours ago
aag 7 hours ago
barrenko 12 hours ago
Thank you! Will try it like this.
j_m_b 5 hours ago
This is how I learned lisp. I then went on to learn Clojure and built a career around it.
davidpapermill 2 hours ago
Fantastic. How did you learn Clojure? I'm a bit of a fan.
xqb64 5 hours ago
What could someone interested in systems programming gain from this?
convolvatron 3 hours ago
these talks distill out the core questions of topics like mutability and state management and abstraction. almost uniquely so. so I consider them deeply relevant to systems programming in as much that its primarily concerned with..state management and abstraction.
unless you mean 'systems programming' as just 'the crap one does to try to glue together all the grotty pre-existing systems' and 'developing a good sense of taste about 3rd party libraries', in which case no, its not really very relevant.
although even here there is insight, I watched a video of Sussman describing why they were putting down SICP and demanding that MIT develop new introductory courses. he was so graceful and considered, putting his polished jewels away. the time when we could reasonably be expected to see across and through all the layers of abstraction was over.
convolvatron 3 hours ago
addendum: actually I think the case for SICP in systems programming is stronger than that. There are several places in the material where the gap between 'high level programming' and 'construction of machines using gates' is thoroughly walked through and evaporated. maybe some of of the other similar treatments for logic programming and continuous analysis won't strike as deep, but that part should really be required reading.
selimthegrim 3 hours ago
bloppe 13 hours ago
Cannot recommend these enough. Watch the first one and you'll be hooked
boobsbr 6 hours ago
The audio is so bad on these lectures.
Is there any way to clean them up?
mbrezu 12 hours ago
These sound a little better than I remember. I wonder if the sound was cleaned up?
Aejkatappaja 9 hours ago
I always recommend these lectures, awesome!
songbird23 12 hours ago
Should I do the JS or Scheme SICP
ughitsaaron 3 hours ago
Part of the point of SICP is to be generic about its programming principles. The core principles and concepts are independent of any particular programming language (so long as it has first class functions, and probably a few other common features). Since Scheme has virtually no syntax it was an ideal language for Ableson & Sussman’s course. It’s notable that SICP spends hardly any time teaching the language.
I’ve never understood, therefore, the motivation behind trying to “translate” SICP into a language like JS (or Python, etc.) It over emphasizes the importance of the preferred language in a way that very obviously undermines the book.
The point being: if you’re gonna do SICP do it in Scheme. You’ll get more out of it.
nobleach 5 hours ago
The JS version of the book (I still bought it when it came out) is just weird. It has you writing JS in a non-idiomatic way that you'd never see (nor should you be the person introducing) in the industry. SICP teaches a very LISP-y way of thinking through problems. It's not that you CAN'T apply these tactics in other languages... they're just far more "at home" in Scheme/DrRacket/heck... even Clojure.
Nekorosu 10 hours ago
I have both books. Scheme for sure! Env setup can be a bit of an issue but it is doable. Regarding it, I remember having some weird issues with MIT Scheme on a modern computer, but Racket/DrRacket works well.
spauldo 7 hours ago
I'll add another recommendation for Scheme. The concepts in SICP map very well into Scheme, whereas I can only imagine them being awkward and non-idiomatic in JS. There's lots of passing around first class functions and use of recursion.
One of the two professors (Dr. Sussman) that give the lectures in this series is a co-creator of Scheme.
brudgers 11 hours ago
Scheme. Javascript is a fine language, but it is not the right tool for this job.
submeta 12 hours ago
I‘d go with Scheme. You‘ll learn the basics in a day. The language spec is only a few pages. And Scheme reads like pseudo-code with parentheses.
aligutierrez 13 hours ago
interesting approach to SICP.
aag 7 hours ago
I don't understand this comment. They wrote SICP.
tangsoupgallery 15 hours ago
These 1986 lectures are the definitive SICP experience — the Hal and Gerry show at its peak. The presentation quality holds up remarkably well, and seeing the metacircular evaluator built live is something no textbook can fully capture. For those who find the book dense, these lectures provide the pacing and intuition that make the abstractions click.
ramchip 8 hours ago
LLM bot account