프로그래밍 초보자는 C언어를 처음 배울 때 여러 가지 면에서 어려움을 겪는다. 그 이유 중의 하나는 C 언어 문법 이해에 대한 학생들의 학습 부담이 크고, 문제 해결보다는 문법에 치중하는 경향이 있다. 또한 소프트웨어 개발에 대한 흥미를 유발시킬 수 있는 프로그래밍 도메인이 필요하다. 본 논문에서는 문제 해결 중심의 C언어 교육을 지원하는 프로그래밍 환경을 제시한다. 이를 위하여 첫째, NXT 로봇프로그래밍용 간단한 비주얼 프로그래밍 언어 Tiny-VPL을 정의하고, Tiny-VPL로 로봇프로그래밍을 할 수 있는 환경을 제시하며, 둘째 간단한 C 언어인 Mini-C언어를 사용하여 NXT 로봇 프로그래밍을 할 수 있는 환경을 제시한다. 그리고 Tiny-VPL을 Mini-C로 변환하며, 변환결과를 대화형으로 제공하는 그래픽 인터페이스를 제시한다. 개발된 프로그래밍 환경은 로봇 프로그래밍을 통하여 학생들의 흥미를 유발할 수 있고, 비주얼언어와 C언어 사이의 관계를 그래픽으로 제공하여 문제 해결 중심의 C 언어 교육에 효과적으로 활용될 수 있다.
프로그래밍 초보자는 C언어를 처음 배울 때 여러 가지 면에서 어려움을 겪는다. 그 이유 중의 하나는 C 언어 문법 이해에 대한 학생들의 학습 부담이 크고, 문제 해결보다는 문법에 치중하는 경향이 있다. 또한 소프트웨어 개발에 대한 흥미를 유발시킬 수 있는 프로그래밍 도메인이 필요하다. 본 논문에서는 문제 해결 중심의 C언어 교육을 지원하는 프로그래밍 환경을 제시한다. 이를 위하여 첫째, NXT 로봇프로그래밍용 간단한 비주얼 프로그래밍 언어 Tiny-VPL을 정의하고, Tiny-VPL로 로봇프로그래밍을 할 수 있는 환경을 제시하며, 둘째 간단한 C 언어인 Mini-C언어를 사용하여 NXT 로봇 프로그래밍을 할 수 있는 환경을 제시한다. 그리고 Tiny-VPL을 Mini-C로 변환하며, 변환결과를 대화형으로 제공하는 그래픽 인터페이스를 제시한다. 개발된 프로그래밍 환경은 로봇 프로그래밍을 통하여 학생들의 흥미를 유발할 수 있고, 비주얼언어와 C언어 사이의 관계를 그래픽으로 제공하여 문제 해결 중심의 C 언어 교육에 효과적으로 활용될 수 있다.
Programming novices have various difficulties when they learn C language for the first time. Novices have a large burden for understanding of a C language grammar, and have a tendency to focus on the grammar rather than problem solving. Moreover, it requires programming domains to arouse student's i...
Programming novices have various difficulties when they learn C language for the first time. Novices have a large burden for understanding of a C language grammar, and have a tendency to focus on the grammar rather than problem solving. Moreover, it requires programming domains to arouse student's interest for software development. This paper presents a programming environment for C languages education focusing on a problem solving. To this end, this paper defines Tiny-VPL that is a simple visual programming language for NXT robot programming and presents robot programming environment using Tiny-VPL. This paper also presents an environment for NXT robot programming using Mini-C language which is a subset of C language. For the purpose of helping to understand the C syntax and semantics, the visual and interactive conversion system of Tiny-VPL to Mini-C is provided. Our programming environment can arouse student's interest through robot programming and can be used effectively for C language education focusing on problem solving with graphical and interactive conversion of the visual language Tiny-VPL to the textual language Mini-C.
Programming novices have various difficulties when they learn C language for the first time. Novices have a large burden for understanding of a C language grammar, and have a tendency to focus on the grammar rather than problem solving. Moreover, it requires programming domains to arouse student's interest for software development. This paper presents a programming environment for C languages education focusing on a problem solving. To this end, this paper defines Tiny-VPL that is a simple visual programming language for NXT robot programming and presents robot programming environment using Tiny-VPL. This paper also presents an environment for NXT robot programming using Mini-C language which is a subset of C language. For the purpose of helping to understand the C syntax and semantics, the visual and interactive conversion system of Tiny-VPL to Mini-C is provided. Our programming environment can arouse student's interest through robot programming and can be used effectively for C language education focusing on problem solving with graphical and interactive conversion of the visual language Tiny-VPL to the textual language Mini-C.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
이러한 어려움을 덜기 위하여 본 논문에서는 초보자를 위한 비주얼 기반의 C언어 프로그래밍 환경을 개발하였다. 제시된 C 프로그래밍 환경은 간단한 비주얼 기반 프로그래밍 언어를 제공하고, 비주얼 언어의 컴포넌트가 추가될 때 마다 그에 대응되는 C언어 코드를 대화형으로 변환하여 컴포넌트마다 색깔을 달리하여 보여준다.
이에 따라 본 연구에서는 초보자가 쉽게 프로그래밍 언어를 학습할 수 있는 비주얼 기반의 통합 환경을 개발하였다. 본 논문에서 제시하는 통합 환경은 다음과 같은 기능을 가지고 있다.
가설 설정
작성할 프로그램은 “로봇이 30의 속도로 전진하다가 소리가 감지되면 30의 속도로 후진하라”는 기능을 수행하는 프로그램이다. 이때 소리센서로부터 입력받은 소리의 크기 값이 50 이하이면 소리를 감지하지 않은 것으로 가정한다.
제안 방법
특히, Tiny-VPL으로 작성된 프로그램을 C언어 코드로 변환하여 사용자에게 대화형 으로 보여줌으로써 텍스트 언어에 대한 이해를 돕는다. 그리고 초보자들의 흥미를 높여주기 위해 NXT 로봇 프로그래밍 환경을 제공하여, 프로그래밍 결과는 NXT 로봇을 이용하여 확인할 수 있다. 또한 제시된 프로그래밍 환경은 이클립스 플러그인 기반으로 개발하여 사용의 편의성과 시스템 확장성을 중시하였다.
다섯째, C언어 문법 이해에 도움이 될 수 있도록 Tiny-VPL의 각 컴포넌트가 실행될 때마다 그에 대응되는 Mini-C언어 코드를 대화형으로 보여 주는 인터페이스를 개발하였다.
NXT 제어기는 Mini NBC를 NXT 로봇이 실제로 사용하는 바이트코드로 변환한다. 또한 변환된바이트 코드를 NXT 로봇에 업로드 하여 로봇을 동작하도록 한다.
반복문의 조건이 참일 동안에 수행해야 할 수행문으로서 소리 센서로부터 입력받은 정보를 "input"변수에 저장하기 위해 소리 센서 컴포넌트와 변수 지정 컴포넌트를 차례로 배치시켰다.
본 논문에서 제시하는 C언어 프로그래밍 환경에서는 비주얼 언어인 Scratch와 유사한 언어인 Tiny-VPL을 정의하고 이 비주얼 언어를 사용하여 프로그래밍을 할 수 있는 프로그램 생성도구를 제공한다. 특히, Tiny-VPL으로 작성된 프로그램을 C언어 코드로 변환하여 사용자에게 대화형 으로 보여줌으로써 텍스트 언어에 대한 이해를 돕는다.
본 논문에서 제시하는 시스템은 NXT 제어기와 Mini-C 컴파일러는 기존에 연구된 결과[9]를 그대로 활용하며, NXT 제어기, Mini-C 컴파일러, 프로그램 생성도구는 이클립스 플러그인 프레임워크를 기반으로 구현되어 이클립스 플랫폼에서 수행된다.
본 논문에서 제시한 비주얼 기반 C 프로그래밍 환경은 이클립스 플러그인 프레임워크를 적용하여 개발되었다. JAVA 모듈 형식인 Jar 파일을 이클립스에 플러그인하여 이클립스 통합개발환경과 하나의 프로그램으로 통합할 수 있다.
컴포넌트의 종류는 기본 컴포넌트, 변수 컴 포넌트, 사칙연산 컴포넌트, 논리연산 컴포넌트, 제어 컴포넌트, 로봇제어 컴포넌트가 있다. 정의된 Tiny- VPL의 모든 컴포넌트는 한글로 표현함으로써 학생들이 컴포넌트에 대한 이해를 도울수 있도록 설계하였다.
첫째, 언어의 문법적 어려움을 덜기 위하여 Scratch와 비슷한 형태이지만 기능을 간소화한 Tiny-VPL을 정의하였고, 이를 사용하여 프로그래밍 할 수 있는 환경을 제공한다.
<그림 2>는 본 프로그래밍 환경에서 사용된 NXT 로봇의 모습이다. 프로그래밍 환경을 사용 하는 대상이 초보자이기 때문에 다양한 프로그램을 작성할 수 있도록 4가지 센서를 모두 사용하였고, 로봇을 다루는 데에 어렵지 않도록 로봇의 동작은 전진, 후진, 회전, 대기, 멈춤이 가능하도록 설계하였다.
대상 데이터
<그림 1>은 본 논문에서 제시하는 프로그래밍 환경의 전체적인 시스템 구조를 간략하게 제시한 것이다. 본 시스템은 크게 프로그램 생성도구, Mini-C컴파일러, NXT제어기, NXT 로봇으로 구성된다.
이론/모형
NXT로 만든 로봇은 중간코드인 NBC 코드를 이용하여 동작할 수 있는데, 본 시스템은 그 가능을 축소한 Mini NBC를 사용한다. Mini NBC는 로봇을 제어하기 위하여 제시된 프로그래밍 환경에서는 <표 2>와 같이 시스템 함수와 상수로 구성된 API를 이용하여 로봇 하드웨어를 제어한다.
본 프로그램 생성 도구에서는 간단한 비주얼 기반 프로그래밍 언어를 사용한다. 이 프로그래밍 언어의 이름은 Tiny-VPL이라고 한다.
성능/효과
제시된 C 프로그래밍 환경은 간단한 비주얼 기반 프로그래밍 언어를 제공하고, 비주얼 언어의 컴포넌트가 추가될 때 마다 그에 대응되는 C언어 코드를 대화형으로 변환하여 컴포넌트마다 색깔을 달리하여 보여준다. 또한 로봇 프로그래밍 환경을 구축하여 소프트웨어 개발에 관한 동기유발 가능성을 높였다.
그리고 초보자들의 흥미를 높여주기 위해 NXT 로봇 프로그래밍 환경을 제공하여, 프로그래밍 결과는 NXT 로봇을 이용하여 확인할 수 있다. 또한 제시된 프로그래밍 환경은 이클립스 플러그인 기반으로 개발하여 사용의 편의성과 시스템 확장성을 중시하였다.
셋째, 텍스트 기반 언어인 C언어를 사용하여 NXT 로봇 프로그래밍을 할 수 있도록 기능을 간소화한 Mini-C를 정의하였고 이에 대한 컴파일러를 지원한다.
여섯째, 이 모든 기능이 이클립스 플러그인 기능을 통해 이클립스 환경에서 통합되어 사용하게 함으로써 시스템을 보다 편리하게 사용할 수 있도록 하였다.
후속연구
앞으로 배열, 포인터, 구조체 등을 포함하는 C언어의 더 많은 기능을 구현하고 수업에 활용하여 그 교육적 효과를 분석할 필요가 있으며, 또한 자바와 같은 객체지향형 언어 프로그래밍 환경을 지원하도록 그 기능을 확장할 필요가 있다.
질의응답
핵심어
질문
논문에서 추출한 답변
교육용 프로그래밍 언어는 무엇으로 나눌 수 있는가?
교육용 프로그래밍 언어는 비주얼 기반 프로그래밍 언어와 텍스트 기반 프로그래밍 언어로 나눌 수 있다. 비주얼 기반 프로그래밍 언어의 대표적인 예로 초등교육 수준에서 사용할 수 있는 Scratch, Etoy Alice가 있고, 중등교육 수준에서의 NXT-G, Robolab 그리고 고등교육 수준에서 사용할 수 있는 NXT-MSRDS, Webot, Sinulink 등이 있다.
Robotran이란?
Robotran은 초보자도 쉽고 편리하게 NXT 로봇 프로그래밍을 할 수 있는 프로그래밍 환경이다[8]. Robotran은 C언어를 사용하는 로봇 프로그래밍이 프로그래밍 초보자들에게 어렵다고 판단하여, Robolang이라는 텍스트 기반의 간단한 언어를 정의 하였다.
C언어와 같은 고급언어를 처음 접하는 초보자들이 겪는 어려움에는 무엇이 있는가?
그럼에도 불구하고 C언어와 같은 고급언어를 처음 접하는 초보자들은 여러 가지 면에서 어려움을 겪는다. 그 중에 하나는 문법에 대한 기계적인 암기와 함께 코딩방법을 익히는 것에만 치중하기 때문에 시간이 지날수록 프로그래밍 학습에 대한 부담감이 커지고, 결국 학습 의욕을 떨어뜨리게 하는 결과를 초래한다. 또한 교수자의 일방적인 강의식 방식은 물론 단순한 코딩결과확인 수준의 실습방식도 문제이다. 이는 알고리즘 개발에 필요한 문제분석 능력과 논리적 사고력, 그리고 절차적인 문제 해결 능력을 기르는 데에 적합한 방법이 되지 못하고 있다[1].
※ AI-Helper는 부적절한 답변을 할 수 있습니다.