I'm always astonished how a genius like Erik is so likeable and is able to explain clearly topics so basic for him while no-ones from unknown universities can be such jerks and terrible at teaching...
You know how genuine a teacher is if he has implemented what he's teaching, unlike 90% of them who just read up the textbooks and don't actually have worked on the practical aspects of it.
Somewhere in India, I mention to my mom, do you know who this guy is? He's a prodigy, now he teaches at MIT and I can't wait to watch each of his lectures, here on my laptop. Thank you MIT, Eric, the Internet and Computer Science in general for existing and making all of this possible.
i wanted to go to mit oriit but was unfortunately born in an abusive househole i love my mo bu that emy dad and this channel rlly helped me redeem myself in my own eyes
the year is 2020 and I'm watching now the whole series of vídeos, I'm addicted, and I will repeat it again soon, I did never imagined that some so condensed trues are spoken by that clever guy.
I teach as a profession, The best way to determine if a teacher knows the subject properly is to let him/her give the lecture without any pre-made presentations that will just "forbid" abstraction from students, besides using chalk boards is absolutely great
08:23 RAM but not Random Access Memory 11:45 a computer word (is w bits) 13:15 pointer machine 20:30 list in python is linked list but it has constant time, while linked list has linear time 20:50 poiner machine use oop (and your object has only constant amount of elements) 22:20 l.append(x) how much it costs 25:51 how long time does operation take: x in L 26:22 how long time does operation take. Len(L) 27:00 sort list (what time do computer need) 28:10 how long does this take D[key]
I wish my university (BUTE, Hungary, Budapest) had as good classes as MIT! These videos made me realize that completing a degree at my university is harder than MIT and my degree won't worth as much by far. And it's not because of more quality or more information. It's because a lot of our professors would only chalk up integrals and the whole Greek abc on the board, without us even knowing what are we talking about. Almost all the explanation we have to figure out ourselves at home...
That's relatable. I have teachers like that since high school. All they did was chalk up the formulas on the board with poor explanation. A good teacher is invaluable.
Wasn't til I discerned what was on his shirt that I realized I saw him in "Between the Folds", that beautiful documentary on origami practitioners. He was the kid genius at the end.
I had to pause the video and share my appreciation for the sophisticated explanation of the root of algorithms and their applications. Sorry, Professor, please continue.
I just understood everything, I wish I had the time to watch all of the MIT equivalents of our classes! What really funny is that thematically our university's course is the same as MIT's, but it's all in the explanation, willingness to make students understand.
Timestamps (Powered by Merlin AI) 00:00 - Introduction to algorithms and their foundational concepts. 02:11 - Algorithms define computational procedures for problem-solving mathematically. 07:29 - Introduction to Random Access Machine (RAM) models in computation. 10:01 - Computational models utilize constant time for memory operations and computations. 15:15 - Understanding pointers and linked lists in computational models. 17:17 - Pointer machine model offers constant time operations. 21:28 - Understanding constant time operations in data structures. 23:18 - Table doubling optimizes list operations in constant time. 27:06 - Understanding sorting and dictionary operations in Python. 29:13 - Randomized algorithms can achieve constant time complexity with high probability. 33:51 - Document distance aids in identifying similarities between texts. 35:43 - Document similarity defined by shared words and their frequency. 40:21 - Document distance is measured using vector angles for similarity. 42:09 - Overview of document processing steps for computing dot product. 46:35 - Efficient document processing involves word counting and splitting techniques. 48:31 - Exploring non-linear algorithms for document distance measurement.
Al-Khwarizmi wrote "Kitab al hisab al Hindi" ( "book of Hindu numericals"). This was translated into Latin by the name "Algorithmi de Numero Indorum" ("Al-Khwarizmi's Indian numericals"). This book's name was abbreviated as "Algorithm". That is how the world knows it today Credit - @TIinExile
Al-Khwarizmi writings include the text kitāb al-ḥisāb al-hindī ('Book of Indian computation'), and perhaps a more elementary text, kitab al-jam' wa'l-tafriq al-ḥisāb al-hindī ('Addition and subtraction in Indian arithmetic'). These texts described algorithms on decimal numbers (Hindu-Arabic numerals) that could be carried out on a dust board. His work was based on Indian mathemetics mostly and its translations.
amazing videos, cannot be better, and i think it's better than powerpoint presentations. In addition they have all material (codes, lecture notes) in course web page.
This video is really good! Does any one know how is the difficulty level of this course compared with Google or Facebook technique interviews (algorithm part)?
I know this was posted a while ago but for anyone who might find it useful. It’s takes constant time because accessing a field takes constant time and list have a field with their size stored in it. Simple operations on ‘words’ such as an integer take constant time so adding two integers together takes constant time.
I go to a college that costs 80k per year... it's stupid that I'm basically paying for a piece of paper when I can get high quality content like this for free!
15:30 Modern languages don't call them pointers cause Pointers are scary hahahaha. A friend of mine told me once, do you know why Java is great??? Because there is no Pointers!! :))) Even infact everything in Java is a pointer but this is straight to the point...
Around 39:47 when he asks for an alternative method of comparing two document vectors, I was wondering if you could use the magnitude of the difference of the two document vectors instead of the cosine of the angle between them. Any thoughts?
+IamFilter94 Think about an arrow pointing upwards and another pointing forward. In terms of vectors they are "the most different you can get", as they are in orthogonal vector spaces, and totally independent of one another. On the other hand, think about an arrow pointing upward but slightly tipped to the right. It is still very similar to the one that is pointing straight upward (small angle) and very different of the pointing forward. It is not that uncommon to compare vector in terms of the angle (or normalized dot product) between them
Because you want the word to be able to point to a memory location without any confusion. So, let's say you have a very small memory of 8 words. 3 bits will be enough, because you can make 000 points to space 1, 001 points to space 2, 010 points to space 3, etc... If you had more bits, it will be acceptable for other applications of the words, but unnecessary for pointing to memory spaces. If you had less bits than this minimum, you would "run out of values" before being able to point to all memory spaces. Consider the 8 spaces memory with 2 bits words. You would be able to write 00,01,10,11, so 4 memory spaces would go without a correspondent pointer.
The word algorithm comes from the name of the 9th century Persian and Muslim mathematician Abu Abdullah Muhammad ibn Musa Al-Khwarizmi, he was mathematician, astronomer and geographer during the Abbasid Caliphate, a scholar in the House of Wisdom in Baghdad.also He is often considered one of the fathers of algebra. also he is the creator of the numbers which we use today.
Not exactly..the numeric system evolved in India in around 1 - 4 century AD. It was adopted in Arabic by the 9th century as Indians and Arabs use to trade a lot. en.wikipedia.org/wiki/Hindu%E2%80%93Arabic_numeral_system
Thank You Sir, from India. Q1. Why does python take more time to solve any problem with respect to C ?, since in python all the used inbuilt functions are standard ( standard in sense, that they are most effective ) and in C we write the same functions/algorithms manually. Does it only because of, time required in fetching that module from memory , breaking that module in its sub-parts .....or because python is interpreted where as c is compiled. Are these time constant ( i.e not varry with number of inputs ) ? Thanks Again.
What I love is that they write on the blackboard. Really. So much more engaging and easy to follow than powerpoints.
MIT way.
i disagree.
@@tayyabhameed9559 yeah bout your existence
37:27
I agree!
I'm always astonished how a genius like Erik is so likeable and is able to explain clearly topics so basic for him while no-ones from unknown universities can be such jerks and terrible at teaching...
true
No doubt
The fact that they're "no-ones" and their attitude I believe are correlated. Real intelligence is careful and humble.
Dunning Kruger effect?
I can hear him saying "correct, my dude"
The lecture starts at 0:29.
"What's an algorithm" : 2:16
Python computational model : 18:09
Document distance problem : 33:12
Algorithm : 42:35
Guy late to class 16:40
MIT needs to pay you
let me rephrase myself, "You need to be compensated by MIT for your amazing contributions to the comments section"
Amazing I see your comments through out the lecture series . Thank u 😊
I regret the fact that i didnt knew about these lectures before. They are much better than what my professors teach me.
You know how genuine a teacher is if he has implemented what he's teaching, unlike 90% of them who just read up the textbooks and don't actually have worked on the practical aspects of it.
Somewhere in India, I mention to my mom, do you know who this guy is? He's a prodigy, now he teaches at MIT and I can't wait to watch each of his lectures, here on my laptop.
Thank you MIT, Eric, the Internet and Computer Science in general for existing and making all of this possible.
Absolutely right brother
i wanted to go to mit oriit but was unfortunately born in an abusive househole i love my mo bu that emy dad and this channel rlly helped me redeem myself in my own eyes
Not just the teaching!!!.I can't believe how amazing that chalk is...
come mo
the year is 2020 and I'm watching now the whole series of vídeos, I'm addicted, and I will repeat it again soon, I did never imagined that some so condensed trues are spoken by that clever guy.
I teach as a profession, The best way to determine if a teacher knows the subject properly is to let him/her give the lecture without any pre-made presentations that will just "forbid" abstraction from students, besides using chalk boards is absolutely great
08:23 RAM but not Random Access Memory
11:45 a computer word (is w bits)
13:15 pointer machine
20:30 list in python is linked list but it has constant time, while linked list has linear time
20:50 poiner machine use oop (and your object has only constant amount of elements)
22:20 l.append(x) how much it costs
25:51 how long time does operation take: x in L
26:22 how long time does operation take. Len(L)
27:00 sort list (what time do computer need)
28:10 how long does this take D[key]
Thank you MIT for making these classes available
I wish my university (BUTE, Hungary, Budapest) had as good classes as MIT! These videos made me realize that completing a degree at my university is harder than MIT and my degree won't worth as much by far. And it's not because of more quality or more information. It's because a lot of our professors would only chalk up integrals and the whole Greek abc on the board, without us even knowing what are we talking about. Almost all the explanation we have to figure out ourselves at home...
That's relatable. I have teachers like that since high school. All they did was chalk up the formulas on the board with poor explanation. A good teacher is invaluable.
MatrixfanMacUser come to IIT its easy for outsider to get in than natives.
Bro for which degree is this course? and what would possibly be the average age of the students?
Just curious!
@@sujaysingh686 its for computer engineering or computer science. average age is about 19
Wasn't til I discerned what was on his shirt that I realized I saw him in "Between the Folds", that beautiful documentary on origami practitioners. He was the kid genius at the end.
it is 2022 and this is still useful thank you MIT and thanks for all the excellent professors for this.
I had to pause the video and share my appreciation for the sophisticated explanation of the root of algorithms and their applications.
Sorry, Professor, please continue.
I just understood everything, I wish I had the time to watch all of the MIT equivalents of our classes! What really funny is that thematically our university's course is the same as MIT's, but it's all in the explanation, willingness to make students understand.
he is AMAZING!. Thank you MIT for giving us the opportunity to watch these lectures
This guy got a bachelor's degree by age 14 and a Phd by age 20;
mind == blown;
But it was in canada so yeah
@@generalqwer it was in canada so , what do you mean bro
@@arsenron In what way?
@@awise25 in pussy highway
Fantastic humor sneaks in at the most amusing times. Great presentation.
Thank you MIT for making these classes available on TH-cam!
I'm actually so genuinely happy watching these lectures :D
I don’t understand a word of these videos but I just continue watching them for some reason.
Today I learned why neural nets use tensor dot products. Capture the amount of similarity by calculating a dot product(WX+b). Thanks MIT
Timestamps (Powered by Merlin AI)
00:00 - Introduction to algorithms and their foundational concepts.
02:11 - Algorithms define computational procedures for problem-solving mathematically.
07:29 - Introduction to Random Access Machine (RAM) models in computation.
10:01 - Computational models utilize constant time for memory operations and computations.
15:15 - Understanding pointers and linked lists in computational models.
17:17 - Pointer machine model offers constant time operations.
21:28 - Understanding constant time operations in data structures.
23:18 - Table doubling optimizes list operations in constant time.
27:06 - Understanding sorting and dictionary operations in Python.
29:13 - Randomized algorithms can achieve constant time complexity with high probability.
33:51 - Document distance aids in identifying similarities between texts.
35:43 - Document similarity defined by shared words and their frequency.
40:21 - Document distance is measured using vector angles for similarity.
42:09 - Overview of document processing steps for computing dot product.
46:35 - Efficient document processing involves word counting and splitting techniques.
48:31 - Exploring non-linear algorithms for document distance measurement.
This guy is the most programmer programmer person I've seen so far
I am just loving these classes. Hoping for masters.
Beautiful handwriting ... He writes so fast and so well.
It's so cool that these top schools release courses like this one online free of charge. I may not get a chance to go to MIT
he looks like a Hollywood propotype of a smart hacker, but even better because he explains everything so well. Again reality surpasses fiction
all professor should be like erik. He makes the class interesting.
I love his teaching! I am watching at 1.5x speed though.
+Abhinav Maurya that works fine
holy, great idea!
1.25's enough for me.
@@hektor6766 The beauty of the internet. Everyone learns at their own pace
I like how he wrote an example quickly to support the theory then just have a finish line with "whatever". I like these kind of "whatever"
Al-Khwarizmi wrote "Kitab al hisab al Hindi" ( "book of Hindu numericals").
This was translated into Latin by the name "Algorithmi de Numero Indorum" ("Al-Khwarizmi's Indian numericals").
This book's name was abbreviated as "Algorithm".
That is how the world knows it today
Credit - @TIinExile
This is absolute gold
Lg = Log with a base of 2 cause Lg is only 2 letters long, mindblowing.
Prof.Erik was one of the youngest professors I have ever known, PhD at the age of 21 I think.
Al-Khwarizmi writings include the text kitāb al-ḥisāb al-hindī ('Book of Indian computation'), and perhaps a more elementary text, kitab al-jam' wa'l-tafriq al-ḥisāb al-hindī ('Addition and subtraction in Indian arithmetic'). These texts described algorithms on decimal numbers (Hindu-Arabic numerals) that could be carried out on a dust board. His work was based on Indian mathemetics mostly and its translations.
If you really want to understand this series, start from the beginning!
awesome lectures, you guys over at MIT are great
0:48 document distance for learning algorithm
I think Erik is better than the other one
As someone who lectures this class is well-lectured.
amazing videos, cannot be better, and i think it's better than powerpoint presentations. In addition they have all material (codes, lecture notes) in course web page.
Arrays generally contain elements of the same datatype. But, lists, on the other hand, can contain elements of all datatypes.
There's a lot of features in python that use algorithms, and that's kind of why I'm telling you. Love his subtle jokes :)
Whether it's only for python programming language or it can be apply for java program?
document distance program at 33:20
48:45 Hope he will explain what tricks implemented to get to 0.2 second later in the lectures.
great course,
MIT is the best !
I'd love to find a video where they apply these concepts to real programming language problems
That teacher is freaking good.
Better than my university teachers
This video is really good! Does any one know how is the difficulty level of this course compared with Google or Facebook technique interviews (algorithm part)?
Thank you, Pf, wish best for you
This guy has charisma:)
20:40 "I know the [Python list] terminology is super confusing, but... blame the 'benevolent dictator for life'" - Erik Demaine 🤣🤣🤣
how L = L1 + L2 takes const time if this time depends on sum of arrays size? 24:40
I know this was posted a while ago but for anyone who might find it useful. It’s takes constant time because accessing a field takes constant time and list have a field with their size stored in it. Simple operations on ‘words’ such as an integer take constant time so adding two integers together takes constant time.
This guy is an awesome teacher :D
Very interesting lecture. I like it
I’m learning so much
this guy is awesome, that's all
Great information - accessible to all. Suuuuuuuperb. Thnx
He is an awesome teacher
agree with him, list in python is confusing with array.
See you guys at the 47th video. :)
I go to a college that costs 80k per year... it's stupid that I'm basically paying for a piece of paper when I can get high quality content like this for free!
is an algorythme the same as an arythmetic ? or is the other one non repetative. ?
I have to say the advertisement was effective
this prof is awesome.
Nothing better than rolling up a wood and studying the mind of computers on a Sunday morning
it's not about the quality of the work, because of course, it's MIT.
It's about the "oh come on" factor.
At 45:08 why does he say 'this will never finish'? Given enough time, wouldn't it always finish despite the size?
There is a lot of abstraction. Which is a way of teaching. This can be bridged,
even though he was a bit nervous he still did a great job teaching
Yes, he was palpably nervous.
Al-Kharazmiy(Al-Xorazmiy) he was from my city. Kharezem, Uzbekistan. Super proud
15:30 Modern languages don't call them pointers cause Pointers are scary hahahaha.
A friend of mine told me once, do you know why Java is great???
Because there is no Pointers!! :)))
Even infact everything in Java is a pointer but this is straight to the point...
2019, python still doesn't have the linked list
I created one using OOP and it was a pain in the head.
that's why avoid doing ds algo in python
@@RianRizvi please provide a link for more info this is interesting
please give me an explanation about the 11 minute in video to the minute 14 . i cannot understand it
At 41:24 why is it arccos? it should be cos right? arccos gives the angle right?
Yes! And, we are looking for the angle not the cos of the angle. Hence , we should use arccos
very useful
Around 39:47 when he asks for an alternative method of comparing two document vectors, I was wondering if you could use the magnitude of the difference of the two document vectors instead of the cosine of the angle between them. Any thoughts?
I find finding a cos much unnatural and complex way of doing it myself. Can't understand why do they use that way.
+IamFilter94 Think about an arrow pointing upwards and another pointing forward. In terms of vectors they are "the most different you can get", as they are in orthogonal vector spaces, and totally independent of one another. On the other hand, think about an arrow pointing upward but slightly tipped to the right. It is still very similar to the one that is pointing straight upward (small angle) and very different of the pointing forward. It is not that uncommon to compare vector in terms of the angle (or normalized dot product) between them
12:54 "And you don't have to worry about it". Where have I heard that before?
I wish I ll have a chance to study there beauty of the study and beauty of the living.......
A language can be taught, but not a culture
1:26 *looking at my nickname*
Waaaaait. So my nickname is all wrong... That's so sad, can we hit O(ln(n))?
Why should words be at least log the size of memory.
Because you want the word to be able to point to a memory location without any confusion.
So, let's say you have a very small memory of 8 words. 3 bits will be enough, because you can make 000 points to space 1, 001 points to space 2, 010 points to space 3, etc...
If you had more bits, it will be acceptable for other applications of the words, but unnecessary for pointing to memory spaces.
If you had less bits than this minimum, you would "run out of values" before being able to point to all memory spaces. Consider the 8 spaces memory with 2 bits words. You would be able to write 00,01,10,11, so 4 memory spaces would go without a correspondent pointer.
@@SKyrim190 Great!
Wait so is this the RAM or Word RAM model? and if its the latter is there basically a bunch of hidden log factors when we talk about memory?
isn't there a formula for finding the distance between two vectors ? or did he intentionally wanted the angle between two vectors
I would say that the Euclidean Distance was the right answer
Thanks chief you spin a mighty yarn on them computation machines i tell u wut
So do students take notes on paper or actively use their computers to code what is being lectured on the board?
Standard terminology for natural log is ln not lg.
Can anybody tell where can i find data.zip for document distance problem. it is not not available with code.zip file on website
The word algorithm comes from the name of the 9th century Persian and Muslim mathematician Abu Abdullah Muhammad ibn Musa Al-Khwarizmi, he was mathematician, astronomer and geographer during the Abbasid Caliphate, a scholar in the House of Wisdom in Baghdad.also He is often considered one of the fathers of algebra. also he is the creator of the numbers which we use today.
Not exactly..the numeric system evolved in India in around 1 - 4 century AD. It was adopted in Arabic by the 9th century as Indians and Arabs use to trade a lot.
en.wikipedia.org/wiki/Hindu%E2%80%93Arabic_numeral_system
Thank You Sir, from India. Q1. Why does python take more time to solve any problem with respect to C ?, since in python all the used inbuilt functions are standard ( standard in sense, that they are most effective ) and in C we write the same functions/algorithms manually. Does it only because of, time required in fetching that module from memory , breaking that module in its sub-parts .....or because python is interpreted where as c is compiled. Are these time constant ( i.e not varry with number of inputs ) ? Thanks Again.
Best way to get you all 35 years in the pen.
Awesome! Thank you!
At 16th min,the lecturer calls 'double linked list, in python called named tuple'. Can you please explain how its a namedtuple ?
No love for his feel like a nut joke? Sheesh, i was chuckling!
So does the document distance problem not take into account the order that the words appear?
Can we use stop words to remove commonly occurring prepositions before calculating document distance?
Thanks!