iTunes U에서 진일보한 온라인 강의 시스템, Coursera

아무래도 기계학습에 대한 기초를 좀 더 탄탄히 하지 않으면 안 되겠다는 다짐으로 iTunes U에서 Andrew Ng 교수의 Machine Learning 강의를 수강하고 있었습니다. 그러다가 며칠 전 Coursera에서도 같은 교수의 같은 강의가 있는 것을 보고 여기서도 강의를 수강하게 되었습니다. Coursera는 대학 강의 방식에 충실해서 일정이 있고, 숙제를 채점해서 점수도 매기더라고요. 이왕 듣는 거 수업 통과는 해야지 하는 마음에 한 달 어치 밀린 숙제를 서둘러 하느라고 며칠간 정신이 없었습니다.

Coursera

Coursera는 스탠포드의 전산과 교수인 Andrew Ng과 Daphne Koller가 주축이 되어 2012년 4월에 시작한 영리 기업으로, 대규모 공개 온라인 강의 시스템MOOC, Massive Open Online Course입니다. 스탠포드에 OpenClassroom 이라고 있었다는데 Coursera의 전신인 것 같습니다. 스탠포드, 미시간, 프린스톤, 펜실베니아, 워싱턴 대학등이 파트너쉽을 맺어 강의를 공급하고 있습니다. 버클리, MIT, 하바드 등이 주축이 되어 만든 edX, 그리고 Udacity 모두 작년과 올해 생성된 동일한 목적의 플랫폼입니다. MIT OpenCourseWare는 edX로 통합되어가는 것 같더군요. iTunes U도 이러한 대규모 공개 온라인 강의 시스템 중 하나인데, 왜인지 위키피디아에는 iTunes U에 대해서는 별 언급이 없네요. Coursera가 영리 기업이긴 한데 강의는 무료입니다. 수강증 인증을 돈을 받고 팔거나 수강 목록을 기업과 공유해 보거나 개인 조교를 붙여 주는 등의 방식으로 수익 모델을 찾고 있는 모양인 듯 합니다. 참고로 edX는 비영리 기업입니다.

iTunes U는 오디오/비디오 강의와 관련 PDF 자료를 받아 볼 수 있습니다. 보통 대학 교수가 한 시간 수업하는 것을 녹화해 놓고 강의 노트와 숙제, 시험자료를 공유하는 정도입니다. Coursera는 더 적극적인데, 교수가 혼자 나와 파워포인트에 타블렛 팬으로 메모를 하며 설명을 해 주며 수업을 진행합니다. 칠판에 판서하는 시간도 없고, 학생들 잡담하는 것도 들리지 않고, 학생들 질문 받는 시간도 없습니다. 파워포인트 자료는 공유되므로 수업노트를 따로 적어야 할 수고가 많이 줄어듭니다. 동영상에는 자막이 달려 영어 듣기에 익숙하지 않은 학생들도 강의를 들을 수 있습니다. 비디오 재생 배속도 iTunes U는 0.5/1/1.5/2 배속만 있지만 Coursera는 0.25 배속 단위로 세분화 되어 있습니다. 키보드 단축키가 있어서 30초 앞/뒤로 동영상을 넘기는 기능도 있습니다. 홈페이지 디자인 자체는 썩 맘에 들지 않습니다. 아이폰 전용 사이트도 없고, 아이폰에서는 동영상 배속조절을 할 수 있는 방법이 없다는 건 흠입니다.

동영상 이외의 것이 더 중요한데요, 영상 중간중간에 영상이 정지하고 퀴즈가 나갑니다. 또한, 매 강좌가 끝나면 그에 대한 시험이 있는데, 이 시험은 단답형 혹은 선택형으로 즉시 자동으로 점수가 매겨집니다. 시험은 문제은행 방식이라 재시험을 치면 다른 문제들을 풀 수 있습니다. 제가 수강하는 강좌는 프로그래밍 숙제도 있는데요, octave를 통해 기계학습의 대부분의 알고리즘을 직접 구현하게 됩니다. 프로그래밍 숙제는 간단한 함수들을 하나하나 구현해 나가는 방식으로 짜여져 있으며, 각각의 함수들은 submit 명령어를 통해 자동으로 채점이 됩니다. 또한 포럼도 있어 수강을 하는 학생들끼리 토론을 할 수 있게 되어 있습니다.

수강 소감

직접 수강을 하면서 느낀 사실은, 게임화Gamification를 적절히 사용해 배움의 몰입도를 증대시켰다는 것입니다. 소주제별로 10분 단위로 나뉘어진 강의, 중간중간에 나오는 퀴즈, 그리고 단답형 시험과 모듈화된 숙제를 통해 조금씩 조금씩 자신의 경험치가 상승하는 것을 바라보는 건 굉장한 재미입니다. 실제 학교 수업과 비슷하게 일주일에 한 번씩 강의가 올라오며 숙제와 시험도 제출 기한이 있는데, 이러한 기한 역시 게임화의 하나 아닌가 생각합니다. (제가 수강하는 강의는 한 달 전에 시작한 건데, 한 달 동안의 강의를 따라잡느라고 고생을 많이 했습니다. 하지만 지금까지의 숙제와 시험은 제출 기한이 이미 지나서 점수가 20%씩 깎여 나와서 마음이 좀 아픕니다.) 수업을 다 듣고 점수도 80점 이상 나오면 교수의 사인이 들어간 수강증을 주는데, 그냥 png 파일이고 그걸 인정해 주는 곳도 없지만 이 역시 게임에서 임무를 하나 완수하는 것 같은 쏠쏠한 재미입니다.

제가 듣고 있는 강의에 국한하여 iTunes U의 강의와 비교를 하자면, 우선 회사의 창업자가 심혈을 기울여 만든 것이니 만큼 강의가 훨씬 깔끔합니다. 다만 iTunes U는 대학원생을 대상으로 한 강의고 Coursera는 대학생을 대상으로 한 강의라 수식이 많이 들어가지 않고 복잡한 증명은 하지 않습니다. 선형대수학의 기초 정도와 고등학교 수준의 미적분만 알고 있으면 강의를 따라가는 데 문제가 없습니다. 하지만 수학적인 부분을 뛰어넘으며 설명하느라 설명이 꼬이거나, 그냥 수학은 알 필요 없고 이렇게 프로그래밍 하면 되는 거야 하는 식의 느낌을 받을 때가 종종 있었습니다.

시험과 숙제를 자동으로 채점을 해 줘서 그 결과를 즉각적으로 알려주는 것이 주는 경험은 상상 이상입니다. 훨씬 적극적으로 수업을 듣게 됩니다. 무엇보다도 프로그래밍 숙제가 정말 대단합니다. 교수님이 이 강의를 매년 진행하면서 노하우가 쌓여서, 숙제가 진도에 딱딱 맞춰서 모듈화가 되어서 적절한 난이도에 적절한 시간 투자로 수업 내용을 이해할 수 있도록 설계되어 있습니다. 거기다가 프로그래밍 코드 자동 채점까지… 솔직히 대학교 학부 수업 가서 수업 몇 번 안 해 본 교수 수업 들으면 처음에 프로그램 설정부터 시작해서, 숙제 제출에다가, 조교 숙제 채점은 한참 걸리고, 숙제 설계도 어설퍼서 너무 어렵거나 혹은 삼천포로 빠지기도 쉽고, 또 자기 컴퓨터 설정에 따라서 숙제 컴파일 안 되고 이런저런 잡다한 문제가 엄청 많은데, 그런 문제가 거의 없습니다. 예를 들면 octave를 실행시켜서 숙제 있는 디렉토리로 이동 후, sigmoid.m 파일을 열어 ‘여기에 프로그래밍 하세요’라고 된 부분에 코드 몇 줄만 채워 넣고 submit 명령어를 때리면 바로 서버 자기 계정으로 그 파일이 전송되어 채점을 해 줍니다. 함수 하나하나로 숙제가 모듈화가 되어 있어 삼천포로 빠질 일도 없고, 내가 얼마나 더 하면 되는지 얼마나 했는지 감을 쉽게 잡을 수 있기 때문에 숙제를 하는 맛이 납니다. 쓸데 없는 프로그램 구조 잡느라 시간을 허비할 일도 없고요.

다만 회사의 창업자이자 예전 부터 온라인 강좌에 많은 공을 들였던 교수의 수업이라, 이만한 강좌를 다른 Coursera의 강좌에서도 제공해 줄 수 있을지는 잘 모르겠습니다. 다만 다른 건 몰라도 기계 학습의 대가가 몇 년씩 열정을 바쳐서 다듬어 온 이 Machine Learning 강좌 하나만은 꼭 들어볼 만한 가치가 있지 않을까 감히 생각합니다. 이게 학교처럼 수업 일정대로 진행이 되는 거라 지금 제가 듣는 강의에 참가하시면 숙제/시험의 반은 20% 점수가 깎이고 들어가는 게 조금 안타까운데, 그래도 지금부터 수강을 해도 서두르지 않아도 무리 없이 수강증을 받을 수 있습니다. 어차피 프로그래밍 숙제고 시험이고 몇 번이고 다시 풀 수 있기 때문에, 만점을 받는 것도 문제가 없습니다.

참고

프로그래밍 숙제 문제 해결

윈도우즈에서는 별 문제 없이 프로그램이 돌아가는데 제 맥북에서는 프로그램 설정에 조금 문제가 있었습니다. Lion으로 업데이트 한 지 얼마 안 되서 그런 것인지 예전에 제가 프로그래밍 한답시고 이것저것 깔아놓았던 것과 충돌을 한 건지 잘은 모르겠습니다. 혹시라도 저와 같은 문제가 있는 분들이 있을까 해서 해법을 올려 놓습니다.

1. 맥북에서 Octave가 제대로 안 돌아감. 터미널에서 다음과 같은 에러메시지를 내고 멈춰 있음.

exec '/Applications/Octave.app/Contents/Resources/bin/octave'

[Process completed]

OSX 10.8.2 Mountain Lion인데 Application/Utilities에 X11이 있어서 그냥 octave만 깔았더니 다음과 같은 에러가 나옴. 한참 해메다가 XQuartz를 까니까 해결됨. 거기다가 X11이 알아서 사라지고 XQuartz로 바뀌어 있다. 아무래도 예전 버전인가 봄.

2. Octave는 제대로 되는데 이젠 ex1 실행해 보면 그래프 그려주는 부분에서 뻑남.

dyld: Library not loaded: /usr/X11/lib/libfreetype.6.dylib
  Referenced from: /usr/X11/lib/libfontconfig.1.dylib
  Reason: Incompatible library version: libfontconfig.1.dylib requires version 14.0.0 or later, but libfreetype.6.dylib provides version 13.0.0
/Applications/Gnuplot.app/Contents/Resources/bin/gnuplot: line 71: 25461 Trace/BPT trap: 5       GNUTERM="${GNUTERM}" GNUPLOT_HOME="${GNUPLOT_HOME}" PATH="${PATH}" DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH}" HOME="${HOME}" GNUHELP="${GNUHELP}" DYLD_FRAMEWORK_PATH="${DYLD_FRAMEWORK_PATH}" GNUPLOT_PS_DIR="${GNUPLOT_PS_DIR}" DISPLAY="${DISPLAY}" GNUPLOT_DRIVER_DIR="${GNUPLOT_DRIVER_DIR}" "${ROOT}/bin/gnuplot-4.4.3" "$@"

여기서 보면 알 수 있듯이 coursera에서 주는 기본 Octave에 붙어 있는 Gnuplot이 문제가 있는 듯. 여기에서 Maxima.dmg 다운 받아서 이 안에 있는 Gnuplot을 인스톨 (혹은 덮어씌움) 해 버리면 제대로 돌아간다.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>