블록 놀이부터 해보자
90년대 레고(LEGO)는 부의 상징이었다. 지금도 레고는 상당히 비싼 가격이지만, 90년대 제품 하나당 10만 원이 넘는 가격의 레고는 지금도 비싼 축인데 당시 물가를 감안하면 어마어마하게 비싼 장난감이었다. 당시 철이 없었던 나는 비싼 걸 알면서도 레고를 사고 싶어 했다. 형편이 넉넉하지 못했지만 레고를 좋아하는 아들이 안쓰러웠는지 부모님은 레고 제품을 몇 개 사주셨다. 밤새 레고를 조립하고 다시 부순 다음에 또 조립하기를 반복하며 레고홀릭에 빠져 보낸 어린 시절. 어린 시절 추억 한편에는 밤새 조립하며 놀았던 사자성, 해적선이 자리 잡고 있다.
어른이 되어 보니 키덜트(Kidult)라는 말이 유행이다. 장난감을 좋아하는 어른을 지칭하는 용어가 등장하자 어린 시절 잠재되어 있던 레고 사랑하는 마음이 다시 빼꼼 고개를 내민다. 특별한 날 나를 위한 선물로 레고를 하나 둘 사기 시작했다. 차이점이 있다면 어린 시절에는 만들고 조립하고를 반복하다가 원형의 모습을 다시 복원하지 못했다면, 지금은 한 번 조립한 레고는 책장에 고이 모셔져 있다는 것.
피는 못 속이나 보다.
32개월 우리 아들 역시 레고와 같은 블록을 좋아한다. 아빠의 레고 완성품을 때려 부순 다음에 마음대로 조립하며 놀기 시작한다. 마음은 찢어지지만 아들이 놀겠다는데 어쩌겠는가. 아빠를 닮아 레고를 좋아는 하지만 레고가 아직 아이의 손에는 조금 작은지 큰 블록을 가지고 노는 경우도 많다.
1박 교수 수련회를 다녀온 날. 현관문을 여니 아들이 아주 반가워하며 자신이 만든 블록 작품을 자랑한다.
"아빠 이거 우주 정거장이야!"
글의 제목은 '코딩 공부 첫 단추'인데 블록으로 서두를 시작한 이유는 무엇일까? 바로 블록 놀이가 어린아이가 코딩을 배우기 전 쉽게 접근할 수 있는 첫 번째 놀이로 꼽히기 때문이다. 이전 글에서 코딩 공부의 필요성에 대해 논한 바 있다. 인공지능 시대에 접어들며 코딩의 중요성이 강조되면서 초등학생 때부터 코딩을 배우고 있다. 하지만 아이가 선호하지 않거나 준비가 되지 않은 상황에서 무작정 코딩부터 공부하는 것은 역효과를 불러올 수 있다. 본격적으로 코딩을 배우게 되는 초등학교 이전에 미리 준비를 하고자 한다면 그 첫 단추는 바로 블록 놀이가 될 수 있다.
특히나 우리 아이와 같이 32개월, 3세에서 5세 정도의 아이들은 코딩을 배우기에 적절한 시기는 절대로 아니다. 아직 어린 나이이기에 코딩의 기술적인 부분보다는 코딩을 위해 필요한 마인드셋을 함양하고 문제 해결 능력을 키우는 활동이 더 중요하다. 이 시기에는 논리적 사고와 순차적 사고를 키울 수 있는 활동인 퍼즐이나 블록 놀이가 도움이 된다.
오해의 소지가 있을 것 같아 첨언하자면 코딩을 잘하기 위해서 블록 놀이를 시작해야 한다는 것이 아니다. 블록 놀이를 통해 자연스럽게 코딩을 위한 능력"도" 키울 수 있다는 것이다. 어디서나 쉽게 접할 수 있는 간단한 블록 놀이를 통해 자연스레 기본적인 사고 능력과 문제 해결 능력을 기를 수 있고, 이는 코딩은 물론 사회를 살아가면서 필요한 일반적인 문제 해결 능력을 배우는 첫 단추이기도 하다.
자, 그러면 블록 놀이가 코딩과 어떤 연관이 있으며, 어떤 점에서 도움이 되는지 보다 자세히 알아보자.
블록을 조립할 때 아이들은 다른 블록들을 어떻게 연결할 수 있는지, 어떤 구조를 형성하기 위해서는 어떤 블록을 사용해야 하는지를 결정해야 한다. 또한 블록을 특정 순서로 조립하면서 단계별로 어떤 작업을 수행해야 하는지도 끊임없이 고민한다. 이러한 과정은 코딩에서 알고리즘을 구성하거나 문제를 해결하는 데 필요한 논리적 사고를 키우는 데 도움이 된다. 또한 코딩에서 프로그램이 순차적으로 작동하도록 명령어를 정렬하는 과정을 블록 조립 순서를 혼자 사고하며 간접 체험해 볼 수도 있다.
아래 사진은 최근 우리 아이가 만든 블록 '작품'이다. 며칠 전 저녁, 왼쪽 사진에 나온 작품을 혼자서 뚝딱뚝딱 만들더니 아빠에게 자랑스럽게 이야기한다. '이거 티라노 사우루스야!' 얼핏 보면 어이없어 보이기는 하지만 나름 발 두 개에 앞으로 나온 머리까지 모양새는 갖추고 있다. 본인 나름의 티라노 사우루스를 만들기 위해 다리를 만들 생각을 했을 것이고, 다리 사이의 공간을 만들기 위해 블록을 어떻게 쌓아갈지 고민을 했을 것이다. 마치 우리가 코딩을 하며 작품을 만들어가는 것처럼. 오른쪽의 사진은 '트리케라톱스'를 만든 것이라고 한다. 아마 처음부터 공룡을 만들 생각은 아니었던 것 같다. 기초 공사가 평소 만들던 집의 형태와 비슷했기에. 하지만 위에 뿔을 두 개 달고 급히 작품의 제목을 트리케라톱스로 바꾸고는 아빠에게 자랑을 한다. 사진도 찍어달라며 포즈를 잡는 꼬마 악동.
코딩을 싫어하는 사람들의 특징 중 하나는 에러를 못 견딘다는 것이다. 오랜 시간을 투자해서 코딩을 했는데 버그나 오류가 발생하면, 어디서부터 잘못된 거지 모르겠고 짜증도 나면서 코딩을 포기하는 경우가 정말 많다. 그래서 코딩을 잘하기 위해서는 코딩 능력만큼이나 중요한 것이 고통스러운 디버깅 시간을 버티는 인내력과 실패에도 좌절하지 않는 회복 탄력성, 그리고 예상치 못한 버그를 해결할 수 있는 문제 해결 능력이다. 코딩에서 중요한 요소인 문제 해결 능력을 키우는 데에는 블록이 도움이 될 수 있다. 블록을 조립할 때 원하는 블록이 없거나 구조가 불안정해 무너지는 경우들이 있다. 이러한 문제를 해결하는 과정에서 아이들은 문제 해결 능력을 자연스레 키울 수 있다. 마치 코딩에서 버그나 오류를 해결하는 것처럼.
레고와 같은 블록 외에도 우리 집에는 다양한 블록이 있다. 그중 아래 왼쪽 그림과 같은 포테가르 자석 블록을 우리 아이는 최근 많이 가지고 논다. 알록달록한 자석 블록이 다양한 모양으로 구성되어 있어 이것저것 만드는 재미가 있는 블록이다. 아직 자석 블록으로 자동차를 만든다거나 관람차를 만들 수는 없지만 뚝딱뚝딱 자석을 붙여가며 혼자만의 도형을 만들고 있다. 그러던 어느 날 혼자서 자석 블록을 조립하다가 짜증을 내면서 울기 시작한 아들 녀석. 울면서 하는 얘기를 들어보니 아래 오른쪽 그림처럼 정삼각형 블록을 가지고 정육각형을 여러 개 만들고 있었는데, 마지막 정육각형을 만들려고 하니 빨간색으로 칠한 부분만큼의 정삼각형 블록이 보이지 않는 것이었다. 아이의 작품을 완성하는데 정삼각형 블록 2개가 부족한 상황. 엄마와 아빠는 정삼각형 블록 2개가 어디 있는지 황급히 찾기 시작한다. 방구석구석을 뒤지고 있는데 갑자기 아이가 완성을 외치며 박수를 치고 있다. 삼각형 블록을 찾았나 해서 봤더니, 삼각형 블록 2개로 빈 공간을 메우는 것이 아닌 빨간색으로 둘러쌓은 공간과 똑같은 모양을 가진 평행사변형 모양의 블록을 찾아 조립한 것이었다.
온전히 삼각형만으로 만들고 있었기에 삼각형만 찾고 있던 엄마와 아빠는 졸지에 바보가 된 상황. 그러면서도 아들의 창의력과 문제 해결 능력, 그리고 공간 감각 능력에 감탄을 금치 못했던 기억이 난다.
이렇듯 3세에서 5세, 혹은 유치원을 다니는 아이들은 코딩을 직접 한다기보다는 코딩에 필요한 논리적 사고와 문제 해결 능력을 배양하는데 초점을 맞추는 것이 좋다. 단순히 코딩만을 잘하기 위해서 블록이나 퍼즐 놀이를 하는 것이 아니라 앞으로 사회를 살아가는데 필요한 기본 소양을 키운다는 측면에서 접근하는 것이 좋다.
아직 우리 아이도 한국 나이로 4살, 만 2세이기에 이 수준을 못 벗어나고 있지만 이보다 큰 연령의 아이들에게 좋을 코딩 교육 방법도 한 번 생각해 보았다. 이 방법은 아직 어린 우리 아이에게 적용은 못하고 생각으로만 가지고 있단 점을 참고하시면 좋겠다.
시중에 많이 나와있는 로봇을 활용한 코딩이나 레고를 이용한 코딩도 좋은 접근 방법 중 하나이다. 다만 이 방법은 조금 더 고학년이 될수록 적합하기에 유치원생이나 초등학교 저학년에게는 어려울 수 있다. 이런 경우 '스크래치 주니어(Scratch Jr.)'와 같은 애플리케이션을 이용하는 것도 좋은 방법이다. 스크래치(Scratch)는 MIT Media Lab에서 만든 교육용 프로그래밍 언어로, 텍스트 코딩 언어와 달리 스크립트를 블록 맞추듯이 연결하여 코딩을 하는 방식이다. 스크래치로 게임이나 애니메이션 등을 만들 수 있어 어린아이들이 쉽게 접근할 수 있다는 것이 가장 큰 장점이다. 또한 누구나 무료로 이용할 수 있고 8~16세 초등학생, 청소년을 대상으로 만들어졌다는 것도 아이들이 처음 코딩 공부로 활용하는데 적합하다. 다만 스크래치가 조금 어렵게 느껴질 유아들을 위한 스크래치 주니어도 개발되어 있다. 한글판도 유료로 이용 가능하니 영유아라면 스크래치 주니어로 코딩을 시작해 보는 것도 좋을 것이다.
보다 한글화 되어 있는 방법을 원한다면 엔트리도 하나의 방법이다. 엔트리는 네이버 커넥트재단에서 개발한 교육 플랫폼으로 역시나 블록을 끼우는 방식으로 코딩하는 그래픽 기반 프로그램이다. 아무래도 우리나라에서 만든 거다 보니 참고할 자료도 좀 더 잘되어있고 접근성도 좋다는 장점이 있다.
여기서 하나 주목할 점은 엔트리와 스크래치 모두 블록을 이용한다는 점. 블록을 이용한 조립 방식이 코딩과 상당히 유사한 메커니즘이라는 것을 우리는 두 애플리케이션을 통해 알 수 있다. 앞서 강조한 블록 조립의 중요성 역시 스크래치나 엔트리를 통해 다시금 확인할 수 있다.
학교에서 운용하는 코딩 교육 플랫폼으로 엔트리와 스크래치가 널리 활용되고 있다. 정규 교과목에서도 상당 부분 다루고 있고, 대학의 신입생 교양 과목에서도 엔트리나 스크래치를 활용하기도 한다. 따라서, 소프트웨어 개발의 꿈을 가지고 있는 어린이라면 첫 시작부터 텍스트 코딩으로 시작할 것이 아니라 스크래치나 엔트리를 이용해 보자. 그리고 아직 아이가 어리다면 스크래치 주니어와 같이 더 쉬운 버전을 통해 장벽을 낮춰보자.
스크래치에 흥미를 가지고 잘해나가는 아이라면 이제 텍스트 기반의 초심자용 프로그래밍 언어에 도전할 일만 남았다. 시작부터 C언어로 덤벼드는 경우도 있겠지만 가급적이면 간단한 문법과 직관적인 구조를 가지고 있어 아이들이 쉽게 접근하고 배울 수 있는 언어가 좋다. 그래서 첫 시작 언어로는 파이썬(Python)이 가장 무난하다.
파이썬은 처음 코딩을 배우는 사람들이 쉽게 접할 수 있는 매우 친숙한 언어로 현업에서도 광범위하게 사용되는 프로그래밍 언어이다. 실제로 얼마 전 리서치에서도 파이썬이 세계에서 가장 많이 사용되는 언어라는 결과가 발표된 바 있다. 파이썬은 타 언어 대비 간결하고 문법적 허용도도 높아 초보자에게 딱이다. 워낙 인기가 많기에 다양한 교육 자료와 커뮤니티 지원이 있다는 것도 장점.
처음부터 쌩으로 파이썬을 하면 어려울 수 있으니 'Turtle' 모듈을 사용하는 것도 좋은 방법이다. 거북이를 파이썬 코딩을 통해 움직이는 것으로, 그래픽을 이용해 프로그래밍을 배울 수 있어 아이들에게 인기가 많은 모듈이다. 시중의 많은 교재들을 보면 시작을 'Turtle' 모듈로 하는 것을 쉽게 볼 수 있다.
파이썬을 배우는 거부터는 쉽지 않을 수 있다. 누군가는 즐겁게 배울 수 있고, 누군가에겐 고통의 시작일 수 있다. 이 단계에서 적성에 맞는지 잘 살펴보는 것이 부모의 역할이다.
연령 상관없이 파이썬에도 잘 적응한다 싶으면 본격적인 코딩의 세계로 인도할 수 있다. 파이썬을 마무리하고 C언어로 넘어가 프로그래밍 언어의 기초를 다질 것인지, 알고리즘을 배워 정보 올림피아드 루트를 탈 것인지는 선택의 몫. 사교육 시장에서는 올림피아드 루트를 추천할 것이다. 초등부, 중등부에서 입상을 하면 과학고 등의 특목고에 갈 확률이 높아질 수 있으니. 실제로 고등학교나 대학교 때 코딩에서 두각을 나타내는 사람들은 정보 올림피아드 출신이 많다.
그렇다고 무조건 올림피아드 루트를 타라는 것은 아니다. 정석대로 프로그래밍에 대해서는 기본 역량을 잘 갖추고 파이썬의 맛만 본 상태로 컴퓨터 관련 학과로 진학하는 것도 좋은 방법이다. 대부분의 컴퓨터를 전공한 사람들은 고등학생 때까지는 조금씩 실습만 해보다가 대학에서 본격적으로 공부를 시작한 것을 볼 수 있다. 너무 어린 나이에 혹독하게 몰아붙이면 환멸을 느끼고 다시는 코딩의 코자도 보기 싫어할 수 있으니.
지금까지는 코딩의 필요성, 코딩을 배우기 위한 테크 트리에 대해 알아봤다. 다음 글부터는 인공지능 시대에 맞춰 함양해야 할 기본적인 마인드셋. 코딩을 배우기 위해서는 필수적이며, 인공지능 시대를 살아가는 데에도 필요한 기본적인 정신적 능력들에 대해 살펴보도록 하겠다.