교육용 프로그래밍언어/도구 소개

1. MS Kodu

공식사이트 http://fuse.microsoft.com/projects/kodu

Microsoft에서 교육프로젝트의 하나로 추진하는 Kodu 게임제작 도구를 먼저 소개한다. 3차원 그래픽을 이용한 아케이드 게임 제작이 가장 큰 매력으로, 3차원 스테이지를 자유롭게 만들고 오브젝트들을 배치하여 각각의 움직임과 스코어 등을 프로그래밍하여 게임을 즐길 수 있다.

 

 

코드를 입력한다거나 복잡한 알고리즘이 필요하지 않으며, 마우스만으로 프로그래밍할 수 있어 초보적인 프로그래밍 원리컴퓨터를 제어하고, 성취감을 느끼기에는 환상 그 자체이다.

MS의 XBox 컨트롤러 하나로 프로그래밍이 가능할 정도로 간단하고, 내가 만든 게임을 내가 즐길 수 있다는 것이 가장 큰 매력이라고 볼 수 있다. 3D게임을 만들 수 있다고 해서 비행시뮬레이션을 생각하기에는 다소 무리가 있다.

다만, 다국어를 지원하지 않아 몰입도가 떨어진다. 세부설정을 통해 게임의 긴장감과 난이도를 정할 수 있는데, 직관적이지 않은 목록형인데다가 영어로 되어 있어 아이들에게 설명해주기 어려운 문제가 있다. 뭐, 관심있는 아이들은 낱말 뜻을 찾거나 물어보거나 서로 가르쳐주면서 조작하는걸 보면 크게 문제되지 않을 수도 있겠다. 뜻이 있으면 길은 닦으면 되니까…

XNA기반에서 3D를 구현하는데, XNA 개발 당시에 다국어를 염두하지 않아 다국어를 지원하려면 기초공사부터 다시 해야 한다고 한다…

가장 핵심적인 기본적인 제어명령은 아이콘으로 되어 있어서, 아이들에게 접근이 어려운 것은 아니다. 교사가 직접 만들어서 보여주기만 해도 금새 따라하고 응용까지 단숨에 이루어졌고, 푸근한 인상의 꽁지머리 아저씨의 튜토리얼을 통해 아이들끼리 무언가를 만들기 시작했다.

1인용 슈팅게임을 즉석에서 제작해 보여주고 얼마 쯤 실습시간을 주었는데, 학생들 몇몇이 소란스러워 가 보았더니… 어느 새 (컴퓨터에 관심이 많은) 한 학생이 2인용으로 만들어 친구와 슈팅게임을 즐기고 있었다. 2인용 게임이라니… 아이들은 정말 놀라운 존재다.

Cooool

  1. 3D 아케이드 게임을 제작할 수 있다는 것 자체가 대박
  2. 마우스와 아이콘으로 제어명령을 입력할 수 있어 매우 쉬움
  3. 제어 명령에 따라 오류없이 잘 동작함
  4. 부드러운 움직임과 귀여운 캐릭터들로 몰입도 높음

More

  1. 제작한 결과물을 공유하기 어려움. 배포판을 생성 할 수 있었으면…
  2. 기본적인 제어기능은 매우 쉬우나, 세부설정 메뉴가 직관적이지 않아 복잡
  3. 다국어를 지원하지 않아 세부설정이 다소 어려움
  4. 네트워크 협력플레이 기능을 바라는건 다소 무리일까?

 

2. MIT Scratch

공식사이트 : http://scratch.mit.edu/

MIT에서 교육 프로젝트로 제작한 저작도구이다. 명령행을 직접 입력하는 BASIC, JAVA 같은 프로그래밍 언어의 경우, 영어권 학생들에게는 얼마간 학습하면 쉽게 익숙해질 수 있을지 몰라도 비영어권의 학생들에게는 영어라는 언어부터 장애물이 된다. 하지만, 스크래치처럼 마우스로 (다국어로 번역된) 명령블럭을 이어붙이는 방식은 언어라는 큰 장애물을 극복할 수 있도록 해준다.

실제로 아이들과 함께 학습해보면, 컴퓨터에 대한 소질 여하를 떠나서 타이핑 없이 마우스로 작성하고 실행하여 디버깅하는 ‘프로그래밍’에 너무 쉽게 접근하여 자기만의 세계에 쉽게 빠져들었다.

 

 

스프라이트(오브젝트) 중심의 제어를 통해 손쉽게 프로그래밍을 학습할 수 있다. Windows, MacOS, Linux의 다양한 운영체제다국어 환경을 제공하여 환경제약이 적고, 스프라이트(객체)를 즉석에서 편집할 수 있는 도구들을 제공하여 아이디어만 떠올린다면 제작에 그리 큰 노력이 들지 않는다. 너무 많은 것을 바라지만 않는다면…

Cooool…

  1. 다양한 OS 플랫폼 지원 (Windows, MacOS, Linux)
  2. 한글을 지원하여 초등학생에게도 만족
  3. 블럭조립형으로 명령행을 타이핑하지 않아도 됨
  4. 즉각적인 실행과 확인으로 빠른 디버깅 가능
  5. 에디터를 통해 스프라이트(오브젝트)를 쉽게 생성/편집 가능
  6. 공식 페이지를 이용해 코드를 공유

More…

  1. 객체마다 코드가 산재하여 전체적인 흐름을 파악하기 어려움
  2. 저작도구의 성격이 강하므로 세련되고 정밀한 코딩은 무리
  3. 컴파일러나 패키징 도구가 없어 배포판 생성이 어려움

 

3. MS Small BASIC

공식사이트 http://smallbasic.com/

Mr. Bill을 감동시켰던 BASIC. GW-BASIC, Quick-BASIC, Visual-BASIC 시리즈들은 MS의 운영체제와 함께하고 있다. Mr. Bill 생전에 BASIC시리즈는 사라지지 않을 것이라고 이야기들 한다. MS-DOS기반의 Quick-BASIC(정식버전)은 컴파일러를 제공했고, 인터럽트(int13)제어, 어셈블러, C라이브러리를 이용할 수 있어 강력한 프로그래밍이 가능했다.

BASIC은 대화형으로 작성되고 명령문에 기호가 적어 학습용으로 훌륭한 언어라는 장점 위에 MS가 BASIC을 상당히 발전시켜 놓았다. 매우 똑똑한 에디터와 인터프리터 덕분에 메모리 구조와 형변환 같은 자질구레한 것에 크게 신경을 쓰지 않아도 되는 편리함을 제공하면서도 예상밖의 강력한 결과물을 만들어낼 수 있다.

 

 

Small BASIC은 Visual-BASIC의 기본 명령어 세트에 객체지향구조를 도입하고, 프로퍼티와 매소드들을 단순화시킨 버전이다. Visual Studio가 설치되어 있다면, 제작한 코드를 컴파일하여 배포할 수 있을 정도의 유용성을 제공하므로 프로그래밍에 조금 더 관심을 갖는 (고학년) 학생이 있다면 권장할만한 프로그래밍언어이다.

Coool…

  1. 객체지향형 프로그래밍 가능
  2. 프로시져, 모듈을 통한 구조적 프로그래밍 실습
  3. 지능형 Editor로 에러를 예방하거나 디버깅에 도움을 줌
  4. Visual Studio(무료)와 연계하여 완성(실행) 파일 생성 가능

More…

  1. 타이핑이 필요하여 간단한 영단어를 알고 있어야 함
  2. 0Byte 코딩은 간혹 뇌를 다운시켜 멍하게 만들기도 함
  3. 객체?? 객체지향?? 개념의 이해없이 깨끗하게 접근하면 별것 아닌 그 이름…

 

 

학생들에게 도움이 될만한 웹프로그래밍언어를 살펴보려 했으나, 솔직히 English 라는 아주 무거운 짐을 덜어야만 가능하다는 점 때문에 적용해 볼 수 없었다. HTML같은 Markup Language도 언어라면 언어라고 볼 수 있겠지만, 조건, 분기, 반복, 연산과 같은 기본기능을 구현할 수 없으므로 다소 무리라고 본다.

대신 Code.org를 마스터하고 이를 소개할까한다.
(Code.org 자체의 이해할 수 없는 에러들만 없다면 말이다)

글쓴이: 맥노턴

초등교사커뮤니티 '인디스쿨' 대표