*My takeaways:* 1. What is recursion in the context of this lecture 3:47 2. An example: multiplication - iterative solution vs recursive solution 5:48 3. Recursion with one base case - factorial 9:25 4. Recursion with multiple base cases - Fibonacci numbers 24:38 4. Recursion on non-numerics 29:12 5. Dictionaries (mutable data structure contains "keys" and corresponding "values", it has no order, only matches "keys" to "values") 33:27 6. Key things about keys and values 39:10 7. List vs dictionaries 40:20 8. An example of using dictionaries 40:45 9. Efficient Fibonacci 46:18
pre labeling 0:00:00 0:02:31 0:04:00 What is Recursion 0:05:58 Iterative algorithm so far 0:05:58 Multiplication iterative solution 0:07:56 0:09:49 Factorial 0:12:03 Recursive function scope example 0:13:46 Some observation 0:16:07 0:18:03 Example of induction 0:19:44 0:23:12 Hanoi tower 0:24:56 Recursion with multiple base cases 0:26:14 Fibonacci 0:28:06 0:30:23 Solving recursively 0:33:52 How to store student info 0:35:45 0:36:00 0:38:00 0:40:25 Dict v.s. List 0:41:52 Creating a dictionary 0:43:02 0:44:16 0:45:16 0:46:25
Prof. Grimson is one of my very best teachers! I've taken his Intro to Computer Science and Programming course on EdX and it was great! All his lectures here on UA-cam are great, too! Thank you Professor and MIT!
@@charge2snglrty409 I did, because back in my first year, i skipped a lot of csc class in mit (even though I took Chemistry). My laptop was (and still) a gaming laptop, It's not convenient to bring it everywhere.
If you are having trouble with recursion, don't worry most people have trouble with it--look up explanations from several sources besides this one, and one particular metaphor or walkthrough will eventually give you that a-ha moment where you now intuitively understand it. I didn't think he explained recursion well here, from point of view of someone without a science/math background; it wasn't until I researched it myself and watched videos showing how it worked graphically/metaphorically that I then understood it. TLDR: search of many recursion explained videos on YT, there's tons, and one of them will eventually click!
I have seen many tower of hanoi and recursion videos, this one is just jewel! MIT has awesome teachers for any field! Prof Gilbert strang, John Tsitsiklis etc..
Great teacher but missed a great opportunity to use my favourite computer science joke: In order to understand recursion, one must first understand recursion.
The lecture states: "With n = 34: 11+ million calls with original fibonacci code, and 65 calls with the efficient dictionary code/" I'm teaching myself c++ and learning recursion (and a little bit of python as well) with this lecture. The version below, without the "efficient dictionary code" does it with 35 calls: def fib(n, temp=1, first=1, next=2): if n == 0: return temp return fib(n-1, first, next, first+next) print(fib(34))
Really really explanation of recursive. This is the best explanation I ever see. The math induction makes it even clearer and more interesting. And I enjoyed all the jokes.
Thanks to Mr. Chinese guy pre labeling 0:00:00 0:02:31 0:04:00 What is Recursion 0:05:58 Iterative algorithm so far 0:05:58 Multiplication iterative solution 0:07:56 0:09:49 Factorial 0:12:03 Recursive function scope example 0:13:46 Some observation 0:16:07 0:18:03 Example of induction 0:19:44 0:23:12 Hanoi tower 0:24:56 Recursion with multiple base cases 0:26:14 Fibonacci 0:28:06 0:30:23 Solving recursively 0:33:52 How to store student info 0:35:45 0:36:00 0:38:00 0:40:25 Dict v.s. List 0:41:52 Creating a dictionary 0:43:02 0:44:16 0:45:16 0:46:25
About the game around 21:00 ; while moving around, there should be no greater disc *above* any disc, otherwise it is utterly simple: start to move from the smallest to spare, move the largest to the target destination and move the rest in the same fashion you did.
Just as a head's up, the recursive algorithm here is known as a head recursion algorithm, which requires a larger space complexity than a tail recursion algorithm. Searching for tail recursion will teach you how to write/rewrite the same algorithm and will remove the necessity to use O(N) stack space. You can see something similar being done using a dictionary to cache return values. And to answer "who cares", embedded and real-time systems programmers care. Game development cares about performance constantly. What he really should have said is "how badly do you need it to be optimized". And he's right, in most cases you won't ever have to care, but you also need to know what happens when you do.
I loved that the recursion Fibonacci code(inefficient one) has some flaws for its optimization but I couldn't understand how the modified dictionary becomes the argument for the fibo_efficient(n, d) I mean we modified 'd' but was already given to the fibo_efficient(n, d) as it's an argument? 46:40
On the fib(x) function for rabbits: def fib(x): if x == 0 or x == 1: return 1 else: fib1 = fib(x-1) fib2 = fib(x-2) return fib1 + fib2 print(fib(0)) // expected 0 I'm sure there is a cleaner way.
I'm a little confused on one point. I understand recursion, but from what I am reading online, most of the time it is more efficient in terms of processing times to write code using an iteration than a recursion. I get that some people might find one more readable than the other and that for many programs, most users wouldn't notice a difference, but wouldn't it be a best practice to normally iterate to make code as efficient as possible?
Ran into a issue when a supplied argument is zero in both of the first two examples since they only evaluate 1 as the base case. I modified the code and the following seems to work properly. def multiply(a, b): '''Returns a multiplied by b''' if b > 0: return a + multiply(a, b - 1) else: return 0
def factorial(n): '''Returns the factorial of n''' if n > 0: return n * factorial(n - 1) else: return 1
infinite loop error basically, you can add 0:0 to the dictionary as the base case instead of the 2:2 or make them 3 if you have enough bytes on your storage
At MIT they teach new concepts introducing formal definitions followed by mathematical examples. At Stanford the introduce concepts first with easy to understand definitions or analogies and later reinforce the concepts with tons of practical examples.
Would inclusion in the lecture of the 'call stack' or Python's symbol table concept help explain recursion? As you recursively call the function object's return value, the frames get 'popped' off the stack (symbol table on Python I think?) Sorry, self-taught. Still learning every day.
when I created my own program before this lecture I actually used that " -2" then I run into errors to realize few things which I will summarize it for you as below 1- when you usually want to last element or the last index we use array[-1] 2-when we use the " [:] " this is calling slicing methods (mentioned in previous lectures of the same course) now if you know about it array =array[start point : end point] ( there is something called advance slicing if you want to check it ) 3- when we want the same array using slicing method we do it as follows array=array[ : ] notice that doing so we leave black it means to start from the same point so if we want to start an element ahead we do array = array[1:] 4- in a similar way if we want the element before the last we do array = [ : -1] 5- combining them array = array [ 1 : -1 ] 6- try not to confuse indexing of array we slicing of an array good luck
During the mathematical induction step he explained, he said he wants to show that "this is equal to that". I believe the "that" it the k+1 * k+2 ,,," but what is the "this"?
Thanks! This lecture about recursion was great. Its purpose was well defined and elaborated. Did anyone spot the "code error" regarding the base -case at 46:58 by the way?
This guy's explanations don't actually make sense to me. He gets to the exact point where I don't quite get what's happening, and goes "And that's why this works." And I'm like, NO YOU HAVE NOT ACTUALLY EXPLAINED WHY THE RECURSION WORKS IN THIS INSTANCE. He needs to keep going and break it down, but he keeps rushing ahead instead because he has other stuff he apparently wants to talk about. I don't understand his towers of Hanoi code. I don't understand his Fibonacci code. I don't understand the palindrome code. Each time because he just abruptly stops once he reaches the recursion.
Zed I was reading these comments and wondering why the hell everyone was applauding this guy for the same reasons you stated. With Ana I felt like she was talking to anyone. She was very easy to understand. This guy on the otherhand, makes me feel like he’s only talking to MIT students. I had to rewatch this multiple times lol
In his Towers of Hanoi code, I can figure out the process when n==1 and n==2, but I can't figure out steps in the process when n==3 or more. I think he wants us to think of it recursively: if it is true for smaller versions of the problem, then it is true for the bigger version of the problem and the code turns out to be true when n==3
Hold up. Nice lecture but I'm not satisfied with the solution to the Towers of Hanoi exercise: You changed the rules. That would be the obvious solution, but the premise of the challenge was that the priests could only move one disc at a time (like the river crossing problem). Isn't that the whole point?
you can use optional/default values in the parameters for the function e.g. you only need to call the following function with fib(10) - although you have the option of supplying arguments for the optional/default parameters if you want to def fib(n, result=1, first=1, next=2): if n == 0: return result return(n-1, first, next, first+next)
As compared to our country where professors or teachers in high schools give a shit about what a student have learnt and what a student is going through except few student friendly teachers and professors. Foreign professors and teachers takes care about every students whether academically poor or brilliant and guides them in a friendly manner which encourages students to learn in a fascinating and practical approach. In our country they give notes writes bullshit on boards copy them and paste it on your exams except few good indian professors and teachers. Even when a student fails foreign professors helps them pointing out his weakness and helps to strong them in a beautiful way and then there's our country if anyone fails they humiliate the student in front of entire class starting from schools to colleges. Sad reality of Indian education system😔
One can think n==0 as base case. Which was not considered as it is preceded by n==0 base case in the lecture. One can re-write code assuming n==0 as base case.
you actually can not, at least to the given problems in the lecture, I tried so already and tested every method and way to make list better than dictionaries in the lecture's examples but, dict. did beat list in that + you are welcome to try
*My takeaways:*
1. What is recursion in the context of this lecture 3:47
2. An example: multiplication - iterative solution vs recursive solution 5:48
3. Recursion with one base case - factorial 9:25
4. Recursion with multiple base cases - Fibonacci numbers 24:38
4. Recursion on non-numerics 29:12
5. Dictionaries (mutable data structure contains "keys" and corresponding "values", it has no order, only matches "keys" to "values") 33:27
6. Key things about keys and values 39:10
7. List vs dictionaries 40:20
8. An example of using dictionaries 40:45
9. Efficient Fibonacci 46:18
Thank you so much! Ignore the racist!
Emma Go thank you so much!
Prof. Grimson should teach Introduction to Algorithms. He is clear and articulate.
@@charge2snglrty409 kya hagg raha hai , har jagah...?
@@MrFaiqueShakil hahaha
@@charge2snglrty409 Nahi bhai ye sab to nursery ke bachhe padhte hai -_-
he teaches Intro to Computer Science and Programming course on EdX. It covers a few algorithms
pre labeling
0:00:00 0:02:31
0:04:00 What is Recursion
0:05:58 Iterative algorithm so far
0:05:58 Multiplication iterative solution 0:07:56
0:09:49 Factorial
0:12:03 Recursive function scope example
0:13:46 Some observation 0:16:07
0:18:03 Example of induction 0:19:44
0:23:12 Hanoi tower
0:24:56 Recursion with multiple base cases
0:26:14 Fibonacci 0:28:06
0:30:23 Solving recursively
0:33:52 How to store student info 0:35:45 0:36:00 0:38:00
0:40:25 Dict v.s. List
0:41:52
Creating a dictionary 0:43:02 0:44:16 0:45:16
0:46:25
What about ana jokes?
People like this should open their own school. Truly amazing professor, no wonder CS grads from MIT are so talented.
More than what he taught, I loved how articulate and sure he was. Every word seemed measured. Lucky to get to experience this. Thank you MIT.
The part linking mathematical induction to recursion is genius. Thank you so much!
Prof. Grimson is one of my very best teachers! I've taken his Intro to Computer Science and Programming course on EdX and it was great! All his lectures here on UA-cam are great, too! Thank you Professor and MIT!
The way he teachs is awesome. Fun + Good Content!
After this Lecture, I understand 2 things, Recursion
and Why MIT is rated 1st in the world in Electrical engineering and computer science
And the third thing is all cs jokes are bad.
@@charge2snglrty409 I did, because back in my first year, i skipped a lot of csc class in mit (even though I took Chemistry). My laptop was (and still) a gaming laptop, It's not convenient to bring it everywhere.
34:13 is why MIT is on top. B is a failing grade, sorry, Ana.
I went to WVU. I learned the same subjects. It's not the material it's the student.
Nope, I'm from Berkeley EECS, I disagree with your second thing.
So even professors at MIT would first just run the exact same program again without changing anything when they meet a bug lol
This one is a bit not sure if it works or not ... I guess he losted already.
that's what I also thought😀
If you are having trouble with recursion, don't worry most people have trouble with it--look up explanations from several sources besides this one, and one particular metaphor or walkthrough will eventually give you that a-ha moment where you now intuitively understand it. I didn't think he explained recursion well here, from point of view of someone without a science/math background; it wasn't until I researched it myself and watched videos showing how it worked graphically/metaphorically that I then understood it. TLDR: search of many recursion explained videos on YT, there's tons, and one of them will eventually click!
He is narendra modi, what could you expect
I agree, i already knew recursion and i didnt think this was explained well at all.
@@ChandravijayAgrawal
This teacher was my first intro to python on Edx. He's awesome.
which course is it ?
@@hdsmsmart the same course but on mit platforme
I have seen many tower of hanoi and recursion videos, this one is just jewel! MIT has awesome teachers for any field! Prof Gilbert strang, John Tsitsiklis etc..
I'm from Vietnam and live in hanoi but I've never heard about that story. It's really interesting.Thank for your dedicating lecture.
Great teacher but missed a great opportunity to use my favourite computer science joke: In order to understand recursion, one must first understand recursion.
because its not a funny "joke"
@@RocknRollDina You are a funny joke
@@stephenc9398 No I'm not, actually. Try again. You're bad at insults also.
Don't listen to them... I found this joke amusing.
Because there is no base case
I finally found my base case for understanding recursion after searching recursively :)
i see what u did there
The lecture states: "With n = 34: 11+ million calls with original fibonacci code, and 65 calls with the efficient dictionary code/"
I'm teaching myself c++ and learning recursion (and a little bit of python as well) with this lecture.
The version below, without the "efficient dictionary code" does it with 35 calls:
def fib(n, temp=1, first=1, next=2):
if n == 0:
return temp
return fib(n-1, first, next, first+next)
print(fib(34))
NICE
How is it going kevin ?
The last two codes went over my head.
Really really explanation of recursive. This is the best explanation I ever see. The math induction makes it even clearer and more interesting.
And I enjoyed all the jokes.
Great material and a very good intro to recursion. Beware of typo in palindrome at 31:08
Thanks to Mr. Chinese guy
pre labeling
0:00:00 0:02:31
0:04:00 What is Recursion
0:05:58 Iterative algorithm so far
0:05:58 Multiplication iterative solution 0:07:56
0:09:49 Factorial
0:12:03 Recursive function scope example
0:13:46 Some observation 0:16:07
0:18:03 Example of induction 0:19:44
0:23:12 Hanoi tower
0:24:56 Recursion with multiple base cases
0:26:14 Fibonacci 0:28:06
0:30:23 Solving recursively
0:33:52 How to store student info 0:35:45 0:36:00 0:38:00
0:40:25 Dict v.s. List
0:41:52
Creating a dictionary 0:43:02 0:44:16 0:45:16
0:46:25
About the game around 21:00 ; while moving around, there should be no greater disc *above* any disc, otherwise it is utterly simple: start to move from the smallest to spare, move the largest to the target destination and move the rest in the same fashion you did.
The clarity with which recursion was taught in this lecture, was blinding.
For all my life, I have never found a lecturer this good.
check out CS50 from Havard.
then you haven't met Grant Sanderson (3blue1brown on youtube)
@@kenmeyer100 i have, Grant is good at visualizing things, but not so much on explaining it like this prof
Thank you Professor! Thank you MIT, I saw many youtube vids to understand recursion but this was the best explaination.
Just as a head's up, the recursive algorithm here is known as a head recursion algorithm, which requires a larger space complexity than a tail recursion algorithm. Searching for tail recursion will teach you how to write/rewrite the same algorithm and will remove the necessity to use O(N) stack space. You can see something similar being done using a dictionary to cache return values.
And to answer "who cares", embedded and real-time systems programmers care. Game development cares about performance constantly. What he really should have said is "how badly do you need it to be optimized". And he's right, in most cases you won't ever have to care, but you also need to know what happens when you do.
He is utterly crystal clear in what he says. Wow!
Thank you teacher! I am grateful for all the efforts you took to prepare all the material for this class.
Can't help applaud for the professor as he finished explaining the Hanna Tower problem.Brilliant!
Hanoi Tower not Hanna :)
You're right.Thanks for the correction.
I loved that the recursion Fibonacci code(inefficient one) has some flaws for its optimization but I couldn't understand how the modified dictionary becomes the argument for the fibo_efficient(n, d) I mean we modified 'd' but was already given to the fibo_efficient(n, d) as it's an argument?
46:40
On the fib(x) function for rabbits:
def fib(x):
if x == 0 or x == 1:
return 1
else:
fib1 = fib(x-1)
fib2 = fib(x-2)
return fib1 + fib2
print(fib(0)) // expected 0
I'm sure there is a cleaner way.
I've always struggled with recursion besides the simple ones. Hopefully this makes it easier in the future
I'm a little confused on one point. I understand recursion, but from what I am reading online, most of the time it is more efficient in terms of processing times to write code using an iteration than a recursion. I get that some people might find one more readable than the other and that for many programs, most users wouldn't notice a difference, but wouldn't it be a best practice to normally iterate to make code as efficient as possible?
Best explanation of recursion I have watched to date. Thank you sir!
Ran into a issue when a supplied argument is zero in both of the first two examples since they only evaluate 1 as the base case. I modified the code and the following seems to work properly.
def multiply(a, b):
'''Returns a multiplied by b'''
if b > 0:
return a + multiply(a, b - 1)
else:
return 0
def factorial(n):
'''Returns the factorial of n'''
if n > 0:
return n * factorial(n - 1)
else:
return 1
46:58 so what if you want fib_efficient(0, d)?
infinite loop error
basically, you can add 0:0 to the dictionary as the base case instead of the 2:2
or make them 3 if you have enough bytes on your storage
At MIT they teach new concepts introducing formal definitions followed by mathematical examples. At Stanford the introduce concepts first with easy to understand definitions or analogies and later reinforce the concepts with tons of practical examples.
Would inclusion in the lecture of the 'call stack' or Python's symbol table concept help explain recursion? As you recursively call the function object's return value, the frames get 'popped' off the stack (symbol table on Python I think?) Sorry, self-taught. Still learning every day.
This guy is so hilariously good. Understandable, given MIT.
thank you MIT, god will bless you.
Please keep your superstition for yourself.
@@philippbecker3117 do u feel depressed ? i can tell why..
at 32:30 at the one before the last line shouldn't there be "and isPal(s[1:-2])" , -2 instead of -1 ?
when I created my own program before this lecture I actually used that " -2" then I run into errors to realize few things which I will summarize it for you as below
1- when you usually want to last element or the last index we use array[-1]
2-when we use the " [:] " this is calling slicing methods (mentioned in previous lectures of the same course)
now if you know about it array =array[start point : end point] ( there is something called advance slicing if you want to check it )
3- when we want the same array using slicing method we do it as follows array=array[ : ]
notice that doing so we leave black it means to start from the same point so if we want to start an element ahead we do array = array[1:]
4- in a similar way if we want the element before the last we do array = [ : -1]
5- combining them array = array [ 1 : -1 ]
6- try not to confuse indexing of array we slicing of an array
good luck
@@ali51717 thanks, I got that after a while :)
During the mathematical induction step he explained, he said he wants to show that "this is equal to that". I believe the "that" it the k+1 * k+2 ,,," but what is the "this"?
This professor's sense of humor is top shelf lol
this professor is insanely good at what he does
Thanks! This lecture about recursion was great. Its purpose was well defined and elaborated. Did anyone spot the "code error" regarding the base -case at 46:58 by the way?
d = {1:1, 2:1} I noticed the same. Anyway, great lecture
Yes, on line 165, had a another fib defined with only a base case n =1. That's why fib(0) bombed as it would just keep going down the rabbit hole.
Does anyone else have the same trouble understanding the Hanoi code at 23:13?
Me too bro, i couldn't get it
I want this man's presentation skills/confidence
This guy's explanations don't actually make sense to me. He gets to the exact point where I don't quite get what's happening, and goes "And that's why this works." And I'm like, NO YOU HAVE NOT ACTUALLY EXPLAINED WHY THE RECURSION WORKS IN THIS INSTANCE. He needs to keep going and break it down, but he keeps rushing ahead instead because he has other stuff he apparently wants to talk about. I don't understand his towers of Hanoi code. I don't understand his Fibonacci code. I don't understand the palindrome code. Each time because he just abruptly stops once he reaches the recursion.
Zed I was reading these comments and wondering why the hell everyone was applauding this guy for the same reasons you stated. With Ana I felt like she was talking to anyone. She was very easy to understand. This guy on the otherhand, makes me feel like he’s only talking to MIT students. I had to rewatch this multiple times lol
In his Towers of Hanoi code, I can figure out the process when n==1 and n==2, but I can't figure out steps in the process when n==3 or more. I think he wants us to think of it recursively: if it is true for smaller versions of the problem, then it is true for the bigger version of the problem and the code turns out to be true when n==3
@Ken MacDonald Yeah I know but as n goes up, there will be hundreds of steps. So do they recurse on the other because the same rules still applied?
I love the professor way of teaching!
"after several months, you get to Australia" LOL. Fun and great Professor. Thank you sir!
Why did Prof. Grimson add k+1 to k(k+1)/2 at 19:07 ?
I'm new to this stuff but palindrome looks weird. What if we only check if the string is equal to the string reversed? i.e. if s == s[::-1]
You could do that too, but the point of this lecture is to show that is also possible to break that problem down recursively.
@@phillipgonzalez9776 that makes sense now :)
i was not able to understand the code at 45:16 can any one help
I am so confused about the tower thing
just learned another polish contribution to cs “how many twists does it take to screw in a light bulb”, apart from polish notation
how can i see the whole playist of this video belong?
ua-cam.com/play/PLUl4u3cNGP63WbdFxL8giv4yhgdMGaZNA.html
Best wishes on your studies!
Small typo in slide 38 at 31:00 ; "leba" instead of "elba" was written in the condensed string.
Excellent lecture and lecturer. Thanks for posting this.
What an episode! 🔥
Hold up. Nice lecture but I'm not satisfied with the solution to the Towers of Hanoi exercise: You changed the rules. That would be the obvious solution, but the premise of the challenge was that the priests could only move one disc at a time (like the river crossing problem). Isn't that the whole point?
0!=1 but the function given here runs in an infinite recursion when the input is 0
ty, i was doubting myself for solid 12 minutes.
How do we initialise variables in recursion in Python so that it continues values in every local scope without it's initial value in global scope?
you can use optional/default values in the parameters for the function e.g.
you only need to call the following function with fib(10) - although you have the option of supplying arguments for the optional/default parameters if you want to
def fib(n, result=1, first=1, next=2):
if n == 0:
return result
return(n-1, first, next, first+next)
Thanks ...content is superb...Recursion is explained in a brilliant way.
Complex yet really well explained, thanks!
Acronyms like PHP are also recursive!
Nah man this guy Is undefeated. Too good.
This is the clearest explanation I came across! Thanks so much!
Great professor
any other classes with him?
this lecture was pretty fun
he really understands what a student is going through.
As compared to our country where professors or teachers in high schools give a shit about what a student have learnt and what a student is going through except few student friendly teachers and professors. Foreign professors and teachers takes care about every students whether academically poor or brilliant and guides them in a friendly manner which encourages students to learn in a fascinating and practical approach. In our country they give notes writes bullshit on boards copy them and paste it on your exams except few good indian professors and teachers. Even when a student fails foreign professors helps them pointing out his weakness and helps to strong them in a beautiful way and then there's our country if anyone fails they humiliate the student in front of entire class starting from schools to colleges. Sad reality of Indian education system😔
Shouldn't there be 2 cases for the factorial function?
if n==1 or n==0:
return 1
Only n==0 should suffice, as 1!=1*0!=1
yeah. these two cases are for fibonacci series
Yes there can be. But, they don't make the code any efficient so they would have not mentioned that.
One can think n==0 as base case. Which was not considered as it is preceded by n==0 base case in the lecture. One can re-write code assuming n==0 as base case.
def factorial(n):
'''Returns the factorial of n'''
if n > 0:
return n * factorial(n - 1)
else:
return 1
Very entertaining and clear at the same time )
I always knew Narendra Modi was a coder in dark.
LMAO!
Lol
Lmao
best comment here
😂😂😂
thank you MIT
Where was Ana Bell?
nice teacher ur teaching process is favorite everybody!
You can use a list instead of a dictionary and get similar computation times
you actually can not,
at least to the given problems in the lecture,
I tried so already and tested every method and way to make list better than dictionaries in the lecture's examples but, dict. did beat list in that
+ you are welcome to try
Where to find recursion exercises? Does anyone know???
Assignments and other course materials are available on MIT OpenCourseWare at: ocw.mit.edu/6-0001F16. Best wishes on your studies!
But I am tenured, you could not do a damn thing about it. LOL, that punchline is fire! Love this professor.
32:43
frik I gotta study for that quiz on Thursday
Thanks a lot Prof. Eric !
Ah!...he finally found the right glasses.
(refer to 6.001 fall 2008)
Fibonacci -> 24:45
Great version of tower of hanoi... 😀
How u doin?
Wow, this course got hard so fast.
everything is hard until it is broken down.
Hard ass concepts fr
I wish he gave all the lectures for this course, thank you for sharing these!
thank you. that was very helpful.
I wish i had such professors....
Excellent explanation !!!
Very easy to understand! Thanks
Thank you so much. This is amazing.
Nice prof! Thanks
Mise en abîme ! ❤
Awesome lesson!
great explanation! Thanks!
I love this dude.
thank you ,mit