새싹: 초보자를 위한 한글 객체 지향 프로그래밍 언어
Saesark: A Korean Object-Oriented Programming Language for Beginners
천준석*, 우 균**
부산대학교 전기전자컴퓨터공학과*, 부산대학교 전기컴퓨터공학과**
Junseok Cheon([email protected])*, Gyun Woo([email protected])**
요약
컴퓨터가 일상생활에 널리 사용됨에 따라 프로그래밍은 필수 기술로 떠오르고 있다. 프로그래밍 교육을 지원하기 위해서 우리나라는 2018년까지 프로그래밍 정규 과목을 개발할 계획을 추진하고 있다. 하지만 대 부분의 프로그래밍 언어가 영어를 기반으로 하고 있기 때문에 우리나라의 프로그래밍 교육은 어려워지고 있으며 학생들도 집중력을 쉽게 잃을 수 있다. 이 논문에서는 우리나라 학생들의 프로그래밍 교육에 효과적 인 한글 프로그래밍 언어 새싹을 제안하고 있다. 새싹은 Java를 바탕으로 개발하였으며, 객체지향 프로그래 밍과 람다 식을 지원한다. 새싹의 교육 적합성을 평가하기 위해서 우리는 새싹을 다른 한글 프로그래밍 언 어와 세 가지 측면에서, 즉 문법적 특성, IDE 지원, 한국어 오류 메시지 측면에서 비교하였다. 비교 결과, 새싹이 다른 한글 프로그래밍 언어보다 더 교육에 적합함을 알 수 있었다. 특히, IDE 기능과 한글로 출력되 는 오류 메시지는 프로그래밍 초보자에게 도움이 많이 될 것으로 예상된다.
■ 중심어 :∣새싹∣한글 프로그래밍 언어∣코딩 교육∣객체 지향 언어∣교육용 언어∣
Abstract
As the computer becomes pervasive in everyday life, the programming arises as an essential technique. To support the education of programming, Republic of Korea has launched a plan to develop the official courses of programming by 2018. However, the programming education in Korea tends to be difficult and the students easily lose their concentration since most of programming languages are based on English. This paper proposes a Korean programming language called Saesark to promote the effective programming education for Korean students.
Saesark has been developed based on Java, which supports the object-oriented programming and the lambda expressions. In order to evaluate the educational suitability of Saesark, we compared it with other Korean programming languages in three respects: syntactic features, IDE support, and error messages in Korean. According to the comparison, Saesark is revealed more suitable than other languages. Specifically, the IDE features and the error messages in Korean are expected to be mostly valuable in educating novice programmers.
■ keyword :∣Saesark∣Korean Programming Language∣Coding Education∣Object-Oriented Language∣
Education Language∣
* 이 논문은 2013년도 정부(교육부)의 재원으로 한국연구재단의 지원을 받아 수행된 기초연구사업임 (NRF-2013R1A1A4A01006704)
접수일자 : 2015년 12월 03일 수정일자 : 2016년 02월 18일
심사완료일 : 2016년 02월 26일
교신저자 : 우 균, e-mail : [email protected]
I. 서 론
인류는 산업 혁명과 디지털 혁명을 통해서 농업 사회 에서 산업 사회로, 산업 사회에서 정보화 사회로 발전 하였다. 정보화 사회 초기에는 반도체나 디스플레이 등 하드웨어의 비약적인 발전이 사회 혁명을 주도해나갔 다. 하지만 현재는 사회 혁명의 원동력이 하드웨어에서 소프트웨어로 빠르게 이동하고 있다[1].
영국 세계적인 브랜드 컨설팅 기업인 브랜드 파이낸 스는 연례 보고서를 통해 세계 500대 기업에 대한 브랜 드 가치를 발표한다. 지난 3월 발표한 보고서에 따르면, 상위 10개 브랜드 중 대부분이 소프트웨어를 개발하는 기업인 것을 알 수 있다[2]. 즉, 하드웨어 개발보다 소프 트웨어 개발을 통한 이윤 창출 가능성이 크다는 뜻이다.
이러한 변화에 힘입어 세계적으로 프로그래밍 교육 이 유행하고 있다. 미국의 오바마 대통령은 코딩의 중 요성을 강조하였으며, 뉴욕의 시장인 빌 더블라지오 (Bill de Blasio)는 십 년 내에 모든 공립학교에서 컴퓨 터 사이언스 커리큘럼을 제공할 것이라 언급하였다[3, 4]. 영국의 경우에는 공립초등학교 커리큘럼에 대한 개 혁이 이루어져서, 5세부터 16세까지의 전 학생에 대한 프로그래밍 학습이 의무화되었다[5]. 일본의 경우에는, 2012년부터 중학교 기술가정 교과에서 프로그램에 의 한 계측․제어가 필수 과목이 되는 등 의무교육 단계에 서 IT 교육이 강화되고 있다[6]. 우리나라도 이러한 세 계적인 흐름에 맞춰서 2018년부터 정규 과정에 프로그 래밍 교육이 포함될 예정이다[7].
하지만 갑작스러운 소프트웨어 교육에 대한 우려의 소리도 많다[8]. 워드 프로세서 활용 교육을 해도 어려 워하는 학생이 있는데, 프로그래밍 언어 교육을 따라가 지 못하는 가능성이 높다는 것이다. 또한, 프로그래밍 언어가 대부분 영어 어휘를 기초로 설계되어 있어서 초 보자가 배우기에는 부담스럽다는 것이다.
초보자의 부담을 줄여주는 방법 중의 하나가 자국어 로 된 프로그래밍 언어 사용이다. 많은 나라에서 자국 어로 된 많은 프로그래밍 언어가 나왔으며, 우리나라도 한글 프로그래밍 언어가 존재한다. 최초의 한글화된 언 어인 한베를 시작하여 1990년대에 개발된 씨앗 등 한글
프로그래밍 언어가 개발되었다[9][10]. 하지만 사용자 가 적고 유지보수가 끊겨서 결국 사장되고 말았다. 최 근에는 전 세계적인 코딩 열풍에 힘입어 와글, 약속, 아 희 등과 같은 한글 프로그래밍 언어가 개발되고 있다 [11-13].
지난 연구[14]에서 우리는 간결한 한글 프로그래밍 언어인 새싹을 개발하였다. 새싹은 C를 기초로 하여 제 작되어 JVM(Java Virtual Machine) 상에서 동작하기 때문에 JVM을 지원하는 어느 환경에서나 동작한다. 또 한, Eclipse 플러그인 형태로 개발되었기 때문에 Eclipse에 저장소를 추가하는 것만으로 누구나 쉽게 내 려받아 사용할 수 있다.
이 논문에서는 기존 새싹 언어를 발전시켜 객체지향 개념과 람다 식을 추가한, 더 발전된 새싹을 소개한다.
Java, C++, C#과 같은 객체지향 언어를 배우기 이전에 새싹을 통한 선행 학습으로 객체지향 개념을 쉽게 이해 할 수 있다. 또한, 람다 식을 적용하여 소스 코드를 간 소하고 명확하게 작성할 수 있게 하였다.
이 논문에서는 새싹의 우수성을 증명하기 위해 씨앗, 두리틀, 와글, 약속과의 비교 실험을 수행하였다[15]. 첫 번째는 언어별 문법 비교를 통해 어느 언어가 가장 많 은 기능을 제공하는지 확인하는 실험이다. 두 번째 실 험은 언어별 IDE 기능 비교를 통해 초보자가 코딩할 때 얼마나 도움을 줄 수 있는지 확인한다. 마지막 실험은 한글 오류 메시지를 비교하여 디버깅 시에 얼마나 도움 을 줄 수 있는지 확인한다.
이 논문의 구성은 다음과 같다. 2장에서는 최근에 개 발되고 있는 한글 프로그래밍 언어와 기존의 새싹 언어 를 소개한다. 3장에서는 새싹에서 제공하는 주요 문법 과 기능에 관해 설명한다. 4장에서는 기존의 한글 프로 그래밍 언어와의 비교 실험을 수행한다. 이후 5장에서 결론을 맺는다.
II. 최근 개발되고 있는 한글 프로그래밍 언어 1. 와글
와글은 느림과누림에서 개발 중인 한글 프로그래밍
언어이다[11]. 초보자가 쉽게 배울 수 있도록 한글 문법 을 고려하여 개발되었으며, 단순한 UI를 사용하여 사용 법을 따로 배우지 않아도 되도록 하였다. 또한, 초보자 가 코딩에 흥미를 느낄 수 있도록 터틀 그래픽스를 차 용하였다. 또한, 와글로 동작하는 로봇과 다양한 실험이 가능한 임베디드 보드를 제공한다.
2. 약속
약속은 하재승 개발자와 Puzzlet Chung 개발자가 공 동 개발 중인 한글 프로그래밍 언어이다[12]. Python과 마찬가지로 들여쓰기를 이용하여 라인을 구분하는 특 징이 있다. 오픈소스로 개발되어 GitHub를 통해 누구 나 개발에 참여할 수 있는 특징이 있다. 또한, 웹 브라 우저를 통해 언어를 직접 사용해볼 수 있다.
3. 새싹
새싹은 이전 연구에서 개발한 한글 프로그래밍 언어 이다[14]. 새싹에서 사용되는 문법은 C 언어와 유사하 여서 추후에 C 언어를 배울 때 쉽게 적응할 수 있다. 새 싹은 C 언어를 배울 때 어려운 점인 포인터를 제거하였 으며, 한글 문법상 어색하게 느끼지 않도록 키워드를 사용하여 초보자도 쉽게 접할 수 있다.
III. 새싹 언어의 문법 및 기능적 특징
이 장에서는 객체지향 개념이 추가된 새싹을 소개한 다. 기존의 새싹 언어는 C와 같은 절차형 언어였다. 우 리는 기존의 새싹 언어를 객체지향 언어 구조로 변경하 여 초보자들이 객체지향 언어를 배울 때 한글로 쉽게 적응할 수 있도록 하였다.
1. 클래스
이 논문에서 소개하는 새싹 언어는 다른 객체 지향 언어와 마찬가지로 클래스를 지원한다. 새싹의 클래스 는 다른 언어에서와 마찬가지로, ‘무엇인가’를 실행하기 위한 설계도 역할을 한다. [그림 1]은 새싹에서의 클래 스 개념을 설명하기 위해 작성한 간단한 프로그램이다.
텔레비전을 정의한 텔레비전 클래스를 사용하기 위 해서는 2, 3번째 줄과 같이 새로운 텔레비전 객체를 생 성해야 한다. 작성한 텔레비전 객체에 대해, 텔레비전 클래스에 정의되어 있는 메소드를 실행하기 위해서는 5~9줄과 같이 기술한다. 이렇게 한글을 사용하여 객체 지향 방식의 코딩에 쉽게 적응할 수 있도록 하였다.
그림 1. 텔레비전 설정 및 출력 프로그램
새싹에서 생성자(constructor)를 사용하려면 17, 20번 째 줄과 같이 클래스명 앞에 + 기호를 추가해야 한다.
새싹은 Java와 마찬가지로 개발자가 아무런 생성자를 만들지 않으면 인자가 없는 기본 생성자(default constructor)를 자동으로 만들어준다. 하지만 생성자를 생성할 경우에는 17~18번째 줄과 같이 디폴트 생성자 도 명시해야 한다. 또한, 3번째 줄에서 객체의 초기값을 언급하지 않는 경우에는 8, 침실 대신에 0, 널이 출력된 다.
2. 접점
새싹에서 제공하는 접점은 Java의 인터페이스와 동 일한 기능이다. 접점은 추상 메소드와 추상 클래스의 특수한 형태로, 실체 없이 ‘이러한 형태의 메소드를 호 출하라’는 형식만 정의한다. [그림 2]는 새싹 언어에서
접점 문법을 사용한 예이다.
5~15번째 줄의 강아지 클래스는 출력가능 접점을 사 용하고 있다. 접점은 하나의 클래스에서 복수 개를 사 용할 수 있다. 또한, 접점은 다른 클래스로부터 호출될 때 사용하는 것이기 때문에, 접점의 멤버는 반드시 공 개(Java의 public)로 설정해야 한다.
그림 2. 접점 기능을 사용한 예제
3. 한글 오류 메시지 출력
프로그래밍을 처음 배우는 사람이 코딩 중 맞닥뜨리 는 문제 중 하나가 디버깅이다[16]. 기존의 영어 문법을 기초로 한 프로그래밍 언어의 경우, 오류 메시지 역시 영어로 출력되기 때문에 초보자가 배우기 어려운 것이 사실이다. 씨앗, 두리틀 등의 한글 프로그래밍 언어의 경우, 메시지가 난해하거나 알맞은 오류 메시지를 출력 하지 못한다.
새싹 언어는 누구나 쉽게 이해할 수 있고, 디버깅에 도움을 주는 오류 메시지를 출력하기 위해 노력하였다.
[그림 3]은 새싹 언어를 이용하여 오류 메시지를 발생 시킨 예를 나타낸 것이다. 해당 소스코드는 배열의 첨 자가 잘못되어서 컴파일 시 오류를 출력한다.
새싹의 오류 메시지는 Java의 오류 메시지 형태를 참 고하여 제작하였다. 즉, 오류 메시지의 첫 번째 줄에는 오류의 종류를 출력하고, 다음 줄부터는 오류가 발생한 위치를 출력한다. 한글 오류 메시지를 통해 영어가 서 툰 초보자도 재미있게 프로그래밍할 수 있을 것으로 기 대된다.
그림 3. 새싹 오류 메시지 출력 예제
4. 람다 식
Java SE 8부터 도입된 기능 중의 하나에 람다 식이 있다[17]. 람다 식은 함수형 인터페이스의 메소드를 구 현할 때 사용할 수 있으며, ‘(구현하는 메소드의 인수) -> {처리}’의 형태로 기술한다. 람다 식을 사용하여 얻 는 이점은 지금까지 함수형 인터페이스 구현을 위해 작 성하였던 부가적인 코드를 간단하게 작성할 수 있다는 점이다. 이전에는 익명 클래스를 사용한 경우, 재지정 (override)해야 하는 메소드 선언 등의 불필요한 코드가 늘거나, 들여쓰기를 몇 단계 더 사용해야 해서 가독성 이 떨어진다.
새싹에서는 Java와 마찬가지로 람다 식을 지원한다.
[그림 4]와 [그림 5]의 비교를 통해서 람다 식 사용 여부 에 따른 코드 차이를 확인할 수 있다. 코드는 “안녕, 새 싹”이라는 문자열의 앞뒤에 홑화살괄호를 덧붙이는 내 용이다. 람다 식을 사용한 경우, 글붙이기연산 클래스를 따로 만들지 않아도 되기 때문에 코드 길이가 줄어드는 것을 확인할 수 있다.
그림 4. 람다 식을 사용하지 않은 소스 코드
그림 5. 람다 식을 사용한 소스 코드
IV. 기존 한글 프로그래밍 언어와의 비교
이 장에서는 기존 한글 프로그래밍 언어와의 비교를 통해 새싹의 우수성을 증명하려 한다. 첫 번째 실험에 서는 각 언어가 지원하는 문법적 기능을 비교하고, 객 체지향 언어의 대표적 기능 중 하나인 상속에 대한 코 드 비교를 수행한다. 두 번째 실험에서는 언어별 IDE에 서 제공하는 기능을 비교한다. 마지막 실험으로 디버깅 시 출력되는 오류 메시지를 비교한다. 비교 실험에 사 용된 한글 프로그래밍 언어는 씨앗v1.00, 두리틀 v2.38, 와글 v0.93, 약속 최신판(버전 언급 없음)이다.
1. 문법적 기능 비교
이 절에서는 새싹과 다른 한글 프로그래밍 언어와의 문법적 기능 비교를 수행하였다. 구분을 위해 Java 문 법을 기준으로 하였다. [표 1]은 문법적 기능 비교 결과 를 나타낸다. 모든 한글 프로그래밍 언어에서 지원하는 기능(변수 초기화, 산술 및 비교 연산자, 조건문, 반복문 등)은 생략하였다.
문법 비교 결과, 새싹이 가장 많은 기능을 지원하는 것으로 나타났다. 씨앗의 경우에는 90년대 초반에 만들
어진 언어임에도 불구하고 상속(inheritance) 등의 객체 지향 개념을 사용한 것을 확인하였다. 두리틀의 경우, 클래스와 객체 등의 간단한 객체지향적 기능을 지원하 지만, 형 변환(typecasting)이나 연산자 부족 등의 아쉬 운 점을 확인하였다. 와글과 약속은 베타버전인 이유로 기능이 많이 부족한 것을 확인하였다.
상속(inheritance)은 객체지향 언어에서의 중요한 개 념 중의 하나로, 부모 클래스의 성질을 그대로 물려받 은 자식 클래스를 만드는 것을 가능하게 해준다. 상속 을 사용하면 중복되는 내용의 코드를 일부러 작성하는 수고를 덜어준다. 또한, 같은 코드를 입력하면서 발생할 수 있는 실수를 예방할 수 있으며, 코드 수정 시에도 수 고를 덜 수 있다. [그림 6]은 새싹에서 상속을 사용한 예 를 나타낸다.
구 분 새 싹 씨 앗 두리틀 와 글 약 속
형 변환 ○ ○ × × ×
단항 연산자 ○ ○ × × ×
삼항 연산자 ○ ○ × × ×
배 열 ○ ○ ○ × ○
클래스 ○ ○ ○ × ×
객 체 ○ ○ ○ × ×
메소드 ○ ○ ○ × ○
메소드 오버로딩 ○ × × × ×
생성자 ○ × × × ×
상 속 ○ ○ × × ×
오버라이딩 ○ × × × ×
패키지 ○ × ○ × ×
제어자 ○ ○ × × ×
추상 클래스 ○ × × × ×
인터페이스 ○ × × × ×
람다 식 ○ × × × ×
표 1. 한글 프로그래밍 언어의 문법적 기능 비교
그림 6. 상속 기능을 사용한 새싹 예제 코드
[그림 6]에서는 동물이라고 하는 부모 클래스와 고양 이라고 하는 자식 클래스를 생성하였다. 고양이 클래스 는 동물 클래스의 성질을 그대로 유지한 채 잠자기 메 소드가 추가된 것을 확인할 수 있다. [그림 6]과 같은 동 작을 하는 프로그램을 씨앗 언어로 작성하면 [그림 7]
과 같다.
그림 7. 상속 기능을 사용한 씨앗 예제 코드
씨앗에서 상속 개념을 사용하는 프로그램을 만들기 위해서는 [그림 7]과 같이 각 클래스와 메인 메소드를 각각 다른 파일로 작성해야 함을 확인하였다. 이후 ‘사 용’ 키워드를 이용해서 관계를 설정해야 한다. 즉, 씨앗 은 상속 개념을 지원하기는 하지만 사용하기 위해서 중 복되는 코드를 여러 파일에 작성해야만 하는 문제점이 있음을 확인하였다.
2. IDE 기능 비교
IDE(Integrated Development Environment)는 다시 말하면 통합개발환경으로, 컴파일러, 텍스트 에디터, 디 버거 등을 하나의 환경에서 사용하도록 한 것이다. 적 확한 기능을 제공하는 IDE는 초보자의 코딩 부담을 줄 여준다. 따라서 IDE가 제공하는 기능 비교 실험을 수행 하였다.
새싹 IDE에서 제공하는 기능 중 일부를 소개하면 [그 림 8]과 같다. 코드 중에서 키워드와 문자열 부분은 각 각 보라색, 파란색으로 표시하여 코드 가독성을 향상시 켜준다. 또한, 코딩 시 새싹 문법 규칙에 어긋난 부분을 (a)와 같이 붉은 선으로 표시해준다. 코딩 중에 단축키 (Ctrl+space)를 누르게 되면 (b)와 같이 새싹 문법을 완 성하기 위한 후보를 출력해준다. (c)의 경우, 오류가 발 생한 줄 번호 옆의 전구 아이콘을 클릭하면, 문법이 잘
못된 이유와 함께 완전한 문법을 위한 제안을 출력한 다.
[표 2]는 새싹과 한글 프로그래밍 언어 4종에 대한 IDE 기능 비교 결과이다. 비교 항목은 언어별 IDE가 내 세우고 있는 장점과 기존에 널리 쓰이고 있는 IDE의 기 능을 확인하여 비교 항목을 생성하였다. 비교 결과 기 존의 한글 프로그래밍 언어의 IDE보다 새싹의 IDE가 제공하는 기능이 더 많다는 것을 확인하였다.
그림 8. 새싹 IDE에서 제공하는 기능
구 분 새 싹 씨 앗 두리틀 와 글 약 속
구문 강조 ○ ○ × ○ ×
자동 완성 ○ × × × ×
문법 교정 ○ × × × ×
빠른 수정 제안 ○ ○ × × ×
문법 검사 ○ × × × ×
도움말 × ○ × × ×
터틀 그래픽스 × × ○ ○ ×
임베디드 지원 × × ○ ○ ×
표 2. 한글 프로그래밍 언어의 IDE 기능 비교
3. 한글 오류 메시지 비교
마지막 실험은 각 한글 프로그래밍 언어별 오류 메시 지가 어떻게 출력되는지 비교하는 것이다. [그림 9]에서 는 새싹에서 영으로 나누는 연산(Divide by Zero)을 수 행한 결과이다. 새싹의 경우, 제대로 된 한글 오류 메시 지가 출력되는 것을 확인하였다. [그림 10]은 씨앗, 두 리틀, 와글, 약속에서 같은 오류를 발생시킨 결과이다.
씨앗 또한 적절한 한글 오류메시지가 출력되었다. 하지 만 두리틀과 와글은 무한대(∞)로 출력되는데, 이는 잘
못된 결과이다[18]. 마지막으로 약속의 경우, Python 오 류 메시지가 그대로 출력되는 것을 확인할 수 있다.
이러한 방식으로 언어별로 오류를 발생시켜서 출력 되는 메시지를 [표 3]에서 정리하였다. 오류는 프로그래 밍 초보자가 자주 만나게 되는 주요 오류 메시지를 선 택하였으며, 오류 구분은 Java 메시지를 기준으로 하였 다[19]. ○ 표기는 제대로 된 한글 오류 메시지가 출력 된다는 것을 의미한다. × 표기는 잘못된 값이 출력되거 나 오류 메시지가 모호하여 파악할 수 없는 것을 의미 한다. △ 표기는 영어 메시지가 출력되는 것을 의미한 다. 마지막으로 - 표기는 언어의 기능이 제한되거나 문 법적 허용으로 오류를 발생시키지 못함을 의미한다.
그림 9. 새싹에서의 Divide by Zero 연산 결과
그림 10. 각 언어별 Divide by Zero 연산 결과
구 분 새 싹 씨 앗 두리틀 와 글 약 속
ArithmeticException ○ ○ × × △ ArrayIndexOutOfBoundsException ○ × × - △
ArrayStoreException ○ ○ - - △ NullPointerException ○ - - × - StringIndexOutOfBoundsExce
ption ○ × × - △
표 3. 한글 프로그래밍 언어의 오류 메시지 비교 결과
ArithmeticException의 경우에는 [그림 9]와 같이 정 수를 0으로 나누는 연산을 수행해서 얻은 결과이다. [그 림 9]와 [그림 10]에서 확인할 수 있듯이, 새싹과 씨앗만 이 제대로 된 한글 오류 메시지를 출력한다.
ArrayIndexOutOfBoundsException은 잘못된 첨자로 배열에 접근하려고 할 때 발생한다. 새싹만 제대로 된 오류 메시지를 출력하는 것을 확인하였으며, 와글은 배 열을 지원하지 않아서 오류를 구현하지 못하였다.
ArrayStoreException은 배열에 잘못된 형(type)의 요 소를 대입하려고 할 때 발생한다. 두리틀의 경우, 문법 적 허용으로 문자열 배열에 정수를 삽입하거나 반대의
경우에도 제대로 동작함을 확인하였다.
NullPointerException은 널(null)값인 참조변수에 대해 메소드 호출이나 필드 액세스를 할 경우 발생한다. 새 싹만 제대로 된 오류 메시지를 출력하였다.
StringIndexOutOfBoundsException은 문자열 접근 시, 문자열보다 크거나 작은 첨자 값을 입력했을 때 발생한 다. 이 오류도 새싹에서만 제대로 출력하는 것을 확인 하였다. 앞의 실험을 통해 새싹 언어가 가장 적확한 오 류 메시지를 출력하는 것을 확인하였다.
V. 결 론
우리는 기존 한글 프로그래밍 언어보다 새싹이 우수 하다는 것을 증명하기 위해 세 가지의 실험을 수행하였 다. 첫 번째 실험으로는 문법적 기능을 비교하였는데, 비교 언어보다 새싹 언어의 기능이 더 뛰어난 것을 확 인하였다. 두 번째 실험으로는 IDE 기능을 비교하였는 데, 새싹 언어의 IDE가 제공하는 기능이 가장 많은 것 을 확인하였다. 마지막 실험으로 잘못된 코드에서 발생 하는 한글 오류 메시지를 확인하였는데, 비교 언어보다
새싹의 오류 메시지가 알아보기 쉬운 것을 확인하였다.
향후에는 중학교 1학년 학생을 대상으로 한 영재 교 육에 새싹을 적용할 예정이다. 이를 통해 학생들의 피 드백을 받아 좀 더 나은 프로그래밍 언어의 완성을 기 대할 수 있을 것이다. 또한, 터틀 그래픽스 지원을 통해 저학년 학생도 흥미를 느끼고 프로그래밍할 수 있도록 지원할 것이다.
참 고 문 헌
[1] A. Nilsson, R. Gustas, G. Wojtkowski, W.
Wojtkowski, S. Wrycza, and J. Zupancic, Advances
in Information Systems Development: Bridging the Gap between Academia & Industry, Springer
US, 2006.[2] Brand Finance, Global 500 2015 - The annual report
on the world's most valuable global brands,
Brand Finance, 2015.[3] https://www.washingtonpost.com/news/the-swi tch/wp/2013/12/11/president-obama-talks-abou t-teaching-everyone-to-code-this-professor-do es-it/
[4] http://www.nytimes.com/2015/09/16/nyregion/d e-blasio-to-announce-10-year-deadline-to-offe r-computer-science-to-all-students.html [5] http://www.computerweekly.com/feature/Engla
nds-computing-curriculum-How-was-the-first -term
[6] http://d.hatena.ne.jp/abee2/20121223
[7] http://edzine.kedi.re.kr/2015/autumn/article/polic y_01.jsp
[8] http://www.hani.co.kr/arti/society/schooling/701 234.html
[9] 안철우, 한베1.1 프로그래밍입문, 영진출판사, 1992.
[10] 임진희, 씨앗은 C가 아닙니다, 성안당, 1995.
[11] http://waagle.org/
[12] http://yaksok.org/
[13] http://aheui.github.io/index.ko/
[14] 천준석, 강도훈, 김건우, 우균, “간결한 한글 프 로그래밍 언어 ‘새싹’,” 한국정보과학회논문지, 제 42권, 제4호, pp.496-503, 2015.
[15] 카네무네 스스무, 쿠노 야스시, 두리틀로 배우는 프로그래밍, 휴먼싸이언스, 2009.
[16] L. Gugerty and G. Olson, “Debugging by skilled and novice programmers,” ACM SIGCHI Bulletin, Vol.17, No.4, pp.171-174, 1986.
[17] https://docs.oracle.com/javase/specs/jls/se8/ht ml/index.html
[18] https://en.wikipedia.org/wiki/Division_by_zero [19] http://mindprod.com/jgloss/runerrormessages.html
저 자 소 개
천 준 석(Junseok Cheon) 정회원
▪2011년 : 동서대학교 컴퓨터공학 과(학사)
▪2013년 : 부산대학교 전자전기컴 퓨터공학과(석사)
▪2013년 ~ 현재 : 부산대학교 전 기전자컴퓨터공학과(박사과정) <관심분야> : 프로그램 시각화, 데이터베이스
우 균(Gyun Woo) 정회원
▪1991년 : 한국과학기술원 전산학 (학사)
▪1993년 : 한국과학기술원 전산학 (석사)
▪2000년 : 한국과학기술원 전산학 (박사)
▪2000년 ~ 2004년 : 동아대학교 컴퓨터공학과 조교수
▪2004년 ~ 현재 : 부산대학교 전기컴퓨터공학과 교수 <관심분야> : 프로그래밍언어 및 컴파일러, 함수형 언 어, 로봇 프로그래밍, 소프트웨어 메트릭, 프로그램 분석, 프로그램 시각화