5월의 어느 토요일 오후 저는 갑자기 깨달았습니다. 다음날이 어머니날이라는 것을요. 저는 어머니께 드릴 선물이 없어서 고민을 좀 했습니다. 어머니날에 어떤 선물을 드려야 하지? 어머니를 위해 제가 MIT 미디어랩에서 개발팀과 함께 만들고 있던 스크래치 소프트웨어로 어머니날을 위한 대화형 카드를 만들면 어떨까 라고 생각했습니다. 우리는 스크래치 소프트웨어를 개발했는데 그래서 사람들이 자신의 이야기, 게임, 만화영화를 쉽게 만들 수 있고 그것을 다른 사람과 공유할 수 있습니다. 그래서 어머니를 위한 대화형 카드를 만드는데 스크래치를 쓸 좋은 기회라고 생각했어요. 어머니날 카드를 만들기 전에 스크래치 웹사이트를 살펴보기로 했습니다. 지난 몇 년동안 전 세계에 있는 8살 이상의 어린이들이 자기들이 만든 프로젝트를 공유했고 3백만의 프로젝트 가운데서 누가 어머니날 카드를 올렸는지 궁금했습니다. 그래서 검색창에 "어머니날"이라고 넣어봤죠. 스크래치 웹사이트에 올라온 수많은 어머니날 카드를 보고 저는 놀랍고도 기뻤습니다. 대부분이 지난 24시간에 사이에 올라온 것들로 저처럼 일을 미루는 사람들이 만든거죠. 그래서 그것들을 살펴봤습니다 (음악) 그 중 하나는 새끼 고양이와 어미 고양이가 나와서 어머니 날을 축하한다고 말하죠. 그 카드를 만든 사람은 친절하게도 어머니를 위해서 '다시 보기' 기능도 만들었습니다. 다른 대화형 프로젝트는 "어머니 날을 축하합니다"라는 글자 위로 마우스를 움직이면 특별한 메세지를 보여줍니다. (음악) 이 카드를 만든 사람은 어머니날이 언제인지 구글로 검색해서 알아낸 얘기를 전합니다. (글자 치는 소리) 어머니날이 다가온다는 걸 알고서는 어머니날을 위한 특별한 인사를 하죠. 어머니를 얼마나 사랑하는지를 말합니다. 저는 이들 프로젝트를 보기도 하고 또 갖고 놀면서 즐기기도 했습니다. 사실은 갖고 노는 게 너무 즐거워서 제 프로젝트를 만드는 대신에 열몇개의 프로젝트에 관한 링크를 제 어머니께 보냈습니다. (웃음) 어머니는 제가 예상했던 그대로 반응을 하셨습니다. 어머니는 제게 이렇게 답장을 보내셨어요. "아이들이 자기 어머니를 위해 카드를 만들 수 있도록 이런 소프트웨어를 만든 네가 참말로 자랑스럽구나" 그래서 제 어머니는 기뻐하셨고, 그게 저를 기쁘게 했습니다. 하지만 다른 이유 때문에 저는 더욱 기뻤죠. 아이들이 우리가 바라던 대로 스크래치를 썼기 때문에 기뻤습니다. 아이들이 대화형 어머니날 카드를 만들면서 새로운 기술에 정말 능숙해지고 있음을 알 수 있습니다. 능숙해진다는 것이 뭘 뜻할까요? 아이들이 자기를 표현할 수 있고 자기 생각을 나타낼 수 있다는 뜻입니다. 여러분이 언어에 능숙해지면 일기에 글을 쓰거나 다른 사람한테 농담을 하거나 친구한테 편지를 쓸 수 있다는 뜻이죠. 새로운 기술도 마찬가지입니다. 프로그램을 씀으로써, 이런 대화형 어머니날 카드를 만듦으로써 아이들은 새로운 기술에 정말 능숙해졌음을 보여줬습니다. 여러분은 어쩌면 이런 얘기를 듣고도 놀라지 않을 지도 모르겠습니다. 왜냐하면 사람들은 대부분 요즘 젊은이들이 기술을 이용해서 온갖 일을 다 할 수 있다고 생각하니까요. 우리는 모두 젊은이들을 "디지털세대"로 부르는 것을 들어봤습니다. 하지만 저는 이 용어에 대해서 좀 회의적입니다. 젊은이들을 디지털세대로 생각해야만 하는지 확신이 가지 않습니다. 잘 살펴보면 젊은이들이 새로운 기술로 시간의 대부분을 어떻게 쓰고 있습니까? 그들이 이렇게 또는 이렇게 시간을 보내는 것을 보실 겁니다. 젊은이들이 인터넷을 살펴보고 채팅, 문자, 게임을 하는데 아주 익숙하고 편안하게 느낀다는데는 의심할 바가 없습니다. 하지만 그런다고 해서 능숙해지지는 않습니다. 오늘날 젊은이들은 새로운 기술을 다루는데 많은 경험이 있고 아주 익숙해져있습니다. 하지만 새로운 기술을 만들어내거나 새로운 기술로 자기를 표현하는데는 경험이 적습니다. 마치 읽을 수는 있지만 새로운 기술을 쓸 수 없는 것과 같습니다. 그래서 저는 젊은이들이 새로운 기술을 쓸 수 있도록 그들을 돕는 방법에 관심이 있습니다. 그말은 그들이 자기들만의 컴퓨터 프로그램이나 코드를 쓸 줄 알아야 할 필요가 있다는 뜻이죠. 그래서 점점 더 많은 사람들이 코드쓰는 법이 중요하다고 느끼기 시작했습니다. 최근에 수백개의 새로운 조직과 웹사이트가 젊은이들이 코드를 배우도록 돕고 있습니다. 온라인을 보시면 코드카데미(Codecademy) 같은 곳이나 코더도조(CoderDojo)와 같은 행사, 코드를 쓸 줄 아는 여자들(Girls Who Code)이나 흑인 여자 코드(Black Girls Code)와 같은 웹사이트를 볼 수 있습니다. 모두가 행동에 나서고 있는 것처럼 보입니다. 올해 초에 새해가 시작될 무렵에 뉴욕 시장 마이클 블룸버그는 2012년에 코드쓰는 법을 배우겠다는 새해 계획을 세웠습니다. 몇 달이 지나서 에스토니아는 초등학교 1학년부터 코드쓰기를 배워야 한다고 결정했죠. 그 사건이 영국에서 논쟁을 불러일으켰습니다. 영국의 모든 어린이들이 코드쓰기를 배워야 하는지에 관한 논쟁이었죠. 몇몇 분들은 이런 얘기를 들으면 모두가 코드쓰기를 배워야 한다는게 이상하게 보일지도 모릅니다. 많은 사람들이 코드쓰기를 생각할 때 아주 극소수의 사람들만이 하는 일로 생각하고 코드쓰기가 이런 거라고 생각합니다. 사실 코드쓰기가 이렇다면 특별한 수학적 재능과 기술적인 배경을 가진 극소수의 사람들만이 코드를 쓸 수 있겠죠. 하지만 코드쓰기가 이래야 할 필요는 없습니다. 스크래치에서 코드쓰는 법을 보여드리죠. 스크래치에서 코드를 쓸려면 여러 상자들을 같이 모아주면 됩니다. 이 경우에 움직임 상자를 가지고 와서 꾸러미속에 넣으면 됩니다. 상자들이 모인 꾸러미가 여러분이 만든 게임이나 이야기 속의 여러 주인공들의 행동을 조절하죠. 이 경우는 커다란 물고기를 조절합니다. 프로그램을 만든 다음에 "공유"를 누르면 여러분이 만든 프로젝트를 다른 사람과 공유하게 되고 다른 사람들도 그 프로젝트를 사용하거나 그 프로젝트를 개발할 수 있습니다. 물론 스크래치를 써서 물고기 게임만 만들 수 있는 것은 아닙니다. 스크래치 웹사이트에 있는 수백만의 프로젝트에는 만화영화로 만든 이야기부터 학교에서 내준 과학 과제물, 애니메이션 드라마, 가상 건축조립 세트, 전형적인 비디오 게임의 재현, 정치적인 의견투표, 삼각법 길라잡이, 대화형 예술작품까지, 그리고 예, 대화형 어머니날 카드까지 있습니다. 그래서 아주 다양한 방식으로 사람들은 자기를 표현할 수 있습니다. 스크래치를 써서 자기 생각을 구체화하고 자기 생각을 세상과 공유하죠. 화면 속에만 머물러 있는 게 아닙니다. 여러분을 둘러싼 물리적 세상과 교류하기 위해서 코드를 쓸 수도 있습니다. 이건 홍콩에 있는 아이들이 만든 게임을 예로 들겠습니다. 아이들은 자기들만의 물리적인 인터페이스 장치를 만들고 빛 감지기를 가지고 판에 뚫려있는 구멍을 감지하고는 물리적인 톱을 움직이면, 빛 감지기가 구멍을 감지하고 화면에 있는 가상 톱을 조절해서 나무를 벱니다. 우리는 물리적인 세계과 가상 세계를 연결하는 새로운 방법을 찾고 있고 그래서 우리를 둘러싼 세계로 연결하는 방법을 찾고 있습니다. 이것은 스크래치의 새로운 버젼에서 나온 예인데 새로운 버젼은 몇 달 안으로 내놓을 예정이고 여러분이 새로운 방향으로 나아가도록 바라고 있습니다. 여기에 예가 있습니다. 웹캠을 사용하죠 제 손을 움직여서 풍선을 터뜨리거나 벌레를 움직일 수 있습니다. 마이크로소프트의 키넥트와 비슷한데 실생활에서 하는 동작과 연결할 수 있습니다. 다른 사람이 만든 게임을 하는 대신에 여러분은 게임을 만들 수 있습니다. 다른 사람이 만든 게임을 보고 "안을 봐"라고 말하면 게임을 조절하는 상자들의 꾸러미를 볼 수 있죠. 비디오 모션이 얼마나 들어있는지를 말하는 상자가 있다면 그래서 비디오 모션이 너무 많을 때는 풍선이 터지게끔 명령을 내리겠죠. 같은 식으로 카메라를 써서 정보를 스크래치로 보냅니다. 마이크도 쓸 수 있습니다. 여기 마이크를 쓴 프로젝트가 있습니다. 여러분 모두 이 게임을 해보세요. 여러분 목소리를 쓰세요. (귀뚜라미 소리) (고함) (쩝쩝) (웃음) (손뼉) 아이들이 이런 프로젝트를 만들면서 코드쓰는 법을 배웁니다. 하지만 그보다 더 중요한 것은 배우기 위해서 코드를 쓰는 거죠. 코드쓰기를 배우면서 다른 여러 가지를 배우게 되고, 배우기 위한 여러 가지 새로운 기회를 만나게 되죠. 읽기와 쓰기에 비유하는게 도움이 됩니다. 여러분이 읽기와 쓰기를 배우면 여러 가지 다른 것들을 배울 기회가 열립니다. 읽기를 배우면, 읽어서 배울 수 있습니다. 코드쓰기도 마찬가지입니다. 코드를 배우면, 코드를 써서 배울 수 있습니다. 여러분이 배울 수 있는 몇 가지는 분명합니다. 여러분은 컴퓨터가 어떻게 작동하는지 배웁니다. 하지만 그것이 단지 시작입니다. 코드쓰기를 배우면 여러 가지 다른 것을 배울 수 있게 해줍니다. 한가지 예를 보여드리죠. 이건 다른 프로젝트입니다. 제가 한 컴퓨터 클럽을 방문했을 때 이걸 봤습니다. 이건 방과후 교육 센터인데 우리는 저소득층 출신의 젊은 사람들이 새로운 기술을 가지고 자기를 창의롭게 표현할 수 있도록 도와주고 있습니다. 몇 년 전에 그런 방과후 교실에 갔을 때 13살짜리 남자아이가 스크래치를 써서 이와 같은 게임을 만드는 것을 봤습니다. 아이는 자기가 만든 게임에 아주 만족했고 자랑스러워했습니다. 하지만 기능을 더 넣고 싶어했죠. 점수를 넣고 싶었습니다. 이게 그 게임인데 큰 물고기가 작은 물고기를 잡아먹는데 아이는 점수를 나타내고 싶어했어요. 그래서 큰 물고기가 작은 물고기를 잡아먹을 때마다 점수가 올라가서 기록을 표시하고 싶었죠. 그런데 어떻게 하는지는 몰랐습니다. 그래서 제가 아이한테 보여줬어요. 스크래치에서 변수라고 하는 걸 만들 수 있습니다. 변수의 이름을 점수라고 합시다. 그게 새로운 상자들을 만들어 내고 작은 점수판을 만들어 점수를 기록합니다. "점수 바꾸기"를 누를 때마다 점수를 올리죠. 그래서 이걸 방과후 교실을 다니는 아이한테 보여줬습니다. 그 아이를 빅터라고 부를게요. 빅터, 이 상자가 점수를 올리게 할 수 있다는 것을 알고서는 그는 정확히 뭘해야 하는지 알았습니다. 그는 상자를 가지고 큰 물고기가 작은 물고기를 먹는 그 곳에 정확히 그 상자를 집어넣었어요. 그래서 큰 물고기가 작은 물고기를 먹을 때마다 점수를 올릴 수 있고 점수는 1점씩 올라갑니다. 프로그램은 실제로 작동했어요. 이걸 보고서 그는 아주 신났습니다. 그는 저에게 손을 내밀고 말했죠. "고맙습니다. 고맙습니다. 고맙습니다." 그 때 제 마음에 떠오른 생각은 '선생님들이 학생들한테 변수를 가르쳐주고 나서 얼마나 자주 고맙다는 소리를 들을까?' 였습니다. (웃음) 대부분의 교실에서 그런 일은 일어나지 않습니다. 왜냐하면 대부분의 교실에서 아이들이 변수를 배울 때는 변수를 왜 배우는지 모르니까요. 변수를 활용할 거리가 하나도 없습니다. 여러분이 스크래치에서 이와 같은 생각을 배울 때는 정말 의미있고 동기부여가 되는 방식으로 배웁니다. 그래서 변수를 배우는 까닭을 이해할 수 있죠. 아이들이 더 깊게 배우고 더 잘 배운다는 것을 알게됩니다. 빅터는 학교에서 분명히 변수를 배웠을 겁니다. 하지만 정말은 배우지 못했죠. 주의를 기울이지 않았으니까요. 이제 그는 변수를 배울 까닭이 있습니다. 그래서 코드를 통해서 배우면, 배우기 위해서 코드를 쓰면, 의미있는 내용 안에서 배우게 되고 그렇게 배우는 것이 최고입니다. 그래서 빅터와 같은 아이들이 이와 같은 프로젝트를 만들면서 변수와 같은 중요한 개념을 배우는데 그건 시작일 뿐입니다. 빅터가 이 프로젝트를 만들고 스크립트를 쓰면서 설계과정도 배우게 됩니다. 아름아름한 생각으로 시작해서 여러분이 여기 보시는 것처럼 완전히 개발되고, 제대로 움직이는 프로젝트로 만드는 방법을 배우게 되죠. 그래서 그는 설계의 여러 가지 핵심원리, 새로운 생각으로 실험하는 법, 복잡한 생각을 가져와서 더 단순한 부분으로 토막내는 법, 프로젝트에서 다른 사람들과 함께 일하는 법, 일이 제대로 되어가지 않을 때 문제점을 찾거나 고치는 법, 일이 제대로 안 풀릴 때 드는 좌절감에 맞서서 끈기있고 꾸준하게 나가는 법을 배웁니다. 자, 이런 것들은 코드쓰기하고만 관련있는 중요한 자질들이 아닙니다. 그것들은 여러 활동에서 모두 상관있습니다. 자, 빅터가 커서 프로그래머나 컴퓨터 전문 과학자가 될 지 누가 알겠습니까? 아마 그렇게 되지는 않겠지만 그가 무엇을 하든 상관없이 그가 배운 이러한 설계 기술을 활용할 수 있을 겁니다. 마케팅 매니저가 되든 정비공이나 지역공동체를 조직하는 사람이 되든 이런 생각들은 누구한테나 쓸모가 있습니다. 다시, 언어와 비교해도 도움이 되죠. 읽기와 쓰기에 능숙해지면 전문작가가 되기 위해서 여러분이 뭘 한다는게 아닙니다. 아주 일부의 사람들이 전문 작가가 됩니다. 하지만 모두가 읽고 쓰기를 배우면 좋습니다. 다시, 코드쓰기도 마찬가지입니다. 대부분의 사람들이 커서 컴퓨터 전문과학자나 프로그래머가 되는 게 아닙니다. 하지만 창의적으로 생각하고, 체계적으로 추리하고, 함께 일하는 재능 - 여러분이 스크래치에서 코드를 쓰면서 개발한 재능은 어떤 일을 하든 상관없이 쓸 수 있는 재능이죠. 여러분이 어떤 일을 하는가와 상관없습니다. 코드쓰기는 여러분이 사생활 속에서 자기 생각과 감정을 표현할 수 있게 해줍니다. 예를 하나만 더 보여드리고 끝내겠습니다. 이것은 제가 어머니께 어머니날 카드를 보낸 뒤에 나온 예입니다. 어머니는 스크래치를 배우기로 결심하셨어요. 그래서 어머니께서는 제 생일을 위해서 이 프로젝트를 만들었고 저한테 생일을 축하하는 스크래치 카드를 보내셨습니다. 이 프로젝트는 디자인으로 따지면 어떤 상도 못 받을 겁니다. 여러분은 83살의 제 어머니가 전문 프로그래머나 컴퓨터 과학자가 되려고 이걸 배운게 아니라는 걸 확신할 수 있겠죠. 하지만 이 프로젝트를 하면서 어머니는 자기가 아끼는 사람과 교류할 수 있게 되었고 새로운 것을 배우고 창의력을 연습하고 그녀를 표현하는 새로운 방법을 개발했습니다. 그래서 주위를 돌아보면 마이클 블룸버그가 코드를 배운다고 하고 에스토니아의 모든 어린이들이 코드를 배우고 제 어머니까지도 코드를 배웠습니다. 여러분도 이제 코드를 배워야 할 때라는 생각이 들지 않습니까? 여러분이 한 번 시도해 보시겠다면 스크래치 웹사이트로 들어가세요. scratch.mit.edu 입니다. 코드를 한 번 써보세요. 여러분, 정말 고맙습니다. (박수)