컴퓨터가 일상생활에 널리 사용됨에 따라 프로그래밍은 필수 기술로 떠오르고 있다. 프로그래밍 교육을 지원하기 위해서 우리나라는 2018년까지 프로그래밍 정규 과목을 개발할 계획을 추진하고 있다. 하지만 대부분의 프로그래밍 언어가 영어를 기반으로 하고 있기 때문에 우리나라의 프로그래밍 교육은 어려워지고 있으며 학생들도 집중력을 쉽게 잃을 수 있다. 이 논문에서는 우리나라 학생들의 프로그래밍 교육에 효과적인 한글 프로그래밍 언어 새싹을 제안하고 있다. 새싹은 Java를 바탕으로 개발하였으며, 객체지향 프로그래밍과 람다 식을 지원한다. 새싹의 교육 적합성을 평가하기 위해서 우리는 새싹을 다른 한글 프로그래밍 언어와 세 가지 측면에서, 즉 문법적 특성, IDE 지원, 한국어 오류 메시지 측면에서 비교하였다. 비교 결과, 새싹이 다른 한글 프로그래밍 언어보다 더 교육에 적합함을 알 수 있었다. 특히, IDE 기능과 한글로 출력되는 오류 메시지는 프로그래밍 초보자에게 도움이 많이 될 것으로 예상된다.
컴퓨터가 일상생활에 널리 사용됨에 따라 프로그래밍은 필수 기술로 떠오르고 있다. 프로그래밍 교육을 지원하기 위해서 우리나라는 2018년까지 프로그래밍 정규 과목을 개발할 계획을 추진하고 있다. 하지만 대부분의 프로그래밍 언어가 영어를 기반으로 하고 있기 때문에 우리나라의 프로그래밍 교육은 어려워지고 있으며 학생들도 집중력을 쉽게 잃을 수 있다. 이 논문에서는 우리나라 학생들의 프로그래밍 교육에 효과적인 한글 프로그래밍 언어 새싹을 제안하고 있다. 새싹은 Java를 바탕으로 개발하였으며, 객체지향 프로그래밍과 람다 식을 지원한다. 새싹의 교육 적합성을 평가하기 위해서 우리는 새싹을 다른 한글 프로그래밍 언어와 세 가지 측면에서, 즉 문법적 특성, IDE 지원, 한국어 오류 메시지 측면에서 비교하였다. 비교 결과, 새싹이 다른 한글 프로그래밍 언어보다 더 교육에 적합함을 알 수 있었다. 특히, IDE 기능과 한글로 출력되는 오류 메시지는 프로그래밍 초보자에게 도움이 많이 될 것으로 예상된다.
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 difficu...
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.
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.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
두 번째 실험은 언어별 IDE 기능 비교를 통해 초보자가 코딩할 때 얼마나 도움을 줄 수 있는지 확인한다. 마지막 실험은 한글 오류 메시지를 비교하여 디버깅 시에 얼마나 도움을 줄 수 있는지 확인한다.
이 논문에서는 기존 새싹 언어를 발전시켜 객체지향 개념과 람다 식을 추가한, 더 발전된 새싹을 소개한다. Java, C++, C#과 같은 객체지향 언어를 배우기 이전에 새싹을 통한 선행 학습으로 객체지향 개념을 쉽게 이해할 수 있다.
이 논문에서는 새싹의 우수성을 증명하기 위해 씨앗, 두리틀, 와글, 약속과의 비교 실험을 수행하였다[15]. 첫 번째는 언어별 문법 비교를 통해 어느 언어가 가장 많은 기능을 제공하는지 확인하는 실험이다.
이 논문에서는 새싹의 우수성을 증명하기 위해 씨앗, 두리틀, 와글, 약속과의 비교 실험을 수행하였다[15]. 첫 번째는 언어별 문법 비교를 통해 어느 언어가 가장 많은 기능을 제공하는지 확인하는 실험이다. 두 번째 실험은 언어별 IDE 기능 비교를 통해 초보자가 코딩할 때 얼마나 도움을 줄 수 있는지 확인한다.
제안 방법
이 절에서는 새싹과 다른 한글 프로그래밍 언어와의 문법적 기능 비교를 수행하였다. 구분을 위해 Java 문법을 기준으로 하였다. [표 1]은 문법적 기능 비교 결과를 나타낸다.
첫 번째 실험에서는 각 언어가 지원하는 문법적 기능을 비교하고, 객체지향 언어의 대표적 기능 중 하나인 상속에 대한 코드 비교를 수행한다. 두 번째 실험에서는 언어별 IDE에서 제공하는 기능을 비교한다. 마지막 실험으로 디버깅 시 출력되는 오류 메시지를 비교한다.
첫 번째는 언어별 문법 비교를 통해 어느 언어가 가장 많은 기능을 제공하는지 확인하는 실험이다. 두 번째 실험은 언어별 IDE 기능 비교를 통해 초보자가 코딩할 때 얼마나 도움을 줄 수 있는지 확인한다. 마지막 실험은 한글 오류 메시지를 비교하여 디버깅 시에 얼마나 도움을 줄 수 있는지 확인한다.
적확한 기능을 제공하는 IDE는 초보자의 코딩 부담을 줄여준다. 따라서 IDE가 제공하는 기능 비교 실험을 수행하였다.
Java, C++, C#과 같은 객체지향 언어를 배우기 이전에 새싹을 통한 선행 학습으로 객체지향 개념을 쉽게 이해할 수 있다. 또한, 람다 식을 적용하여 소스 코드를 간소하고 명확하게 작성할 수 있게 하였다.
또한, 초보자가 코딩에 흥미를 느낄 수 있도록 터틀 그래픽스를 차용하였다. 또한, 와글로 동작하는 로봇과 다양한 실험이 가능한 임베디드 보드를 제공한다.
초보자가 쉽게 배울 수 있도록 한글 문법을 고려하여 개발되었으며, 단순한 UI를 사용하여 사용법을 따로 배우지 않아도 되도록 하였다. 또한, 초보자가 코딩에 흥미를 느낄 수 있도록 터틀 그래픽스를 차용하였다. 또한, 와글로 동작하는 로봇과 다양한 실험이 가능한 임베디드 보드를 제공한다.
두 번째 실험에서는 언어별 IDE에서 제공하는 기능을 비교한다. 마지막 실험으로 디버깅 시 출력되는 오류 메시지를 비교한다. 비교 실험에 사용된 한글 프로그래밍 언어는 씨앗v1.
마지막 실험은 각 한글 프로그래밍 언어별 오류 메시지가 어떻게 출력되는지 비교하는 것이다. [그림 9]에서는 새싹에서 영으로 나누는 연산(Divide by Zero)을 수행한 결과이다.
[표 2]는 새싹과 한글 프로그래밍 언어 4종에 대한 IDE 기능 비교 결과이다. 비교 항목은 언어별 IDE가 내세우고 있는 장점과 기존에 널리 쓰이고 있는 IDE의 기능을 확인하여 비교 항목을 생성하였다. 비교 결과 기존의 한글 프로그래밍 언어의 IDE보다 새싹의 IDE가 제공하는 기능이 더 많다는 것을 확인하였다.
NullPointerException은 널(null)값인 참조변수에 대해 메소드 호출이나 필드 액세스를 할 경우 발생한다. 새싹만 제대로 된 오류 메시지를 출력하였다. StringIndexOutOfBoundsException은 문자열 접근 시, 문자열보다 크거나 작은 첨자 값을 입력했을 때 발생한다.
새싹의 오류 메시지는 Java의 오류 메시지 형태를 참고하여 제작하였다. 즉, 오류 메시지의 첫 번째 줄에는 오류의 종류를 출력하고, 다음 줄부터는 오류가 발생한 위치를 출력한다.
우리는 기존 한글 프로그래밍 언어보다 새싹이 우수하다는 것을 증명하기 위해 세 가지의 실험을 수행하였다. 첫 번째 실험으로는 문법적 기능을 비교하였는데, 비교 언어보다 새싹 언어의 기능이 더 뛰어난 것을 확인하였다.
기존의 새싹 언어는 C와 같은 절차형 언어였다. 우리는 기존의 새싹 언어를 객체지향 언어 구조로 변경하여 초보자들이 객체지향 언어를 배울 때 한글로 쉽게 적응할 수 있도록 하였다.
이 절에서는 새싹과 다른 한글 프로그래밍 언어와의 문법적 기능 비교를 수행하였다. 구분을 위해 Java 문법을 기준으로 하였다.
이 장에서는 기존 한글 프로그래밍 언어와의 비교를 통해 새싹의 우수성을 증명하려 한다. 첫 번째 실험에서는 각 언어가 지원하는 문법적 기능을 비교하고, 객체지향 언어의 대표적 기능 중 하나인 상속에 대한 코드 비교를 수행한다. 두 번째 실험에서는 언어별 IDE에서 제공하는 기능을 비교한다.
와글은 느림과누림에서 개발 중인 한글 프로그래밍 언어이다[11]. 초보자가 쉽게 배울 수 있도록 한글 문법을 고려하여 개발되었으며, 단순한 UI를 사용하여 사용법을 따로 배우지 않아도 되도록 하였다. 또한, 초보자가 코딩에 흥미를 느낄 수 있도록 터틀 그래픽스를 차용하였다.
대상 데이터
마지막 실험으로 디버깅 시 출력되는 오류 메시지를 비교한다. 비교 실험에 사용된 한글 프로그래밍 언어는 씨앗v1.00, 두리틀 v2.38, 와글 v0.93, 약속 최신판(버전 언급 없음)이다.
성능/효과
첫 번째 실험으로는 문법적 기능을 비교하였는데, 비교 언어보다 새싹 언어의 기능이 더 뛰어난 것을 확인하였다. 두 번째 실험으로는 IDE 기능을 비교하였는데, 새싹 언어의 IDE가 제공하는 기능이 가장 많은 것을 확인하였다. 마지막 실험으로 잘못된 코드에서 발생 하는 한글 오류 메시지를 확인하였는데, 비교 언어보다 새싹의 오류 메시지가 알아보기 쉬운 것을 확인하였다.
두 번째 실험으로는 IDE 기능을 비교하였는데, 새싹 언어의 IDE가 제공하는 기능이 가장 많은 것을 확인하였다. 마지막 실험으로 잘못된 코드에서 발생 하는 한글 오류 메시지를 확인하였는데, 비교 언어보다 새싹의 오류 메시지가 알아보기 쉬운 것을 확인하였다.
문법 비교 결과, 새싹이 가장 많은 기능을 지원하는 것으로 나타났다. 씨앗의 경우에는 90년대 초반에 만들어진 언어임에도 불구하고 상속(inheritance) 등의 객체지향 개념을 사용한 것을 확인하였다.
비교 항목은 언어별 IDE가 내세우고 있는 장점과 기존에 널리 쓰이고 있는 IDE의 기능을 확인하여 비교 항목을 생성하였다. 비교 결과 기존의 한글 프로그래밍 언어의 IDE보다 새싹의 IDE가 제공하는 기능이 더 많다는 것을 확인하였다.
두리틀의 경우, 클래스와 객체 등의 간단한 객체지향적 기능을 지원하지만, 형 변환(typecasting)이나 연산자 부족 등의 아쉬운 점을 확인하였다. 와글과 약속은 베타버전인 이유로 기능이 많이 부족한 것을 확인하였다.
이후 ‘사용’ 키워드를 이용해서 관계를 설정해야 한다. 즉, 씨앗은 상속 개념을 지원하기는 하지만 사용하기 위해서 중복되는 코드를 여러 파일에 작성해야만 하는 문제점이 있음을 확인하였다.
우리는 기존 한글 프로그래밍 언어보다 새싹이 우수하다는 것을 증명하기 위해 세 가지의 실험을 수행하였다. 첫 번째 실험으로는 문법적 기능을 비교하였는데, 비교 언어보다 새싹 언어의 기능이 더 뛰어난 것을 확인하였다. 두 번째 실험으로는 IDE 기능을 비교하였는데, 새싹 언어의 IDE가 제공하는 기능이 가장 많은 것을 확인하였다.
후속연구
향후에는 중학교 1학년 학생을 대상으로 한 영재 교육에 새싹을 적용할 예정이다. 이를 통해 학생들의 피드백을 받아 좀 더 나은 프로그래밍 언어의 완성을 기대할 수 있을 것이다. 또한, 터틀 그래픽스 지원을 통해 저학년 학생도 흥미를 느끼고 프로그래밍할 수 있도록 지원할 것이다.
즉, 오류 메시지의 첫 번째 줄에는 오류의 종류를 출력하고, 다음 줄부터는 오류가 발생한 위치를 출력한다. 한글 오류 메시지를 통해 영어가 서툰 초보자도 재미있게 프로그래밍할 수 있을 것으로 기대된다.
향후에는 중학교 1학년 학생을 대상으로 한 영재 교육에 새싹을 적용할 예정이다. 이를 통해 학생들의 피드백을 받아 좀 더 나은 프로그래밍 언어의 완성을 기대할 수 있을 것이다.
질의응답
핵심어
질문
논문에서 추출한 답변
IDE는 무엇인가?
IDE(Integrated Development Environment)는 다시 말하면 통합개발환경으로, 컴파일러, 텍스트 에디터, 디버거 등을 하나의 환경에서 사용하도록 한 것이다. 적확한 기능을 제공하는 IDE는 초보자의 코딩 부담을 줄여준다.
새싹에서 생성자를 사용하기 위해 클래스명 앞에 어떤 기호를 추가해야 하는가?
새싹에서 생성자(constructor)를 사용하려면 17, 20번째 줄과 같이 클래스명 앞에 + 기호를 추가해야 한다. 새싹은 Java와 마찬가지로 개발자가 아무런 생성자를 만들지 않으면 인자가 없는 기본 생성자(default constructor)를 자동으로 만들어준다.
와글은 초보자가 코딩에 흥미를 느낄 수 있도록 무엇을 차용하였는가?
초보자가 쉽게 배울 수 있도록 한글 문법을 고려하여 개발되었으며, 단순한 UI를 사용하여 사용법을 따로 배우지 않아도 되도록 하였다. 또한, 초보자가 코딩에 흥미를 느낄 수 있도록 터틀 그래픽스를 차용하였다. 또한, 와글로 동작하는 로봇과 다양한 실험이 가능한 임베디드 보드를 제공한다.
참고문헌 (19)
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.
Brand Finance, Global 500 2015 - The annual report on the world's most valuable global brands, Brand Finance, 2015.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.