문제의 발단
우리 학교 대학원에서 전일제 대학원생은 학부 과목 TA(조교)로 배정된다. 내가 배정된 과목은 '컴퓨터 프로그래밍 및 실습(컴프실)' 과목으로 기본적인 C언어 문법을 숙지하는 과목이다. 주로 소프트웨어학과 신입생들이 1학기에 수강하는 과목이며 타과에서 종종 들으러 온다.
컴프실 과목 TA가 하는 역할은 일주일에 한 번 있는 실습 시간에 교수님이 내주신 C언어 실습 문제를 학부생들이 풀면서 모르는 내용을 질문 받으면서 설명해주면 된다. 원래 지난 학기까지는 과제를 수행할 때 ChatGPT를 비롯한 생성형AI의 사용이 전면 금지였지만, 이번 학기부터 정책이 바뀌어서 생성형AI 사용하여 과제를 수행하도록 장려하고 있다. 그래서 과제도 문제 요구사항을 보고 어떻게 프롬프팅을 해서 답변을 구하는지가 채점 기준이 바뀌었다.
이렇게 AI를 적극 사용하도록 바뀌게 된 취지는 어느정도 유추해볼 수 있다. 날이 갈수록 생성형 AI의 기술적 완성도는 점점 고도화 되어가고 학생들도 이를 활용하여 과제를 수행하는데 익숙해지고 있다. 이를 금지한다면 시대에 역행하는 일이며 오히려 이제는 AI를 받아들이면서 자신이 공부하는데 어떻게 활용할 수 있는지가 더욱 중요한 역량이 되고 있다.
취지는 좋았다. 하지만 결과를 놓고 보자면 아쉬움이 남는다. 학기가 끝난 시점에서, 나(TA)의 시각에서 학생들의 과제 수행과 학업 능력에 대해서는 또 다른 문제점이 등장했다. 어떤 문제점이 있었는지, 왜 이런 문제가 발생했는지와 어떻게 해야 보완할 수 있는지를 생각해보았다.
왜 이런 문제가 생길까
가장 큰 문제점은 학생들이 과제를 내주면 대부분 만점을 받아오는데, 막상 중간/기말고사 필기 시험을 보면 과제에서의 성적보다 훨씬 떨어진다는 점이다. 시험의 난이도가 엄청 어려운 것도 아니다. 과제 내용을 온전히 이해했다면 최소 70점은 받을 수 있는 난이도였다(하지만 실제 성적은 이를 밑돈다).
이유는 명확하다. 과제는 AI를 쓸 수 있지만 시험에서는 쓸 수 없기 때문이다. 대부분의 학생들은 과제를 수행할 때 문제의 요구사항을 그대로 옮겨적어서 쿼리를 보내고, GPT가 짠 코드를 붙여넣기 해서 제출하는 것으로 추정된다.
이 방식이 잘못되었다고 생각하진 않는다. 사실 나 또한 대학원 강의에서 생성형 AI를 적극적으로 활용한다. 코딩 과제가 주어지면 요구사항을 프롬프팅하여 코드를 짜달라고 요청한다. 하지만 한가지 차이점이 있다면 나는 코드를 그대로 복붙해서 제출하진 않는다. 나는 반드시 생성된 코드를 내 눈으로 직접 검토해보면서 어떤 코드가 무슨 역할을 하는지, 그리고 왜 이렇게 동작하는지를 이해하고 넘어간다. 이렇게 해야 내 머릿속에 기억이 조금이나마 남는다.
하지만 학생들의 입장에서 보자면 일단 눈 앞에 닥친 과제를 해치워야 하니깐 이해는 후순위로 밀린다. GPT를 그저 어려운 과제를 순식간에 해치울 수 있는 수단으로 활용하는 것이다. 코드를 이해하고 뭐고, 일단 과제에서 점수를 잘 받아야하니 학생들의 선택도 이해는 간다. 남들 다 AI 딸깍 해서 10분만에 과제 만점 받는데, 나 혼자 몇 시간동안 코드랑 씨름하며 만점 받으리란 보장도 없는 코딩을 하기란 쉽지 않은 결정이다.
이를 해결하기 위해선 결국 평가 기준을 무엇으로 두느냐가 관건이다. 이제 단순 코딩 능력은 AI가 사람을 압도한다. 그리고 앞으로는 이 격차가 더 벌어질 것이다. C언어 강의에서 C언어 기초를 배우고 평가하는 것은 당연하지만, 역설적으로 사람이 아무리 열심히 공부해봤자 이젠 AI를 이길 수는 없다.
대신에 학생들이 배워야 할 것은 조건문, 반복문, 포인터를 넘어서 그것으로 무엇을 만들건지, 어떤 문제를 어떻게 해결할 것인지 생각할 수 있는 능력이 더 강조되어야 한다고 생각한다. 이에 맞춰 과제의 형식도 바뀌어야 하지 않을까. 자기 주변에 있는 문제점을 인식하고 이를 프로그래밍으로 어떻게 해결할 수 있을까를 고민해보는 경험이 반드시 필요하다.