컴퓨터 공학부가 비전이 있는가?



얼마전 같은 학교 과 친구들을 만났습니다.


한 친구가 군대에서 휴가 나와서, 먼저 전역한 친구와 저와 같이 만나서 가볍게 술한잔을 했지요.


언제나 그래왔듯이, 우리의 주제는 이랬습니다.


 


“우리 과가 비전이 있는가?”


 


프로필에 적혀있지만, 저는 중앙대 컴퓨터공학부 학생입니다. 물론, 1학년만 마치고 학교를 3년 이상 휴학해서 그런지, 과에 대하여 전반적인 교육 과정은 아직 잘 모르지만 친구들의 이야기를 듣고 학교 홈페이지에서 확인해 보면 다 나옵니다. 교육 과정이 어떠한지.. 교수님들의 마인드는 어떠한지.


 


중앙대 컴퓨터공학 공학인증 프로그램(Abeek) 09학년 과정


 


대학 4년을 다니면서 언어는 c와 c++, 어셈블리어, 자바 정도를 교육받습니다. 그리고는 전부 이론입니다. 수학과 물리 등을 곁들인 모든 과정이 이론.  물론 개인적으로 자료구조론이나 알고리즘, 운영체제, 소프트웨어 공학 등은 필요하다 생각합니다만..


 


이러한 과정이 04학번부터 계속 이어져 오고 있습니다. 물론, 그 전 학번은 어떻게 되어 있나 확실히 모르겠지만.. 분명 저희과의 목적은 “전산학과” 가 아니기 때문에 실무적인 과목은 배제하고 말그대로 공학에 충실합니다. 그리고 졸업 후 결론적으론 임베디드/정보보안/전자상거래/서버관리/영상처리/게임프로그래밍 정도로 나뉘게 됩니다.


 


배운사람 입장에서는 정말 체계적인 교육 과정이라는 것을 알 수 있습니다. 솔직히 프로그래밍이라는 것이 제가 일전 포스팅(프로그래밍에 대한 작은 고찰)에서도 밝혔지만 자료구조와 알고리즘, 운영체제를 알고 있다면 못배울 언어(최소한)는 없다고 생각하거든요. 그런 의미에서 정말 “컴퓨터”의 “공학적”인 부분은 전부 배우고 들어가는 것이지요. 최소한 저희 과에서는요.


 


문제는 이제 학생들의 입장에서 생각해보면 발생합니다. 제 친구들과 왜 매일 우리과에 대한 비전에 대해 의논하는가? 학교에서는 너무 이론에 충실한 나머지, 정말 기초적인 (조건문,반복문,연산자 등) 것만 가르쳐주고는 사용할 수 있는 최신 기술(c++의 TR3, STL 및 기타 프레임워크 들)은 가르쳐주지 않습니다. 솔직히 프로그래밍이라는게 c프로그래밍을 하다 보면 매번 번복되는 도스창의 (press any key continue) 과 그림이란 것은 당최 존재하지도 않고 오로지 검은색 배경에 숫자와 문자 뿐입니다. 그나마 자바 수업에서 swing등을 개별적으로 사용해서 GUI를 만들곤 합니다만..


 


2001년, 처음 프로그래밍을 접했을 때 제가 프로그래밍에 쉽게 질린 이유가 저것입니다. 매일 무슨 수치계산이나 데이터 구조 등의 프로그래밍만 줄창 짜고만 있지 도대체 내가 언제쯤 프로그램을 만들 수 있을까? 그러다가 우연히 접한 mfc에서 드디어 제가 윈도우 폼을 하나 띄웠을 때, 그때만큼 기쁠 수가 없었지요.(물론 지금은 웹 프로그래머지만요..)


 


1학년을 마치고, 군대를 2년 다녀와서 3년째에도 계속 그런 고민만 하고 있던 친구들은 정말 자신이 “프로그래밍에 소질이 없다.” 라는 생각 뿐, 쉽게 질리고 차츰 다른 진로를 찾아 나서게 되는 것입니다.


 


물론, 프로그래밍의 세계에서 발전하기 위해서는 저러한 과정이 필요하다고 봅니다. 허나, 과에 입학한 학생들 중 태반이 그저 성적에 맞거나 겉절이로 입학하는 경우가 많은데 그러한 학생들에게 학교는 “재미있는 수업” 보다는 지루하다 못해 포기하는 학생을 연달아 배출하는 것입니다. 프로그래밍에 흥미가 있어서(뭔가를 만들고 싶어서) 온 학생들도, 반복되는 도스 창에 입력/출력에 정말 쉽게 지쳐버립니다.


 


물론 학교 입장에서야 정말 공학적인 부분을 가르칠 수 밖에 없겠지요. 학교는 학교니깐요.. “포트폴리오는 자기들이 알아서 만들어라!” 는 것인데, 학생들은 감도 못잡고 포기하는게 실정이니 참 답답할 다름입니다. 학생들이 원하는 “프로그램”이라는 것은 콘솔이 아닌 win32 어플리케이션인데, 학생들이 그것을 알겠습니까. 학교에서도 충분히 그런 win32환경에서(혹은 맥/GUI리눅스 환경)도 저러한 공학을 더 쉽게 가르칠 수 있는데 말입니다.


 


그리고 무엇보다도 학생들은 그저 학교에서 하라는 대로만 해서, 저런 과정을 이수하고 나면 결국 뭐 중간정도 되면 그냥 대기업으로 빠지게 됩니다. 그리고 또다시 학교에서 배운 것은 그냥 무의식중에 남기고 새로운 환경에 적응하기 위해 피빠지게 애를 씁니다. GUI? 학교에서 그런걸 가르쳐 준 적이 있던가.. 아마 졸업한 학생 태반이 웹 서버 구축이나 통합 IDE를 제대로 다루는 법 조차 모를텐데 말입니다.. 전문학교 전산학과 졸업생도 그정도는 배워서 나오는데 그들은 대기업에서 그런 것을 홀로(혹은 사수를 통해) 배우기 위해 다시금 교육과정을 이수합니다.


 


학교에서 조금만 학생들에게 재미있게 가르쳐주기 위해서 조금만 더 자율적이고 쉽게 가르치면 될 것을 학생들은 피같은 20대를 대학에, 그리고 또다시 30대를 회사에서 그저 20년간 공부만 하는 것입니다.(대학원 생들은 더 하겠지요.) 앱스토어에서 어플을 만들어 개발을 하고싶다는 친구의 꿈 같은 것은 그저 학교의 중간고사와 기말고사, 그리고 계절학기에 묻히게 되는것이지요.. 참으로 답답할 노릇입니다.


 


왜 요즘 회사에서 학점 학벌 우월주의가 점점 없어질까요? 저런 교육 과정을 거친 학생들이 결론적으로 실무에선 써먹을 대가 없어서 입니다. 학교 교육과정중에 velocity가 있나요, ajax가 있나요. 학생들의 자율성과 아이디어는 차츰 저러한 공학 과정 속에 묻히게 되고 그들은 그저 사회의 챗바퀴에 들어가게 되는 것입니다.


 


저는 이러한 것을 대학에 입학하기 전부터 알았습니다. 하지만 아무것도 모르는 같은 컴공과 친구들이 불쌍하고 답답할 뿐입니다. 그 친구들이 지금 Win32 API를 배워서 VS같은 툴에서 메모장 같은 프로그램을 만들면 얼마나 기뻐할까요? 영문도 모르고 아무런 비전없이 그저 학교에서 주어진 수업만 듣는 컴공과 친구들이 불쌍할 뿐이군요..


 


대학교라는게 뭔가 프로페셔널을 갖춰서 학생들이 사회에 진출해서 어떤 것이든 잘할 수 있도록, 기반을 가르치는 것은 좋습니다. 하지만 제 생각에는 학교에서는 조금 더 학생들이 쉽게 흥미를 가질 수 있는(예로는 위에서 많이 들었지요 ^^;) 수업 과정이 있었으면 하는 바램입니다.


 



 


교과 과정을 송두리째 바꿀 수는 없겠지만 최소한 요즘 많이 이슈화 되고 있는 프로그래밍 기술(WPF, JavaFX, Flex, Ajax, XML 등)에 대한 단과과정 등이 저학년 학생들한테 다양한 기회로 다가왔으면 좋겠네요. 이를 통해 학생들이 자발적으로 “이론”에 대한 필요성을 인지할 수 있다면, 고학년이 되어 이러한 이론 수업을 받을 때 충실한 동기부여로 인해 열정적으로 수업에 참여하고, 자신의 비전에 맞게 학교에서 준비해 둔 각종 취업 준비 프로그램에도 적극적으로 참여할 수 있다고 생각되네요. 너무 무거운 대학이 되지 않도록!