본문 바로가기
스터디 하드/방통대 컴퓨터과학과

2016년 1학기 방통대 알고리즘 수강후기

by 피타칩스 2016. 9. 28.

[2016년 1학기] 방통대 알고리즘 과목 수강후기


1. 소감


공부하면서 들었던 첫번째 생각은 역시 3학년 과목은 어렵다는 것, 그리고 15년 2학기에 자료구조 미리 듣길 정말 잘했다는 것이었습니다. 선행과목 없이 그냥 알고리즘 수업을 신청했다면 1, 2강부터 애먹으면서 공부했을것 같아요. 교재에 자료구조가 핵심요약되어 있긴 하지만, 수업에선 자료구조를 미리 알고있다고 가정하고 수업하니까요.


그리고 3학년 과목이라서 그런건지, 알고리즘이 정말 중요한 과목이라서 그런건지는 몰라도, 알고리즘 과목은 꽤나 빡셉니다. 잠깐 놓치면 진짜 미궁에 빠질 수 있어요. 계절학기로 재수강을 해야할지도 모릅니다... 하지만 그게 무서워서 알고리즘을 안 듣고 졸업하는 건 오히려 더 찝찝하죠. 굳이 비유하자면 경제학과를 나왔는데 거시경제학을 안 배우고 졸업한... 그런 느낌? 


그러니까 수강시점을 조금 여유로운 때로 미뤄도 좋긴하지만, 빡세고 어렵다고 아예 수강을 포기하진 마셔요. 배우다보면 또 재밌고, 내 머리 나쁘지 않은걸! 이런 생각을 들게 하는 과목입니다. 화이팅입니닷.



2. 교과서와 워크북













알고리즘 교과서는 대체시험과 기말고사를 준비하기 위해 필요합니다. 강의보다 책의 내용이 좀 더 적은데, 시험은 교재범위에서 나오니까 평소엔 실력상승을 위해 강의에 준해서 공부하고, 시험기간엔 점수를 위해 책에 나온 내용에 집중해서 공부하면 좋은 성적을 거둘 수 있습니다. 


특히, 알고리즘의 특징 및 설명과 알고리즘의 이름을 매칭시키는 문제가 시험에 심심치 않게 여러개 출제되니까 알고리즘의 주요특징을 설명하는 부분에 밑줄 또는 형광펜 그으면서 보면 교과서를 효과적으로 활용할 수 있겠습니다.


교재가 2012년인가 2011년에 출판된 걸로 알고 있는데, 오래된 책임에도 불구하고 꽤 좋습니다. 오래된 책이라고 안 사지 마시고 사셔욥 ㅎ 



3. 교수님 강의 (이관용 교수님)


넘나 당연한 이야길지 모르지만 교수님 강의를 들으면 이해가 잘됩니다!! 책에 쓰여진 내용보다 아주 조금, 딱 필요한만큼 더 자세하게 설명해주십니다. 그래서 이해도 더 잘되고, 기억도 더 오래 남는것 같아요. 기억에 오래남는다는 게 중요한데요, 왜냐면 방통대에서 다루는 알고리즘들은 교수님 말대로 기본적이지만, 정말 중요한 알고리즘이기 때문입니다. 훌륭한 개발자가 되려면 수학자가 기본 수학법칙 외우듯 기본 알고리즘을 이해하고 외워야 하는 것 같아요. ㅎ



그래서 이관용 교수님 강의력 좋으시고, 맑은 목소리로 차근차근 설명해 주시니까 각자의 실력향상을 위해 강의는 한번쯤 들어보고, 필요하다고 판단되면 시간내서 꼭 보는게 좋을거같습니다! 그리고 진리의 선이해 후암기 잊지마시구요.



4. 출석수업 대체시험 및 기말고사 준비


알고리즘 강의가 어렵고 분량이 많다는 걸 교수님도 알고 계신거같습니다. 알고리즘 계절학기가 거의 매년 열리는걸 고려하면, 확실히 알고리즘에서 안좋은 성적을 받는 사람이 많은거같아요. (방통대 계절학기는 본학기 성적이 일정수준 이하인 사람만 재수강하는 구조) 그래서 교수님이 출제범위와 출제내용에 대한 힌트를 나름 빠방하게 주셨습니다.


우선 출제범위별 출제문항수는 다음과 같았습니다.



그리고  "최소한 다음과 같은 내용을 중심으로 정리하기 바랍니다. (아래의 사항에 대해서는 질문을 금합니다.)" 라고 하시면서 다음과 같은 리스트를 제시하셨습니다. 


알고리즘의 정의와 조건

자료구조의 구분 및 종류 → 선형 vs 비선형, 배열/연결리스트/스택/큐/트리/그래프

스택과 큐의 개념과 특징

이진트리의 종류의 개념 → 포화이진트리, 전이진트리, 완전이진트리

거스름돈 문제와 배낭문제 풀기 ← 욕심쟁이 방법

시간복잡도의 개념 → 연산이 수행되는 횟수의 합, 입력 데이터 크기의 함수, 최악 수행시간

점근 성능의 표기법(Big-Oh, Big-Omega, Big-Theta) → 정의 및 그래프

빅오 표기의 효율성에 따른 관계 → O(1), O(logn), O(n), O(nlogn), O(n2), O(n3), O(2n), O(n!)

주어진 알고리즘의 시간복잡도 구하기

안정적 및 제자리 정렬의 개념

비교 기반 알고리즘의 종류

안정적 정렬 알고리즘의 종류

제자리 정렬 알고리즘의 종류

시간복잡도(O(n2), O(nlogn), O(n))에 따른 정렬 알고리즘의 종류

선택/버블/삽입/셸 정렬의 기본 원리와 개념

버블 정렬과 삽입 정렬에서 데이터의 입력 상태에 따른 성능의 차이 (O(n2) ↔ O(n))

합병 정렬의 성능 표현 → 점화식

합병 정렬과 퀵 정렬의 공통점

퀵 정렬의 기본 원리와 개념

퀵 정렬에서의 분할 함수 적용

히프 자료구조

계수 정렬, 버킷 정렬, 기수 정렬의 기본 원리와 개념

탐색 기법들의 (최악의 경우) 시간 복잡도

순차 탐색의 특징

이진 탐색의 탐색 방법과 성능 표현 

이진 탐색 트리에서의 노드 삭제(자식 노드가 2개인 경우) → successor 노드

이진 탐색 트리에서의 노드의 삽입과 탐색

2-3-4 트리의 개념과 특징

2-3-4 트리에서 노드 삽입 과정에서의 노드 분할

흑적 트리의 개념과 특징

그래프의 인접행렬과 인접리스트에 의한 구현하기

그래프 (깊이우선탐색, 너비우선탐색) 탐색하기

최소 신장 트리 구하기

최단경로 찾기 알고리즘의 종류(데이크스트라, 플로이드)

최소 신장 트리 알고리즘과 최단 경로 알고리즘에 적용된 설계 기법

브루트-포스 알고리즘을 적용해서 비교 횟수 구하기

스트링 매칭 알고리즘(라빈-카프, KMP, 보이어-무어)의 기본 원리와 개념

데이터 압축 알고리즘(RLE, 허프만 코딩, LZ77)의 기본 원리와 개념

JPEG 처리 과정과 특징

동적 프로그래밍 방법의 처리 과정과 적용 문제의 종류

NP-완전 문제의 종류와 개념

병렬 알고리즘의 PRAM 모델

유전 알고리즘의 개념과 주요 연산



기말을 준비할 당시엔 이 리스트가 좀 길어서 슬펐지만, 지금 세어보니까 43가지 힌트를 주셨네요. 기말고사 문항수가 35개니까 이렇게 주는게 맞는거같네요. 35개 힌트 달라고하는건 도둑놈 심보겠어요 ㅎㅎ


공감♥은 제게 큰 힘이 됩니다 감사합니다.


댓글