중학교 1학년 정보를 가르치며...
컴퓨터 하면 게임과 유튜브를 떠올릴 아이들에게 한 주에 한 시간씩 정보를 가르칩니다. 2학기 주된 내용은 프로그래밍입니다. 전문가 수준이 아닌, 기본 개념을 익히는 것이 목표입니다. 첫 시간에는 단원명을 크게 칠판에 적으며 ‘왜 하는지’를 설명합니다.
단원명: 문제 해결과 프로그래밍
적당한 퍼즐을 가져와 흥미를 갖게 합니다. 보통 퍼즐을 제시하면 관심 있게 쳐다봅니다. 테드에서 제공한 ‘다리 건너기’입니다. 제한된 시간(17분)에 인턴, 연구원, 관리인, 교수가 2명씩 짝을 이뤄 건넌 후 다리를 끊어 좀비의 추격을 피하는 문제를 해결하는 것이 목표입니다.
둘씩 짝을 지어 건넌 후 다시 한 명은 랜턴을 들고 돌아와야 합니다. 아주 캄캄한 밤이 거든요. 총 5차례를 오고 가면 마무리됩니다. 그러나 문제는 17분이라는 제한된 조건입니다. 얼핏 계산하면 19분이 나오거든요. 몇몇은 바로 포기합니다. 또 몇몇은 좋게 말해 창의적인 해결법을 찾습니다. '건너편으로 건넌 후 다시 랜턴을 갖고 돌아가지 않고 던져서 주면 된다'는 둥, '업고 가면 안 되나요?'를 묻습니다. 심지어 '노인을 버리자!'라는 끔찍한 의견도 냅니다. 그럴 때마다 "컴퓨터는 창의적으로 생각할 수 없습니다. 만약 컴퓨터가 창의적으로 생각할 수 있다면 큰일이 납니다."라며 답합니다. 어떤 큰일이 날까요?
수업 중간중간 끊임없이 컴퓨터처럼 생각하기를 요구합니다. 컴퓨팅 사고력. 100여 가지가 넘는 경우의 수를 쫓아 계산하고 17분 이내인지 판별하는 논리적 연산을 컴퓨터에게 명령합니다. 컴퓨터는 1초도 안 되어 답을 찾습니다. 더 이상 답을 구하는 것은 인간의 일이 아닙니다. 복잡하고 어려운 문제를 해결하기 위한 최소한의 능력이 바로 '프로그래밍'이다라는 것을 강조하죠. 그러나 명령과 관계된 사람과 컴퓨터는 동일한 언어와 사고 구조로 소통해야 합니다. 아직까지는요. 그러기 위해 가르치는 저는 학생들에게 컴퓨터처럼 생각하기를... 아니 기계적인 논리적 과정을 서술하도록, 알고리즘 설계를 설명합니다. 효율적인 알고리즘을 컴퓨터 언어로 바꾸어 실행하면 쉽게 문제를 해결할 수 있다는 논리입니다. 아이들도 어려워 포기했던 문제를 프로그래밍을 통해 해결하는 과정을 보더니 수긍하는 눈치입니다. 평소 간단히 마우스 버튼만 누르면 일어나던 일을 과정으로 보여주니 신기했던 모양입니다. 가끔씩 탄성을 지어내며 미래의 길은 여기 있다는 듯 큰 관심을 보입니다.
산업시대에서 정보시대로 넘어오며 겪었던 가장 큰 괴리는 시간과 공간의 개념 차입니다. 흔히 시공간의 제약이 사라졌다라고 표현하는 그 부분에서, 많은 사람들은 '자유'를 떠올렸습니다. 더 이상 정해진 시간에, 물리적 공간에 위치할 필요가 없습니다. 컴퓨터를 켜면, 스마트폰을 손에 들면 곧바로 인터넷 세상과 연결됩니다. 10대들의 탐험은 거침이 없습니다. 이미 구축된 메타버스 세계를 마치 자신의 것인 양 떠드는 몇몇 IT기업 CEO를 보면 한 때는 혁신가였으나, 지금은 물러설 때라고 말하고 싶을 정도니까요. 아이들에게 이미 메타버스는 놀이터나 다름없습니다. 어느 정도 익숙하면 놀이기구를 본래 방법대로 갖고 놀지 않습니다. 미끄럼틀 앞에 작은 구덩이를 파고 나뭇가지와 잎을 이용해 덮어 놓습니다. 숨어서 지켜보고는 함정에 빠진 아이를 보며 웃고 즐깁니다. 그네를 앞뒤로 흔드는 게 아닌 비비 꼬와서는 다시 풀리는 순간을 만끽합니다. 고정된 놀이기구가 더 이상 지겨우면 자신의 도구를 챙겨 오죠. 모래놀이 삽부터 보드, 자전거 등 자신의 경험을 확장하고 확장된 경험을 나누는데 여념이 없습니다. 규칙이 없을뿐더러 합의는 더욱 미련합니다. 규칙을 깨야한다는 규칙이 있는 것만 같은 동네 놀이터는 그야말로 가상공간의 거울세계입니다.
이런 아이들에게 표준화, 효율성, 논리적, 엄격한 규칙은 현실 세계의 것입니다. 이런 것들을 피해 자유를 누리러 메타버스로 떠난 아이들에게 20년 전에 배운 알고리즘과 프로그래밍은 무용, 그 자체입니다. 앨런 머스크는 테슬라 봇 사업을 발표하는 자리에서 다음과 같이 말했습니다.
I mean, without explicit line by line instructions
훈련 없이 알아서 자기 할 일을 하는 로봇을 만들겠다는 것이 목표입니다. 명확한 명령어를 일일이 입력하지 않아도 스스로 일을 하는 로봇을 통해 육체노동의 부담을 줄이는 것이 시스템 개발의 핵심이라고 합니다. 그런 시대에는 프로그래밍은 어떤 의미일까요? 더 이상 자동차를 인간이 운전하지 않고 통제하듯이 컴퓨터를 명령하지 않고 제어하는 그런 시대에서 '인간의 일' 말입니다. 아이들에게 컴퓨팅 사고를 강요하는 것은 자칫 농부에게 기계의 효율성과 생산성을 강조하며, 그 이면의 자연 파괴를 묵과해버린 어리석음과 같지 않을까요? 인간이 인간의 언어와 사고가 아닌 기계의 언어와 사고에 익숙해지는데 얻을 득과 잃을 실을 계산하는 것 자체가 인간성의 파괴를 의미할 뿐입니다.