MIT 6.006 Introduction to Algorithms, Fall 2011 View the complete course: ocw.mit.edu/6-006F11 Instructor: Erik Demaine License: Creative Commons BY-NC-SA More information at ocw.mit.edu/terms More courses at ocw.mit.edu
The instructor, Erik Demaine, is the youngest professor of all time at MIT and a child prodigy. He has published several articles in scientifical journals, and and now has helped several students publish their own articles. He is one of the modern day geniuses of our time. We are extremely lucky to have a free video of his lecturing.
@@lukeTHEDUUKE he was a child prodigy when he was 7, he finished college at 14 and got his phd when he was 20. He has won plenty of awards and is the youngest teacher at mit for a reason. Most people think that if someone speaks a lot and you dont undestand him then he must be smart, but actually intelligent people, like mr. Erik demaine, can take complicated concepts and explain them in a way that a lot of people like ourselves can undestand them
So this guy is like dumb smart? A 🐐 of numbers? I'm a dummy and have no clue what is going on in this video but guys and girls that know this stuff it blows my mind. All I'm wondering is does this really figure things out or is this just made up by some super smart people that make these things up for fun
@@sammyholdem2492pretty sure it's for faster run times i.e., you're in the program and it outputs your results faster. Or in some cases you may never get the result, like the work on the processor to store all the bits gets used up to the point of failure or low mem. Because I think, what's not explained real well right off the bat is that this program is constantly looping to get to the next fib.
@@winrx no a lot of people are actually as intelligent and perhaps even more than him. Thing is not everyone had the spark by their enviroment from a young age to get interested in specialising in a specific area. Also in other countries there is no alternative to finish high school earlier and apply to university. Also SAT is easy i can imagine back then it was way easier. Im not saying he isnt smart. Hes definetely above average for sure.
Agreed! Erik is an amazing teacher, I love watching his lectures. He manages to make very difficult subjects relatively easy to understand and is very thorough and precise when defining things. And as you pointed out, his obvious love of teaching and the subject matter inspires an eagerness to learn.
So apparent why MIT students are industry leaders.... their teachers are amazing. My data structures and algorithms professor was trash at my university, and it is a well respected school.
I'm from Perú and following a Software Engineering, although we sometimes may get an overall view of these kind of topics, we tend to stay in the easy zone and never go any further from that. Having access to these many MIT real lectures just makes me so happy because, even if you don't enjoy the best education, you stil have the opportunity to learn more from reliable sources. And for me, that's what the MIT, give opportunities and hope. Thank you so much!
I love how Erik is so humble and approachable. It's so great that MIT recognized him so early as a faculty member. This is so important for students and progress in education and research. MIT is really showing the way for other universities how the modern education is meant to be. Erik stay cool and keep improving this wonderful series of lectures. All the best!
the best algorithm lecture i have ever seen! I prefer this "old-style" lecture using blackboard and chalks so much without any bullshit slides and whiteboards
I've always thought of Dynamic Programming as this big, scary, complicated concept that would take forever to understand. Erik helped me understand it easily.
I just want to thank you for this video and other related videos from this channel. While working fulltime and schooling at night it is hard sometimes to follow through my classes. However, I managed to earn a MS Computer Science concentration on Network and Security with a big thanks to these videos. Thank you!!
i love love love Erik's teaching style. usually, i feel pretty dumb when i don't get a concept when my professor or other youtube videos explain but Erik makes it very.....accessible, and relatable.
Amazing lecture from Erik Demaine. It's impressive how easy he explains a topic like dynamic programming and how he can have the attention of the students in the hall. Thank you very much to Erik for his lecture and to MIT for sharing this excellent course!!! I can't wait to see the next DP classes!!!
I've been watching many video professor teaching in RU-vid....Professor Erik Demaine definitely the best one that I've ever saw...His teaching style really on top.
# for def fibonacci(n): r = [1, 0] for i in range(1, n+1): a = r[0] b = r[1] c = a + b r[0] = b r[1] = c return r[1] if __name__=="__main__": for n in range(1, 101): print(n, ": ", fibonacci(n))
at 47:06 Eric mentions, we need to make the graph acyclic, we don't need to make the graph acyclic, we can mark the vertex which is being computed (which is in the call stack) as present in an infinite distance and use it's TAB[v]
Mahdi Zouch A large part of what makes them the best institution (in my opinion, at least one of the best though) is the quality of their instructors. And yes, I too would love to attend MIT if/when I make enough money, but at least until then they've got a lot of their courses available :)
Don't know much about Dynamic Programming but do note the professor's unique and rather attractive chalkboard writing! And being a dapper hand myself at it, I salute you Prof!
0:00~31:00 DP 설명. - 벨만 포드 알고리즘 만든 벨만이 다이나믹 프로그래밍이라는 이름을 창시했다. 벨만이 다이나믹 프로그래밍이라고 이름 지은 이유는 별 뜻 없고 '그냥 멋있어 보여서'다. - 하나의 문제를 완전탐색으로 재귀적으로 풀 때 그 문제의 부분문제(Subproblems)의 답을 재활용하는 기법이 메모아이제이션(Memoization)이다. 재귀로 문제를 풀면 exponential 시간이 소요되는데, 한 번 풀었던 문제의 답을 메모로 적어 놓고 다시 필요할 때 반환함으로써 그 문제 풀이는 O(1) 시간밖에 걸리지 않는다. - DP에는 재귀적인 구현인 하향식 접근(Top-down approach) 외에도 반복문을 이용한 상향식 접근(Bottom-up approach) 방법이 있다. 상향식은 함수 호출을 적게 하니까 스택을 적게 먹는 장점이 있겠지. - 시간복잡도: 부분 문제의 갯수 * 부분 문제를 푸는 데에 걸리는 시간(메모 해 놔서 재귀 안 걸리는 데는 O(1)임) ---------- 31:00 이후 최단 경로 설명. - 오랫동안 잊고 있었던 그래프 이론이 등장함. / - 정점(vertex, node), 간선(edge, link, line) - 차수(degree): 어떤 정점의 간선의 수. / - DAG (Directed Acyclic Graph): 비순환 유향(방향) 그래프 - 내차수(indegree): 방향 그래프에서 어떤 정점으로 들어오는 간선(incoming edge)의 수. - 외차수(outdegree): 방향 그래프에서 어떤 정점에서 나가는 간선(outgoing edge)의 수. - 위상 정렬(Topological sorting): 선수과목 구조처럼 보이게 DAG을 왼쪽에서 오른쪽으로 한 방향으로 죽 늘어 놓는 것. - 출발점에서 나가는 간선을 기준으로 부분문제를 만들 수도 있고 목적지로 들어오는 간선을 기준으로 부분문제를 만들 수도 있음 - 사이클이 있는 그래프에서 시간복잡도는 무한대임. - DAG의 경우 시간복잡도: O(V+E) - DP 쓰려면 부분 문제는 비순환이어야 한다.
I gotta say, this video series helps me to understand how to solve DP problem easily. For people trying to learn how to solve DP , what I recommend to do is to just watch all the series to understand the pattern (observe) then try to solve some other problems on internet (practise).
Lovely course! Awesome Profs.. I came here looking for help in trying to solve DP problems.. got glued to this video and the other videos in the course.. heard of the Double Rainbow for the first time and googled for it.. came to know about the Double Rainbow guy.. and read that he became one with the rainbow ... in the times of this pandemic.. strange how times fly by! ...and how time flies by!
I went there (Course 8, 2012). Trust me, getting in is the easy part. All the top students at their high schools become more or less average there. You learn a ton but it will wring the life out of you too if you aren't careful. You may spare yourself and just enjoy OCW!
I felt like this was a great way to explain dynamic programming. My course work on it in college was fine enough for me to understand it but this is a much easier better way to explain it to learn from.
If we assume that the fibonacci calculator function will be called many times for different numbers in essentially random order, the 'top-down' memoized version has an advantage: When called repeatedly with the same n, it takes linear time the first time, but constant time afterwards (if the dictionary persists between calls). In the bottom-up version, changes are required to achieve the same: if n
The last remark that the algorithm can be modified to compute weights of shortest paths in graphs (possibly with cycles) was rushed a little bit. Can someone explain it in better terms? Thanks :)
When I came to know about the name story of DP, I was also very excited. If anyone has done the course algorithmic toolbox, you might also be knowing this story!
This refers to Python dictionaries which are amortized O(1) lookup time. As are most programming languages implementation of a key value store ie. Map, Hashtable, Associative Arrays, etc.
Is it weird that I have absolutely no idea what this class teaches, nor can I understand what it is trying to teach, yet I can't stop watching the lectures?
@Aarni lol, you could be wasting time on worse things I suppose. Hit your teacher with the old "I wanted to write my essay last night, but I just got way too caught up learning advanced algorithms. Time just got away from me."
hahahah im doing the same thing. Started with a video where Jelani Nelson was teaching Linear Data Structures I have no idea how it works and how it helps but it's oddly satisfying xD
*caption errors* 0:52 injected it → inject it 2:39 polynomial time algorithm → polynomial-time algorithm (also at 2:44) 5:18 sneak peak → sneak peek 6:17 we’re talking → when we’re talking 6:46 whatever’s → whatever, is 6:53 dynamic programming → dynamic-programming 12:02 computer → compute 19:03 non-memoize → non-memoized 21:04 that same problem → that same subproblem 31:01 onto → on to 35:32 [INAUDIBLE] → And then: okay, what’s 40:00 stored it → store it 41:45 s comma v → s comma b 45:10 Handshaking → Handshaking lemma 45:18 it ran a → it ran in 45:28 depth first search → depth-first search 48:19 refers to ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-OQSNhk5ICTI.html 50:52 negative weight cycles → negative-weight cycles
This totally sucks, I totally hate it ;) now everyone in the world can understand dynamic programming - such is the teaching of the genius here - Erik ...
27:00 Bottom up can be optimized further by hard coding the first two results manually the itterate without a conditional and saving the result right away. When done looping, return the last result.
And the way he presents everything is just amazing, there's many gaps in my knowledge on these topics but the way he explains helps me to either fill the gaps or at least know where to look for answers.
I'm 26 and didn't even finish my undergrad course yet. And I don't give a fuck. Not every universities and colleges are as awesome as the MIT or Caltech (etc). I'm from Hungary. I feel no drive to finish it. What you see here, this lecture, is quite the opposite of the way they teach us in Hungary. There are a very few good teachers here (but they, the good ones are really just great and I respect them), the majority just make us hate what we supposed to be enthusiastic about. Who cares, I just open my laptop and BOOM, I'm an MIT student, I can learn valuable stuff and I enjoy this difficult work with algorithms (or whatever) again. Maybe I'll finish my UG course, maybe I'll just quit and start making something amazing. Having a degree is good but if you can't do it, don't push it. There are many ways to be successful in what you like to do. If you can't finish, then college was just a bad guess and you should try another path to V (see what I did here?)
ranalynamic come on man, i understand the fact that some prof aren't the greatest ones(here in italy too,same faculty) but i think it's a student problem too, isn't it?!
ranalynamic I always thought Hungary was the land of geniuses. You've had John von Neumann, Eugene Wigner, Leo Szilard, Theodore von Karman, and on and on. These guys are my scientific heroes.
Keith Wald It used to be better, I guess... These days it's a shame. I feel embarrassed. Or maybe it wasn't that different at all. Today, a talented student who is actually lucky enough to get the hell out of here, probably will still do a great job pretty much anywhere where she/he is going. But not here. Yes, many of them are of Hungarian origins (and by the way, Jewish also). On the other hand, if you read their whole story, almost none of them achieved anything here. This is what Hungary is really good at: putting talents in an impossible situation and make them go the fuck away :) Anyway. I'm glad you know about these people. :)
Just leaving this here for someone to remind me in a couple of years, I regretted majoring in information systems instead of CS, and I cannot change my degree, but I will work hard and learn most of the needed stuff online in order to be able to learn more cs stuff on top of finishing my degree and getting a nice job that i enjoy in the future, through hard work and determination!
It's weird to think that some of us can't have access to this type of education maybe because we were born somewhere else or we don't have the money, so we are stuck with teachers that don't care about teaching you and you basically graduate by yourself. I don't think people that actually study on these types of universities understand how much better some of the teachers are. It makes such a big difference to my understanding of the material when I can find videos like these.
I was thinking the same, i remember when i learned the algorithms for the fibonacci series back in 2008. But i don't think my teachers didn't care, it's just that they didn't know. I still use the fibonacci series each time i try a new programming language.