■ 교육용 프로그래밍언어는 일반 프로그래밍 언어 학습 혹은 논리적/절차적 사고력 증진을 위한 도구로 쓰이기 위해 개발
■ 최근 프로그래밍 초심자도 쉽게 사용가능한 웹기반 플랫폼과 함께 학생 대상 SW교육에서 주요 도구로 활용 중
■ EPL을 활용한 효과적 SW교육을 위해, 대상자에게 맞는 EPL 교육 목표 설정, 우수 교수법 연구·개발, 한국형 교육 콘텐츠 개발 필요

□ 교육용 프로그래밍 언어(Education Programming Language : EPL)

● 주로 프로그래밍 학습의 도구로 개발된 프로그래밍 언어

- 실제 문제 해결을 위한 전문적 프로그램 개발 툴보다는 프로그래밍 교육을 목적으로 디자인되고 개발

- 교육용 프로그래밍 언어(이하 EPL)는 특별히 정해진 범위나 틀은 없음

- 초기에는 범용 프로그래밍 언어(C, Java 등) 전문 교육의 진입장벽을 낮추기 위한 목적으로 프로그래밍 언어 등장

- 최근에는 실제 어플리케이션 개발보다 알고리즘을 만들고 프로그램화하는 훈련을 통해 논리적/절차적 사고력을 증진시키기 위한 학습 도구로서 각광

- 현재 프로그래밍 추세와 사용되어지는 기기 종류에 맞춰 EPL 요소도 변화

표 1-EPL의 요소

● 초심자를 고려한 단순한 문법, 웹 기반의 직관적 인터페이스 강세

- 범용 프로그래밍 언어들은 언어 고유의 문법이 존재하고 그 활용 범위만큼 문법의 복잡도 역시 증가해왔기 때문에, 학생 입장에서 진입 난이도가 높은 편

- EPL은 범용 프로그래밍 언어에 비해 문법이 단순하여 알아야할 내용이 적은 편

- 최근에는 명령어를 직접 타이핑하기보다 블록/그래픽 객체들의 조립을 통해 프로그래밍을 하는 직관적이고 시각적 인터페이스가 추세

- 최근 초·중등 어린 학생들이 자신의 생각을 프로그램으로 쉽게 표현하고 다른 이와 함께 프로그래밍 경험을 쌓아갈 수 있도록 활용

- 온라인 사이트형 플랫폼을 통해, 자신이 만든 프로젝트들을 다른 이들과 공유하고 협력하여 더 나은 작품으로 발전시킬 수 있도록 하는 공유의 철학 포함

□ 주요 초·중등 대상 EPL 사례

● 현재 많은 EPL이 존재하며, 최근 초·중등 대상 블록형 비주얼 언어들이 강세

- EPL은 50여 종이 넘는 다양한 종류가 있으며, 최종적으로 배우고자 하는 프로그래밍 언어나 기반이 되는 프로그래밍 언어에 따라 분류 가능

• Assembly, Basic 등 범용 프로그래밍 언어 교육을 위한 교육용 프로그래밍 언어로는 Little Man Computer(LMC), DLX, Visual Basic, Small Basic 등

• Logo, Scheme(이상 Lisp(1)-기반 EPL), Greenfoot, BlueJ(이상 Java-기반 EPL), Scratch, Squeak e-toys(smalltalk-기반 EPL) 등

- 최근 초·중등학생 대상으로 명령어 블록을 마우스로 끌어 조립하는 형태의 블록형 그래픽 프로그래밍 언어가 인기

- Web에서 프로그래밍과 실행이 한 화면에서 가능한 통합개발환경 및 게임형식의 교육내용을 통해 즐거운 교육 유도

(1) 스크래치(Scratch)

- 프로그래밍을 처음 배우는 이들이 엄격한 문법에 대한 어려움 없이 쉽게 자신의 생각을 프로그램으로 표현 할 수 있도록 디자인된 small talk 기반 EPL(MIT에서 개발)

- Squeak e-toys의 tile-scripting 방식에 영향을 받아, 명령어를 따로 외우거나 타이핑 입력하는 것이 아니라 명령어가 쓰인 그래픽 블록을 추가/조립하여 프로그램밍하는 형태

(2) 스크래치 주니어(Scratch Jr.)

- 글을 읽지 못하고 마우스 활용이 어려운 유아/어린이들 대상

- 기호가 그려진 그래픽 블록을 스크린 터치 방식으로 연결하여 프로그래밍

그림 1-(좌)스크래치 실행화면, (우)스크래치 주니어 실행화면

(3) 엔트리(Entry)

- 국내에서 개발한 교육용 프로그래밍 언어로 블록형 프로그래밍 개발환경 사용

- 국내 초·중등 학생 및 SW교사 대상의 프로그래밍 콘텐츠 개발 보급 중

- 언플러그드 활동을 지원하는 엔트리 보드게임과 함께 다양한 피지컬 컴퓨터 기기들도 연계 지원

(4) Blockly

- Google에서 개발한 스크래치와 같은 웹기반 블록형 프로그래밍 언어

- 명령어 블록 조립으로 만든 프로그램을 JavaScript, Python, PHP 등으로 변환할 수 있어서 그 다음 범용 프로그래밍 교육단계로 발전하는데 도움

그림 2-(좌)엔트리 실행화면, (우)Google의 Blockly 실행화면

(5) 코두(Kodu)

- 마이크로소프트(Microsoft)에서 개발한 게임 제작용 3D 비주얼 프로그래밍 언어

- 다양한 게임 프로그래밍 및 스토리텔링형 프로그램 제작에 효과적

(6) Logo

- MIT 인공지능 연구소에서 교육적 사용을 위해 개발한 Lisp 기반 언어

- 거북이 로봇을 명령어를 통해 움직여 그림을 그리는 인터프리터 형태로 대중화

- Dolittle 등에서 Logo의 거북그래픽 환경 활용

그림 3-(좌)Kodu 실행화면, (우)Logo를 사용한 Turtle Art실행화면

(7) Alice

- 카네기멜론 대학에서 만든 3D 프로그래밍 언어

- 사람/동물/탈 것 등의 3D 오브젝트들과 drag-drop 인터페이스는 스토리텔링형 애니메이션이나 간단한 비디오형 게임 등을 만드는데 효과적

- object, method, recursion 등 C++, C#, Java와 같은 객체지향 프로그래밍 언어의 특징을 담고 있어서, 객체지향언어 배우기 전 단계에 좋음

(8) 앱 인벤터(App Inventor)

- 안드로이드 기기에 쓰일 프로그램을 개발할 때, 내 컴퓨터에서 해당 프로그램을 편리하게 디자인할 수 있도록 지원(안드로이드 폰 에뮬레이터 제공)

- 다른 시각적 프로그래밍 언어처럼 블록들을 움직이고 조립하여 프로그램을 완성할 수 있음

□ 시사점

● 특히, 초·중등 SW교육에서는 대상자 수준에 맞는 교육 목표 설정이 중요

- 초등학생의 경우, 프로그램의 완성도나 언어 사용법 전체를 익히기보다는 다양한 문제에 대한 창의적 생각과 프로그래밍 경험이 우선적 목표 가능

- 같은 언어에 대해서도 프로그램 명령어와 구조에 대한 개념, 자료구조 활용 및 알고리즘에 따른 복잡도 분석 등 교육내용과 수준은 다양할 수 있음

- 학습자 수준에 맞지 않는 프로그래밍 교육은 학습자의 흥미 반감이 가능하므로, 어떤 EPL을 선택하느냐 보다 교육 목표에 맞는 학습범위 설정 중요

● 효율적 교수법 연구 및 인프라 지원

- 적은 정규수업시간에서 실습할 수 있는 효과적 교수법에 대한 연구 개발 지원

- 학교 내 프로그래밍 실습 환경 구축 필요

● 국내 학생들을 위한 친근한 교육콘텐츠 개발

- 실세계의 문제를 SW로 해결할 수 있음을 인식하는 것은 SW교육의 주요 목표 중 하나

- 국내 사회 환경과 밀접한 콘텐츠를 통해, 스스로 문제를 발견하고 창의적 생각을 도출하여 SW로 풀어낼 수 있도록 유도

표 2-주요 EPL 플랫폼

(1) Lamda Calculus 기반의 수학적 계산을 위해 디자인된 프로그래밍 언어

키워드 SW교육 월간SW중심사회 2016년 8월호 프로그래밍언어 EPL