대학교를 가서 처음 접한 과제가 포트란으로 "국영수 점수를 입력받아서 그 총합과 평균을 출력하시오."라는 것이었다. 그냥 숫자 3개 입력받아서 더한 값 출력하고, 3으로 나눈 값 출력하면 된다. 정말 쉬운 과제. 그런데, 왜 교수님이 이러한 과제를 내었을까? 덧셈, 나눗셈 공부하라고? 글쎄, "그건 아니올시다"가 되겠다. 프로그래밍 언어의 간단한 문법을 익히고, 스스로 코딩을 해 보면서, 오타에 의해 컴파일 에러도 직접 접해 보고, 컴파일 & 링크라는 과정을 거쳐 어떻게 해서 실행 파일이 생성되는지를 직접 경험해 보도록 하는 것이 그 목적일 것이다.


아직도 기억이 나는데, 그 과제를 하는데 몇 시간 정도 걸렸었다. 컴파일러 & 링커라는 개념을 그때 처음 알았고, 제대로 된 포트란 문법을 알지 못하여 몇 번이고 코드를 수정해야 했었다. 실행까지 확인하고 나서 보고서를 작성하는 것도 처음인 지라 많은 시행착오를 겪었었다.


그런데, 이런 과제마저 베껴 낸 동기들이 절반 이상이었다. 나는 몇시간 동안 고생(?)을 했지만, 다른 친구들은 남들이 해 놓은 보고서 몇 분만에 베껴서 이름 정도만 바꿔서 제출을 했다. 정말 간단한 코드인지라 교수 차원에서 이게 직접 해 본 건지, 베껴 낸 것인지 구분하기는 힘들었을 것이다. 이러한 쉬운 과제를 직접 해 본 사람과 베껴 낸 사람의 차이는 처음에는 그닥 크지 않다. "사칙연산만 할 줄 알면 누구나 작성할 수 있는 코드" 정도이니까.


시간이 조금씩 지나서 나중에는 "에디터"를 작성하는 과제가 나왔다. data structure 과목에서 언급된 linked list를 잘 이해할 수 있어야 하고,  코딩에 대해 익숙하지 않은 학생이라면 제출할 수 없는 과제 레벨 정도가 되었다. 게다가 담당 교수님이 제출된 과제에 대해서 일일이 코드 리뷰를 직접 하겠다고 했었다. 결과는 전체 학생 중에 30% 정도만이 과제를 제출했고, 또 그속에서 자신이 스스로 하지 않고 남의 코드 가져다 제출한 학생들 중 대부분이 색출(?)되어 fail을 받았었다.


시간이 지나 이제 내가 학생들의 가르치는 위치에 와 있다. 나도 물론 학생들에게 과제를 낸다. 그것은 수업 시간에 가르쳤었던 내용들을 코딩이라는 것을 통하여 스스로 익혀 보라는 의미이다. 아무리 열심히 배움을 받아도 코딩을 통해 직접 경험해 보지 않으면 진정 자신의 것으로 소화시키기는 힘들기 때문이다.


학생들은 코딩이라는 것을 하는 과정 사이에 또다른 많은 지식을 습득할 수 있다. 나 또한 그러한 과정을 겪어 왔기 때문에 학생들이 어떠한 시점에서 힘들어 하거나 어려워 할 것인지를 잘 알고 있다. 내가 뛰어 나서가 아니라 먼저 해 보았다는 것 밖에 없다. 어려워 할 때에 학생들에게 이런 저런 방법을 제시하면 학생들은 '아~ 그런 방법이...' 하면서 배움의 즐거움을 얻어 가는 경우가 종종 있다. 가끔씩은 청출어람이 되는 경우도 보고. 결론적으로 말해서 과제라는 것은 과제에 대해 최종적으로 나오는 산출물(코드) 자체보다는 그 결과를 도출하기 위해 중간 중간에 겪게 되는 과정을 즐기는 것이 더 중요하다라고 할 수 있을 것이다.


그런데 안타까운 현실이 하나 있다. 하나 예를 들어 보자. 어떤 학생이 과제를 제출했는데 소스 코드(cpp)만 있었다. 수업 시간에 그 학생의 코드 리뷰 과정에서 코드가 좀 이상한 것 같아서 직접 빌드해서 실행해 보라고 얘기를 했다. 그런데 이 친구가 Visual Studio에서 프로젝트를 만들지 못하는 것이다. Visual Studio로 C++을 공부해 왔던 친구가, 게다가 학점도 좋은 IT 전공 관련 졸업년도 학생이, Visual Studio에서 프로젝트를 생성하지 못한다? 순간 나는 뒤통수를 얻어 맞은 기분이었다. 결국 그 학생은 대학교에 들어와 지금까지 모든 코딩 과제를 베껴 내어 왔다라고 자백을 하였다. 그 학교는 그런 과제의 표절을 필터링할 수 있는 시스템이 부실하였다.


관련 전공을 했고 학점이 아무리 좋아도 이런 친구는 관련 IT 업계에 들어가기 힘들다. 면접 과정에서 실력이 드러날 수 밖에 없기 때문이다. 설령 입사를 했다 하더라도 지금까지 자신이 직접 해 온 것보다 도움(베껴 내기)만 받아 온 성향으로 인해 사회에서 제대로 된 인정을 받기도 힘들 것이다. 그런데 혹시나 모르겠다, 지금까지 그 친구의 생존 방식(남의 것을 어떻게 해서든지 뺏어서 자기 것으로 만드는)에 의해 살아 남을 수 있을 지도...


지금까지 많은 곳에서 강의를 하면서, 그리고 과제를 내면서 느끼는 바는 이러한 잘못(스스로 하지 않고 남의 도움을 받으려는)에 대해 양심의 가책을 느끼는 못하는 분위기가 만연되어 있다라는 것이다. '남들도 하니까 나도 해도 되겠지', '어렵게 저렇게 갈 필요가 있어? 이런 쉬운 길이 있는데', '선배들도 지금까지 이렇게 해 왔잖아, 나만 고생할 필요가 없어'


왜 이럴까? 왜 이 지경이 되었을까? 개개인의 문제만은 아닌 것 같다. 지금까지의 사회 시스템은 과정이 아닌 결과를 가지고만 판단을 하고 평가를 해 왔었다. '객관적인 평가를 위해서는 어쩔 수 없다' 라는 인식이 사회 전반에 만연되어 있고, 그러한 사실을 핑계로 위안을 삼으면서 그런 시스템을 스스로 만들어 또다른 사람들에게  강요해 오고 있다. "과정은 중요하지 않아. 결론만 좋으면 돼." 대학 입시가 그렇고. 학점과 취업이라는 결과만 좋으면 그 과정상에 발생하는 잘못은 모두가 용서되는 대학 교육 또한 마찬가지이다.


요즘에는 학생들에게 어떤 길을 알려 줘야 할 지 혼동이 온다. "시간이 좀 걸리면 어때? 돌아 가더라도 결과보다 과정을 즐겨라." 라고 얘기하는 것이 과연 올바른 것인지, 진정 그 학생을 위하는 것인지, 혹시나 시대에 뒤떨어 진 생각인 것은 아닌지...