저자: 스티브 피긴스, 역 전순재
모든 사람들을 위한 컴퓨터 프로그래밍(CP4E)이라는 용어에 대해서는 다음과 같은 두 가지 해석이 가능하다. 모든 사람들이 컴퓨터 프로그래밍에 접근할 수 있도록 하자는 것인가? 아니면 모든 사람을 어느 정도는 프로그래머로 만들자는 시도인가? 필자는 교육 특별 관심 그룹(
edu-sig)에서 앨리스(Alice)에 관한 토론을 본 후 이와 같은 두 가지 해석에 대해 생각해 보게 되었다.
카네기 멜론(Carnegie Mellon) 대학의 제 3단계 연구 그룹(† 역자 주: Stage 3 research group, 여기에서 말하는 단계는 매체의 발전 단계를 말하는 것이다. 1단계는 단순매체 존재, 2단계는 매체의 복제, 3단계는 매체별로 기술 발전)은
3D 상호대화 프로그래밍 환경인 앨리스(Alice)를 만들었다. 앨리스(Alice)의 구이(GUI) 도구들과 간단한 파이썬 스크립트를 사용하여 이미지를 화면 주위로 움직이면 3D 이야기를 만들어 낼 수 있다. 제 8회 국제 파이썬회의(IPC8)에서, 앨리스(Alice)의 개발자 랜디 퍼쉬(Randy Pausch)는 앨리스를 "가슴을 뛰게 하는 3차원 로고(3D Logo on steroids)"라고 기술하였다. 로고(Logo)는 스크립트를 사용하여 화면 주위로 거북이를 움직이는 것과 관련이 깊은 프로젝트이다. 공정히 평가하면 로고 재단(
Logo Foundation)은 로고를 단순히 움직이는 거북이 이상으로 보고 있다. 첫째로 그들은 로고를 교육적 철학으로 생각하며 둘째로 로고가 프로그래밍 언어의 한 가족이라고 생각한다.
앨리스(Alice)는 교육적 철학도 아니며 특별한 프로그래밍 언어도 아니다. 나는 앨리스를 과학이라고도 부르지도 않겠다. 단순히 일종의 연구 대상으로 앨리스를 간주해도 좋다. 과연 그들은 복잡한 3D 도구들을 얻는데 성공하여 그 도구들을 프로그래밍 경험이 전혀 없는 학부생들의 손에 쥐어 주고, 그리하여 아티스트와 3D 프로그래밍 도구들 사이에 놓여진 장벽을 허물 수 있을까? 그들은 파이썬을 기본 스크립트 언어로 채택하여 프로그래머가 아닌 사람들도 이해할 수 있는 간단한 애플리케이션 프로그래밍 인터페이스(API)를 만들었다. 기본적인 프로그래밍 개념을 도입했지만 학생들이 프로그래머가 될 것을 요구하지는 않았다. 그들은 10살짜리 아이도 배우고 사용할 수 있을만한 도구를 만드는데 성공했으며 그런 과정 중에 여러 가지를 배웠다고 생각했다. 앨리스 프로젝트의 전 멤버인 매트 콘웨이(Matt Conway)는 그들이 발견한 것들을 자신의 논문
「앨리스: 초보자들이 쉽게 배울 수 있는 3D 스크립팅(Alice: Easy to Learn 3D Scripting for Novices)」에 요약하고 있다.
앨리스(Alice) 프로젝트는 "프로그래머가 아닌 사람들도 프로그래밍을 할 수 있는 방법"에 대한 해답을 연구한다. 이 질문이 바로 모든 사람들을 위한 컴퓨터 프로그래밍에 대해 내가 제시한 첫 번째 해석이다. 이 비전(vision)을 따르면 언젠가는 모든 컴퓨터 도구들이 프로그래머가 아닌 사람들을 위해 디자인된 프로그래밍 인터페이스를 제공하게 될 지도 모를 일이다.
CP4E에 대해 내가 제시한 또 다른 접근법은 "모든 사람에게 프로그램하는 법을 어떻게 가르칠 것인가?"라는 문제다. 이러한 두 가지 질문에는 논지를 벗어나기도 하지만 갖가지 재미있는 대답들이 나온다. 프로그래머가 아닌 사람도 프로그래밍에 접근하도록 해주려면 세부사항들을 숨겨야 한다느니, 모든 사람들이 프로그래밍을 배우도록 세부사항들도 일일이 보여줘야 한다느니 의견이 분분하다. 이 외에도 프로그래머가 아닌 사람들도 내부를 더 자세히 보고 싶어한다는 등등… 아트 시겔(Art Siegel)은 상호대화적인 3D 기하학 도구인 PyGeo에서 이런 접근법을 취하고 있다. 그는 수학 표현식을 소개하면서 수학이나 프로그래밍을 전혀 숨기지 않는다. 마찬가지로
커비 어너(Kirby Urner)는 자신의 교과과정 자료에서 프로그래밍이 가지는 능력을 모두 이용한다. 그는 프로그래밍을 사용하여 직접 수치처리 지식을 탐구한다.
첫 번째 질문에 대한 해답은 교육적일 필요가 없다. 본질적으로 앨리스(Alice)는 교육과는 전혀 무관하기 때문이다. 두 번째 질문인 "모든 사람들에게 어떻게 프로그램하는 법을 가르칠 것인가"라는 문제는 본질적으로 교육적이다. 나는 CP4E에 대한 이 두 접근법이 파이썬 교육 관심(edu-sig) 그룹에 다양한 관심을 불러 일으켰다고 생각한다. 물론 논쟁에도 불을 붙였다. 파이썬보다 훨씬 더 간단한 언어로 이동할 것인가 말 것인가?, 프로그래밍 교과과정이나 프로그래밍 도구 중 어느 것이 더 효과가 있는가?, 앨리스가 프로그래밍 능력을 상실시키기 때문에 장기적으로 보아 프로그래밍을 배우는 사람들에게 생산성의 저하를 가져오지는 않을까?, 그리고 무엇보다도 모든 사람들이 프로그래머가 되도록 가르친다는 생각이 과장된 것은 아닌가?, 등등… 이 모든 질문에 대한 수 많은 논쟁이 공식적으로 혹은 비공식적으로 불타 올랐다.
비록 두 접근법이 서로 다른 해답들을 제공하고 때로는 논쟁을 불러 일으키기도 하겠지만 CP4E에 대한 그 두 접근법은 서로를 지원할 수도 있다. 읽는 법을 배우는 데는 쉬운 책이 핵심적인 역할을 해준다. 마찬가지로 간단한 도구가 교육적인 역할을 톡톡히 할 수 있을 지도 모른다. 그렇지만 학생들은 그와 같이 간단한 것에 머물러서는 안된다. 학생들은 더욱 복잡한 재료들과 맞붙도록 해야 한다. 초보 독자에게 성장과 격려를 기대하는 것처럼 앨리스(Alice)와 같은 프로젝트가 바로 그런 종류의 기대와 결합되면 프로그래밍 입문에 흥미를 돋구어 줄 수 있다. 프로그래머가 아닌 사람들을 대상으로 한 유용한 프로그래밍 도구는 학생들의 호기심을 자극하여 더 많이 배울 수 있도록 유도해낼 것이다.