2023. 8. 25. 20:04ㆍAlgorithms
MIT Lecture 6.006 Introduction to Algorithms, Fall 2011
why this lecture?
알고리즘 강의가 이해가 잘 안되어서 유튜브로 찾아봤더니 MIT Algorithm 강의가 있어서 들어봤다. 각 주제별로 한시간 씩으로 총 24 강까지 있고, 지금은 3강을 듣는 중인데, 알고리즘은 이론이 필요한 부분인 것 같고 이론을 조금 듣고 바로 코드를 짜는 것이 어렵게 느껴져서 이론을 먼저 한번 자세히 들어보려 한다. Srini Devadas 교수님 강의가 다른 젊은 교수님보다 조금 더 이해하기 쉽게 느껴진다. 코딩에서 많이 쓰는 문법 이름들 (예를 들면 arr = array(정렬), int = integer(정수))이 모두 영어단어의 축약이라 한국어로 이야기하는것보다 오히려 더 이해하기 쉬운 경우가 있는것 같다. 이론을 먼저 설명하고, python 문법이나 pseudocode(가짜코드, 말로 풀어쓰는 알고리즘 논리)를 이용해서 설명해주니 도움이 된다.
8 modules:
이 강의에서는 총 8가지 module을 설명한다.
- Algorithmic Thinking: Peak finding
- Sorting & Trees: Event simulation
- Hashing: Genome camparison
- Numerics: RSA encryption
- Graphs: Rubik's cube
- Shortest paths: Caltech -> MIT
- Dyn programming: Image compresion
- Advanced topics
Lectures summary:
- Algorithmic Thinking: Peak finding:
1~n 까지의 수에서, n >= n-1 and n>= n+1 일 경우 n이 max 라고 할 수 있다.
위와 같은 경우는 1 dimension 이고, 2 dimension 에서 max num 을 찾으려고 할 경우,
max(i, j) 를 찾아야 하고, 위아래, 가로세로 중 max인 경우를 찾아야 하므로 두 가지 case를 만족해야 한다.
이런 방식으로 peak number 를 찾는다. - Models of Computation, Document Distance:
이 강의는 조금 어려웠다. 마지막에는 3차원의 기하와벡터에서 각 값도 나오던데 그건 아직 이해를 못했다.
뒷쪽 저 부분이 나오면서 아예 이해를 못함....;;;; - Insertion Sort, Merge Sort:
듣는중~~~
다음 링크를 통해 수업을 들을 수 있다.
https://youtu.be/HtSuA80QTyo?feature=shared
https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2008/
Introduction to Algorithms | Electrical Engineering and Computer Science | MIT OpenCourseWare
This course provides an introduction to mathematical modeling of computational problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. The course emphasizes the relationship between algorithms and
ocw.mit.edu