서강대 정보통신대학원 수강과목 돌이켜보기 - 20년 2학기 (1/5)
수강 실패한 과목 먼저.
1. 데이터마이닝(이후 머신러닝I로 명칭 변경) - 화 18:30~20:00 또는 화 20:10~21:40
수업계획서를 보니, 오일석 저 <기계학습>을 주 텍스트북으로 인공신경망 기본을 다루는, 그야말로 비전공자로서 첫 학기에 들어야만 하는 과목이었다. 그러나 오랜만에 겪은 수강신청 클릭경쟁의 폐허에서 건진 것은 아래 가운데 소셜 네트워크 이론과 응용 한 과목이었다. 교수님께 추가 수강 문의를 했으나, 이미 반을 추가했고 다음 학기에도 개설 예정이니 다음 학기에 들으라는 답을 들어 어쩔 수 없이 포기했다. 그리고 이 과목을 제때 듣지 못한 후유증은 다음 학기로도 이어지는데...
그 다음은 수강 성공한 과목.
1. 대화형 사용자 인터페이스 - 월 20:10~21:40
음향모델-언어모델-디코딩네트워크를 배우는 수업이다..라고 수업계획서에 쓰여 있는데, 재미있어 보이지만 뭘 얼마나 깊이 배우는지는 역시 문외한으로서 예상하기 어려워 1차 신청 목표에서는 제외했던 과목이다. 그러나 데이터마이닝 수강 실패로 결국 수강하게 됨. 평가는 중간고사와 기말고사.
수업 초반에 '내가 이걸 한 학기만에 이해할 수 있나' 하는 절망적 회의와, 이해가 가든 안 가든 읽고 정리하고 복습하면 역시 어느 정도는 되더라 하는 하나마나한 결론이 복합된 과목이었다. 돌이켜보면 컴공 출신들이 이산수학에서 배워 알았을 오토마타 개념부터, 마찬가지로 공대생들은 공업수학에서 배웠을 푸리에 변환* 개념 등등, 이럴 줄 알았으면 수강신청을 두번 더 생각했을 난이도였고, 수업 4학기 중 가장 어려운 내용이었다고 해도 될 듯하다. 하지만 결과적으로는 첫학기 특유의 열정과 지식욕 덕분에 가장 열심히 공부하기도 한 과목이고, 또 의외로 backpropagation을 유일하게 수업시간에 수식 유도해서 배운 과목일 정도로 차근차근 진행되는 수업이라, 두번 더 생각해서라도 결국 신청해서 듣길 잘 한 과목이다.
* 그래서 푸리에 변환은 미분방정식 등과 함께, 나중에 혼자서라도 재미로 더 공부할 주제로 설정해 두었는데, 정말 공대생이라면 푸리에 변환은 기본인가? 이 질문을 학부 컴공에 KAIST 공학석사에 빛나는 당시 같은 팀 이과장에게 물어보니 필요한 사람은 하겠지만 전부 그런 건 아니라 한다. 어쨌든 비슷한 전공 선배인 이과장의 말이니 믿기로 한다.
2. 빅데이터 예측분석 - 화 20:10~21:40
이 과목은 아마 매 학기마다 반복될 현상인 '신입생 첫 수강신청 망함' 구제책으로서 실행된 추가 수요조사에 신청해서 수강하게 되었던 것으로 기억한다. 수업 전반은 기초 통계, R과 파이썬 코딩 등으로 진도를 나가고, 후반은 빅데이터 사업 제안서를 쓰는 개념의 조별과제다. 중간고사는 보통 개인과제* 제출로 대체되고(일단 중간고사가 좋은지 의견 수렴은 함), 기말고사는 조별과제로 대체된다.
그래서 강의 만족도를 이야기하라면, 그다지 만족스럽지 않았다. 전반 강의 내용은 내가 기대했던, 대학원 수업에서 다룰 만한 수준에 미치지 못했고(학부 수업은 들어보지 못했으니 비교하기 어렵지만, 코딩으로 치면 학원에서 가르치는 방식 및 수준과 크게 다르지 않다고 느꼈다. 즉 혼자 실습하는 정도 이상으로 자극을 받기가 어렵다), 후반 팀플 주제는 통계나 빅데이터 예측분석의 스킬을 배우거나 실습하는 것 보다는, 기술에 매몰되기 쉬운 수강생들이 사업 관점에서 시장조사, BM, (Adobe XD를 이용한) 앱 시제품 구현 등을 통하여 사업 제안서를 만들고 발표해 보는 데 집중되어 있다. 둘 다 그 자체가 나쁘다기보다는 내가 제목을 보고 기대했던 수업 내용과 크게 동떨어져 있다는 의미에서 실망스러웠다. 조별과제 진행도 원활했고(그야 나이를 먹을 만큼 먹은 성인 내지 난 중년, 다른 사람들은 거의 중년들이다보니) 성적도 좋았지만.
* 중간 개인과제는 교육부에서 나온 NCS 학습모듈 중 머신러닝 기반 데이터 분석 부분에서, 교재에 나온 R 코드를 모두 작성하여 제출하는 것이 기본이고, 이를 (교재에 없는) 파이썬 코드로 (번역) 작성하여 제출하면 가산점을 받는다. 이거 하느라 한 이틀은 서너시간밖에 못 잔 듯한데, '대체 왜? 뭘 그렇게까지 오래?' 하는 생각이 들지만 뭐 코딩이 원래 그런 거지.
3. 소셜 네트워크 이론과 응용 - 목 18:30~20:00
일단 이 과목은 데이터사이언스 전공이 아니라 사물인터넷 전공으로 분류되어 있다. 그래서 수강신청을 꺼리는 마음이 조금은 있었고, 거의 모든 데이터사이언스 과목에 신입생 구제책으로 추가 수강인원을 받게 될 때도 이 과목은 결국 만석이 아니었던 듯하다. 평가는 중간고사와 기말고사, 그리고 코딩 숙제가 세 번.
그래서 내 평가는... 2년 통틀어 제일 재미있게 들은 과목을 꼽으라면 일단 후보에 넣을 만하다(그리고 결국은 1위로 선정해야 할 듯). <Networked Life>를 주교재로 하고, 책에 나오는 20개 토픽 중 13개를 수업에서 다룬다는 계획이었지만 결국은 6개를 다룬 것으로 기억난다. 대략 적어보자면 구글 광고 경매, 구글 pagerank, 넷플릭스 collaborative filter, 아마존 rating, 위키피디아와 voting system, SNS와 그래프이론, 감염병 모델과 미분방정식 등 다양한 데이터사이언스 사례를 수학 및 코딩으로 풀어내는 과목인데... 지금 적어보니 확실히 광범위한 내용을 다루기는 했구나.
2년 동안 유일하게 대면으로 친 중간고사 때 5분만에(아마도 백지로) 시험지 제출하고 나가는 학생이 있었고, 중간고사 후에 교수님에게 '수학 너무 어렵습니다'라고 항의 메일을 보낸 학생도 있었다 하는데, 그 말을 들을 때는 '나약한 문과놈들 수학 싫으면 가서 MBA나 하시지(MBA 수학 필요한지 아닌지 모르고 하는 위험한 발언)' 하고 속으로만 생각했지만, 이때 경험은 강화학습 수업에서 행동으로 이어진다. 돌이켜보면 수학과 코딩 기초도 전혀 없이 수강한 사람이라면 당황할 만은 한 듯한데, 그렇다 해도 배우려는 의지만 있으면 못 따라갈 수준은 아니다. 그 의지도 뭐 하루에 이것만 서너 시간씩 한 달을 투자해야 한다는 정도도 아니고, 수업시간에 나오는 선형대수 기초 정도?
* 이 과목에서 미분방정식을 접하고 '이렇게 (어렵지만) 재미있는 게 있었다니!' 하며 기말고사때도 시험준비를 한답시고 공업수학에서 해당 부분을 풀어보고 있었는데, 가뜩이나 중간고사에서 수학 난이도 항의가 나왔는데 기말고사에서 그런 문제가 나올 리 만무하다는 것은 둘째치고, 아직도 가지고 있는 경제수학 책에서 찾아보니 상당한 분량을 차지하고 있었다. 이 얘기를 들은 (경제학 전공) 친구는 대체 학부 때 뭘 배운 거냐며 한심해 했다. 그러게 나 경제수학 시간에 뭐 한 거지...