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

15-2 방통대 컴퓨터과학과 자료구조 후기

by 피타칩스 2015. 12. 10.

방통대 편입 첫학기가 끝나가고 있습니다~~ 저는 이번 학기에 1학점 필수교양인 원격대학교육의 이해와 컴퓨터과학과 전공과목 6개(C++프로그래밍, 컴퓨터과학개론, 자료구조, 프로그래밍언어론, 컴퓨터구조, JSP프로그래밍)을 들었는데요, 이번에는 자료구조에 대한 수강후기를 남기고자 합니다.


방통대 공부는 주로 교과서와 인강을 통해 이루어지고(제 생각엔 교과서가 메인, 인강이 서브), 평가는 중간평가(30%)와 기말평가(70%)가 전부입니다. 따라서 이 네가지를 중심으로 이야기 해볼게요.


제 개인적인 소감인만큼 후기가 주관적일 수 있다는 점 고려해서 읽어주시길 바랍니다^^



<2015-2 방통대 컴퓨터과학과 자료구조>


1. 강의방식 요약


멀티미디어(인터넷강의) / 출석수업시험 또는 출석수업대체시험 / 기말시험 / 2 학년 2 학기(2-2) / 전공 / 3학점



2. 과목 목표 (강의계획서 펌)


자료구조(Data Structures)는 컴퓨터 과학의 소프트웨어 분야에서 가장 기본이되는 과목으로, 자료를 컴퓨터 내에 어떻게 효율적으로 구성시켜 처리하느냐의 방법론을 공부하기 위한 과목이다. 컴퓨터에 의한 자료 처리 관점에서 프로그램의 문제는 이와같은 자료구조와 알고리즘이 불가분의 깊은 연관성을 갖으며 심도있는 학습이 이루어져야 한다.




3. 과목 소개


선행 과목: C언어 또는 C++


방통대 자료구조 수업에서는 의사코드pseudo code 내지 C언어를 이용해서 자료구조를 구현합니다. C언어가 메모리에 직접 접근할 수 있는 포인터 기능을 잘 구현하고 있기 때문이겠죠. C++지식이 있다면 C언어는 어느정도 알고 계실테니 C언어류를 이해할 수 있는 수준이라면 자료구조를 공부할 준비가 되었다고 보면 됩니다.


주의할 점은, 자료구조에서 포인터의 개념이 아주 빈번하게 사용되므로, 포인터 개념이 잘 안 잡혀있으면 엄청 고생할 거라는 거에요. 스택에선 top포인터, 큐에선 front, rear 포인터, 링크드리스트에선 다음 노드를 가리키는 list_pointer, 트리구조에선 형제, 자식노드를 가리키는 sibling, daughter 포인터 등 포인터가 안 쓰이는데가 없습니다. 


자료구조 수업에선 뭘 배우는가? 


자료구조는 데이터(자료)를 어떤 구조로 컴퓨터에 저장할 것인가, 어떻게 저장하는게 가장 좋은가를 다루는 분야입니다. 앞에서 포인터 얘기를 하면서 여러가지를 말했는데, 스택, 큐, 링크드리스트, 트리 이런건 전부 자료 '구조'에 해당하고 그런 구조들에서 어떤식으로 자료를 탐색하고 정렬할 수 있는지, 해당 자료구조에 적합한 알고리즘을 구현하는 걸 다룹니다. 


하다보면 머리 아픈데 도전정신을 불러일으키는 과목입니다. 


관련과목: 알고리즘


자료구조와 알고리즘은 뗄레야 뗄 수가 없죠. 자료구조 강의 내용에 탐색, 정렬 등 알고리즘 내용이 나오기도 하고, 알고리즘 강의 내용에 리와 그래프 등 자료구조 내용이 나옵니다.


방통대 교과구조 상 자료구조는 2학기, 알고리즘은 1학기 과목이라서 동시 수강은 불가능합니다. 하지만 다음 학기에 바로 이어서 들으면 좀 덜 까먹은 상태에서 알고리즘을 수월하게 들을 수 있겠습니다.



4. 교재


4.1 교과서


자료구조 교과서 기본정보: 이언배, 박영배, 임해철 저 / 2011년 7월 제작 / ?p / 11,300원




자료구조 교과서... 오타 많음 ^_^


오타가 많씁니다. 그냥 오타가 아니라 코드 상에 있는 치명적인 오타입니다. 이해하는데에 힘들었어요. 잘못 이해하지 않으려면 정신 바짝 차리고 읽어야 합니다.


제가 앞서 포인터의 중요성을 강조했는데요, 그건 교과서에서 특히 포인터 부분의 오기가 많기 때문입니다. 본인 스스로 포인터 개념이 확실해야 교과서의 오타에 흔들리지 않고 "이건 책이 틀렸어!"라고 생각할 수 있기 때문에 C언어, 특히 포인터 배경지식은 중요합니다.


저는 자료구조 책을 읽는데 뭔가 이상해서 제가 포인터를 잘못 이해하고 있는줄 알고 C언어 책도 다시 펴보고, 그 책만 믿을 수는 없어 다른 책도 펴보고 주변사람들한테 물어보기도 했는데 결국 자료구조 교과서가 잘못된 걸로 결론났습니다. 크으.... 자료구조 책 보면서 혼자 끙끙 앓았던거 잊고 있었는데 다시 생각나니 좀 착잡하네요. 왠지 쓸모없는 데에 시간 버린 느낌.


그러므로 같이 보면 좋은 다른 자료구조 책


저는 그래서 중간에 이석호님의 자료구조와 C라는 책을 별도로 옆에 놓고 봤습니다. 제가 다른 포스트에서도 따로 이야기했지만, 방통대 자료구조 책이 이석호 교수님의 자료구조 책과 유사한 점이 정말 많습니다. 특히 1장부터 3장까지는 거의 복붙이라고 봐도 무방할 만큼 정말 똑같습니다. 다만, 복붙과정에서 버그가 있었는지 이석호 자료구조에는 없는 오타가 방통대 자료구조 교재에는 있네요. 허허.



방통대 자료구조 책이 잘 읽히지 않는다면, 저는 다른 자료구조 책들보다 이 책을 추천합니다. 빌려서 보면 좋을거 같아요.


전반적인 교재 내용은 OK


오타와 짜집기로 인해 교재에 좋은 평가를 주기는 어렵지만 교재에 그래도 기본적인 내용은 빠짐없이 들어가있다고 생각합니다. 아래는 교과서의 목차인데요, 시중 자료구조책들과 크게 다를바는 없습니다.


제1장 기본 개념 / 제2장 배열과 레코드 / 제3장 스택과 큐 / 제4장 연결 리스트 /  제5장 트 리 / 제6장 그래프 / 제7장 탐 색 / 제8장 정 렬




4.2 워크북


자료구조 워크북 기본정보: 이언배 저 / 2011년 7월 제작 / 147p / 교과서 사면 무료로 제공


방통대 교재 중 교과서들은 과목마다 내용은 달라도 교재 내부 구성이 비슷비슷한데, 워크북은 과목마다 구성방식이 많이 다릅니다.


일단 자료구조는 다른 과목들보다 워크북이 살짝 두껍습니다. 두꺼운 이유는 워크북 안에 본교재 요약정리 내용도 들어가 있고, 몇 가지 자료구조 및 알고리즘을 구현하는 실제 코드가 그대로 들어가 있기 때문입니다. 각 챕터별로 문제가 3문제 정도씩 들어가있긴 한데, 정말 적은 양이죠.






5. 인터넷 강의


하.. 인강 얘기를 하려니 한숨이 먼저 나오는데요, 이언배 교수님은 더 리더 입니다. 교과서 내용을 줄줄 읽어주십니다. 도대체 왜때문인지 모르겠지만 책을 굉장히 무덤덤하게 읽어주십니다...ㅠㅠㅠ


그래서 그냥 방통대 자료구조 책이랑 이석호 교수님 자료구조 책을 동시에 펴놓고 의사코드랑 그림 그려가면서 혼자 공부했습니다. 흑흑.


한가지 팁을 드리자면, 교수님 강의 섹션 다음에 가끔 조교님의 실습강의 세션이 있는 경우가 있습니다. 조교님이 책에 있는 자료구조나 알고리즘을 실제 코딩으로 구현해주는 동영상인데요, 자료구조 이론보다 자료구조를 어떻게 프로그래밍할 수 있는지에 관심이 있다면 조교강의를 들어보는 것도 좋겠습니다.


저는 자료구조는 독학을 결심하는 바람에 교수님은 물론 조교님 강의도 딱 한 강의밖에 안 들어봐서 코멘트하기 어려운데요, 확실한 건 조교님 강의는 적어도 졸리진 않습니다. 그리고 조교님 동영상 강의 내용은 워크북에 실린 코드들에 기초하고 있기 때문에 워크북을 꼭 옆구리에 끼고 계세요.


2012년 강의, 아마도 내년에 재녹화? 


현재 자료구조 인강에 출연하는 교수님은 이언배 교수님이신데, 지금 이 교수님은 은퇴하시고 정광식 교수님이 자료구조를 맡고 있습니다. 자료구조 과목 질문에 대한 답변도, 시험출제도 정광식 교수님이 하고 계시는거죠. 하지만 정광식 교수님이 자료구조 수업영상을 찍지 않아서 이언배교수님 강의가 계속 이용되고 있습니다. (방통대를 위해 어서 찍어주세요)


얼마전, 정광식 교수님은 본인이 자료구조 강의를 언젠가는 녹화해야한다고 이야기했는데, 그게 내년이 될지 내후년이 될지는 잘 모르겠습니다. 강의를 새로 찍으려면 교재도 새로 써야할 확률이 높기 때문에, 엄청 빠른 시일 내에 될 거같진 않습니다.



6. 중간평가: 출석수업(출석수업대체시험) 


출석수업 대체시험


지금은 정광식 교수님이 자료구조를 맡고 있는데, 이언배 교수님이 문제출제 스타일과 정광식 교수님의 문제출제 스타일이 좀 다릅니다.


정광식 교수님은 제가 컴퓨터과학개론 수강후기에서 이야기했던것처럼 개념적 이해를 중시합니다. 그래서 "자료구조 중 ~~~한 자료구조는 무엇인가?" 라든가 "~~~의 특징으로 올바른 것은?"과 같은 문제가 많이 출제됩니다. 그리고 이언배 교수님에 비해 문제를 0.5단계 쉽게 내는 느낌을 받았습니다. 정광식 교수님 본인이 인강을 촬영한게 아니어서 그런거라고 추측됩니다.


반대로, 이언배 교수님이 낸 4, 5년 전 기출문제를 보면 의사코드 알고리즘에 빈칸을 뚫어놓고 "ㄱ, ㄴ에 알맞은 단어(코드)는 무엇인가"와 같은 문제가 상대적으로 많았습니다. 물론 개념을 묻는 문제도 있긴 합니다.


저는 자료구조를 독학으로 공부해서 자료구조 첫시험인 대체시험에 자신이 없었고, 그래서 이언배 교수님이 출제했던 5년 전 기출까지 풀어봤습니다. 그런데 다 풀어보고 나니 이언배 교수님과 정광식 교수님의 강조포인트 차이가 보여서, 다음 기말고사 때는 정광식 교수님이 냈던 최근 3년 간 기출만 봐야겠다고 계획을 세울 수 있었습니다. 



7. 기말고사


시험범위 전범위라서 좀 두렵긴했지만 기말고사 준비는 생각보다 어렵지 않았습니다. 자료구조의 내용은 방대하지만 방통대 기말고사 난이도에 맞춰서 공부하면 되니까요. 


개인적으로 의사코드가 심히 난해하다고 생각했던 최단경로모형이나, 최소비용신장트리 같은게 나오면 망할거라고 생각했는데, 기출문제를 보니 의사코드 빈칸채우기 문제는 거의 다 퀵정렬, 선택정렬, 삽입정렬 등 정렬 알고리즘과 스택, 큐, 원형 연결리스트 등 기본 자료구조에 관한 것이었습니다. 지금 생각해보니 이상하게 탐색 알고리즘 코드는 기출에 별로 없었던거 같네요. 신기. 


그리고 이번 기말도 예상범위 내에 있는, 퀵소트와 스택이 나왔습니다. 다른것들도 있었던거 같은데 기억이 잘 안나네요. 




8. 자료구조 수강 팁


일단, 독학할 자세가 되어있지 않은 한, 교과서와 강의의 재집필과 재녹화를 기다린 후에 자료구조를 듣는 게 나을 거 같습니다. 정광식 교수님은 더리더 스타일은 아니니까요.


한편, 정광식 교수님이 강의 재녹화를 하면 대체시험과 기말고사 난이도가 0.5단계 재업그레이드 되지 않을까 합니다. 그러니까, 무조건 쉬운 시험이 좋다고 생각되면 재집필, 재녹화 들어가기 전에 얼른 수강하시길 추천드립니다. 




자료구조 후기 요약

  • 교재: 오타가 많아 슬픈 책이여, 너는 말이 없구나
  • 강의: 비추
  • 중간평가/기말고사: 정광식 교수님 기출 중심으로 준비



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


댓글