가만 생각해 보니 내가 영상처리(또는 다차원신호처리)에 발을 담근지 벌써 10년이 넘었다. 워낙 게으른 나머지 뭔가를 제대로 체계적으로 공부하는 습성이 붙어 있질 않아서 아직도 아는 것이 너무나 부족함을 느끼고 있다. 이런 아픈 경험을 바탕으로 해서 영상처리 전공자를 위한 교양(?)과목을 몇 가지 추천할까 하는데, 오늘은 그 첫번째로 '알고리즘과 자료구조'이다. (항상 씨리즈 예고만 하고 첫편만 쓰는 나쁜 버릇이 있는데... -.-;; )
영상처리는 주로 전자공학 쪽에서 신호처리의 일부로 간주되어 교육되어 온 경우가 역사적으로 많았다. 예나 지금이나 알고리즘과 데이터 구조는 컴퓨터공학이나 전산학에서는 핵심 코어 필수 과목으로 가르치지만, (지금은 어떠한지 잘 모르겠지만 내가 대학 다닐 때는) 전기전자공학 쪽에서는 그렇지가 않았다. 알고리즘은 프로그래밍을 가르치면서 필요한 것들을 자연스럽게(?) 습득해야 하는 종류의 지식이었을 뿐 독립된 한 과목으로 구성해서 체계적으로 가르치질 않았다.
영상처리 전공자에게 알고리즘을 체계적으로 한 번쯤 공부해 보기를 권하는 이유는 다음과 같다. 나는 알고리즘이 적어도 학부에서 각각 두 학기씩이나 배우는 회로이론이나 전자회로보다는 훨씬 쓸모가 많다고 생각한다.
- 영상처리에서 나오는 많은 알고리즘들은 좀 더 일반적인 알고리즘 이론을 알고 있다면 더 쉽게 이해될 수 있고 새로운 알고리즘도 그에 기반해서 생각해 낼 수 있다. 예를 들면 영상처리에서 숱하게 볼 수 있는 divide-and-conquer, greedy algorithm, dynamic programming 등에 기반을 둔 기법들을 생각해 보라.
- 용어를 제대로 이해 못해서 저지르는 설명상의 오류를 줄일 수 있다. 지금 가만 생각해 보니 옛날에 나는 어떤 알고리즘을 greedy algorithm의 일종이라고 설명했었는데 지금 생각해 보니 엄밀히 말하면 틀린 설명이었다.
- 연구할 때 쓸데없는 데 쓰는 시간을 줄여준다. 좀 뜬금없이 들릴 수도 있는데, 특히 reduction과 P/NP관련된 내용이 해당된다. 예를 들면 어떤 문제는 NP-Complete한 문제인데도 그걸 미처 모르고서 마땅한 최적(!)의 해를 구하는 방법을 찾아 내지 못했다며 자신의 멍청함을 원망하며 시간을 낭비하는 짓을 안 할 수 있다.
- 영상처리는 결국은 컴퓨터 하드웨어나 소프트웨어로 구현되어야 하는데, 그 과정에서 알고리즘과 자료구조에 대한 지식은 매우 큰 도움이 된다. 예를 들어, 영상처리에서 자주 나오는 quad-tree나 nearest-neighbor 등을 구현하는 것을 생각해 보라.
- '생각하는 방법'과 끈기를 가르쳐 준다.
- Princeton University, Dept of Computer Science, COS226 Algorithms and Data Structures, Fall 2007
: Sedgewick의 Algorithms in Java 씨리즈를 교재로 한 저자 직강 강의다. 나는 이 책의 옛날옛적의 C++버젼을 갖고 있는데 Algorithms in Java - Google Book Search에 상당히 많은 페이지가 수록되어 있어서 매우 유용했다. - MIT, Electrical Engineering and Computer Science | 6.046J Introduction to Algorithms, Fall 2005
: CLR의 Introduction to Algorithms 를 교재로 한 저자 직강 강의다. 강의노트, 숙제 풀이는 물론 mp3와 강의동영상까지 올라와 있으니 이 강의를 직접 듣는 것과 거의 다름없는 혜택을 볼 수 있다. Introduction to Algorithms - Google Book Search에 고맙게도 책이 모두 올라와 있으니 큰 도움이 된다.
이 두 강의를 비교해 보자면,
- 위의 이유 1,2와 관련하여... 알고리즘의 기본적 접근법, 즉 예를 들면 무엇이 dynamic programming이고 어떤 종류의 성질을 만족하는 문제들은 이것을 이용해서 풀 수 있는가 등에 대해서는 CLR강의가 훨씬 도움이 된다.
- CLR강의가 complexity분석이나 correctness증명 등도 더 formal하게 보여준다.
- 보다 다양한 문제들에 대해, 보다 다양한 해결책들을 보여주고, 보다 최신의 결과들을 보여주기에는 Sedgewick의 강의가 더 도움이 된다.
- Sedgewick의 강의노트에는 정열, 검색 등에 대해 각 알고리즘의 평균,최악 complexity등이 표로 잘 정리되어 있어서 유용하다.
- CLR의 시험문제는 좀 더 어렵고 수학적이고, Sedgewick의 시험문제는 강의내용 이해 확인 수준이다.
저 두 강의노트를 읽다 보니, 참 세상 좋아졌다는 것을 새삼 느끼게 된다. 두 권의 강의노트를 읽으면 굳이 교과서 레벨의 알고리즘 책이 필요하다는 생각이 안 들 정도이다. 좋은 자료들을 모두에게 공유해 준 두 교수에게 경의를 표한다. 설마 이 블로그에 들어와 보진 않겠지만 이들에게 감사의 말이라도 여기 남겨야겠다. Thanks a lot for sharing your amazing lecture materials with us all around the world, Dr. Sedgewick and Dr. Leiserson !!!
ps.
Sedgewick책에 있는 저자 소개은 다음과 같다.
Robert Sedgewick is the William O. Baker Professor of Computer Science at Princeton University. He is a director of Adobe Systems and has served on the research staffs at Xerox PARC, IDA, and INRIA. He earned his Ph.D from Stanford University under Donald E. Knuth.Sedgewick 자신도 엄청난 대가인데, 자신의 소개에 굳이 Knuth의 제자라고 써 놓는 걸 보니... 정말 Knuth야말로 덜덜덜할 수 밖에 없는 슈퍼 대가인 것이다.
'싸이언스키드' 카테고리의 다른 글
| 특특과학고가 곧 필요하겠군. (4) | 2008/04/30 |
|---|---|
| 성화 봉송 주자로 뛰었던 올림픽 선수 경력의 교수 (4) | 2008/04/09 |
| 영상처리 전공자를 위한 추천 교양(?)과목 3 - 수치해석 (2) | 2008/02/17 |
| 디지탈 포토그래피 동영상 강의 모음 (구글 세미나 시리즈) (0) | 2008/02/01 |
| 영상처리 전공자를 위한 추천 교양(?)과목 2 - 실해석학 (2) | 2008/01/25 |
| 영상처리 전공자를 위한 추천 교양(?)과목 - 알고리즘 (6) | 2008/01/24 |
| 좋은 책의 기준? (10) | 2008/01/16 |
| 무인자동차 도시도로 주행대회 결과 (0) | 2007/11/07 |
| 논문 잘 쓰는 법 2 (6) | 2007/10/13 |
| Terence Tao의 블로그 (2) | 2007/10/02 |
| 보험회사직원들 무인자동차대회에 입상하다. (4) | 2007/03/08 |
TAG Algorithm,
CLR,
Data Structure,
Knuth,
Leiserson,
MIT,
Princeton,
sedgewick,
신호처리,
알고리즘,
영상처리,
영상처리 전공자를 위한 추천교양과목,
인터넷강의,
자료구조,
전기전자공학,
프린스턴
댓글을 달아 주세요
knuth 제자라니... 진짜 ㄷㄷㄷ이네요...
Knuth의 위상이 정말 실감이 나죠? ^^
영상처리를 전공하셨군요. 저는 그 쪽분야에 전혀 문외한이지만, 형이 영상처리를 전공해서 괜히 친근감이 생겨 수줍은 댓글 하나 남기고 갑니다. ^^;; 자주 들르겠습니다.
반갑습니다. 바람계곡님의 빛나는 (초청)포스팅들 재미있게 보았습니다. 제 예전 룸메가 조경학 전공이어서 도시,공원,생태,조경 등에 대한 얘기를 주워 들었던 시절이 있어서인지 저도 바람계곡 글을 읽으면 괜히 친근감이 생기더군요. ^^ 지금은 객원블로거로만 활동하시는 건가요?
아... 그러셨군요. 세상 참 넓은것 같아도 알고보면 좁은것도 같아요. 룸메가 한국분이라면 어쩌면 제가 아는 사람일 수 도 있겠네요. 의외로 업계는 좁으니까요. ^^ 제 형님도 영상처리쪽에서 이미지 알고리즘쪽으로 꽤 임팩트가 높은 논문을 썼던것 같던데 어쩌면 아시는 분일수도.^^;; 물론 지금은 일한다고 학계와는 상관이 없습니다만... 블로그나 홈피는 가지고 있지 않습니다. 글쓰는 것을 두려워해서 훌륭하신 분들 글 구경하며 돌아다니다 댓글 몇줄 쓰면서 배우고 다닙니다. ^^ www.theacro.com은 혹시 아시나요?시간되면 한번 구경와주세요. Rainyvale님 글중에 소개하고 싶은 글이 많을 거 같아요.
한국사회는 대략 세 개의 링크를 거치면 대충 연결되는 것 같습니다. 참 좁아요. ^^ 형님이 쓰셨던 논문도 언제 한 번 읽어 보고 싶네요.
그 룸메는 지금은 그 바닥을 떠서 살짝 다른 (하지만 살짝 관련된) 바닥으로 옮겼습니다. 이 블로그에도 가끔 놀러오니 아마도 이 댓글들 보며 지금 웃고 있을지도 몰라요. ^^
아크로는 가끔 눈팅하는데, 그런 공론사이트에 가서 글 올릴 정도의 내공은 안 되는지라... (바람계곡님 같은 고수들도 개인 블로그를 안 갖고 다른 블로그들만 방랑하며 한 수씩 가르침 주시는 것을 낙으로 삼으시는데, 어찌 저 같은 수준이 감히 아크로를... ^^)