2019년 2월 6일 수요일

코딩, 무엇으로 배울 것인가

다시 대형 서점을 찾았다. 막상 아이에게 코딩교육을 하기로 마음 먹었지만 무엇을 어떻게 할지 아직 생각한 바 없었다. 구체적인 윤곽 그리기가 필요했다. 요즘 코딩교육 트렌드를 파악하는 것도 도움이 될 것이라 생각했다. 교재들이 공통으로 사용하는 방법론과 흐름을 엿보기로 했다. 누군가 먼저 지나간 발자국을 따라 가보는 것은 백지 상태에서 해볼 수 있는 손쉬운 방법 가운데 하나다. '거인의 어깨 위' 는 아니더라도 어느 정도 시야를 높일 수 있을 것이다.

코딩교육 서적은 서점에서 두 군데 코너에서 찾을 수 있었다. 컴퓨터 코너와 초등교육 코너에 각각 진열돼 있다. 교재의 다양함과 양에서는 컴퓨터 코너가 앞서지만, 트렌드를 파악하기에는 초등교육 코너를 따라오지 못한다. 초등교육 코너에는 이른바 ‘팔릴만한 책’들을 중심으로 평대의 한자리를 차지하고 있다. 어느정도의 매출이 뒷받침되고 있음을 어렵지 않게 짐작할 수 있다.   

교재 제목들은 딱 ‘초딩’스럽다. '화살표 코딩 가이드'를 따라 '놀이와 게임으로 코딩을 만나다' 보면 '홈페이지를 뚝딱, 게임을 척척' 만들 수 있는 '내일의 코딩왕'이 된다는 식이다. 코딩은 흥미와 동기유발에서 시작해야 하고, 코딩은 스스로 뭔가 만든다는 기쁨을 제공할 것이며, 또다시 흥미를 증폭시키는 선순환 구조를 가져갈 수 있다고 말한다. 교재의 가이드를 충실히 따른다는 전제하에 교재의 가이드를 따라가 보기로 했다.

대형 서점에서 판매하고 있는 코딩교육 관련 서적. 이름과 표지는 다양하다. 하지만 내용은 외관의 다채로움을 따라가지 못하는 상황이다. 김기산 제공
교재 대부분은 코딩을 통해 이야기를 만드는 방식으로.구성되어 있다. 예컨데, 철수가 “공받아”라 말하며 공을 차면, 영희가 받은 후 “공 잘차는구나”라고 되받는 식이다. 교재 대부분이 ‘스크래치(scratch)’ 혹은 ‘엔트리(entry)’를 활용하고 있기 때문이다. 이들은 비주얼 코딩 방식으로 분류되는데, 레고 블록 조립하듯 그래픽 인터페이스를 이용해 순차적인 이야기를 만들기 쉽도록 설계됐다. 물론 이 방식이 명령의 순차적 실행이라는 코딩의 기본에서 벗어났다고 보기는 어렵다. 하지만 문제 해결 과정이라는 코딩 교육의 목적과 결을 같이 한다고 선뜻 말하기도 어렵다.

교재 내용의 부실함도 문제다. 이야기 구성으로 이뤄진 탓이기도 하지만, 코딩의 기본 개념을 체계적으로 전달하기는 어려워 보인다. 잘해야 예제 따라해 보기 정도의 효과만 가능해 보인다. 전공자 입장에서 갸우뚱해진다는 말이다. 게다가 심각한 ‘버그(오류)’도 예제 코드에서 종종 보인다. 언뜻 살펴만 봐도 그러한데, 실제 진행할 때 더 많은 오류가 발견될 것이라 예상키는 어렵지 않다.

그렇다고 이들 비주얼 코딩을 포기하기는 어렵다. 그래픽 인터페이스가 가지는 친밀성은 매우 큰 장점이다. 특히 추상적인 텍스트 입출력 과정을 이해하기 어려운 초등학교 저학년의 경우 더욱 그러하다. ‘베이직(BASIC)’이라는 텍스트 기반의 초급 교육 언어로 코딩에 입문한 필자조차 그 나이 때에는 ‘*’ 문자를 이용해 삼각형 및 사각형 그리기로 기초를 배우지 않았던가. 어차피 인간의 이성은 공간과 시간이라는 틀로 세계를 이해하도록 설계됐다고 어떤 철학자는 말했다. 눈에 보이는 대로 세상을 인식하는 게 가장 익숙하다는 말이다. 코딩의 결과를 눈으로 확인할 수 있다는 면에서 비주얼 코딩의 경쟁력을 무시할 수 없다.

물론 언플러그드(Unplugged) 코딩도 가능하다. 얼마전 유튜브에 '땅콩잼 샌드위치 만들기'로 소개된 ‘정확한 설명서 시험(Exact Instructions Challenge)’도 이에 해당된다. 아이가 땅콩잼 샌드위치 만드는 과정을 설명서를 써오면 그에 따라 아빠가 만드는 것이다. 설명서를 쓰는 것은 코딩이고, 그에 따라 만드는 것은 컴퓨터의 실행과 같다. 언뜻 단순해 보이지만 한번에 성공하는 경우는 거의 없다. 의미가 함축적인 인간의 언어와 명확성이 보장돼야 하는 컴퓨터 명령은 그 성격이 다르기 때문이다.  

“땅콩잼 발라”라는 함축적인 지시는 “땅콩잼 뚜껑 열어”와 “나이프로 잼 퍼올려”, “나이프를 빵에 비벼” 등으로 쪼개져야 한다. 물론 더 세분화하는 것도 가능하다. 문제 분할은 추상화하는 과정과 함께한다. 문제의 추상화와 분할, 순차적 실행이라는 컴퓨팅 사고력을 종합할 수 있다는 점에서 훌륭한 대안이다. 게다가 실생활에서 사용되는 물건을 직접 만지며 결과를 바로 확인할 수 있기에 어린 아이와 친화성도 매우 우수하다. 다만 이것만 가지고 코딩교육을 한다 말하기는 왠지 어렵다. 주 코딩 교육에 보조로 활용하는 정도가 어울릴 듯 하다.


땅콩잼 샌드위치 만들기 유튜브 영상. 124만 조회 수를 자랑한다. “빵 위(on top of bread)에 잼 발라”라는 아이의 지침에 아빠는 위 가장자리에 잼을 바르며 아이를 괴롭힌다. 이렇듯 아이를 고문하는 영상으로도 유명하다.
다른 비주얼 코딩 플랫폼을 찾아보기로 했다. 구글은 ‘블록클리(Blockly)’를 만들었고, 마이크로소프트 창업자 빌 게이츠와 페이스북 창업자 마크 저커버그는 ‘코드닷오알지(code.org)’를 후원했다. 두 플랫폼의 ‘Getting started’(시작하기)를 따라해봤다. 모두 '4차산업혁명의 기린아'라 불리는 기업과 인물의 전폭적 후원으로 만들어진 만큼 왠지 다르다 느꼈다. 마인크래프트 등 게임하듯이 접근한 ‘코드닷오알지’의 방식은 독특했다. 특히 명령어 개수를 제한한 조건으로 미로 찾기 문제를 해결해야 하는 앵그리버드 교안은 문제 해결 과정으로서 코딩을 교육하는 데 매우 적합해 보인다. 하지만 치명적 단점을 찾는 데 긴 시간이 필요하지 않다. 한국어 지원은 역시 부족하다. 40년 동안 세계의 변방에 살았더니 이 정도의 불이익은 이미 익숙하다.

코드닷오알지의 교육 프로그램들. 마인크래프트 등 아이에게 친숙한 소재를 사용한 교안이 풍부하다. 한국어 지원이 부족한 것만 빼면 교안으로 사용하기에 손색이 없다.
또 다시 대형 서점을 찾았다. 결정의 시간이다. 더 이상 대안을 찾을 수 없었다. ‘스크래치’ 대신 ‘엔트리’를 선택했다. 한국에 특화됐다는 게 이유다. 정책적으로 정규 교육 과정에 적극 활용될 것이라는 예상도 한몫했다. 토종 ‘아래 한글’의 위세에 눌려 ‘MS 워드’ 따위는 관공서에 명함도 내밀지 못하는 나라가 대한민국 아니던가.

결국 ‘엔트리’를 활용한 교재 가운데 글자가 가장 크고 그림이 가장 많은 것을 골랐다. 2학년 수준에 맞춘 결과다. 내용은 교재마다 크게 다르지 않다는 점도 선택의 근거로 들 수 있다. 대신 저급해 보이기까지 하는 부실한 교재 내용은 교안을 추가하여 보완하기로 했다. 교재를 살짝 비틀어 코딩의 기본 개념을 체계화하는 방향으로 교안을 작성하고자 한다. 언플러그드 코딩 방법도 적극 활용해 보고자 한다. 숙제 방식도 고려할 예정이다.

알고리즘은 정해진 답이 없다. 라면을 끓이는 데 수프를 먼저 넣는 사람이 있고, 면부터 넣고 수프를 넣는 사람도 있다. 심지어 찬물에 면을 넣고 나서야 불을 켜는 사람도 있다. 면의 질감이나 효율성 측면에서 차이는 있겠지만, 그렇다고 그릇된 방법이라고 볼 수 없다. 교안도 마찬가지다. 어떤 방식이 좋다, 나쁘다 말하기 아직 어렵다. 일단 필자의 개발 경험을 기반으로 교안을 만들 것이다. 아이와의 교감을 통해 교안의 틀거리를 계속 수정할 것이다. 결국 모니터를 쳐다보는 아이의 눈빛과 표정에서 이 실험의 결과를 확인할 수 있을 것이다. 코딩이라는 놀이터에서 스스로의 ‘유니버스’를 만들어가는지 지켜볼 것이다.

코딩 툴 '스크래치'의 고양이 캐릭터와 '엔트리'의 봇 캐릭터. 스크래치’ 대신 ‘엔트리’를 선택했다.



 동아사이언스

댓글 없음: