본문 바로가기

IT/IT일반

코딩을 교과목에 포함하는 것에 대해 깨달아야 할 사실


 '코딩 교육이 왜 필요한가?'에 대한 질문이라면 '논리를 키우는 데 좋으니까.'라고 간단하게 말할 수 있습니다. 하지만 왜 논리를 키우는 데 좋은지 코딩을 교육 과정에서 접하지 않은 사람이라면 이해하기 어렵지만, 현대 수많은 천재가 컴퓨터 공학에 빠져있으니 그러려니 여기고, 쉽게 '내 아이의 논리적인 사고를 위해서 학교에서 코딩을 가르치면 좋지.'라고 생각하게 하기에 좋은 장치입니다.
 


코딩을 교과목에 포함하는 것에 대해 깨달아야 할 사실
 
 실제 코딩을 학교에서 가르친다는 얘기가 나오자 한국의 교육 상황에 빗대어 '코딩을 가르치는 사교육이 늘겠군.'이나 '정형화한 교육으로 코딩의 가치를 훼손하겠군.'이라는 의견을 쉽게 볼 수 있었습니다. 코딩이 사고를 위한 교육이지만, 교과목에 포함하여 틀에 갇혀 점수 따는 목적으로 변질한다면 지금보다 훨씬 암담한 교육 현실이 될 수 있기 때문입니다.
 
 


 미국 정부는 오는 10월 1일부터 시작되는 내년 예산안에 40억 달러 규모의 컴퓨터 과학 교육 지원 예산을 포함하기로 했습니다. 각 주의 컴퓨터 과학 교육을 지원하기 위한 것입니다.
 
 미국 버락 오바마 대통령은 '모든 미국의 학생들이 코딩을 배워야 한다.'라면서 '우리의 아이들이 미래 직업에 대한 준비가 필요하고, 이번 지원의 목적은 컴퓨터로 일하는 것이 아닌 분석하고, 코딩하는 기술을 배워서 능력을 키우기 위한 것이다.'라고 말했습니다.
 
 코딩을 교육 과정에 포함하려는 미국의 움직이나 강조하는 중요성, 그리고 우리나라의 상황을 고려하면, '우리도 대세에 따라서 코딩을 교육 과정에 넣어야 한다!'라고 주장하는 건 쉬운 일입니다. 왜 코딩을 배워야 하는지 말해주고 있죠. '분석하고 코딩하여 능력을 키운다.'
 
 그러나 정확하게 '무슨 능력'이라거나 '어떻게 실용적인가'를 물으면 명확하게 대답할 수 있는 학부모는 거의 없을 겁니다. 왜냐면 우리가 학교에서 배우는 수학이 어떤 실용성이 있으며, 과학자가 될 게 아니니 과학이라는 교과를 선택하지 않고, 당연하게 사용하는 언어이니 심화할 필요가 없다고 실제 여기기 때문입니다. 그저 점수를 따서 더 나은 상급 교육 기관으로 가기 위한 과제이니까요.
 
 그 과제에 코딩을 포함하는 것이니 상기한 우려가 나오는 건 당연합니다. 그럼 어떤 해결 방안이 있을까 고민을 하겠지만, 필자는 해결 방안을 찾는 것보다 목적을 훨씬 정확하게 전달하는 게 중요하다고 생각합니다.
 
 


 애초에 코딩을 왜 학교에서 배워야 하는지 이해하는 것부터 필요합니다. 무작정 사고를 키우기 위해서라면 학교에서 레고 조립을 가르치는 쪽도 고려할 수도 있을 텐데, 컴퓨터를 학문으로서 가르치겠다는 것에 의문을 두어야 합니다. 그냥 오바마가 그리 말했으니 그렇다는 게 아니란 말입니다.
 
 컴퓨터가 일상에 완벽하게 녹아있는 물건이다 보니 보통 자신이 사용하는 범위 안에서 컴퓨터를 생각하기 마련입니다. 좀 더 쉽게 스마트폰도 포함해야겠네요. 어쨌든 필요한 앱을 설치해서 도움을 얻는 것, 그리고 컴퓨터 과학은 이런 도움을 줄 수 있는 걸 연구하는 것이라는 게 일반 대중이 컴퓨터 과학을 보는 시각입니다.
 
 그러니 코딩을 학교에서 배우는 게 어떤 학문적인 영역이라기보단 '앱을 개발하는 기술을 학교에서 가르치는 건가?'라고 생각하기도 쉽고, 덕분에 '프로그램 개발을 할 게 아닌데 왜 교과목을 추가하면서 코딩을 배워야 하는가'라고 말할 수도 있습니다.
 
 그러나 이 부분은 우리가 학교에서 수학이나 과학을 배우는 것과 같은 맥락입니다. 사칙연산만 할 줄 알면 살아가는 데 아무런 문제가 없다고 다수가 느끼지만, 학교에서 수학을 가르치는 것에 딴죽을 거는 이는 없을 겁니다. 수학은 고대부터 오랜 시간 정립한 학문으로서 인간이 살아온 시간과 맞바꾼 거대한 지식의 영역이니까요.
 
 그런데 컴퓨터 과학도 그렇습니다. 전통적인 수학보다 역사는 짧지만, 기계와 인간의 접점을 만들려는 노력, 그 노력에 기반을 두어 기계가 인간의 언어를 이해하고, 비슷하게 사고하여 결과물을 내놓는 학문으로서 발전했습니다.
 
 그저 모니터에 나타나는 화면을 보는 방법을 연구한 게 아니라 기계와 인간의 접점을 어떻게 하면 가깝게 할 수 있는가 하는 복합적인 사고, 그리고 그 사고를 수학적 능력으로 풀어내는 영역이 결합하면서 나타난 게 컴퓨터 과학이고, 코딩으로 앱을 만드는 건 일부분이죠.
 
 '그래서 기계와 인간이 접점을 가져야 하는 이유가 뭔데?'
 
 세부적으로 말하려면 역사책을 써야겠지만, 간단히 말하면 현재 사용하는 컴퓨터가 그 연구의 산물이기 때문입니다. 산물이라는 건 전자상가에 파는 기계를 말하는 게 아니라 연산기계를 인간이 쉽게 사용할 수 있도록 하는 방법, 기계어가 아닌 흔히 아는 프로그래밍 언어로 컴퓨터가 연산을 수행하게 하고, 수행한 연산을 그래픽 환경으로 인간이 받아들이게 하며, 이를 더 쉽게 제어하기 위한 상호 작용 연구 등을 얘기하는 것입니다.
 
 우리는 쉽게 컴퓨터의 기능을 사용하지만, 개념만 존재하던 것을 마우스와 키보드만 있으면 조작할 수 있는 거로 바꿔놓은 건 단순한 아이디어와 프로그래밍 언어에서 비롯한 게 아닙니다. 웹 브라우저의 뒤로 가기 버튼을 마우스 포인트를 옮겨 클릭하는 행위조차 아무것도 상상하지 않았던 백지상태의 컴퓨터 과학이 거듭 발전하면서 나타나게 된 거죠.
 
 그 상상력과 연구가 만들어 낸 게 현재 사용하는 컴퓨터이고, 스마트폰입니다. 컴퓨터를 만들 일이 없을지는 모르지만, 그걸 토대로 연구한 학문이 교육으로서 아이들에게 생각하는 방법을 가르칠 수 있고, 미래의 아이들이 그 생각하는 방법으로 또 새로운 가능성을 제공하길 바라는 것에 코딩 교육의 의의가 있는 겁니다.
 
 컴퓨터 과학이 무엇인지, 코딩이 무엇인지 배운 사람이 식당을 운영하고 있다면, 손님들이 더 간편하고, 쉽게 메뉴를 확인하여 예약하는 방법을 소프트웨어적으로 궁리하려고 할 것입니다. 전단지나 병따개를 인쇄하는 것부터 떠올리는 게 아니고요.
 



 필자는 이것이 코딩 교육에서 가장 선행할 핵심이라고 생각합니다. 사실 수학이나 과학, 인문학 전반의 핵심이지만, 컴퓨터 과학조차 그런 과목으로 만들어서는 안 된다고 생각합니다.
 
 아이들의 미래를 상상할 수 있는 능력을 갇힌 코딩 교육이 앗아가는 건 사학을 정답을 맞추기 위해 배우는 것만큼 끔찍하고, 코드 한 줄을 더 외우는 것보다 상상한 것을 구현하는 것에서 성취감을 느끼는 것, 그리고 더 멋진 상상을 할 수 있게 하는 것이야말로 미국이 컴퓨터 과학을 교육 과정에 포함하려는 이유이기 때문입니다.
 
 그 점에서 코딩을 기술이나 산업적으로 생각할 것이라 아니라 새로운 학문으로 코딩 교육의 도입을 바라볼 필요가 있습니다. 수학을 배우고, 역사를 배우는 것과 다르지 않다고 인식해야 합니다.