Direction of Software Education

 

 얼마전 생활코딩이라는 공개 커뮤니티에 초등학교 1학년이 배우는 학원 교육과정의 이미지가 올라왔다. 스크래치부터 시작하여 리눅스와 웹서버까지 이어지는 교육과정은 컴퓨터공학과 1학년의 과정이라고 해도 믿을 정도로 그 범위가 넓어서 놀랐다. 나는 소프트웨어교육의 출범당시부터 우려했던 일이 벌어지는 것 같아 씁슬한 마음이 들었다. 작년에 소프트웨어 교육의 특강을 제법 나갔지만, 벌써부터 소프트웨어 교육이 싫다. 배울게 더 늘었다는 불평의 목소리도 들려온다. 이러한 시점에서 내가 생각하는 소프트웨어교육이란 무엇인가에 대해 다시 한번 정리해 보았다.


 첫 번째, 소프트웨어 교육은 지식습득이 아닌 프로세스의 경험이다. 며칠 전 초등학교 입학을 앞둔 딸의 잘못된 학습습관을 보고 학습을 중단시켰다. 문제집의 체점을 하면서 아는 것이라고 체점표를 보지 않고 검증 없이 맞았다고 표기하거나, 틀린 문제도 실수라고 맞았다고 표기하는 것이었다. 점수를 올리고 싶은 마음은 이해했지만, 그것은 더 이상 학습이 아닌 나쁜 습관이었기에 즉시 학습을 중단시키고 틀리는 것에 대한 중요성을 이야기해주었다. 앞의 컴퓨터 학원의 과한 커리큘럼처럼 교사나 부모뿐만 아니라, 우리 아이들도 목적과 방향도 잊은 채 점수 지상주의, 지식주의, 진도주의에 빠지기 쉽다는 점을 깨달았다.

 산업역군을 양성하던 기존 교육에서 중요한 일은 선조들로부터 쌓아온 많은 문제와 기술의 풀이를 얼마나 알고 있는지를 측정하는 것이었다. 이를 통해 특정 업무에 필요한 스킬을 가진 인력을 만들 수 있었고, 때문에 명확한 진도가 있었고, 점수가 있었으며 이것을 통해 아이들을 평가할 수 있었다. 때문에 점수는 중요했고, 지금도 여전히 그 중요성을 부정할 수는 없다.

 하지만 미래 사회를 살아갈 우리 아이들의 교육은 달라야 한다. 소프트웨어 교육을 이야기할 때 빠지지 않고 등장하는 용어 중의 하나가 바로 제4차 산업혁명과 인공지능인데 단순한 소프트웨어 개발은 인공지능에 의해 이미 가능한 수준까지 올라와 있다.

 또한 소프트웨어의 특징인 복제성은 동일한 문제를 다시 풀 필요가 없다. 오픈소스운동을 통해 쉽게 필요로하는 소프트웨어를 무료로 구할 수 있다. 소프트웨어 교육은 타 교육보다 지식의 중요성이 약하다. 따라서, 소프트웨어교육이 지식 전달에서 끝난다면 아이들을 괴롭히는 시간낭비일 수도 있다.

 얼마전 또 하나의 내 사례를 들자면 자기 컨트롤이 미비한 딸에게 소프트웨어 엔지니어링의 폭포수모델과 나선형모델을 설명해주었다. 대학교에서 배우는 내용이긴 하지만, 그 내용은 아주 단순하다. 분석, 디자인, 개발, 평가로 이어지는 순서와 이를 반복하여 개선한다는 개념이다. 이를 적용하여 아침에 일어나서 5분간 하루의 일과를 디자인하고, 이를 기반으로 하루를 행동하고, 저녁에 일기를 써서 평가와 분석을 하라고 시켰다. 사실 소프트웨어 교육에서 코딩은 이러한 문제 해결 과정의 일부이자, 이를 축약한 프로세스에 해당된다.

 많은 이들이 소프트웨어 교육을 수학공식처럼 프로그램 함수를 암기하고, 기능을 아는 것만으로 오해하는데, 그보다 훨씬 더 중요한 것은 프로세스의 경험이고 습득이다. 더군다나 프로세스는 절대적이지 않다. 문제의 특성에 따라 다르게 적용해야 하며, 전제가 바뀌면 문제도 수시로 바뀐다. 소프트웨어 교육은 지식이 아닌 프로세스를 배우고 경험해야 한다.

 

 두 번째, 소프트웨어 교육은 수학을 구원하는 교육이다. 소프트웨어 교육보다 ‘국어 교육이 좋다, 수학교육이 좋다.’라는 주장도 많이 보인다. 그 중 제3차 산업혁명을 이끌었고, 이미 중요성을 인정하는 수학 교육에 대해 이야기를 해보자.

사실 소프트웨어는 수학에서 출발한 것이 맞다. 많은 수학적인 요소들을 이용한다는 것도 분명한 사실이다. 하지만 오늘 날의 수학은 실생활과 괴리된지 오래고, 오히려 수학을 실생활과 연결시킬 수 있는 유일한 과목이 이제는 소프트웨어 교육이다.

어떤 이들은 수학 교육에 대해 4칙연산 외에 무슨 쓸모가 있느냐고들 이야기한다. 실생활에서 이자율 정도가 가장 복잡한 계산이라고 대다수의 어른들도 동의할 것이다. 그러나 컴퓨터로 데이터를 처리해 보았거나, 3D그래픽스를 만들거나, 인공지능 프로그램 구조를 조금이라도 경험해 본 사람들이라면 이 생각에 동의하지 않을 것이다. 수학 시험문제처럼 어려운 수학 문제를 풀어야 할 일은 없지만, 각 수학 단원의 내용은 이해하지 않으면 이러한 소프트웨어의 이해와 사용이 어렵다. 오히려 소프트웨어를 동작시켜 보면서 조금더 많은 것을 해보기 위해 부족한 수학 학습을 다시하게 된다. 소프트웨어 교육에 부정적인 수학쪽 사람들을 봤어도, 수학을 부정적으로 보는 소프트웨어쪽 사람들은 못 본 이유가 바로 이것이다.

소프트웨어는 주변의 실제 데이터를 다루고, 아두이노와 같은 물리적 컴퓨팅 학습도구로 실제 세계도 변화 시킬 수 있다. 그리고 수학 이론을 코드로 실제화시킴에 따라 발생하는 수많은 문제들을 직접 경험한다. 이론은 이론일 뿐이고, 수학은 이론 교육이다.

 이 경험은 수학의 중요성을 떨어뜨리지는 않지만, 수학의 한계와 소프트웨어 교육의 중요성을 인지시킨다. 수학으로 소프트웨어 교육을 할 수 있는 것이 아니라, 소프트웨어 교육이 수학을 관념의 세계에서 꺼내 우리 곁으로 다시 존재하게 해주는 유일한 교육이다.

 

 세 번째, 소프트웨어 교육은 놀며 생각할 시간이 필요하다.

 마지막으로 소프트웨어 교육시간에 게임을 하며 아이들이 놀 것을 걱정하시는 분들이 많아 게임과 놀이에 대한 생각을 정리해봤다. 게임이 학습에 부정적인 요소로 작용된 사례가 있는 것을 부정하지는 않겠지만, 정보화 기기가 학습에 이용되면 게임의 부정적인 요소를 줄이고, 학습적인 요소를 가진 게임들은 아이들의 지적 능력에 향상에 도움을 준다. 때문에 소프트웨어 교육은 학습과 놀이가 불분명하게 개발되고 있다. 오히려 아이들에게 스마트폰과 컴퓨터가 단순히 게임기로 인식되는 것은 더 부정적인 역할을 하기쉽다. 아이들이 성장함에 따라 정보기기를 다루는 능력은 중요해진다. 그런 상황에서 정보기기를 어릴때부터 차단하다가 대학교때 정보기기를 갑작스럽게 잘 다루기를 바라는 것은 욕심이다. 아이들의 세대는 학습과 놀이 모두 정보기기로 이루어진다는 것은 거스를수 없는 일이며 오히려 어떻게 더 좋은 방향으로 놀 수 있는지를 고민하고, 부모도 함께 놀이에 참여하는 것이 필요하다

 또한 정보기기에 대한 오해가 생각할 시간이 없어진다는 것인데 소프트웨어 교육이나 일부 게임장르는 생각할 시간이 아주 많이 필요한 것들이 많다. 컴퓨터 앞에 오래도록 앉아있는 것이 부모가 보기에는 다소 답답할 수 있겠지만, 이 시간에 아이가 하고 있는 일을 이해하는 것이 더 중요하다. 실제로 오랜 시간이 필요한 것도 있고, 아닌 것도 있어서 이를 계획적으로 스스로 통제할 수 있는 능력을 길러주는 것이 그 어느 때보다 중요해지고 있다. 이제는 그 통제능력을 가르치는 일의 중요성은 이제는 젓가락질을 가르치는 것과 같다고 할 수 있다.

 또한 중요한 것은 스마트폰이나 컴퓨터에 얼마나 중독되는지보다는 무엇에 중독되었는지를 살펴보는 일이다. 이는 놀이이던 학습이던 마찬가지다. 조급한 느낌이 들겠지만, 다그치고 시간내로 무언가를 뽑으려고 한다면 탈이 나게 마련이다. 소프트웨어 교육은 놀면서 절대적으로 생각할 시간이 필요하다. 그렇기 위해서 소프트웨어 교육에서 아이와 부모 모두에게 필요한 것은 놀이와 학습 둘다이며, 시간과 공감을 요구한다.

 2018년부터 소프트웨어 교육은 본격화된다. 소프트웨어의 가장 큰 특성이 빠른 변화인 만큼 소프트웨어 교육 역시 정확한 정답을 마련하는 것은 사실상 불가능할지도 모른다. 하지만 틀린 것으로부터 배울 수 있는 소프트웨어 교육은 그 시행착오 과정도 버릴 것이 없다. 더 좋은 교육으로 변화하도록 유연성을 갖추고, 오늘보다 더 나은 내일의 소프트웨어 교육이 되면 된다. 그것이 바로 내가 생각하는 소프트웨어 교육이 지향하는 바이다. 

 

SW교육 월간SW중심사회2017년3월