Frame from Lecture 1A | MIT 6.001 Structure and Interpretation, 1986 Plays with YouTube's privacy-enhanced embed

Lecture 1A | MIT 6.001 Structure and Interpretation, 1986

Open on YouTube First HN thread

11 HN users recommended this lecture in 9 different months between 2012 and 2024.

2007–2026
6 strong recommendations 5 recommendations 7 citations 1 critical 1 joke HackerTube score 12

Seen as a classic and often the moment programming 'clicks'; commenters praise Abelson's opening that computer science is not about computers.

The first lecture of MIT's 1986 6.001 Structure and Interpretation of Computer Programs, given by Harold Abelson, introducing Lisp and the idea of computer science as the study of process.

Pull quote: “blew my mind and made me switch from being a UX designer dabbling in Rails to a full blown programmer.” (HN, 2017)

Also tagged: programming fundamentals, sicp, scheme, lisp, abstraction, computer science, mit

What Hacker News said

20 labeled comments from the HN archive; up to 20 are kept per video, favoring different commenters. Each one links back to the original thread.

Strongly recommends tinco December 2012 under Zuckerberg visits Stanford CS106A third year in a row
Fun, interesting intro to CS with an awesome lecturer teaching Scheme
Heh that's interesting, I just watched 106A yesterday to get an idea of how the programming introduction course is compared to my university (utwente.nl). I actually was a bit disappointed to see that it is very much like our introduction course, except that this teacher is a bit more enthousiastic, and perhaps the course starts at an even more basic level I think. I think for real CS enthousiasts 6.001 at MIT is much more interesting (and fun) to watch: [this video] (it teaches scheme and the lecturer has an awesome way of explaining it)
Strongly recommends r-s July 2014 under Interactive SICP
Original SICP lectures, dated but great content
One section of original lectures are freely available via MITs OpenCourseWare youtube channel: [this video] It would be quite difficult to beat these lectures, while they appear a bit dated, the content is great. SICP is a great way to learn about programming, although I am very surprised they got through the whole book in an introductory course. Chapters 4 and 5 cover some topics I was barely aware of nearing the end of my formal CS education.
Strongly recommends dmix April 2017 under Calculus Made Easy (1914) [pdf]
Black box abstraction and Lisp blocks inspired a career switch to programming
Read the full comment
Reminds me of the MIT SICP lecture videos from the 80s. The concepts of black box abstraction and the simplicity of using LISP like lego building blocks blew my mind and made me switch from being a UX designer dabbling in Rails to a full blown programmer. It was still entirely relevant to today even though it was a few decades old as the fundamentals of computer science are still fundamental. [this video] Hearing that intro music still brings a smile to my face. I just happen to be relearning math right now as I dive deeper into data science and this is perfect timing. Going to watch this series once I get through my math proofs book ("Book of Proof" by Richard Hammack which I recommend to people getting into math [link] ).
First ten minutes changed how the commenter views computing
First 10 mins of the first Structure and Interpretation lecture (by Harold Abelson) [1] Famous first words ... "I'd like to welcome you to this course on computer science. Actually, that's a terrible way to start. Computer science is a terrible name for this business." ... and this is where it all clicked to me .... "Well, similarly, I think in the future people will look back and say, yes, those primitives in the 20th century were fiddling around with these gadgets called computers, but really what they were doing is starting to learn how to formalize intuitions about process " [1] [this video]
First SICP lecture on the naming of computer science
The Mother Of All Demos is an absolute classic: [link] [link] I also very much enjoy Feynman’s talks. Here’s one on imagining physics: [link] For computer science in particular, I highly recommend the first lecture in the SICP series, especially on the naming of so called “computer science”: [this video]
Strongly recommends dancemethis May 2021 under “Computer science is not about computers”
Legendary best version of the idea that CS is not about computers
Wow, what a MASSIVE missed opportunity to quote the best variation of this idea by far, done by Hal Abelson in the legendary "6001-Introduction to Computer Science" class on MIT in the 80s. You can check it here: [this video] Abelson in the first minute crosses both computer AND science, and references the also legendary SICP with "computer so-called science actually has a lot in common with magic". Honestly, this alone already made the article that empty.
Recommends unabst April 2017 under Why MIT Switched from Scheme to Python (2009)
The classic Scheme course lecture series
Read the full comment
I took 6.001 in 1999 (I think). Hal Abelson taught it along with a professor who took off his sweatshirt to reveal a Microsoft tee at his final lecture (he went to Microsoft). What was great about Scheme (Lisp) is that most programs are basically words from your vocabulary, parentheses, and cars and cdrs. With procedural languages, there is always a sense that the language provides all the tools, and the magic happens somewhere underneath the hood. But with Scheme it feels as if it's happening right before you. It makes you feel like a wizard, and not a monkey. And it requires knowing all the spells. It requires knowing how to make magic happen. Or not. Once you know none of it's magic. But that's the point! Python is arguably easier and more practical for both science and work. It's already popular on the web server, and is used everywhere else -- unlike Scheme. But the recent resurgence of functional programming is super exciting with Elixir and Elm and the like. I'm looking forward to building my next project using Elixir. Here is the classic course: [link] Original video lecture on YouTube (linked from above): [this video]
Recommends lunchladydoris October 2018 under Not Lisp again (2009)
Abelson and Sussman lectures conveying the magic of the course
For anyone who wants to feel what this might have felt like (and you've yet to watch them), MIT posted videos of Abelson and Sussman presenting the course on YouTube [0]. I felt a similar sense of magic the first time I saw the derivative section. [0] [this video]
Recommends efortis October 2023 under Today's CS pedagogy is problematic
First SICP video listed among good parts of CS pedagogy
Some Good Parts: - Professor Richard Buckland has CS playlists on youtube (UNSW eLearning). In one of his lectures he starts writing a sudoku solver (I think) starting with high level abstractions. - Also, at least, the first video of SICP [this video]
Recommends hickelpickle May 2024 under The world's loudest Lisp program to the rescue
SICP lectures helped the commenter appreciate Scheme
Read the full comment
Little schemer is good, some people hate it some people love it. But it is a fairly light read the slowly teaches some syntax at a time, questions you about assumptions then revels the information as it goes on. It would be the least dry read. There is also sketchy scheme for a more thorough text, or even the rs7s standard, which are both pretty dry but short. What made me appreciate scheme was watching some of the SICP lectures ( [this video] ) and the little schemer to learn more. I also read some of the SICP along with it, though I put it down due to not having the time to work through it. Scheme is interesting and toying with recursion is fun, but the path a mentioned above is only really enjoyable if you are looking to toy around with CS concepts and recursion. You can do a lot more in modern scheme as well, and you can build anything out of CL. But learning the basics of scheme/lisp is can be pretty dry if you are just looking to build something right away like you already can in a traditional imperative language. But it is interesting if you are interested in a different perspective. But even RS7S scheme is still far from the batteries included you get with CL. I personal found the most enjoyment using Kawa scheme, which is jvm based and using it for scripting with java programs as it has great interop. I used it some for a game back end in the event system to be able to emit events while developing and script behaviors, I've also used it for configurations as well with a g

Citations, criticism and jokes

Cites it sepeth August 2015 under The 'No True Programmer' Fallacy
First SICP episode on what programming is
> Note that you can be a programmer without ever having touched a computer, people have been coming up with algorithms and integrating them into systems for ages. Slightly different, but the first episode of SICP videos helped me to reach the same conclusion: [this video] We can even say Newton, or Euclid wrote programs. Maybe not by sitting in front of a computer, but they described a process to calculate something.
Read the full comment
> Interesting. Maybe we should compare notes sometimes. I have a bit of a story with finding alternative-type stuff. I really like the theory of programming, and am constantly looking for languages that are a) easier to write b) amazingly expressive Its always finding what's out there. > - I've been contemplating tackling Python, in spite of the 2.x/3.x thing. There's the perfect vacuum where versioning shouldn't be a problem, and the practical real world where knowing Python and the differences between the two will let me actually do interesting things. Thankfully, that's mostly gone now. Few enterprises still holding out, but most of the big libraries are 2/3 or 3 only. And 3 is a lot more thought-out. Most of the warts are gone. > - I completely forgot to mention Awk (!) mostly because I have no idea at what point I began to pick it up, but I did get a basic idea of how it works a while ago, and I've been factoring it into shell pipelines more frequently lately. It's great for when I need to do something that sed can't express well (and I just properly read about how match() a) returns the index and b) also works apropos to grep recently, which is great) Awk is different, but great. I had a boss at a previous job who'd used it for at least a decade for everything, so I had to learn the nitty-gritty. I ended up building a CGI application that basically ran the entire website in Awk. Big learning experience, but rather cool. > (As an aside, Lua is ~200K and awk is ~632K. Tha
Abelson's opening on computer science not being about computers
The quote is of Hal Abelson and one of his lectures at MIT disagrees with you [1]. The introduction is amusing and opens with Computer Science has nothing to do with Computers and little to do with Science. It's really a poorly named field. I believe it's a bit tongue in cheek and not defining science entirely by "uses the scientific method". [0] [link] [1] [this video]
Cites it CaioAlonso July 2019 under Think in Math, Write in Code
Abelson's distinction between mathematics as truth and computing as process
"The natural language which has been effectively used for thinking about computation, for thousands of years, is mathematics." I'm not sure if this is true. Harold Abelson creates the distinction[1] between Mathematics being the study of truth and Computing being the study of process. It seems to me that these really are different things and Mathematics isn't the "natural language" to discuss computations, but rather truth and patterns. But of course process (computing) can only happen within the boundaries of mathematical truths and patterns. [1] [this video] the first few minutes
Cites it aniijbod May 2021 under “Computer science is not about computers”
Abelson's opening line that CS is not about science or computers
The very first thing that Hal Abelson says and puts up on the chalkboard in his very first SICP talk (Lecture 1A 6.001 'Structure and Interpretation') in 1986 is that "Computer Science is not about either science, or computers'. [this video]
Cites it kurisufag July 2024 under The secret of Minecraft (2014)
Opening line comparing computer science to magic
>You know, magic >So I became a programmer because I wanted to be a wizard that's a classic MIT AI lab idea. "We'll actually see that Computer so-called-Science actually has a lot in common with magic."[0] [0] [this video] 0:40, and a lot in the SICP textbook all your rblx info is still true, by the way. there's a lot more you can script with too, including internal and external API integration, inter-game info transfer, transactions, all kinds of stuff.
Cites it dailykoder December 2024 under What I learned covering computer science in 2024
Lecture reinforcing that CS is about understanding problems, not computers
>A pithy quote attributed to the pioneering researcher Edsger Dijkstra helps me explain: “Computer science is no more about computers than astronomy is about telescopes.” Reminds me of the MIT lecture "Lecture 1A | MIT 6.001 Structure and Interpretation, 1986"[1]. And I still remind myself of that. If you fundamentally understand your problem and solve it, then writing a few characters in your favorite text editor that do the task is easy - [1] [this video]
Pushes back userbinator June 2014 under 8088 Domination Post-Mortem, Part 1
Read the full comment
I think the underlying cause of this over abstraction is largely a result of abstraction being excessively glorified (mostly) by academics and formal CS curricula. In some ways, it's similar to the OOP overuse that has thankfully decreased somewhat recently but was extremely prevalent throughout the 90s. In software engineering, we're constantly subjected to messages like: Abstraction is good. Abstraction is powerful. Abstraction is the way to solve problems. More abstraction is better. Even in the famously acclaimed SICP lecture series [1] there is this quote: "So in that sense computer science is like an abstract form of engineering. It's the kind of engineering where you ignore the constraints that are imposed by reality." There is an implication that we should be building more complex software just because we can , since that is somehow "better". Efficiency is only thought of in strictly algorithmic terms, constants are ignored, and we're almost taught that thinking about efficiency should be discouraged unless absolutely necessary because it's "premature optimisation". The (rapidly coming to an end) exponential growth of hardware power made this attitude acceptable, and lower-level knowledge of hardware (or just simple things like binary/bit fields) is undervalued "because we have these layers of abstraction" - often leading to adding another layer on top just to reinvent things that could be easily accomplished at a lower level. The fact that many of those in the demosc
Makes a joke keithnz March 2017 under Beautiful Online SICP
you all with your fancy pants "reading". Nothing beats the movie, not only showing the height of computing power, but the awesome fashion of uber geeks. [this video]

Keyboard shortcuts

/
Search
j k
Next / previous video in a list
Enter
Open the focused video
l
Like (on a video page)
w
Watch later (on a video page)
?
This help
Esc
Close