BLOG ARTICLE 스퀵 | 2 ARTICLE FOUND

  1. 2008.01.11 1. 스크래치 소개 (10)
  2. 2007.06.20 Squeak을 이용한 어린이 프로그래밍 교육 (12)

년초 포스팅에서 계획 했었던 어린이를 위한 쉬운 프로그래밍 강좌를 해보려고 합니다. 이런 생각을 한 이유는 제가 어린이 교육에 관심이 깊다거나 하는 거창한 이유가 아닌, 일차적으로 제 어린 아들을 위해서 입니다.

제 아이는 프로그래밍에 관심을 많이 가지고 있습니다. 프로그래밍이라기 보다는 자신이 그린 캐릭터들이 움직이는 것에 관심이 많습니다. 목표는 본인 스스로 게임을 만들어 보는 것입니다. 그동안 플래쉬와 스퀵, 스크래치 등의 툴들을 사용했지만 너무 어렵고 영어라는 제약을 뛰어 넘지 못하고  늘 어느선에 머물렀습니다.

사용자 삽입 이미지
좌측은 제 아들이 스크래치로 최근에 만든 것입니다. 스테이지, 레벨업, 무기 변경, 난이도 변경 등을 하고 싶어 하지만 구현하지 못하고 있습니다.  실제로 동작하는 모습은 스크래치 프로젝트 페이지에서 보실 수 있습니다.
 
초등학교 3학년 아이가 혼자서 만들기엔 어렵고 한글로 된 참조할 자료가 없기 때문에 더 이상 진행을 못하고 있는 것 같습니다.


그래서 일차적으로 제 아들을 위하여 그 다음은 저와 비슷한 관심을 가지고 있는 부모님들과 어린이들을 위해 강좌를 해보려고 합니다. 초등학교 4학년 이상이면 따라해 볼 수 있도록 가능하면 쉽게 해보려고 합니다.

0. 어린이와 프로그래밍


사용자 삽입 이미지
아이들은 일반 언어도 그렇고 어른들과 다르게 흥미있는 지식은 물 묻은 스폰지처럼 빠르게 흡수합니다. 그래서 오래전부터 제 아이에게 어렸을 때에 프로그래밍을 가르쳐 보려고 생각하고 있었습니다.

가르치려는 이유는 아이가 성인이 되어서 프로그래머가 되기를 바래서가 아니라 아래와 같은 효과가 있을 것 같기 때문입니다.

(사진출처: 스퀵랜드)

1) 창의력과 논리력이 향상됩니다.
프로그래밍은 무에서 유를 만들어 가는 과정입니다. 레고와 같은 유형의 교육용 장난감들도 이런 역할을 수행 합니다. 하지만 컴퓨터는 양이나 범위, 방법에 관해 어떠한 제한도 없이 생각하는 모든 것을 구현할 수 있습니다. 게다가 무료입니다.

사용자 삽입 이미지
아이들은 프로그래밍이라는 딱딱하고 어려운 작업이 아니라 레고를 가지고 놀듯이 명령어들을 조합하여 원하는 결과물을 다양하게 만들어 낼 수 있습니다. 실제 레고사에서는 스크래치에서 사용할 수 있는 좌측과 같은 이미지의 레고 이미지 팩을 기증(?)하였습니다.

학생 본인 또는 부모님이나 선생님들의 작은 노력만 있다면, 생각한 대로 가지고 놀 수 있는 가장 값어치 있는 장난감을 손에 넣을 수 있습니다.

2) 깊은 성취감을 느낄 수 있습니다.
개발자들이 가장 기쁨을 느끼는 순간이 코드가 컴파일되고 생각한대로 실행되는 모습을 확인할 때 입니다. 이는 아이들도 마찬가지로 여러 명령어 조합을 맞춰 보고 제대로 실행되었을 때 컴퓨터로 본인 스스로 무엇인가를 만들었다는데 대해서 깊은 성취감과 자신감을 가질 수 있습니다.

3) 컴퓨터의 생산적인 사용방법을 습득할 수 있습니다.
대부분 아이들이 컴퓨터를 게임기로 사용합니다. 오락적인 요소도 중요하지만 컴퓨터로 원하는 일을 할 수가 있고 이를 위한 도구로서 이용할 수 있게 만듭니다.

게임을 하거나 재미있는 글과 사진, 동영상을 보기 위한 소비적인 이용뿐만 아니라 스케치로 원하는 결과물을 만들어 내는 생산적인 이용을 가능하게 합니다.

4) 자발적으로 영어와 친숙해 질 수 있습니다.
홈페이지와 스크래치의 모든 명령은 영어로 되어 있습니다. 사용되는 영어와 명령어 수가 많지 않기 때문에 쉽게 외우고 사용할 수 있습니다.

뒤에서 자세히 설명하겠지만 스크래치 홈페이지에서 프로젝트를 올리고 평가하고 공유하며, 또한 놀면서 외국의 아이들과 의견을 교환할 수 있습니다. 의사소통을 위해 자발적으로 기분좋게(?) 영어를 배운다면 아이에게도 즐거운 일일 것 같습니다.

5) 프로그래밍 기본개념 습득
스크래치는 아이들의 놀이/학습뿐만 아니라, 프로그래밍을 처음 접하는 성인들도 프로그래밍에 대한 기초와 개념을 쉽게 가지게 해줄 수 있는 툴입니다. 프로그래밍에 대한 기본 지식을 습득하면 나중에 직접 타이핑을 해야 하는 프로그래밍 언어와 툴들도 쉽게 적응할 수가 있습니다.

1. 스크래치란?

사용자 삽입 이미지
스크래치는 스퀵을 기반으로 MIT Media Lab에서 개발한 8세 이상의 어린이들의 개발을 위한 툴입니다. 8세라는 것은 스크래치 사이트에 나와있는 내용이며 영어권 국가의 기준입니다.

"우리나라와 같이 비영어권 국가에서는 초등학교 저학년의 경우에는 부모님의 도움이 필요할 것 입니다. 스크래치에서 사용하는 영어는 간단하고 얼마 되지 않으니 5/6학년 정도의 고학년 어린이들은 이 블로그의 내용만 보고 따라할 수 있을 것으로 생각됩니다."

스크래치는 위 로고의 아래  내용처럼 생각한 내용을 애니메이션, 게임, 음악 등으로 쉽게 표현할 수 있고 웹을 통해서 다른 사람들과 공유할 수 있게 해줍니다. 스크래치 프로젝트는 스크래치에서 바로 홈페이지로 업로드할 수 있으며, 개인의 홈페이지나 블로그에서도 올릴 수 있습니다.

스크래치의 결과물은 자바 애플릿을 이용하여 웹상에서 바로 실행될 수 있습니다. 윈도우즈일 경우에는 JRE가 설치되어 있어야 합니다. JRE가 없으면 이곳에서 설치할 수 있습니다.

2006년 3월을 시작된 스크래치 홈페이지는 현재 회원수가 6만명이 넘을 정도로 빠르게 사용자가 늘어 가고 있습니다. 제가 본 무료로 배포되는 교육용 프로그램 중에서는 가장 사용하기가 쉽고 완성도 높은 것으로 생각됩니다.

사용자 삽입 이미지
스크래치는 스퀵으로 작성되었습니다. 스퀵으로 만든 결과물 중에 가장 훌륭한 것이 아닐까 생각됩니다. 스크래치의 소스는 홈페이지에 공개되어 있으며 이곳에서 다운로드 받으실 수 있습니다.
스퀵은 스몰토크-80으로 작성되었으며, 스퀵 그 자체에 스몰토크-80과 기본 라이브러리를 가지고 있는 개발툴입니다.


2. 회원가입 및 설치

1) 회원 가입
스크래치를 다운로드 받기 위해서는 스크래치 홈페이지를 방문해야 합니다. (사이트는 영어, 독일어, 프랑스어를 지원합니다.) 스크래치를 다운로드 받기에 앞서 회원가입을 먼저 합니다.

사용자 삽입 이미지
회원가입은 좌측과 같이 이메일을 제외하고는 중요한 개인정보를 요구하지 않습니다.

스크래치를 적극적으로 활용하고, 다양한 활동을 위해서는 가입을 하시는 것이 좋습니다.



사용자 삽입 이미지
회원가입을 하시면 포럼에 참여할 수 있으며 스크래치로 만든 프로젝트를 해당 사이트에 등록할 수 있습니다.

만든 프로젝트를 등록하면 좌측과 같이 다른 이용자들과 공유하며 다양한 평가와 의견을 받을 수 있습니다.

마찬가지로 다른 사람이 올린 프로젝트들에 대하여 평가하고 즐겨찾기로 등록할 수 있습니다. 프로젝트를 다운로드 받으면 다른 사람들이 구현한 노하우를 쉽게 참조할 수 있습니다.





2) 다운로드 및 설치
현재 버전은 1.2.1입니다. Mac OS X와 Windows용이 있습니다. (Linux 버전은 현재 작업중이라고 합니다.) 사용하는 OS 버전별로 다운로드를 받으시면 됩니다. 최소 설치 사양은 아래와 같습니다.
  • 해상도 :  1024 x 768이상, 16비트 컬러 이상
  • OS : MS 윈도우 98 이상, 맥 OS X 10.3 이상
  • 하드디스크 : 120MB 이상

맥에서는 압축만 풀고 바로 사용할 수 있습니다. 윈도우에서는 인스톨 버젼(exe)를 실행하시면 됩니다.

현재 스크래치에서 지원하는 언어는 아래와 같습니다. 생소한 언어들도 있는데 한국 뿐만 아니라 중국, 일본도 없습니다. 로컬화는 매우 쉽습니다. 하지만 이전에 한글화를 시도해 본적이 있었는데 깨져서 나왔습니다. 아쉽지만 1byte 코드를 사용할 수 없는 언어들은 표시할 수가 없는 것 같습니다. 그래서 한글과 같은 아시아권 언어가 없는 것 같습니다.

Català, Cesky, Dansk, Deutsch, English, Español, Français, Galego, Italiano, Magyar, Nederlands, Norsk, Polski, Português, Româna, Slovencina, Suomi, Svenska

이제 스크래치 아이콘을 클릭하여 실행하여 봅니다. 아래와 같이 실행되면 스크래치를 사용하여 작업을 할 준비가 완료된 것입니다.

사용자 삽입 이미지


3. 기타 유용한 정보

1) Board
사용자 삽입 이미지
PC와 연결해서 입력을 받아 스크래치로 전달하는 보드입니다. 슬라이드와 버튼이 있어 스크래치로 만든 게임등의 프로젝트에서 입력 받을 수 있습니다.



이외에도 라이트와 사운드 센서가 있고, 전기저항을 감지할 수 있는 악어클립으로 사용자가 입력을 커스터마이징 할 수 있습니다.  

PC와의 연결은 USB를 이용하며, 맥 OS X와 윈도우 드라이버를 제공합니다. 가격은 25달러(US)이며, 운송비로 미국내에서는 5달러, 그 외의 나라들은 20달러가 추가 됩니다. 우리나라에서 주문을 하려면 45달러가 듭니다. 

2) Card
사용자 삽입 이미지
PDF로 되어 있는 스크래치의 중요 동작들에 대한 카드입니다. 앞면에는 동작의 예가 있으며 뒷면에는 구현방법에 대한 설명이 있습니다.

아래와 같이 칼라 프린트로 출력한 후에 오려서 코팅을 해주면 아이들이 오래도록 잘 사용할 수 있을 것 같습니다.

사용자 삽입 이미지

3) 참조할 내용
사용자 삽입 이미지
홈페이지의 support메뉴를 클릭하시면 스크래치를 사용하는데 도움이 되는 다양한 자료들을 보실 수 있습니다.

이곳에서 레퍼런스 가이드를 다운로드 받거나 동영상 강좌를 보실 수 있습니다. 이외에도 다양한 자료들이 있으니 방문하셔서 확인해 보시기 바랍니다.





마지막으로 제가 이전에 작성한 관련 포스팅들을 링크하고 마치겠습니다. 다음 장부터 본격적인 스크래치의 사용법에 대해서 알아보겠습니다.

사용자 삽입 이미지
저에게는 초등학교 3학년인 아들이 하나 있습니다. 어려서부터 제가 컴퓨터에서 작업하던 모습을 보며 자란 이 녀석은 커가면서 제가 하는 작업을 따라 하려고 노력하였습니다.

어려운 프로그래밍을 배우려는 이유는 단 하나입니다. 그토록 좋아하는 게임을 직접 만들 수 있다는 것입니다.


어린 아들에게 프로그래밍을 권유하고 싶은 생각은 없지만, 컴퓨터로 게임만 하는 것보다 프로그래밍 공부를 해보겠다는데 딱히 말릴 이유도 없었습니다.

그래서 관련된 책도 사주었지만, 영어가 기반인 프로그래밍 언어와 VS, Xcode 같은 복잡한 툴을 사용하기에는 아직 어렸습니다.

관심이 없어진 줄 알았는데, 어느날 이 녀석이 티스토리에서 블로그를 만들어 아래와 같은 플래쉬들을 올리고 있다는 것을 알았습니다.
사용자 삽입 이미지사용자 삽입 이미지사용자 삽입 이미지

다른 건 어려워서 못하고, 플래쉬는 조금씩 적응을 해나가고 있었나 봅니다. 플래쉬의 액션 스크립트도 약간 쓸 줄 알게 되고, 이제 배우기 쉬운 프로그래밍 언어를 조금씩 가르쳐 볼까하는 생각이 들었습니다.

그래서 구글에서 아이들을 위한 쉽고 재미있는 개발 환경을 찾다가, 우연히 squeakland라는 곳을 방문하게 되었습니다. squeak을 아이들을 위한 교육적인 목적으로 활용는 것에 관해 나와 있는 사이트였습니다. 아~ 바로 이거다 라는 생각이 들었습니다.

사용자 삽입 이미지
그러다가 거기서 본 한장의 사진에서 어디선가 본 듯한 얼굴을 보았습니다.

바로 현대적 PC를 제안하고, OOP의 개념을 확립하고, 스몰토크를 만든  엘런 케이...

(이 사진이 있는 홈페이지에도 엘런 케이라고 언급이 없으니 확실하지는 않지만 콧수염이랑 윤곽이랑 비슷한 것 같습니다.)
사진출처:squeakland

프로그래밍이나 컴퓨터 관련 책에 전설처럼 등장 하는 그가, 이 세상 사람이 아닌 줄 알았습니다. 하지만 그는 지금도 활발하게 활동하고 있었습니다.

사이트를 둘러 보니 squeak은 엘런 케이가 애플에서 그의 오랜 동료들과 시작한 프로젝트였습니다. 엘런 케이는 아이들을 위해 현대 PC 환경에 많은 영향을 준 그 유명한 다이나북을 제안하고, 그 뒤에도 어린이의 컴퓨터 사용에 관해 여러 연구를 진행하였습니다. 그런데 아직까지도 이 분야에서 계속 활동을 하고 있었던 것이었습니다.. 정말 아이사랑이 남다른 분 같습니다.
 
아무튼 저는 squeak을 다운 받아 실행시켜 보았습니다. 찾아보니 한국스퀵 사이트가 있길래, 이 곳에서 한국어 버젼을 다운 받았습니다. (세상엔 참 고마운 분들이 많습니다.)

사용자 삽입 이미지
위는 squeak 맥버젼을 실행시켜 본 모습입니다. 개인마다 차이가 있겠지만 개인적으로는 UI가 화려하다거나, 이쁘다는 느낌은 받지 못했습니다.

그 뒤 squeakland에 있는 drive a car 예제를 따라 해 보았습니다. 차와 핸들을 그리는 시간을 제외하고 자동차를 핸들로 조종하며 움직이게 만드는데 걸린 시간은 단 1분도 안되었습니다. 시키는대로 따라해 보고, 결과물을 본 저는 경악할 수 밖에 없었습니다.

뭐 이런게 다 있지...

아래는 제가 그린 차가 움직이고, 소리를 내고, 원하는 방향으로 움직이게 만드는 스크립트입니다. 모든 작업은 마우스로 하였기 때문에, 스크립트라고 하기도 그렇습니다. 가장 감명 받은 부분은 [붕붕카 돌기][핸들의  머리방향]을 결합 시킬 때였습니다.
사용자 삽입 이미지

제가 마우스로 작업을 하는 동안 squeak은 아래와 같이 스몰토크 코드를 생성해 놓았습니다. 스몰토크의 아래와 같은 문법때문에 위의 액션 블록이 쉽게 스몰토크 코드로 바뀔 수 있는 것 같습니다.
사용자 삽입 이미지

퇴근 후, 집에 가서 아들에게 사용하게 해 보았습니다. 결과는 역시 대성공. 아들 녀석은 자기가 그린 오브젝트들을 마음대로 다룰 수 있는 걸 보고 무척이나 좋아하였습니다. 나 같은 아빠들을 위해 조만간 이 블로그에도 squeak의 사용법에 대해서 간단하게 소개해 볼려고 합니다.

사용자 삽입 이미지
squeak은 아이들 놀이/교육의 용도로만 제작된 것은 아닙니다. SmallTalk-80과 개발환경, 기본 라이브러리를 가지고 있어, 전문적인 개발자도 원하는 용도로 사용할 수 있습니다.

좌측은 Squeak에서 간단한 SmallTalk 소스를 작성하고 실행해 본 이미지입니다. 위의 모습과 달리 개발툴의 냄새가 납니다.

실제 한국 스퀵 사이트는 스퀵으로 만든 웹서버와 웹 어플리케이션으로 운영되고 있다고 합니다.


사용자 삽입 이미지
또한 Squeak VM이 있으면 웹브라우져 상에서도 java 처럼 실행이 가능합니다. 아래는 파이어폭스에서 squeak으로 만든 프리쉘을 실행시켜 본 모습입니다.

이 게임 외에도 테트리스 등의 게임을 해당 사이트에서 확인하고 실행해 볼 수 있습니다.
 



제게 있어 엘런 케이는 오래전 책에서나 존재하던 사람이었습니다. 이제 세상이 좋아져 웹상에서  최근에 올린 그의 글들을 볼 수 있고, 이런 프로그램 까지 쓸 수 있게 되다니... 엘런 케이 아저씨 존경합니다.

"The best way to predict the future is to invent it."
(미래를 예측하는 가장 좋은 방법은 미래를 만드는 것이다.)
- Alan Kay -