초등학생 코딩 교과서, 프로그래밍 언어보다 '개념'에 집중
2018.07.17 17:59 게임메카 김미희 기자
올해 학부모 최대 키워드는 ‘코딩’이다. 올해부터 중학교에 ‘코딩 교육’이 의무화됐고, 내년에는 초등학교로 확대된다. 학부모 대부분이 학교에서 배워본 적 없는 ‘코딩’을 자녀에게 가르쳐야 한다고 생각하니 어디서부터 무엇을 준비해야 할 지 감이 잘 오지 않는다. 더군다나 ‘코딩’이라는 분야는 성인에게도 낯설고 복잡하게만 느껴지기에 학부모 입장에서는 걱정부터 앞선다.
이러한 와중 학교에서 어떠한 방식으로 코딩을 가르치는지 한눈에 볼 수 있는 자료가 공개됐다. 한국콘텐츠진흥원이 만든 ‘코딩 교과서’다. 아이들을 가르치는 현장에서 사용하는 교과서를 보면 태어나서 처음 보는 ‘코딩’을 어떻게 쉽고, 친숙하게 아이들에게 알려줄지를 짐작할 수 있다.
그 중에도 중요한 것은 시작이다. ‘시작이 반’이라는 말처럼 ‘코딩’이 처음부터 너무 어렵다면 중학교, 고등학교로 넘어가도 해당 과목에 흥미를 가지지 못할 수 있다. 다시 말해 코딩을 처음 배우는 초등학교 저학년이 코딩을 부담스럽지 않고, 재미있게 느끼도록 도와주는 것이 중요하다. 이에 한국콘텐츠진흥원 공식 홈페이지에 소개된 초등학교 저학년용 코딩 교과서를 통해, 코딩을 처음 맛보는 아이들이 어떻게 이를 배우게 될지 알아보는 시간을 마련했다.
코딩과 가장 친한 직업, 게임 개발자부터 공부한다
먼저 눈이 가는 부분은 코딩에 대해 공부하기 전에 게임과 게임 개발자에 대해 알아보는 시간을 마련한 것이다. 교과서 첫 장 주제 자체가 게임은 무엇이고, 게임 개발자가 무엇을 하는 직업인지 알아보는 내용이다. 교과서 마지막에 학생들이 직접 만들어보는 ‘런 게임’에 대해 알아보는 것을 시작해 게임 기획자, 프로그래머, 그래픽 디자이너처럼 게임을 만드는 다양한 직군과 이들이 하는 일을 자세히 소개하고 있다.
▲ 본격적인 이야기에 앞서 게임과 게임 개발자에 대해 알아보는 시간을 가진다 (자료출처: 한국콘텐츠진흥원 공식 홈페이지)
여기에 교사가 참고하는 ‘지도서’에는 게임 사업을 담당하는 ‘게임 마케터(게임 사업 PM)’와 같이 개발자가 아닌 직군도 소개되어 있으며, 일반적으로 알려진 그래픽 디자이너 외에도 게임에 쓰는 소리를 만드는 ‘사운드 디자이너’, 인터페이스를 맡는 ‘인터페이스 디자이너’처럼 세부 직군에 대한 설명도 있다. 또한 ‘게임 개발은 협동 작업’이라는 실제 제작 현장에 대한 언급이나 게임 개발자를 꿈꾼다면 이러한 능력을 길러야 한다고 알려주는 대목도 눈길을 끈다.
코딩에 대해 본격적으로 배우기 전에 ‘게임 개발자’라는 직업에 대해 배우는 과정을 마련한 이유는 크게 두 가지로 보인다. 우선 교과서 최종 목표가 ‘게임 개발’이기에 이 일이 무엇인지 배워야 ‘내가 공부할 일’에 대해 쉽게 이해할 수 있다. 또 다른 측면은 진로탐색이다. 앞서 말했듯이 게임 개발과 코딩은 밀접하게 연결되어 있다. 여기에 게임은 초등학생이 가장 많이 하는 취미 생활이기도 하다. 따라서 ‘게임 개발자’는 코딩과 관련이 있으면서도 학생들의 관심을 끌만한 직업이다.
알고리즘, 순서도, 디버깅… 복잡한 코딩 과정을 알기 쉽게
또 하나 눈길을 끈 점은 눈높이다. 자칫 어려워 보일 수 있는 ‘코딩’을 초등학생도 이해하기 쉽게 풀어서 설명한 것이다. 컴퓨터가 해야 할 일을 순서대로 명령을 내리는 ‘알고리즘’을 예로 들어보다. 이에 대해 설명할 교과서에서는 어려운 이론을 다루는 것보다 로봇이 학교에 가서 수업을 듣는 상황을 예로 든다. ‘학교 가기 -> 가방 열기 -> 인사하기 -> 자리앉기 -> 책 꺼내기 -> 수업 듣기’처럼 로봇이 할 일을 순서대로 생각해보도록 하는 것이다. 이처럼 컴퓨터에 순서대로 명령을 내리는 것을 ‘알고리즘’이라고 소개해 이해를 돕는다.
▲ 알고리즘이라는 개념을 예시를 들어 쉽게 풀어냈다 (자료출처: 한국콘텐츠진흥원 공식 홈페이지)
▲ 로봇이 청소할 때 할 일을 순서대로 나열해보는 문제도 있다 (자료출처: 한국콘텐츠진흥원 공식 홈페이지)
‘알고리즘’ 외에도 ‘순서도 짜기’, 조건에 따라 다른 행동을 취하게 하는 ‘조건문’ 등을 배울 수 있다. 가장 눈에 뜨이는 부분은 ‘반복 구조’를 이해하는 부분이다. 학생들이 특정 동작이 반복되는 춤을 추고, 어떤 동작이 어떠한 순서로 반복되는지 찾는 것이다. 예를 들어 춤이 동작 1 -> 동작 2 -> 동작 3 -> 동작 1 순이라면 앞서 이야기한 순서대로 일일이 코드를 짜 넣지 않고, 동작 1,2,3을 ‘반복’으로 처리하면 짧은 코드로 게임 속 캐릭터를 춤추게 할 수 있다.
▲ 순서도 개념을 '라면 끓이기'라는 친숙한 소재로 설명했다 (자료제공: 한국콘텐츠진흥원 공식 홈페이지)
▲ 특정 동작을 반복하는 '춤'을 살펴본 후 (자료출처: 한국콘텐츠진흥원 공식 홈페이지)
▲ '반복 구조'라는 원리를 이해한다 (자료출처: 한국콘텐츠진흥원 공식 홈페이지)
이처럼 일상에서 보기 쉬운 소재를 통해 ‘코딩’ 기본지식을 배우는 과정을 거치고 나면, 중요 대목마다 배운 이론을 복습하는 연습문제가 있다. 앞서 이야기한 ‘반복 구조’에 대해 춤으로 원리를 배운 다음, 캐릭터가 걸어간 대로 그림이 그려지는 ‘화가 게임’에서 ‘정사각형’을 그려보는 것이다. 사각형을 그릴 때 핵심이 ‘반복 코드’다. ‘100픽셀 앞으로 간 후 90도로 회전한다’를 ‘4회 반복’으로 짜 넣으면 긴 알고리즘을 짧게 압축할 수 있다.
▲ '앞으로 100픽셀 이동 후 오른쪽으로 90도로 돈다'를 4번 넣지 않고 반복 블록을 사용하면 코드를 짧게 정리할 수 있다 (자료출처: 한국콘텐츠진흥원 공식 홈페이지)
배웠으면 써먹어야지, 간단한 게임 만들기로 마무리
이론을 배우고, 연습을 통해 내공을 다졌다면 남은 것은 실전이다. 게임 만들기에 도전하는 것이다. 그 전에 한 가지 짚고 넘어가야 할 과정이 있다. 바로 ‘디버깅’이다. 디버깅은 코드 중 잘못된 부분을 찾아서 고치는 것이다. 이를 배우는 과정도 ‘꽃에 찾아가 꿀을 먹도록’ 꿀벌을 움직이는 코드를 스스로 짜게 한 후, 프로그램을 돌렸을 때 꿀을 먹지 못하면 잘못된 코드를 스스로 찾아 고치는 과정을 반복하게 한다.
▲ 단계적으로 '벌'을 움직이게 해 잘못 짜인 코드를 찾아내고 고치는 과정이 포함되어 있다 (자료출처: 한국콘텐츠진흥원 공식 홈페이지)
알고리즘부터 코드 짜기, 디버깅까지 모든 것을 배운 아이들은 드디어 ‘자기 게임’을 만들어본다. Code.org에서 무료로 제공하는 다양한 리소스를 사용해, 내가 원하는 게임을 기획하고, 코드를 짜서 완성하는 모든 과정을 담았다. 초등학생들이 만드는 만큼 과정 자체가 간단하고, 앞서 배운 내용으로 모두 해볼 수 있는 수준이다.
이 정도면 한 학기 동안 배운 코딩으로 ‘무언가를 만들었다’는 느낌을 받기에 충분하다. 캐릭터와 배경, 장애물 등을 보고 이에 어울리는 스토리를 생각하고, 공중을 날며 높은 점수를 얻는 것이 목표인 게임에 필요한 규칙을 생각하고, 이 규칙을 직접 코드를 짜서 게임에 넣는다. 보기에는 간단하지만 꽤 세밀한 규칙이 필요하다. 단순히 캐릭터가 난다는 것을 넘어 ‘캐릭터가 땅에 떨어지면 게임이 끝난다’와 같은 조건과 이에 대한 결과를 묶어서 넣어야 한다. 이론부터 실전까지, ‘코딩’이 무엇인지 배우고 ‘게임 만들기’를 통해 체험하며 단원이 마무리된다.
▲ 어떤 게임을 만들겠다는 간단한 기획서도 만들고 (자료출처: 한국콘텐츠진흥원 공식 홈페이지)
▲ 게임 진행에 필요한 규칙도 넣어가며 진짜 게임을 만들어본다 (자료출처: 한국콘텐츠진흥원 공식 홈페이지)