<6>김종훈 초등컴퓨터교육전공 교수

▲ 김종훈 초등컴퓨터교육전공 교수

◇SW 교육이 필요한 이유는 무엇인가?

초중고학생은 물론이고 대학에서도 SW(소프트웨어)교육이 중시되고 있다. 신기술 중에 소프트웨어가 들어가지 않는 분야는 없다. “이 세상을 변화시킬 수 있는 것은 소프트웨어밖에 없다”라는 말이 있을 정도로 국가경쟁력을 위해서는 소프트웨어가 필수적이다. 이와 같은 소프트웨어의 중요성은 일회성이 아니라 10년 후, 100년 후를 생각해도 중요성은 커질 수밖에 없다.

◇어려서부터 SW교육을 받아야 하는 이유는 무엇인가.

어린이들이 사고가 굉장히 유연해 받아들이는 속도가 대학생들에 비해서 빠르다. 소프트웨어 교육의 목표는 단순히 프로그래머를 만들려고 하는 것은 아니다. 특별한 경우 제외하고, 소프트웨어 교육의 핵심은 항상 ‘문제해결능력’ 증진이다.

어떤 문제가 주어졌을 때 해결하는 방법을 알고리즘이라고 한다. 요즘 많이 이야기 되는 것이 컴퓨테이셔널 팅킹(computational thinking), 즉 컴퓨팅 사고력이라는 것이다. 문제가 주어졌을 때 문제를 해결하는 방법, 알고리즘을 만들고 그 알고리즘을 이용해서 결과물을 만드는 전체적인 과정이 컴퓨팅 사고력이다. 그런데 알고리즘이 하나만 있는 것이 아니라 똑같은 문제라도 해결하는 방법이 여러 개 있다. 알고리즘을 만드는 능력을 키우는 것이 주된 목적이다. 그와 동시에 다른 교과와 연계해서 융합적인 사고를 증진시키는 것 또한 소프트웨어 교육의 목적이다.

대학생 때부터 교육하면 사실 늦는다. 대학에 입학해서 기본적인 소프트웨어를 배우고 융합적인 사고까지 이르기는 굉장히 쉽지 않다. 소프트웨어 교육이 문제해결능력을 증진하기 때문에 읽기, 쓰기, 수학만큼 중요한 것이라는 주장도 있다. 실제로 선진국은 이렇게 생각해 다른 주요 과목과 똑같은 비중으로 필수 교육을 하고 있다. 영국은 7살부터 필수로 매주 1시간 씩 배우게 한다. 프로그래밍 강국 인도도 초등학교 1학년부터 교육용 프로그래밍 언어를 통해 이미 실시하고 있다.

어릴 때부터 하되 쉽게 접근할 수 있도록 텍스트가 아닌 블록 구조로 이루어진 스크래치나 앱 인벤터 등을 이용해서 흥미를 느낄 수 있도록 유도해야 한다.

◇SW교육을 방법론적으로 설명하자면.

SW교육을 하는 학문적 방법론을 언플러그드 컴퓨팅, 프로그래밍, 피지컬 컴퓨팅으로 크게 3가지로 분류한다.

언플러그드 컴퓨팅은 대학생과정에서는 사실상 이뤄지지 않고 있다. 초등학교 저학년들에게 흥미를 주기위해 하는 방법으로 컴퓨터 없이 컴퓨터 과학을 학습하자는 방법이다. 이 방법은 사실상 한계가 있다. 실제 무언가를 제작하는 과정까지 진행되지 않고 다룰 수 있는 주제가 제한적이다. 그래서 소프트웨어 교육에서 중요한 이슈를 모두 포괄할 수 없다. 게임이나 활동위주로 교육하기 때문에 휴먼 인터페이스, 그래프 색칠하기, 오토마타 등 알면 나쁠 건 없지만 사실 몰라도 되는 것들이 굉장히 많기 때문이다. 일반적인 컴퓨터 과학에서 중요한 주제인 컴퓨터의 구조, CPU 동작원리, 운영체제 동작 원리와 같은 핵심내용이 전혀 없다.

두 번째가 프로그래밍으로 SW교육의 핵심이라 할 수 있다. 프로그래밍 언어를 이용해 프로그램을 만드는 과정으로, 최소의 비용으로 최대의 효과를 볼 수 있는 교육이 프로그래밍 과정이다.

마지막으로, 피지컬 컴퓨팅은 센서 등을 이용하여 사용자로부터 물리적인 방식으로 정보를 입력 받아 처리한 결과를 물리적인 방법으로 출력하는 것으로, 대표적인 피지컬 컴퓨팅 도구로 아두이노나 비트브릭이 있다. 어린이 대상으로 할 때는 비용이 든다는 단점이 있지만 대학에서는 나름 의미가 있다. 소프트웨어 교육을 통해서 보여줄 수 있는 최종 결과물을 발현할 수 있는 방법이기 때문이다.

◇우리나라의 SW교육 현황은.

중학교는 2018학년도부터 필수 교과목으로 되고, 졸업할 때까지 34시간 이상으로 보통 2학기 동안 배우게 된다. 초등학교는 실과 과목 중 1개 단원으로 들어가 졸업 전까지 17시간 이상 강의한다. 필수 독립교과로 되려고 굉장히 노력했지만 반대가 심해 이뤄지지 못했다. 고등학교에서는 심화선택에서 일반선택으로 전환된다. 대학에서는 SW중심대학 8개 대학을 선정해 미래창조과학부에서 6년 동안 매년 20억을 지원한다. 선정된 대학에서는 비전공자를 포함한 모든 학생들에게 소프트웨어 기초 교육을 의무화한다.

◇초등학생이 사용하는 프로그래밍 언어는 무엇인가.

일반적인 프로그래밍 언어를 사용하진 않고, 초보자도 쉽게 배울 수 있는 기능의 언어인 교육용 프로그래밍 언어로 공부한다. 대표적인 언어로 스크래치와 앱 인벤터가 있다.

스크래치는 2007년에 MIT 미디어랩에서 개발한 무료 소프트웨어이다. 다른 언어와 달리 온라인 상 웹사이트에서 다운받지 않고도 사용할 수 있다. TIOBE가 선정하는 세계에서 인정받는 프로그램 순위 중 교육용 프로그램으로는 1위(전체 23위, ‘2016년 2월 기준)이다. 다른 여타 프로그램과 달리 텍스트 언어가 아니라 스크래치는 블록으로 이뤄져 있다. 블록을 끌어다 놓으면 블록의 내용대로 ‘스프라이트’라는 고양이가 블록의 명령대로 행동한다. 이런 면에서 아이들이 굉장히 쉽고 재밌게 만들 수 있는 구조이다. 블록을 끌어다 놓기 때문에 문법오류는 발생하지 않는다는 장점이 있다. 또 그래픽, 사운드, 애니메이션 등 다양한 미디어가 제공되고 자신이 만든 프로그램을 공유하고 피드백 받는 공유기능이 있다.

앱 인벤터는 안드로이드 앱을 만드는 언어이다. 구글에서 만들었고, 스크래치를 운영하는 MIT 미디어랩에서 같이 관리하고 있다. 학생들 가르쳐보면 앱 인벤터를 훨씬 좋아한다. 무언가 실질적으로 만들어 볼 수 있기 때문이다.

기타 우리나라 벤처회사가 만든 엔트리라는 교육용 프로그램이 있고, 교육용 프로그램의 아버지라고 불리는 로고도 있다. 그런데 로고는 텍스트 기반이어서 명령어를 직접 텍스트로 입력해야 한다. 지금도 교육용 프로그램으로 활용되고 있다.

▲ 포항제철고등학교에서 소프트웨어 교육을 진행하고 있다.


◇SW 교육을 배움으로써 어떻게 활용 또는 응용할 수 있는가?

“교육 다 끝났는데 소프트웨어 교육 어떻게 공부시키죠?” 엄마들이 가장 많이 하는 질문이다. 소재는 바로 옆에 있다.

미국의 어떤 학교는 수학교과서에 한 단원 끝나면 배웠던 내용을 프로그래밍 하는 활동이 한 단원 마다 있다. 예를 들어 초등학생들이 분수의 덧셈과 뺄셈을 배웠다고 했을 때, 그것을 프로그래밍하려면 수학의 기본 이론을 확실히 알아야하는 것이 우선이다. 그 다음에 문제해결능력이 증진이 되는 효과를 기대할 수 있다. 한 마디로 2가지 효과를 다 볼 수 있는 것이다.

멀리서 찾으려 하지 말고 학교에서 배운 수학이나 과학 내용을 아이들이 프로그램으로 만들게 하는 것을 학부모들에게 권한다. 음악을 배운다면 스크래치에서 구현가능하다. 악기 종류도 선택할 수 있다.

◇어떻게 해야 올바른 교육방법이고 어떤 방향으로 나아가야 하나.

선생님이 프로그램을 만들어 놓고 아이들이 따라하기 식으로 만드는 교육 방법은 큰 교육적 효과를 보기 힘들다. 일부든 전체든 스스로 사고하면서 프로그램을 제작해보도록 해야 한다. 선생님들은 방향만 제시해줄 뿐이다. 커뮤니티에 올라오는 질문에 답하는 과정이 프로그램 실력을 굉장히 향상시킨다.

나아갈 방향으로는 초ㆍ중등학교에서는 문제해결능력을 증진하는 교육 방향으로 가야된다. 왜냐하면 함축된 교육시간 내에서 교육적인 효과를 보려면 문제해결능력 신장 중심으로 교육이 이뤄져야하기 때문이다. 대학에서는 비전공학생들을 대상으로 각 전공에 맞춤형 소프트웨어 교육을 실시해야 한다. 컴퓨터 언어 하나 가르치는 것에 그치지 말고 실질적으로 취업과 전공에 도움이 될 수 있는 방향으로 교육을 해야 한다.

그러기 위해서는 시수를 늘려야하고 SW 교육 효과를 극대화할 수 있는 교재개발, 교재를 개발할 수 있는 전문가, 강사, 교사 양성이 필요하다.

◇수학과 소프트웨어를 비교하면.

수학과 소프트웨어는 굉장히 다르면서도 뗄 수 없는 관계에 놓여있다. 수학은 문제해결 방법이 많지 않다. 그래서 어떤 학자들은 암기에 가깝다고 얘기 한다.

이 두 학문은 접근 방식이 약간 다르다. 수학은 수식을 만들고 정해진 풀이 방법을 대입하는 것이다. 결과와 답이 중요하다. 반면 소프트웨어는 문제를 해결하는 다양한 방법 즉 알고리즘을 만드는 것이다. 결과 값 보다 방법이 중심이 된다.

예를 들어 하노이 탑에 대해 접근할 때, 수학에서는 이걸 옮기는데 시간이 얼마 걸리느냐 계산 중심으로 사고한다. 소프트웨어에서는 어떤 규칙을 정해서 이 문제를 해결해야 가장 빨리 옮길 수 있느냐를 고민하는 것이다.

그런데 그 둘은 불가분의 관계이다. 소수를 구하는 알고리즘 중에 ‘에라토스테네스의 체’라는 것이 있다. 프로그래밍 할 때 많이 적용하는데 이 알고리즘 자체를 수학자가 개발한 것이다. 또 최대공약수를 구할 때 ‘유클리드 호제법’을 이용하는데 이것도 수학자가 만든 알고리즘을 컴퓨터에서 이용한다. 많은 부분에서 수학적 요소가 소프트웨어 안에 스며들어있다.
 

저작권자 © 제주대미디어 무단전재 및 재배포 금지