아이들에게 코딩을 가르치는 것이 중요한 이유

미래부에서 ‘창조경제’ 관련한 정책으로 초등학교 때부터 코딩 교육을 시키겠다는 내용이 많은 논란을 낳고 있다. 대통령 업무보고에 MS 스몰베이식(Small Basic) 등을 가르치는 것을 정규 교과과정에 넣겠다는 것이 그 내용인데, 이와 관련하여 찬반과 관련한 다양한 이야기가 나오고 있다. 개인적으로는 코딩 교육에 대한 선입견을 타파하는 것이 중요하고, 이와 관련한 교육이 중요하다고 생각하지만, 미래부 업무보고에 들어간 형태의 베이식 언어를 초등학교 때부터 가르치고, 이를 정규교과에서 의무화하는 것은 자칫 잘못하면 엉뚱한 부작용을 낳을 수 있기 때문에 실행부분에 있어서는 시범적용과 민간에서의 역할을 확대하는 방향으로 진행하는 것이 옳다는 생각이다.

그렇지만, 일부 시대의 변화를 읽지 못하고, 무조건적인 반대를 위한 반대를 하는 사람들에게 코딩교육 자체에 대해서 다시 생각하게 만드는 계기가 될 수 있을까 하여, 별로 대단한 것은 없지만 간단히 이것이 어째서 중요한지, 그리고 어떤 면에서 장점이 많은지에 대한 글을 써 보고자 한다. 기초적인 합의가 없이 밀어붙인다고 정책은 되는 것이 아니기 때문에, 미래부에서도 건설적인 논의를 통해서 어떤 정책이 가장 적합할 것인지 공론화도 하고 많은 이야기를 듣고 취지를 살렸으면 좋겠다는 바램이다. 중요한 것은 정책의 취지이지, 각론 그 자체는 아니기 때문이다.

최근 코딩 교육을 중시하는 움직임은 비단 우리나라만의 문제는 아니다. 정보강국으로 꼽히는 에스토니아에서는 6세 때부터 컴퓨터 프로그래밍을 의무적으로 가르치며, 심지어는 수학과 과학 등의 교육과정 자체도 컴퓨터를 이용하는 것으로 바꾸는 개혁을 시도하고 있다. 미국에서도 이런 움직임이 최근 가시화되고 있는데, 코드아카데미(Codacademy)를 위시로 한 스타트업 기업들이 다양한 형태의 코딩을 가르치는 도구와 서비스들을 출시하고 있으며, 남녀노소를 가리지 않고 많은 사람들이 컴퓨터 프로그래밍을 배우기 시작했다. MIT 미디어랩에서 제작한 스크래치라는 비주얼 프로그래밍 도구는 이미 수 많은 어린이 프로그래머들이 올린 프로젝트의 수가 수십 만개에 이를 정도로 널리 알려졌고, DIY.org 라는 웹사이트를 운영하는 비영리재단에는 많은 수의 아이들이 직접 디자인하고 주도하는 프로그래밍 커뮤니티가 활발하게 운영되고 있다. 특히 최근 이런 분위기에 불을 지른 것은 페이스북을 공동창업한 마크 주커버그와 MS의 빌 게이츠를 포함한 ICT 업계의 거물들이 “이 나라 모든 사람들이 컴퓨터 프로그래밍을 배워야 하는 이유”라는 글로 시작하는 영상에 같이 출연하여 그 중요성을 강조한 것이 한 몫 하였다. 해당 영상은 아래 임베딩하였다.

물론, 코딩을 배우는 것은 아이들과 어른들에게 있어 다른 의미로 다가온다. 뉴욕시 블룸버그 시장도 코딩을 코드아카데미를 통해 배우고 있는데, 어른들의 경우 컴퓨터와의 소통의 수단인 코딩을 배우는 것이 앞으로는 마치 외국인과 소통하기 위해 외국어를 배우는 것과 같이 생활을 하고, 자신의 경쟁력을 높이는데 도움이 되는 수단으로 생각하는 경향성이 강하다. 그에 비해 아이들에게는 그것이 배움의 과정이기도 하고, 자라면서 자신의 역량을 키우는데 확실히 도움이 되는 어떤 기초적인 역할을 하지 못하고, 단순한 도구로서의 활용만 생각하는 경우라면 그 중요성이 확실히 떨어질 수 밖에 없다. 그렇다면, 코딩이 아이들이 자라면서 반드시 알아야 하는 그런 요소들을 가지고 있는지에 대해서 고민해 보아야 한다.

여기서 한 가지 언급하고 싶은 사실은 인류의 역사를 살펴보면 중요하다고 생각한 학문은 시대에 따라 변했다는 점이다. 우리가 신주단지처럼 모시고 있는 국/영/수가 언제나 영원할 것이라는 것은 착각이다. 플라톤 시대에는 웅변과 수사학과 같은 말을 하는 것이 가장 중요한 학문의 영역을 차지했고, 중세시대에는 종교와 관련한 학문들이 가장 중요했으며, 근대이후에나 수학과 과학의 중요성이 부각된다. 언어의 경우에도 영어가 우리에게 필수적인 학문으로 자리잡은 것이 얼마나 되었을까? 근대까지도 가장 중요한 언어학문은 라틴어였다. 교육방식에 대한 것도 마찬가지이지만, 이것까지 언급하면 글이 너무 길어지고 논점에서 어긋나므로 이 정도로 정리한다. 중요한 것은 교육이라는 것은 사회의 발전양상과 역사의 흐름에 맞추어 수정되어야 하는 것이며, 해당 시대에 맞는 교과과정과 교육방식이 도입되어야 사회에서 그 역할을 제대로 수행할 수 있다는 점이다.

그럼 코딩이 그런 시대적 변화와 잘 맞는 교육일까? 이것이 중요한 논점이 되겠다. 개인적으로는 코딩을 좀 넓게 보고 접근했으면 좋겠다. 컴퓨터 과학자들이나 프로그래밍을 직업으로 하는 사람들이나 다룰 만한 어려운 문법과 알고리즘을 외우고 이해해야 하는 그런 것이 아니라 레고블록처럼 창의적이고 자신의 무엇인가를 만들어낼 수 있는 그런 사고방식을 기르고, 실제로 성취의 기쁨을 느낄 수 있는 그런 도구로 바라보자는 것이다. 실제로 MIT 미디어랩의 스크래치를 비롯하여, 최근에 등장하고 있는 다양한 아이들 대상의 프로그래밍 관련 도구와 교육 서비스들은 과거 방식의 프로그램이라기 보다는 공작도구와 같은 느낌이 많이 난다.

확실히 아이들에게 정형화된 프로그래밍 언어의 문법을 가르치고, 콜론이나 세미콜론을 빼먹고, 스펠링이 틀렸다면서 잔뜩 발생하는 에러 메시지에 의한 스트레스를 받도록 하며, 아직 산수도 제대로 못하는데 알고리즘 타령을 하게 만드는 그런 교육은 무리다. 그렇지만, 블록쌓기를 하며 논리적인 생각을 기르게 하는 그런 정도의 교육은 가능하다. 처음에는 알고리즘이 들어가 있는 빌딩블록을 쌓아가는 방식으로 자신이 구상한 것들이 동작하도록 하는 기쁨을 느끼게 하고, 서서히 그 이면에 숨어있는 원리를 알려주면 충분하다. 아마도 이것만으로 자신들이 원하는 수준의 작업을 간단히 하고, 활용할 수 있다면 그 교육은 크게 성공한 것이며, 혹시라도 그 중에서 일부의 학생들이 프로그램이라는 것에 대해 매력을 느끼고 깊이 판다면 그들은 디지털 시대에 중요한 인재로 자라날 수 있을 것이다.

필자의 개인적인 경험을 이야기하면, 필자의 시대에는 중학교 기술과목에 의무적으로 베이식 언어를 가르쳤다. 아마도 필자와 비슷한 또래의 사람들은 모두 비슷한 경험이 있을 것이다. 그렇다고, 당시의 교육이 사회에 나와서 크게 중요했느냐고 묻는다면 답은 “아니오”이다. 실제로 프로그래밍이 관심이 많았던 필자는 세운상가에 가서 일본과 미국에서 나온 프로그램이 서적을 사서 그 내용을 분석하고, 독자적으로 프로그램을 만들어서 학창시절부터 관련 잡지에 기고를 하는 등의 활동을 하였다. 교과과정의 베이식은 흥미를 불러일으키는 데에 도움을 주는 것이지, 그것 자체로 어떤 큰 변화를 일으키지는 못한다. 그러므로, 지나치게 이를 강제화하거나 획일화해서 가르치는 발상은 곤란하다.

블록을 이용해서 익히는 재미난 프로그래밍과 코딩의 경우 우리 아이들이 얻을 수 있는 것은 논리적인 생각과 함께, 문제를 풀어내고 창의적인 도전을 쉽게 할 수 있다는 점에 초점을 맞추어야 한다. 필자의 아들은 이제 중학교 1학년이 되었는데, 5학년 정도부터 스텐실웍스(StencylWorks)라는 도구를 이용해서 간단한 게임을 즐겨 만들었다. 아이가 코딩을 하는 것을 보고 있으면 경이롭다는 생각이 들 정도다. 우리가 전통적으로 아는 방식의 코딩을 하지 않고, 수 많은 블록들을 이리저리 배치하고 수치를 입력하며 사물을 디자인하면서 프로그램을 만들어 나간다. 그 과정을 굉장히 빠른 속도로 하는데, 도저히 이해를 할 수가 없었다. 그런데, 해당 도구의 한쪽 탭을 클릭하자 그 복잡해 보이는 레고블록의 설계도가 필자의 눈에 익숙한 스크립트 언어의 코드로 변했다. 그 코드를 읽고 나서야 그 프로그램의 정체를 파악할 수 있었다. 놀라운 것은 아들은 해당 스크립트 언어코드는 너무 어렵다면서 보는 것조차 거부했다는 점이다. 달리 말해 필자의 아들은 비주얼 프로그래밍 방식에 익숙해서 그것을 총체적인 블록으로 인식하는 것은 잘하고 좋아하지만, 필자는 그런 그림으로는 이해할 수 없었고 텍스트로 된 프로그래밍 언어만 제대로 이해할 수 있었던 것이다. 이렇게나 서로 다른 인지능력과 표현방식을 가졌다는 것이 개인적으로는 큰 충격이었다. 그 이후에 고상한 프로그래밍 언어를 높이 생각하고, 비주얼 도구를 다소 하찮게 보던 필자의 태도도 달라졌다.

코딩을 배운다는 것은 일종의 논리적 언어를 배우는 과정이며, 어떤 것을 픽업해서 연결시킬 것인지를 아는 과정이다. 그러므로, 이런 논리적 언어가 가지고 있는 기초적인 개념 (루프가 어떻게 동작하고, 판단을 어떻게 하며, 계산을 어떻게 하는지, 어떻게 컴퓨터가 우리에게 주는 정보를 획득하고, 컴퓨터에게 일을 시키는 지 등)을 알게 하고, 창조적인 경험과 내가 만들어낸 것에 대한 성취감을 느끼도록 하는 것이 중요하다. 이를 통해 주입식 교육에 찌들어 있는 아이들에게 해방구 역할을 어느 정도 할 수 있도록 하고, 자신들이 무엇인가를 만들어낼 수 있다는 기쁨을 느끼게 하면서 그 중의 일부 열정이 있는 아이들이 더욱 깊은 공부를 할 수 있도록 도와주는 것이 올바른 방향이지, 여기에 전통적인 교육의 평가체계를 도입하거나 획일적인 교육을 한다는 것은 어불성설이다.

중고등학생들을 대상으로 하는 코딩교육은 이와는 또다른 접근방법이 필요할 것이다. 그렇지만, 분명한 것은 너무 지나치게 정해놓고 접근하며, 너무 빠르게 전면확산 시키려고 하면 되려 반발도 클 것이고, 교육도 제대로 되기 어렵다는 점이다. 방과후 학습과 창의체험활동 등의 제도를 최대한 활용하고, 민간에서 이런 의도로 접근하고 있는 다양한 스타트업이나 기업, 비영리단체 들과의 협력을 통해서 코딩문화가 확산될 수 있도록 해야 한다. 천편일률적인 접근보다 국내외에서 다양하게 등장하고 있는 민간에서의 서비스와 도구들 적절하게 활용하면서, 이를 적절하게 도입하는 방향으로 간다면 관련한 스타트업 생태계도 생길 수 있고, 본래의 정책을 입안하려는 취지와도 잘 맞을 것이다. 좋은 취지의 정책이 수행하는 방식의 문제로 제대로 도입되지 못하고 후퇴하게 된다면, 이는 하지 않는 것보다도 못한 결과를 가져올 수 있다.

글 : 정지훈
출처 : http://health20.kr/3058

%d bloggers like this: