This is the starting point of self-taught coding path. I am a undergradute whose major is material science. After three years, I got a great job in this field. Thank you, MIT OCW
@@zhaobryan4441 I have concerns about this being from 1986. Is it at all outdated? (realize this comment is coming from a complete programming/CS novice)
@@SaenSaen1 Truth be told, you need to get hands dirty and write code in an application, then when you have little experience you could start this journey of SICP. It is never outdated, it is the essence of programming, the popular technology is just a new jersey of the old technology.
00:30 Computer science is a terrible name. First, it's not a science. And it's also not about computers. 3:12 People in the future will recognize that people were really formalizing intuitions about process -- how to do things. Talking precisely about how to knowledge. As opposed to geometry that talks about what is true. 5:36 What's a process? A process is like a magical spirit that lives in the computer and does something. What directs a process is a pattern of rules called a procedure. Procedures are the spells. The programming language is the language for casting the spells. 7:25 Computer science is the business is in formalizing the "how to" imperative knowledge. 10:12 As opposed to the constraints in other kinds of engineering, where the constraints of what you can build are the constraints of physical systems, the constraints imposed in building large software systems are the limitations of our own minds. 10:55 Abstraction. Engineering technique whereby a "black box" can be used without knowing its implementation details. And these "black boxes" can be combined to create even more complex systems. 16:50 We're not only building boxes that input and output numbers. We're building boxes that can compute methods. We can have procedures whose values is another procedure. 18:14 Big Topic 1: Black-Box Abstraction 22:45 Big Topic 2: Conventional Interfaces 24:45 Big Topic 3: Metalinguistic Abstraction - making new languages 28:07 Learning a new language. Know: 1) primitive elements 2) means of combination and 3) means of abstraction. 29:58 Lisp's primitive data 38:45 Lisp's "define" 44:48 Lambda is Lisp's way of saying "make a procedure". 49:33 A key thing in Lisp is that you don't make arbitrary distinctions between things that happen to be primitive in the language and things that happen to be built in. So the things you construct get used with all the power and flexibility as if they were primitives. 51:13 How to make a case analysis i.e.conditionals. "cond" or "if" 59:05 An example problem: Heron's square root algorithm 1:08:54 Summary
Hi all, this is a lecture from 1985, that needs a boost on the treble side using the "Equalizer for youtube". This lecture is pure gold. Let's be thankful at least for the fact that it's available.
@@tanveerhasan2382 From the MIT OCW site: "These twenty video lectures by Hal Abelson and Gerald Jay Sussman are a complete presentation of the course, given in July 1986 for Hewlett-Packard employees, and professionally produced by Hewlett-Packard Television."
They uploaded the same VHS' in 2009 aswell. The audio on those ones is fine but the picture is too low res to see what is being written on the board some times
What a treasure! I bought the Wizard Book (SICPv2) as soon as it was available, and studied it religiously. Being already familiar with Lisp (but not with Scheme), following along was very easy. But MIT 6.001 and SICP were not really about Lisp. They were more, MUCH more. SICP has been an eye-opener on how to view computer programs in general. One of the best, or maybe THE best computer programming book in existence, up to this day. Unmatched, unrivaled. And now, there is a recording of this seminal course by the authors themselves! It is Christmas come early.
I remember downloading these videos from the internet somewhere nearly 10 years ago. Awesome videos. Thanks for making them available for everyone MIT.
They were most def on youtube in 2011/12 (when i first started learning CS from videos and sites like khan academy). Probably hosted on MIT's site for much longer.
One of the first big pieces of "video" was radio-telescopy. (1962 to 1972, my time). A great deal of the information in this is apparently picked up interferometrically, with pairs of observing stations today being located in Earth orbit and out by Neptune or, if its not politically incorrect, maybe Pluto. In those days they had to settle for California and New Zealand, and a bunch of flyboys kindly schlepped the two-inch Ampex video-tape around for us -- by Phantom jet or some damn thing -- to get their credit hours in the cockpit. ARPAnet probably paid for itself in the avgas, the fuel for all those students' planes, it saved the taxpayers when they put this odd variety of SneakerNet out of business. Or at least they had to put their flying credits on somebody else's job sheet... SneakerNet was when the 180K seven-inch floppy had replaced the ten-incher, and people covered the gaps between, say, Universities of Michigan and Utah (Mormons were pioneering whole swaths of stuff like computer graphics) by carrying physical floppies from Point A to Point B. The Ampex video-tape jape was the Airforce Academy's kind of SneakerNet.
My personal laptop always has one tab open for these videos, I watched these videos over and over again, immensely enjoying, appreciating the knowledge and the excellent way to express ideas from Abelson and Sussman
wow blow my mind...the simplicity and clarity is superdupa.This is why they say if you can't explain simple you have not understood enough...my hero Richard Feynman
Year 1 into becoming a self-taught engineer, I’ve since been brought into a top company who appreciates my organic creativity. Thank you for this material which was filed 2-3 years before I was born 🎉
31:48 combination Calling operator to sum operands I get complexity out of operand (can get quite complex) Prefix notation Operator Left Expression represented asap tree 45:37 syntactic sugar Have more convenient surface forms for typing something
I am soooo happy of all the positive comments about these videos. When I discovered them on the mit website around 2005 I showed them to everyone I knew. Most just said something silly about Hal's hair. These videos are one of my personal treasures.
Thank you for making me want to learn Lisp after decades of actively avoiding it. I was a little confused in the square root example until I grokked that there was recursion. To test my understanding of the material I implemented the same module in C++ using named lamdas and a slow hack that allows recursion in C++ lamba expressions. "try" is a reserved c++ word so I replaced it with tryme(). I think the C++ version of this would be even more unreadable without the auto names. double lisp_sqrt2(double s){ std::function tryme; tryme = [&tryme](double guess,double root)->double { auto average = [](double a,double b)->double {return (a + b) / 2.0;}; auto improve = [average](double guess,double root)->double {return average(guess,root/guess);}; auto goodenough = [](double guess,double root)->bool {return abs(root - (guess * guess)) < 0.000001;}; if (goodenough(guess,root)) return guess; return tryme(improve(guess,root),root); }; return tryme(1,s); }
From the look of it, it is really heavily loaded. Lambda introduced in 10 minutes into the syntax tutorial! I mean I already know Lambda so it's easy to understand, but it would give a bit of confusion (instead of killing it) for anyone who doesn't know that. But I do enjoy the style of teaching, "balckboarding" and "sliding" is way better than showing pdf and just talk and talk.
I've read SICP and worked on most exercises, but when I watch this I still have a sense that I've somehow missed the big picture. 6.001 is a lot more intense than CS61A.
I times of AI an deep fakes and all - would it not be an easy exercise for a student or AI engineer to re-re-master these classes to very good audio quality?
This video has better reslution, but the audio is pretty bad. watch?v=2Op3QLzMgSY has better audio, but the resolution is pretty bad. I'm so tempted to download and repackage them. If I had a good Internet connection I actually would.
As someone diving into the world of Programming/CompSci in 2021, could someone give their take on the relevance or accuracy of this lecture as it relates to the current state of the field? Are these courses still worth spending time watching given the technology of today? Or is this more for historical/archival purposes?
This is looking at some important fundamentals of how interpreters or compilers look at programs. It is foundational, AND historical. If your only interest is getting a job, you can go learn some popular programming language and learn an IDE, then prove that in an interview and go get a position somewhere... but how good will your best code be? The more deeply you understand what is happening at a fundamental level, and the more deeply you understand how certain problems have been solved in the past, the better quality your work will be in the present.
Not necessary. They forced ist to use this for starting university course in Germany 1998 and i would say it was a mistake starting with this. Better use a more practical language to start.
@@StefanWelkerI disagree. People who start with something “practical” often lack the fundamentals and will hit a ceiling sooner or later. Often, they then dont have the time or energy anymore to go back and learn the fundamentals. If you start with something like lisp and really understand it, you can learn any language. If you learn Java or Python, perhaps you can more quickly learn how to write half decent code for commercial applications. But hopefully thats not the only goal.
Because once an axiomatic method is established it can be better understood and then what was once only used for a single thing can now be used for many things.
No prerequisites are listed. Here is the course description, "This course introduces students to the principles of computation. Upon completion of 6.001, students should be able to explain and apply the basic methods from programming languages to analyze computational systems, and to generate computational solutions to abstract problems." See the course on MIT OpenCourseWare for more info at: ocw.mit.edu/6-001S05. Best wishes on your studies!
You will. This course starts with the basics but quickly ramps up to intermediate and advanced concepts which are often missing in many other courses. I studied this course years after graduating college and I still learned many important things. I wish I had discovered this course when I was in college.
Remastered from VHS tapes. Timing the same to avoid caption rework.
Are you planning to upload also the rest of the classes?
can you apply a machine learning algorithm to up res this? haha
Sound is worse than 2009 upload?
it feels like you guys made worst, now there is lot of noise in the audio
Thank you very much!
This is the starting point of self-taught coding path. I am a undergradute whose major is material science. After three years, I got a great job in this field. Thank you, MIT OCW
Congratulations 🎊
@@tanveerhasan2382 thx buddy
@@zhaobryan4441 I have concerns about this being from 1986. Is it at all outdated? (realize this comment is coming from a complete programming/CS novice)
@@SaenSaen1 Truth be told, you need to get hands dirty and write code in an application, then when you have little experience you could start this journey of SICP. It is never outdated, it is the essence of programming, the popular technology is just a new jersey of the old technology.
@@zhaobryan4441hi body my English is bad and I want to learn computer science and Ai how match time I’ll take to finish the path ?
00:30 Computer science is a terrible name. First, it's not a science. And it's also not about computers.
3:12 People in the future will recognize that people were really formalizing intuitions about process -- how to do things. Talking precisely about how to knowledge. As opposed to geometry that talks about what is true.
5:36 What's a process? A process is like a magical spirit that lives in the computer and does something. What directs a process is a pattern of rules called a procedure. Procedures are the spells. The programming language is the language for casting the spells.
7:25 Computer science is the business is in formalizing the "how to" imperative knowledge.
10:12 As opposed to the constraints in other kinds of engineering, where the constraints of what you can build are the constraints of physical systems, the constraints imposed in building large software systems are the limitations of our own minds.
10:55 Abstraction. Engineering technique whereby a "black box" can be used without knowing its implementation details. And these "black boxes" can be combined to create even more complex systems.
16:50 We're not only building boxes that input and output numbers. We're building boxes that can compute methods. We can have procedures whose values is another procedure.
18:14 Big Topic 1: Black-Box Abstraction
22:45 Big Topic 2: Conventional Interfaces
24:45 Big Topic 3: Metalinguistic Abstraction - making new languages
28:07 Learning a new language. Know: 1) primitive elements 2) means of combination and 3) means of abstraction.
29:58 Lisp's primitive data
38:45 Lisp's "define"
44:48 Lambda is Lisp's way of saying "make a procedure".
49:33 A key thing in Lisp is that you don't make arbitrary distinctions between things that happen to be primitive in the language and things that happen to be built in. So the things you construct get used with all the power and flexibility as if they were primitives.
51:13 How to make a case analysis i.e.conditionals. "cond" or "if"
59:05 An example problem: Heron's square root algorithm
1:08:54 Summary
向课代表致敬
Bless your heart
thanks
what have you done is phenomenal work, thank you
Hi all, this is a lecture from 1985, that needs a boost on the treble side using the "Equalizer for youtube". This lecture is pure gold. Let's be thankful at least for the fact that it's available.
Wait, 1985? I thought it was from 2005
@@tanveerhasan2382 From the MIT OCW site: "These twenty video lectures by Hal Abelson and Gerald Jay Sussman are a complete presentation of the course, given in July 1986 for Hewlett-Packard employees, and professionally produced by Hewlett-Packard Television."
They uploaded the same VHS' in 2009 aswell. The audio on those ones is fine but the picture is too low res to see what is being written on the board some times
What a treasure! I bought the Wizard Book (SICPv2) as soon as it was available, and studied it religiously. Being already familiar with Lisp (but not with Scheme), following along was very easy. But MIT 6.001 and SICP were not really about Lisp. They were more, MUCH more. SICP has been an eye-opener on how to view computer programs in general. One of the best, or maybe THE best computer programming book in existence, up to this day. Unmatched, unrivaled. And now, there is a recording of this seminal course by the authors themselves! It is Christmas come early.
I would even say, much more: It's about engineering in general and problem solving.
100% agreed. Just discovering it now@@esepecesito
I remember downloading these videos from the internet somewhere nearly 10 years ago. Awesome videos. Thanks for making them available for everyone MIT.
They were most def on youtube in 2011/12 (when i first started learning CS from videos and sites like khan academy). Probably hosted on MIT's site for much longer.
These MIT folks were so ahead of the game in the 1980s, they were preparing for TH-cam and an Internet fast enough to deliver video! 🙂
One of the first big pieces of "video" was radio-telescopy. (1962 to 1972, my time). A great deal of the information in this is apparently picked up interferometrically, with pairs of observing stations today being located in Earth orbit and out by Neptune or, if its not politically incorrect, maybe Pluto. In those days they had to settle for California and New Zealand, and a bunch of flyboys kindly schlepped the two-inch Ampex video-tape around for us -- by Phantom jet or some damn thing -- to get their credit hours in the cockpit. ARPAnet probably paid for itself in the avgas, the fuel for all those students' planes, it saved the taxpayers when they put this odd variety of SneakerNet out of business. Or at least they had to put their flying credits on somebody else's job sheet...
SneakerNet was when the 180K seven-inch floppy had replaced the ten-incher, and people covered the gaps between, say, Universities of Michigan and Utah (Mormons were pioneering whole swaths of stuff like computer graphics) by carrying physical floppies from Point A to Point B. The Ampex video-tape jape was the Airforce Academy's kind of SneakerNet.
My personal laptop always has one tab open for these videos, I watched these videos over and over again, immensely enjoying, appreciating the knowledge and the excellent way to express ideas from Abelson and Sussman
wow blow my mind...the simplicity and clarity is superdupa.This is why they say if you can't explain simple you have not understood enough...my hero Richard Feynman
One of the best lectures ever...this guy is a great teacher
Year 1 into becoming a self-taught engineer, I’ve since been brought into a top company who appreciates my organic creativity. Thank you for this material which was filed 2-3 years before I was born 🎉
This one of the best things I've ever seen on programming
What a treasure! Thank you so much for making it available.
A classic. Pure gold.
What a gift to the world. Thanks Hal!
Legendary lectures at the dawn of CS/FP. Thank you, MIT OCW, for publishing these lectures!
more like at its heyday. Dawn was the 50s. Common Lisp was 84.
crazy good, stuff that must be preserved for as long as possible
Thanks MIT for this great content. You folks are doing humanity a remarkable service
31:48 combination
Calling operator to sum operands
I get complexity out of operand (can get quite complex)
Prefix notation
Operator Left
Expression represented asap tree
45:37 syntactic sugar
Have more convenient surface forms for typing something
I am soooo happy of all the positive comments about these videos. When I discovered them on the mit website around 2005 I showed them to everyone I knew. Most just said something silly about Hal's hair. These videos are one of my personal treasures.
maybe it's because they moderate the comments.
Can you enlighten me with your personal treasures?
@@bookiefloppy368 lol what?
@@crownstupid I think they’re asking if you have any other gems like these videos
something silly about Hal's hair? what do you mean?
Starting my journey! Wish me luck.
The Best computer science course.
Thank you so much, MIT! This is a real gem
Thank you for making me want to learn Lisp after decades of actively avoiding it. I was a little confused in the square root example until I grokked that there was recursion. To test my understanding of the material I implemented the same module in C++ using named lamdas and a slow hack that allows recursion in C++ lamba expressions. "try" is a reserved c++ word so I replaced it with tryme(). I think the C++ version of this would be even more unreadable without the auto names.
double lisp_sqrt2(double s){
std::function tryme;
tryme = [&tryme](double guess,double root)->double {
auto average = [](double a,double b)->double {return (a + b) / 2.0;};
auto improve = [average](double guess,double root)->double {return average(guess,root/guess);};
auto goodenough = [](double guess,double root)->bool {return abs(root - (guess * guess)) < 0.000001;};
if (goodenough(guess,root))
return guess;
return tryme(improve(guess,root),root);
};
return tryme(1,s);
}
From the look of it, it is really heavily loaded. Lambda introduced in 10 minutes into the syntax tutorial! I mean I already know Lambda so it's easy to understand, but it would give a bit of confusion (instead of killing it) for anyone who doesn't know that. But I do enjoy the style of teaching, "balckboarding" and "sliding" is way better than showing pdf and just talk and talk.
@James Campbell You know, even in the era of computing professors still have the option to write on blackboards. Some choose not to do that.
bunch of people who are teaching are suppose to do something else...this guy is gold
With a little elbow grease you can hook the introduction tune into your startup for Scheme mode in Emacs. :P
Can you? Yes. Should you? I don't know...
The interesting thing is that the content is still relevant nowadays.
I've read SICP and worked on most exercises, but when I watch this I still have a sense that I've somehow missed the big picture. 6.001 is a lot more intense than CS61A.
What do you recommend? 6.001 or CS61A? Also, is reading book necessary?
Great introduction to declarative versus imperative knowledge.
--
I actually think the use of `try` here is better phrased than the `sqrt-iter` used in the book.
oh boy! i was ready to read the book and i cross paths with this gem!! thanks a lot!
Pretty cool how the video starts with End of Evangelion music, they sure know their audience!
Actually, it starts with Jesu, Joy of Man's Desiring by Bach.
@@019bc3 th-cam.com/video/67a5FTa1U1A/w-d-xo.html
That's the joke m8.
1 minute and 12 sec in... MIND BLOWN
Please remaster 18.03 !!!!!!! I will donate if you do
i may be in programmer heaven right now
That would mean you died
very nice ! some of the video uploads of the lectures indeed had some audio problems in them. hopefully this is fixed now.
2 seconds into it and I was already in love ❤️
Awesum reminder to knot confuse the process/"to know" from the fact/"knowledge"...
Great to have these available.
best lectures ever!
Yes, teaching is an Art.
I times of AI an deep fakes and all - would it not be an easy exercise for a student or AI engineer to re-re-master these classes to very good audio quality?
0:34 a meme was born
Wait what meme?
Let's all love Lain.
get out, lainposter!!
Why do MIT profecers have realy good handwriting? awsome lecture
Day 1 in class! 🦾🥳
This is such a gem
This video has better reslution, but the audio is pretty bad. watch?v=2Op3QLzMgSY has better audio, but the resolution is pretty bad.
I'm so tempted to download and repackage them. If I had a good Internet connection I actually would.
Do it
As someone diving into the world of Programming/CompSci in 2021, could someone give their take on the relevance or accuracy of this lecture as it relates to the current state of the field? Are these courses still worth spending time watching given the technology of today? Or is this more for historical/archival purposes?
This is looking at some important fundamentals of how interpreters or compilers look at programs. It is foundational, AND historical. If your only interest is getting a job, you can go learn some popular programming language and learn an IDE, then prove that in an interview and go get a position somewhere... but how good will your best code be? The more deeply you understand what is happening at a fundamental level, and the more deeply you understand how certain problems have been solved in the past, the better quality your work will be in the present.
Not necessary. They forced ist to use this for starting university course in Germany 1998 and i would say it was a mistake starting with this. Better use a more practical language to start.
@@StefanWelkerI disagree. People who start with something “practical” often lack the fundamentals and will hit a ceiling sooner or later. Often, they then dont have the time or energy anymore to go back and learn the fundamentals. If you start with something like lisp and really understand it, you can learn any language. If you learn Java or Python, perhaps you can more quickly learn how to write half decent code for commercial applications. But hopefully thats not the only goal.
i am studying the SICP book, will watching these lectures help me ?
Using different receptors during learning helps a lot. Watching and listening fills the gap you've left while reading.
PRESENT DAY... PRESENT TIME...
no, lainposter
That intro goes so hard
The audience looks like they're from the 80's. I guess this was published online in the Spring 2005 but not recorded in 2005?
Correct. The videos were from 1986 but were published on MIT OpenCourseWare in 2005.
I'm glad that we've done away with much of the mysticism regarding writing computer programs as is on display here.
well this is incredible
Higher order procedure are first class functions , like javascript !
Thank you (and especially for the link to the full course)
2005? Surely this is a much older lecture
26:26 spelling mistake "Liguistic"
a gem
Why should axiomatic method be more important than the practical problem than motivated measurement of land?
Because once an axiomatic method is established it can be better understood and then what was once only used for a single thing can now be used for many things.
Brilliant series!
Thanks for sharing these!
2005!? That's not right, surely?
I am not sure but that might be the last year this course was taught as shown in the video series and the archive website
@@EzequielBirman77 It was taught in 2005, using the 1987 video series as a reference.
where do I get sweet midi bach intro music
what's the song at the beginning
Jesu, Joy of Man's Desiring by J.S. Bach as played on the sickest 1986 Casio around
Sound quality is poorer than the earlier videos
Thank you very much for sharing
2019 and LISP ?!
Is this course useful for today?
Dude is so fast at chalking in block caps
Awesome!
Very good video. Love it.
38:16 Hal at the editor
Great Video!!
"let's take a break now and than we'll get started" @27:34 LMAO
@7:05 that's me.
Was this video recorded 4 years ago?
I don't get the title... he doesn't have a lisp. 😁
AMAZING
I want to become a wizard too
the book gave me no headaches but im 15 minutes into this lecture and have had 10 migraines
lol
Exactly opposite for me :/
This lecture is so clearly explained that I think you might have a disability or something.
Thank you
What is this playlist exactly about ?
If I have previous knowledge in python(basics) and computer architecture, will i be able to enjoy this course ?
No prerequisites are listed. Here is the course description, "This course introduces students to the principles of computation. Upon completion of 6.001, students should be able to explain and apply the basic methods from programming languages to analyze computational systems, and to generate computational solutions to abstract problems." See the course on MIT OpenCourseWare for more info at: ocw.mit.edu/6-001S05. Best wishes on your studies!
You will. This course starts with the basics but quickly ramps up to intermediate and advanced concepts which are often missing in many other courses. I studied this course years after graduating college and I still learned many important things. I wish I had discovered this course when I was in college.
Amazing
I wish I could meet that guy
Pretty Awesome
This is a fucking gem!
Here we go again...
Who is George?
Would you say in 2022 that computer science is still not a science?
I'd argue it was more of a science when this video was recorded than today.
depends on your definition of science. CS does not change, but our definitions do.
They really thought LISP is gonna be the shit...
It is.
42:30
Treasure !!!
I feel like I'm inside the internet right now
It may not be real, but if you mess it up the spaceship will crash.
3:04 This guy
Classic!
audio broke
Yes, the audio from the first two VHS tapes was pretty low and muffled.
at 43 good