안녕하세요, 저는 알고리즘을 공부하기 위해서 6개월째 코세라와 애증의 관계를 유지하며 uc sandiego 데이터 구조 및 알고리즘 특화 과정 강의를 듣고 있습니다. 장점도,단점도 정말 느낀 바가 많은데 마크다운도 연습할겸 관련해서 포스팅하기로 결정하였습니다.

커리큘럼

총 6개의 강의가 데이터 구조 및 알고리즘 특화 과정 라는 이름으로 묶여있습니다.

강의 순서 콘텐츠
1 Algorithmic Toolbox
2 데이터 구조
3 Algorithms on Graphs
4 문자열 알고리즘
5 Advanced Algorithms and Complexity
6 Genome Assembly Programming Challenge

저는 현재 4. 문자열 알고리즘을 듣고 있는데 벨만 포드 알고리즘 KMP 알고리즘 등등 문자열과 관련된 알고리즘이 나옵니다. 3. 에서는 bfs,dfs 등등을 배웠고 2.에서는 트리,힙,스택 등을 배웠습니다. 1. 에서는 분할정복,시간복잡도,그리디 등등 기초를 굵직굵직하게 다룹니다

수강료

제가 알기론 코세라에서 강좌를 듣는 두가지 옵션이 있습니다. 무료(청강) 그리고 해당 강좌에 유료로 등록하는 것입니다. 둘의 차이는 수료증 여부입니다. 코세라에서 발행하는 수료증에는 해당 강의를 제공하는 대학교에서 이수를 확인했다는 서명이 있습니다. 하지만, 공식 학위는 전혀 아니기 때문에 채용 공고에 지원할 때 수료했음을 기재할 수 있지는 않고, 공식적으로 인정하는 기관도 많지 않습니다.다만 좀 더 포멀하지 않은 개인 레쥬메에는 기록할 수 있고,최근 이러한 레쥬메 기재 관련해서 일부 스타트업 등등에서는 코세라 수료증도 인정하는 추세라고 합니다. 강의료는 매달 49달러입니다. (강의를 바빠서 거의 못 들은 달도 요금을 내야합니다 ㅠ)

저는 유료로 정식 코스에 등록했는데 1. 나중에 수학,통계를 더 깊이 외국에서 공부하고 싶다는 생각이 들 때 아예 없는 것보단 수료증을 받아두는게 그래도 낫겠지 2. 비싼 내 돈 내고 듣는 건데 돈 아까워서라도 열심히 듣지 않을까 의 이유에서였습니다.

수료증은 이런 식으로 나옵니다. 스크린샷 2021-01-15 오후 7 57 23

진행 방식

6개의 각 강의마다 세션 별로 10분 ~ 15분 정도 되는 짧은 강의 영상이 많으면 10개 적으면 5개 정도 + 프로그래밍 과제가 한 주 분량으로 올라가있습니다. 각 강의는 길면 6주 정도 이수하고 과제 잘 제출하면 끝나고, 짧은 강의는 4주짜리인 것도 있습니다. 관련해서는 상세히 설명해주신 분을 발견해서 해당 링크를 공유합니다. -> Coursera 강의를 듣고 있습니다

장점

  1. 제가 생각하는 본 강의의 장점은 뭐니뭐니해도 과제 과제 과제입니다. 각 주마다 딸려있는 과제는 기초 문제부터 중간 난이도 심화까지 총 5문제 정도로 주어집니다. 이 중 2문제 이상 pass 가 되면 다음 주로 무난하게 넘어갈 수 있습니다. 중간 난이도부터 심화 문제는 유명 알고리즘 사이트 문제하고 비슷한 유형으로 나오는 느낌입니다. 문제 구성이 매우 짜임새 있는게 장점이라고 생각합니다. 과제의 질이 장점이라고 생각하는 또 다른 이유는 우선 파이썬,루비 등등 다양한 언어 제출을 모두 허용하며 test set 도 총 40문제 정도로 매우 꼼꼼하게 평가합니다. ㅠㅠ 그래서 사실 저는 쓴 약이 몸에 좋다고 아주 골머리를 앓고 있긴 합니다. 알고리즘에 대해 이론적으로 이해가 안 갈 때도 많고, 직관적으로는 와닿지 않았던 부분도 많은데 매 주 과제가 딸려있다보니까 그러고 제한 시간 내에 통과하려고 골머리를 앓다보니까 자연스럽게 알고리즘이 감이 오는 효과가 있었습니다.
  2. ppt 가 매우 시각적이고 친절하게 잘 구성되어 있습니다. ppt 에서 해당 알고리즘 수도코드 설명 뒤에 예시를 보여주는 부분이 있는데 슬라이드 한 장 한 장마다 enter 누르는 각 단계라고 가정하고 매우 친절하게 설명되어있습니다.
  3. 6개의 강좌가 짜임새있게 구성되어서 코딩테스트 용 알고리즘 문제를 풀 수 있는 기초를 잘 닦을 수 있다는 생각이 듭니다. 기초 알고리즘 설명부터,그래프에 관한 알고리즘,문자열에 관한 알고리즘 등등을 한 강좌에 묶어넣은 것이 아니라 6개의 강좌로 세분화되어있어서 좀 더 구체적으로 배울 수 있는 느낌입니다.
  4. 이건 정말 마이너한 부분이긴한데 코세라 포럼 게시판을 통해서 열심히 공부하는 글로벌 멘토들에게 질의응답을 받을 수 있습니다. 시차가 있어서 그런지 답변이 바로 온 적은 없었고, 알고리즘 관련 질문을 하면 힌트만 주는 경우가 대부분이었지만, 정말 전세계 수많은 사람들이 이렇게 열심히 공부하는구나 동기 부여가 됩니다.

단점

  1. 수도 코드가 저같이 아무 것도 모르는 초보자가 듣기에는 너무 불친절합니다. 처음엔 저만 느끼는 문제인 것 같아서 나는 바보구나 =_= 좌절하였는데 영어가 모국어인 사람들도 강의평을 올리는 사이트에 해당 문제로 일부 악담까지 코멘트하는 경우를 목격할 수 있었습니다. 그니까 알고리즘 각 과정은 복잡하고,강의자 입장에선 최대한 자신이 설명할 수 있는 만큼 쉽게 의사 코드를 올린 것일텐데 해당 의사 코드의 변수명이라든지 각 과정이 친절하게 설명되어있지는 않습니다.
  2. 강의자 복불복을 타게 됩니다. 각 영상마다 강의자가 자주 바뀌는데 교수님,조교들 등등 섞여있습니다. 어떤 강의자는 매우 친절하게 비유도 들어서 설명하는 반면 어떤 강의자는 정말 아무 것도 모르는 사람들을 위해 0부터 가르쳐준다는 느낌보다는 자기가 아는 초보자를 대상으로 설명하는 느낌입니다.
  3. 영어로 듣는 것에 대한 제약. 이 부분은 영어를 엄청 잘 하시는 분들 혹은 알고리즘에 익숙하신 분들 혹은 수학적 계산이 빠르게 이해되시는 분들한테는 해당하지 않습니다. 저는 평소 영어로 강의 듣는 것은 괜찮은 정도여서 용기를 내어 수강을 결심하였는데 평소 수학적 이해 파바박 되는 편 아님 + 알고리즘 아무 것도 모름 + 영어 원어민 아님이 겹치다보니까 강의에서 설명하는 시간복잡도 관련 증명과 좀 복잡한 알고리즘 관련해서는 거의 대부분 놓쳤거나 강의를 듣고 잘 정리된 한국 블로그들을 참고하는 이중고생을 하였습니다.