close

[현장] 한국 대학 컴퓨터과학 수업, 어디까지 왔나

가 +
가 -

2010년 마이클 샌델 하버드대 교수의 ‘정의란 무엇인가’라는 책이 한국에서 큰 관심을 받은 적이 있었죠. 하버드에서 가장 인기 있는 강의라고 소개되면서 강연 영상을 찾는 사람도 많았습니다. 그렇다면 최근 하버드대에서 가장 인기있는 강의는 무엇일까요? 바로 컴퓨터과학(CS, Computer Science) 입문 강의인 ‘CS50‘입니다. CS50은 최근 한 학기에 800명 넘는 학생이 들을 정도로 관심을 많이 받고 있습니다. 해마다 등록 수강생 수 기록을 깨고 있을 정도입니다. 최근 한국에서도 대학교 신입생에게 컴퓨터과학을 알려주려는 시도가 늘고 있습니다. 마침 3월22일 소프트웨어정책연구소에서는 하버드대 CS50 수업과 한국의 컴퓨터과학 수업에 대해 논의하는 자리가 있었습니다.

CS50_Korea_00_SPRi_FORUM

▲소프트웨어정책연구소 포럼(사진: 소프트웨어정책연구소)

먼저 하버드대 CS50 강의를 조금 더 깊이 알아보겠습니다. 보통 입문 강의라면 C언어 문법을 하나씩 배우거나 자료구조, 보안, 인공지능 등 미래에 배울 전공과목의 개론을 조금씩 다루는 수업이 많은데요. CS50은 조금 다릅니다. 과목 이름에 그 힌트가 있습니다. 일반적으로 입문 과목의 강의 코드는 ‘101’로 많이 시작합니다. 50이라는 것은 기존 컴퓨터과학 수업의 절반이라는 것을 의미합니다. 다시 말해 기존 컴퓨터과학 수업보다 조금 더 쉽게 다가가는 수업이라는 뜻입니다. CS50은 전공자와 비전공자 모두를 위한 컴퓨터 프로그래밍 입문과정이지만 실제 수강생 중 78%가 컴퓨터 과학 관련된 기초지식이 없다고 하네요. 그렇다고 수업 내용이 쉬운 건 아닙니다. CS50 수업을 따라가기 위해 학생들은 10~20시간을 따로 투자해 공부해야 하고, 다른 자연과학 수업보다 1.2배 어렵다고 느낀다고 합니다.

CS50 수업은 데이비드 말런 하버드대 교수가 진행하고 있는데요. 놀라운 것은 이 수업을 위해 데이비드 말런 교수 뿐만 아니라 교육조교, 채점자, 멀티미디어 프로듀서 등 102명의 스탭이 함께 일하고 있다는 사실입니다. 이호 소프트웨어정책연구소 선임연구원은 CS50 인기 비결로 다음과 같은 분석을 내놓았습니다.

CS50_Korea_01

▲사진: 이호 소프트웨어정책연구소 선임연구원 발표자료

CS50은 학생의 관심, 교수의 열정, 학교 지원 이렇게 삼박자가 맞아 성공했다고 볼 수 있습니다. 그렇다면 한국은 어떨까요?

일단 서울대를 살펴보겠습니다. 서울대에서는 현대 컴퓨터공학과 외에 다양한 공대, 인문대, 예술대에서 컴퓨터과학 박사과정을 마친 교수들을 뽑고 있다고 합니다. 각 학과는 개별적으로 커리큘럼을 구성하고 인력을 섭외하고 있다고 합니다. 아직 비전공자에게 체계적으로 컴퓨터과학을 가르치진 못하는 상황이라고 하네요.

블로터 플러스 '지식 아카이브'

서울대 컴퓨터공학과 신입생 정원은 55명인데요. 최근 3년 전부터 복수전공 신청자가가 급격히 늘어나고 있다고 합니다. 김형주 서울대 교수는 “한 학기에 120-150명이 복수전공을 신청하고 있다”라며 “정책상 이 가운데 50여명밖에 뽑지 못하는데, 재수해서라도 다음해에 다시 도전하는 학생도 있다”라고 말했습니다.

과학과 기술 분야에 특화된 카이스트는 어떨까요? 카이스트는 오랫동안 신입생에게 프로그래밍 강의를 필수과목으로 지정하고 있습니다. 1999년에는 C언어를 주로 이용했고, 2004년부터는 자바언어로 가르치고 있으며, 2010년 들어서며 파이썬을 주 언어로 채택하고 있습니다. 카이스트는 프로그래밍 강의에 대한 지원이 다른 학교보다 탄탄한 편이지만 처음에는 쉽지 않았다고 하는데요. 한태숙 카이스트 교수는 “처음에는 교수 3명이 전담했는데, 교안 준비하는 것이 어렵고 실습에 많은 시간을 투자해야 하니 많이들 기피했다”라며 “현재는 학기당 6명, 1년에 12명의 교수가 이 강의에 참여한다”라고 설명했습니다.

학교의 지원도 많은 편입니다. 현재 컴퓨터과학 필수교양을 듣는 신입생은 800여명인데요. 이 과목에 투입한 조교만 30명이 넘었다고 하네요. 한태숙 교수는 “조교 1명당 8명의 학생들을 관리할 수 있을 수준으로 뽑아서 도와주고 있다”라며 “학교측이 조교를 투입하기 위한 자금을 마련해줬다”라고 설명했습니다.

CS50_Korea_02_KAIST

▲사진:한태숙 카이스트 교수 발표자료

CS50_Korea_03_KAIST

▲사진:한태숙 카이스트 교수 발표자료

카이스트가 컴퓨터과학 수업에서 가장 신경쓰는 것이 ‘동기유발’과 ‘부정행위 방지’입니다. 한태숙 교수는 “프로그래밍 경험이 전혀 없는 학생들에게는 초반 4주 안에 흥미를 끌어내야 한다”라며 “그 점에 집중해 강의를 구성하고 조교를 적극 활용하도록 지원했다”라고 설명했습니다. 프로그래밍 숙제를 베끼는 것을 방지하기 위해서 제출한 숙제나 시험의 부정행위 여부만 감지하는 조교를 따로 두고, 숙제에 대한 부정행위가 적발될 경우 무조건 F학점을 주는 방식을 택했습니다. 또한 실습과 출석을 일정 수준으로 채우지 못하면 아예 시험을 볼 자격을 박탈하며, 성적은 전체의 25%는 A를, 전체 학생의 75%를 B학점을 줘서 성적의 부담을 덜고 실습에 집중할 수 있게 도왔습니다.

성균관대는 카이스트와는 상황이 조금 다릅니다. 카이스트는 전교생이 이공계 전공이지만, 성균관대에는 신입생중 2600여명이 인문·사회대학의 비전공자이죠. 당연히 실습실도 모자라고 관련 강사도 부족할 수밖에 없는데요. 성균관대는 일단 ‘성균 소프트웨어 교육원’을 설립해 신입생을 위한 컴퓨터과학 커리큘럼을 다시 만들었다고 합니다. 수업은 160명 단위 강좌로 진행하고 실습은 40명씩 4개조로 나눠 진행하고 있습니다. 실습조교가 2인 1조로 팀을 이뤄 각 실습실별로 수업하고 있고, 교육 연수를 진행하고 조교를 뽑았다고 합니다. 수업은 각 교실의 수준에 따라 조금씩 다르게 진행하며, 비전공자 학생들에게는 조금 더 쉬운 과제를 제공해 흥미를 유발했다고 합니다.

김재현 성균관대 교수는 “다른 전공 관계자분들이 이해하고 협조를 해주셨기에 수업을 진행할 수 있었다”라며 “전교생을 같은 시간대에 같은 강의를 배정하기 위해 각 전공대학은 해당 시간에 따로 전공 수업을 개설하지 않았다”라고 설명했습니다.

CS50_Korea_05_SungKyun

▲사진: 김재현 성균관대 교수 발표자료

CS50_Korea_04_SungKyun

▲사진: 김재현 성균관대 교수 발표자료

이날 포럼에는 컴퓨터과학에 관심이 없는 신입생에게 강제해 수업을 가르칠 필요가 있는가에 대한 의견이 많았습니다. 다시 말해 컴퓨터과학을 선택교양이 아닌 필수교양으로 지정해야 하는가에 대한 문제인데요. 한 참석자는 “들어야 할 동기가 전혀 없는 학생까지 고려해 수업을 구성해야 하는지 모르겠다”라고 말했지만, 다른 참석자는 “앞으로 살아갈 세상에 소프트웨어는 필수이니, 미리 사전에 접하게 하는 데 의미가 있고 관심을 갖도록 권유해야 한다”라고 말했습니다.

더 읽어보세요!

신입생을 대상으로 하는 컴퓨터과학 수업은 이번이 처음인지라, 현실적으로 교수가 관심을 갖고 집중할 수 있는가에 대해서도 논의가 많았습니다. 현재  한국 상황에서 CS50류의 수업은 교수 평가에 아무런 도움이 되지 않기 때문에 뜻이나 열정이 있는 교수가 자원봉사하는 식으로 진행하고 있다는 의견이 많았습니다. 하버드대의 경우 CS50 강의를 맡은 교수는 따로 논문이나 의무 강의 수가 아닌, 오로지 CS50 수업으로만 평가받고 있습니다.

김진형 소프트웨어정책연구소 소장은 “컴퓨터과학은 한 과목만 들어도 학생들이 얻어가는 게 많고 학생과 교수 모두 그 결과에 놀라고 있다”라며 “지금껏 대학에서 이런 시도를 하지 못한 부분에 대해서 반성해야 한다”라고 말했습니다.

이호 선임연구원은 현재 대학의 컴퓨터과학 수업의 한계를 극복할 수 있는 방법으로 ‘한국형(K)- CS50’을 제안했습니다. 그는 ‘거꾸로교실’ 방식을 선택해 학생들은 동영상으로 이론 수업을 듣고 실습때 최대한 맞춤형 수업을 진행하는 방식을 제안했습니다. 만들고 싶은 서비스를 구체적으로 정해 문제해결 중심의 수업을 진행하는 것도 핵심 내용입니다. 이호 선임연구원은 특히 “모든 학생에게 소프트웨어에 대한 기본 소양을 가르치는 수업에 더해, 컴퓨터과학에 대한 열정과 의지를 가진 희망 학생을 대상으로 깊이 있는 컴퓨터과학 입문 강의도 병행돼야 한다”라고 말했습니다.

네티즌의견(총 2개)