몸으로 느끼는 컴퓨팅 워크숍, 에러 메시지의 말 걸기 |
 |


박준표
청(소)년, 다양성, 뉴미디어를 키워드로 PINY라는 소셜 벤처를 실험하고 있다. 목표는 다양성이 존중 받는 즐거운 세상을 만드는 것. 10대 시절부터 시민 문화, 캠프, 포럼, 택틱컬 미디어, 웹 서비스 등 다양한 기획과 연출, 실험을 해왔고 라디오 프로그램 진행자, 미술가로도 활동 중이다.
2009년 8월 25일 |
|
 |
|
유치원 1일 교사, 그리고 언플러그드 컴퓨팅의 탄생
컴퓨터 과학(computer science)을 전공하는 팀벨 박사(Tim Bell, University of Canterbury, NZ)에게 전화가 왔습니다. 자신의 아이가 다니는 유치원 선생님에게서 걸려온 전화였습니다. 유치원 1일 교사가 되어 친구 아버지가 어떤 일을 하는지 아이들에게 가르쳐 달라는 부탁이었습니다.
'컴퓨터 과학을 유치원 아이들에게 어떻게 가르칠까?'
팀벨 박사는 그때부터 고민을 시작했습니다. 컴퓨터 과학의 기본 원리를 유치원 아이들도 이해하기 쉽게 만들 수 있을까? 컴퓨터 과학의 원리를 어떤 방법으로 흥미 있게 전달할까? 바로 내 아이를 위한 고민, 좀 더 많은 사람에게 쉽게 컴퓨터 과학을 전달하고 싶은 바람이 언플러그드 컴퓨팅을 낳았습니다.
컴퓨터 없는 컴퓨팅 교육, 언플러그드 컴퓨팅이란?
|
천문학이 망원경에 관한 학문이 아닌 것처럼 컴퓨터 과학도 컴퓨터에 관한 것이 아니다(Computer Science is no more about computers than astronomy is about telescopes).
|
네덜란드의 컴퓨터 과학자 다익스트라(Djikstra)는 컴퓨터 과학이 컴퓨터를 둘러싼 좀 더 깊고 넓은 복잡계를 다루는 학문이라고 정의하며 위와 같이 말했습니다. 컴퓨터 과학은 컴퓨터적 사고(computational thinking)를 통해 인간이 좀 더 똑똑해지고 현명해지는, 세상을 좀 더 다양한 시각으로 다루고 처리하는 것을 하나의 목표로 합니다.
언플러그드 컴퓨팅은 컴퓨터 없이 컴퓨터 과학을 이해할 수 있는 워크숍입니다. 컴퓨터 과학이 목표로 하는 ‘컴퓨터를 둘러싼 인간 지혜’를 탐구하는 데 초점이 맞춰져 있습니다. 컴퓨터 없이 컴퓨터를 이루는 수학적•과학적 원리와 프로세스를 직접 설계하고 실험할 수 있습니다. 이진수, 문자 압축, 에러 검출과 수정, 검색 알고리즘, 프로그래밍 언어 등 컴퓨터 과학의 핵심 개념을 몸과 손을 이용해 체험하게 만들어져 있습니다.
유치원부터 엔지니어까지, 컴퓨터 발명의 흔적 찾기
언플러그드 컴퓨팅 워크숍은 처음에는 유치원생을 위해 고안됐으나 컴퓨터 과학을 공부하기 시작하는 대학생이나 컴퓨터 과학을 전공하지 않은 컴퓨터 개발자, 컴퓨터 엔지니어가 되고자 하는 여성, 학부모나 교사 등 다양한 배경의 사람을 위해 디자인되고 개선되어 왔습니다.
사회과학을 전공한 제게는 컴퓨터를 발명하고 발전시켜온 사람들의 고민과 흔적을 느낄 수 있는 특별한 워크숍이었습니다. 당연하다고 생각하고 지나쳐온 컴퓨터의 숨겨진 원리를 언플러그드 컴퓨팅 워크숍을 통해 어렴풋이 짐작할 수 있었습니다. 언플러그드 워크숍이 어쩌면, 다익스트라가 이야기한 ‘컴퓨터 과학을 접근하는 가장 적합한 방법일 수도 있겠구나’ 하는 생각이 들었습니다.
언플러그드 워크숍 <수련>: 손으로 연결되는 여유로운 워크숍
지난 6월 28일 일반인과 개발자들을 대상으로 언플러그드 워크숍을 진행했습니다. <수련>이라는 이름이 붙은 이 워크숍은 언플러그드 컴퓨팅 워크숍의 ‘컴퓨터 언어’에 착안해, 부족한 부분을 보완하고 개념을 추가하여 새롭게 구성한 워크숍입니다. <수련> 워크숍에는 컴퓨터를 전공하는 학생, 현직 개발자, 교사, 출판사, 디자이너 등 다양한 배경을 지닌 분들이 함께 했습니다.
워크숍은 크게 세 부분으로 나눠 진행했습니다. 첫 번째는 ‘말하고 그리기(Tell & Draw)’로 일상 생활에서 쓰는 구어를 다루는 영역, 두 번째는 ‘쓰고 그리기(Write & Draw)’로 지시문을 작성하고 개선하는 문어를 다루는 영역, 세 번째는 ‘카드 언어 만들기(Card program language)’로 컴퓨터 언어와 가까운 명령어를 만들고 실행하는 영역이었습니다.
워크숍은 참가자 스스로 교훈과 배울 점을 찾을 수 있게 설계됐습니다. 강사가 아니라 참가자 스스로 자각과 자질을 끌어내도록 여러 자극을 주는 코치(coach) 세 명이 수업을 도왔고, 참가자들이 서로 협업을 통해 워크숍을 진행해 나가도록 디자인됐습니다. 언플러그드 워크숍이 지향하는 ‘여유롭고 재미있는’ 구성을 위해 맑은 하늘을 보는 ‘산책’ 시간이 있었다는 게 또 하나의 특징이었죠.
인문학의 결합: “의사 소통의 중요성을 알았어요”
인문학은 ‘인간이 처한 조건’에 대해 연구하는 학문입니다. 거칠게 말하면, 삶의 대한 다양한 시각과 사색을 하는 것이죠. <수련>의 목적은 단순히 컴퓨터 언어의 구조와 원리를 이해하는 것뿐 아니라 우리가 일상에서 겪는 소통의 문제, 내 생활 속에서 발견되는 삶의 의사 소통 문제도 함께 생각해 보게 하는 데 있습니다.
<수련>의 첫 번째 파트는 한 명의 이야기꾼(storyteller)이 그림을 말로 설명하는 것으로 시작합니다. 나머지 참가자들에게는 이야기꾼의 설명을 듣고, 이야기꾼이 보고 있는 그림을 짐작해서 최대한 비슷하게 그리는 미션이 주어집니다. 참가자 10여 명은 똑같은 설명을 듣지만, 같은 그림은 하나도 그려지지 않습니다. 또 이야기꾼이 그림을 아무리 자세히 설명해도 한 치도 틀림없이 똑같은 그림을 그리기란 쉽지 않습니다.
그림을 그리는 과정에서 워크숍 참가자들은 자연스럽게 인코딩(encoding)과 디코딩(decoding)에 대해 생각합니다. 전달하고자 하는 사람과 받아들이는 사람의 차이를 확인하고, 내 주변에서 이런 일이 없었는지 생각하고 이야기를 나눕니다. 회사 상사와의 오해, 팀 작업에서 생기는 갈등, 가족끼리 생기는 불편함을 떠올립니다. 의사 소통의 어려움, 삶 속에서의 기억 더듬기를 통해 내 삶을 업그레이드할 수 있는 지점을 점검하는 것이죠.
공유를 통한 자유로운 개선, 크리에이티브 커먼즈
명확한 의사 소통이 중요하다는 것을 상기한 후 진행된 두 번째 파트는 문어에 관한 활동입니다. 그림을 보고 설명서(ver. 1)를 만드는 활동인데, 다른 사람이 이 설명서만을 보고 정답 그림을 똑같이 재현하는 것이 과제입니다. 참가자들은 첫 번째 파트에서 ‘설명’이 명확해야 하는 중요성을 알았기 때문에 좀 더 신중한 커뮤니케이션 전략을 사용하며 설명서를 작성합니다. 그렇게 완성된 설명서는 다름 팀에게 전달됩니다. 하지만 여전히 설명서를 읽고 그림을 재현하기가 쉽지 않습니다.
다른 팀의 설명서를 보고 그림을 그린 팀이 정답 그림을 보면, 본래의 설명서(ver. 1)의 모호한 설명, 잘못된 지시문을 쉽게 파악할 수 있습니다. 본래의 설명서를 개선하면 좀 더 명확한 설명서(ver. 2)를 만들 수 있지만, 저작물에는 기본적으로 저작권(copyright)이 있기 때문에 개선 작업을 마음대로 할 수 없습니다. 사람들은 이를 통해 공유 문화를 통한 개선의 필요성을 체험합니다. 공유와 재생산을 촉진하는 크리에이티브 커먼즈 라이선스(Creative Commons License, 이하 CCL)는 이러한 활동을 통해 자연스럽게 소개됩니다.
문어를 통한 설명은 몇 가지 특징이 있습니다. 설명서(명령문, instruction)를 만드는 과정(programming)을 통해 좀 더 엄밀한 의사 소통의 중요성을 아는 것은 물론이고, 다른 팀이 만든 설명서를 실행(running)하면서 설명서의 잘못된 부분을 개선(debugging)하기도 합니다. 작은 활동을 통해 프로그래밍 언어의 입력(input), 처리(process), 출력(output)을 간접적으로, 하지만 일상 활동에 가깝게 경험합니다.
엄밀한 커뮤니케이션, 내가 만드는 카드 언어 프로그래밍
세 번째 파트는 컴퓨터 언어와 가까운 카드 명령어를 만들고 조합하는 과정에서 컴퓨터 언어의 ‘추상화’ 개념을 이해하는 데 목적이 있습니다. 워크숍 참가자들은 그림을 그릴 수 있는 자신만의 그래픽 프로그래밍 언어를 카드로 만듭니다. 선 그리기, 옮기기, 이동하기 등의 기본 명령어를 만들고, 반복이나 if 문 같은 제어문을 만듭니다. 그리고 자신이 만든 언어에 이름을 붙이고 이 언어를 활용해 다양한 그림을 그릴 수 있는지 테스트합니다. 테스트를 통해 언어의 구조를 개선하기도 합니다.
중학교 정보 영재 학생들과 진행한 워크숍(7월 21일)에서는, 자신들이 만든 언어를 통해 주어진 과제를 그릴 수 있는지 점검 받는 과정을 추가했습니다. 학생들은 자신이 미처 고려하지 못해 제3자가 명령어만을 가지고 이해하지 못한 부분을 더욱 정교화할 수 있었습니다. 수업 마지막에는 카드 언어 만들기와 같은 그래픽 언어인 ‘Design by numbers’를 소개하는 것으로 마칩니다. 참가자들이 만든 것과 많이 다르지 않지만 컴퓨터에서 구동되는 언어를 보고 아주 얕은 깊이이지만 언어의 구조를 살피고 이해하는 체험을 합니다.
|
“나도 이해할 수 있다니 놀라워요.” - 중학교 2학년 여학생
“요즘 후배들이 컴퓨터 전공을 택하는 것을 많이 기피하는 분위기가 있었어요. 저도 후배들에게 어떻게 설명해야 할지 난감했는데, 후배들과 <수련> 워크숍을 당장 해보고 싶어요” - 컴퓨터 공학 전공 4학년 남학생
|
활동 중에 컴퓨터 언어가 전면에 드러나지는 않습니다. 특별히 전문적인 컴퓨터 언어를 배우는 과정도 아니죠. 하지만 카드 언어 만들기를 통해 언어의 구조를 이해하게 됩니다. 언어를 만드는 과정에서 고민하면서 전문적인 컴퓨터 언어의 표현과 문법을 보며 어떤 고민을 거쳐 생산된 것인지 어렴풋이 이해하게 됩니다. 이렇게 수련 워크숍은 구어와 문어, 컴퓨터 언어까지 천천히 접근합니다. 복잡한 이론에서 시작하는 것이 아니라, 내 삶 속의 일부분을 ‘돋보기’로 관찰하듯이 나부터 출발합니다.
에러 메시지?, 컴퓨터의 말걸기
흔히 컴퓨터의 활용을 ‘사고의 확장’이라고 이야기합니다. 하나의 ‘치장’처럼 느껴졌던 이 문구를 저는 <수련>을 통해 조금 이해할 수 있었습니다. 내 일상의 대화가 조금씩 확대되어 컴퓨터 언어와 프로그래밍을 연결하는 워크숍에서의 은유는 생각의 방향을 제시해 주었습니다. 컴퓨터와 상호 작용이 대화 같다는 것을 어렴풋이 느꼈고 컴퓨터를 대하는 사고의 틀을 전환할 수 있습니다.
이러한 사고의 전환은 에러 메시지를 ‘컴퓨터의 말 걸기’로 인식하게 해주었습니다. 여전히 짜증나는 에러 메시지이지만, 컴퓨터가 내게 건넨 대화의 쪽지라는 생각을 하면서 에러 메시지가 주는 다양한 신호들을 더 주의 깊게 살펴봤습니다. 그러다 보니 에러 메시지가 고마워지기까지 합니다. 내 실수를 고쳐주려고, 부정확한 내 의사 전달에 적극적으로 대답을 해주는 동료처럼 느껴집니다.
에러 메시지와 마찬가지로 컴퓨터 프로그래밍은 내 주변 동료와의 대화, 내 사고 속에서의 대화로 확장됐습니다. ‘생활 속의 은유와 교훈을 프로그래밍에도 적용할 수 있겠구나’라는 생각도 하게 됐지요. 손으로 만지는 컴퓨터, 체험을 통한 학습은 제 생각의 틀을 바꾸는 자극이 됐습니다. ‘프로그래밍을 하면서 얻는 경험과 교훈도 내 일상 생활과 어떤 부분이 연결되지는 않을까?’ 하는 생각도 하게 됐죠.
누구나 진행할 수 있는 오픈 워크숍, 주변 사람과 시작하세요
수련 워크숍은 여러분이 직접 진행할 수 있는 오픈 워크숍입니다. <수련> 워크숍의 워크북은 CCL로 공개되어 있습니다. 많은 사람이 참여해 컴퓨터를 좀 더 가까이 느끼는 기회를 나누고자 함입니다. 사람들의 참여를 통해 교육 사례가 많이 모이면, 워크북이 좀 더 정교해지고 정밀해질 것입니다. 많은 사람이 시도하는 각기 다른 워크숍을 통해 워크북이 점점 자라고 발전하는 것이죠.
이 글을 읽는 독자들도 워크북을 따라 주변 사람들과 진행해보길 추천합니다. 친구, 동료, 가족에게 프로그래밍을 쉽게 체험하게 해주는 좋은 기회가 될 것입니다. 자녀에게, 아내나 남편에게 프로그래머로서 여러분의 일을 소개하는 재미있는 게임 같은 시간이 될 것입니다. 워크숍을 통해 얻은 교훈이나 교육 사례는 다시 공개해주시길 부탁 드립니다. 더 많은 사람이 워크숍을 시도하는 힘이 될 것입니다. 또 여러분의 사례를 토대로 워크숍이 더 발전할 기회도 얻을 것입니다.
<수련> 워크숍을 시작했던 팀은 최근에 정보 이론(information theory)을 언플러그드 워크숍으로 만드는 실험적 워크숍을 진행했습니다. 앞으로도 압축, 검색 알고리즘, 오류 검출, 네트워크 등 다양한 분야를 개발하고 학습하려고 합니다. 물론 <수련>은 아직 완벽하지 않습니다. 많은 사람의 도움과 피드백을 통해 조금씩 완성되길 바랍니다. 여러분이 <수련> 워크숍을 만드는 과정에 관심이 있거나, 실험에 동참해보고 싶다면 으로 메일을 주세요. 앞으로의 일정과 공유할 수 있도록 하겠습니다.
이 글은 김승범•김창준•박동희 님의 조언을 통해 완성했습니다. 세 분의 도움으로 이 글을 완성할 수 있었습니다. 감사의 인사를 전합니다.
참고자료
- 자료
- 논문
- K-6 OUTREACH USING “COMPUTER SCIENCE UNPLUGGED, 2009, 6
- A CS Unplugged Design Pattern, 2008, Tomohiro Nishida
- 언플러그드 컴퓨팅을 이용한 예비교사의 정보교육 사례 연구, 한희섭, 2008
- Computing is a natural science, Peter J. Denning, 2007
이 문서 북마킹 하기
[지난 developerWorks Column 보기]
|