검색 전체 메뉴
PDF
맨 위로
OA 학술지
Alice 프로그래밍을 통한 객체 지향 시각 프로그래밍 교육의 평가 지표 개발 및 유용성 분석 A Development of the Evaluation Metrics and Analysis of the Object-Oriented Visual Programming Education Using Alice Programming
  • 비영리 CC BY-NC
  • 비영리 CC BY-NC
ABSTRACT
Alice 프로그래밍을 통한 객체 지향 시각 프로그래밍 교육의 평가 지표 개발 및 유용성 분석

The research of the object-oriented visual programming education is related to investigate the instructional method for computer programming, the process for program development for students, and the suitability analysis and design methodology for program development. In order to develop the educational methodology for the students who have the difficulties to study the computer programming and to enhance the abilities for the development of object-oriented programs, in this paper, we suggest the evaluation metrics to apply and assess for the object-oriented programming education. Also, we introduce the visual programming education methodology and curriculum using Alice programming. The evaluation metrics for the visual programming education suggested in this paper, is accepted when the visual programming languages/tools are used in the programming education to assess and analyze the suitabilities for the programming education for students, so to utilize the analyses for abilities of understanding, abstraction, and program implementation by level.

KEYWORD
Alice , JAVA , 객체지향 시각 프로그래밍 , 프로그래밍 교육 평가 지표
  • Ⅰ. 서 론

    최근 우리나라 대학에서 컴퓨터 과학/공학 교육은 심각한 문제에 직면해 있다. 학부 및 대학원에서 컴퓨터 과학/공학을 전공하려고 하는 학생들의 수가 급감하고 있으며, 특히, 여학생들뿐만 아니라 남학생들도 컴퓨터 프로그래밍 교과목을 기피하는 분위가 확산되고 있다. 이에 따라, 컴퓨터 프로그래밍에 대한 교육이 정상적으로 이루어지지 않으면 컴퓨터 분야의 인력 양성에 많은 문제를 야기하게 될 것이다.

    이 논문에서는 이러한 상황에서 학생들에게 좀 더 쉽게 컴퓨터 프로그래밍을 학습할 수 있는 교과과정과 방법론을 추구하고자 한다. 한 가지 접근 방법으로는 학생들이 프로그래밍 개념을 쉽게 학습할 수 있는 교육용 프로그래밍 언어를 통하여 프로그래밍 개념과 프로그램 작성 능력을 쉽게 키우고, 이를 통하여 상업용 프로그래밍 학습에서도 그 효과가 미치도록 하는데 목적을 두는 것이다. 또한, 교육 내용에서는 최근 핵심 프로그래밍 개념이면서도 학생들이 이해와 습득에 어려움을 겪고 있는 객체지향 프로그래밍에 대한 학습을 용이하게 할 수 있는 교육 방법론과 교과과정을 개발해야만 한다.

    컴퓨터 프로그래밍 교육은 컴퓨터 과학/공학 분야의 관련 전공과목을 공부하기 위하여 매우 중요할 뿐만 아니라, 학생들의 취업을 위한 기술 교육에서도 그 중요성은 아무리 강조해도 지나치지 않는다. 특히, 최근의 기술 추세와 산업계에 필요한 임베디드/모바일/웹/3D 프로그래밍 분야에 널리 사용되고 있는 프로그래밍 분야에서 객체지향 텍스트 기반 언어는 물론이고 시각 프로그래밍 언어/환경에 대한 유용성이 부각되고 있다.

    이 논문에서는 컴퓨터 프로그래밍 교육에서 객체지향 시각 프로그래밍 교육을 적용하고 평가하기 위한 평가 지표를 개발한다. 이 지표는 시각적 프로그래밍 언어/도구를 사용할 때 학생들의 프로그래밍 교육에 대한 적합성을 측정하고 분석하여 학생들의 이해력, 추상화 능력, 프로그램 구현 능력과 학생들의 수준별 적합성을 측정하고 분석하는데 활용될 수 있다. 또한, 컴퓨터 프로그래밍 교육의 효과를 측정하고 분석하는 방법론을 개발하고 적용하는데 활용할 수 있다. 이 논문에서는 이러한 연구 배경과 필요성에서 현대의 대표적인 객체지향 언어인 Java 언어를 사용한 프로그래밍 능력 향상에 초점을 맞추어서, 시각 프로그래밍에 대한 교육 방법론과 교육 과정을 도입하려고 한다[1,2]. 텍스트 기반의 시각 프로그래밍 교육과 비교, 분석하기 위하여, 3D 프로그래밍 환경을 제공하여 그래픽 프로그래밍을 통한 에니메이션 프로그램을 쉽게 작성할 수 있는 Alice 언어[3]를 프로그래밍 교육과정에 도입하여 학습 효과를 평가하고 분석한다.

    Ⅱ. 객체지향 시각 프로그래밍 교육 평가 지표

       2.1. 객체지향 프로그래밍의 평가 지표 관련 연구

    객체지향 프로그래밍의 평가 지표에 관한 연구에는 객체지향 프로그래밍 및 개발 방법론과 관련한 평가지표와 객체지향 시각 프로그래밍과 관련된 평가 지표 등으로 구분된다. 객체지향 프로그래밍 개발 방법론과 관련한 분석 항목에는 단순화/복잡성, 상호작용성, 시각화, 모델링, 프로그램의 구조에 대한 시각화, 코드 템플릿, 그래픽 인터페이스와 같은 항목들이 포함된다[4].

    OOP(Object-Oriented Programming) 분야에서의 프로그램 개발(분석/설계/코딩)과 관련한 분석에는 클래스 및 객체를 시각적으로 표현하기, 객체의 시각적 표현 및 실체화의 용이성, 클래스(객체)의 사용에 대한 용이성 등이 포함된다[5]. 또한, 객체지향 소프트웨어 평가요인에서 클래스들 사이의 상관관계, 멤버 변수 등이 프로그램 설계의 프로파일링 정보를 제공하는지에 대한 평가 지표 설정 및 분석에 관한 내용 등이 있다[6].

    객체 흐름(object-flow) 및 객체지향 시각 프로그래밍에는 데이터 흐름(data-flow)과 객체지향 프로그래밍의 병합 기법에 관한 내용이 있다[7].또한, 시각 프로그래밍 언어/도구의 객체지향 개발 방법론에 대한 평가 항목 분석에 관한 연구 내용도 있다[8].

       2.2. 객체지향 시각 프로그래밍 교육 평가지표

    객체지향 시각 프로그래밍 교육에서 평가 지표로 고려되어야 할 요인으로는 객체지향 프로그래밍의 특성에 대한 이해 정도와 프로그램 개발 과정에 대한 이해 정도를 측정할 수 있는 요인들이 포함되어야 한다. 즉, 객체지향 시각 프로그래밍을 사용하여 프로그램을 개발하고 컴퓨터 프로그래밍 교육에서 객체지향 프로그래밍을 도입하는 경우에 대한 장점을 분석하고 평가하는 항목에는 유지보수성(maintainablilty), 확장성(scalability), 재사용성(reusability)이 포함되어야 한다.

    또한, 프로그램의 개발 단계별로 언어 표기법에 따른 평가 항목을 고려할 수 있다. 즉, 어떤 표현법이 프로그램 분석, 설계, 구현 단계별로 더욱 효과적인지를 분석하는 평가 항목이 포함되어야 한다. 특히, RFID 응용 프로그램과 같은 내장형 프로그램 분야에 적합한 시각적 분석/설계/구현 언어(도구) 혹은 다이어그램 표현법이 프로그램의 개발 및 학생들의 학습에 효과적인지를 분석, 평가할 수 있는 항목들도 고려되어야 한다.

    표 1에는 객체지향 시각 프로그래밍 교육의 유용성을 평가할 수 있는 분석 항목들을 제시하고 있다. 유용성 분석 항목들을 프로그래밍의 현실성, 강의 수강 전후 평가, 목표 프로그램 완성을 위한 이해도 및 성취도, 유용성 테스트, 프로그램 작성 과정에서의 난이도로 구분하여 제시하였으며, OOP 분야에서의 프로그램 개발과 관련한 분석 항목을 별도로 시각적 표현에 대한 이해도와 클래스(객체)의 사용에 대한 이해도를 별도로 구분하여 제안하였다.

    [표 1.] 객체지향 시각 프로그래밍 교육의 유용성 분석 항목

    label

    객체지향 시각 프로그래밍 교육의 유용성 분석 항목

    학생들에 대한 프로그래밍 교육의 평가에는 다음과 같은 요소들이 포함된다.

    1) 강의/시험 전/후 자료 수집 및 평가2) 학점(성적) 향상 정도3) OOP 언어(텍스트 및 시각 프로그래밍) 수준4) 강의 수강 후에 OOP 언어(텍스트 및 시각 프로그래밍) 수준, 이해도 등의 향상 정도5) 컴퓨터 프로그래밍에 대한 학습 의욕의 고취도(향상) 정도6) 소프트웨어(프로그램) 분석/설계 방법론 능력(수준) 및 수강 전후의 향상도

    또한, 객체지향 시각 프로그래밍 언어를 사용한 프로그래밍 교육에서의 가치 있는 중요 특성 및 이유는 다음과 같다.

    1) OOP 분야에서의 프로그램 분석/설계/코딩2) 클래스 및 객체를 시각적으로 표현하기3) 객체의 시각적 표현 및 실체화의 용이성4) 시각 프로그래밍 언어/도구/환경에 대한 사용의 용이성5) 클래스(객체)의 사용에 대한 용이성

    Ⅲ. Alice 프로그래밍 교육과정

    이 논문에서 개발하는 객체지향 텍스트 및 시각 프로그래밍 교육에서 채택하려고 하는 프로그래밍 언어에서 텍스트 기반 언어는 Java 언어[9]를 선택하여 프로그래밍 교육에 활용하는 경우를 상정한다. 교육용 시각 프로그래밍 언어는 Alice 언어[10]를 선택한다. Alice는 스토리텔링, 인터렉티브 게임 등의 에니메이션 프로그램을 쉽게 작성할 수 있는 프로그래밍 교육을 위한 혁신적인 3D 프로그래밍 환경이다.

    이 논문에서 적용한 객체지향 시각 프로그래밍 언어로는 Alice를 선택했으며 학생들의 학습에 교재로 사용되었다[11].이 교재의 전반부는 Alice 프로그래밍에 관한 내용을 포함하고 있으며, 후반부는 JAVA (그래픽) 프로그래밍에 관한 내용으로 구성되어 있다. 전반부의 Alice 프로그래밍 과정에서 사용했던 개념을 Java 프로그램으로 구현하는 방법으로 상호 프로그램을 비교할 수 있게 해주며, Alice 프로그래밍으로 쉽게 객체지향 프로그래밍 개념을 학습하게 하고, 연이어 Java 프로그램으로의 전환을 용이하게 학습하도록 도와준다. 이 교재의 구성에 합치하여 한 학기 강의를 중간고사 이전에는 Alice 프로그래밍으로 강의하고, 중간고사 이후에는 Java (그래픽) 프로그래밍 강의로 구성하였다.

    Alice를 프로그래밍 언어로 사용한 전반 학기 강의의 주요 교육과정으로는 다음과 같은 항목을 포함한다.

    1) (Alice) 객체2) (Alice) 메소드, 데이터3) (Alice) 제어문, 반복문4) (Alice) 이벤트5) (Alice) 리스트, 배열

    Java 그래픽 프로그래밍을 다루는 후반 학기의 교과 과정에는 다음과 같은 항목들을 포함한다.

    1) Alice에서 Java 프로그래밍으로 전환 2) (Java) 이벤트 3) (Java) 리스트, 배열 4) (Java) 클래스 상속, 계층도 5) (Java) 예외 처리

    그림 1에서는 Alice 프로그램의 한 가지 예를 보이고 있다. 이 프로그램은 IceSkater(객체)가 얼어있는 lake(객체) 위에서의 행위(my first method, 메소드)를 보여주는 일련의 과정을 작성한 것이다.

    Ⅳ. Alice 기반 시각 프로그래밍 교육의 유용성 분석

    시각 프로그래밍 교육의 유용성을 분석하기 위하여 프로그래밍언어론 강좌에서 시각 프로그래밍 언어로는 Alice를 선택하여 전반기 반 학기를 강의하고, 후반기 반 학기는 Alice 프로그래밍에서 다루었던 그래픽 개념을 Java로 프로그래밍하는 과정으로 운영하였다.

    표 2에는 프로그래밍언어론 강좌의 학기 종료 후에 Alice 기반의 시각 프로그래밍에 의한 객체지향 프로그래밍의 개념을 쉽게 학습할 수 있는지에 대한 조사 결과를 표시하고 있다. 비교 대상인 텍스트 프로그래밍 언어로는 JAVA 언어를 비교 언어로 설정하도록 지도하였다. 조사에 응한 학생들은 모두 25명이며, 컴퓨터과학과 3학년 학생들을 대상으로 하였다. 평가 척도는 5점 척도로 하였으며, 1(매우 낮음), 2(낮음), 3(보통), 4(높음), 5(매우 높음)으로 설정하였다.

    [표 2.] 시각 프로그래그래밍에 대한 학업 성취도

    label

    시각 프로그래그래밍에 대한 학업 성취도

    (1) 프로그래밍의 현실성

    프로그래밍의 현실성에서는 학생들이 실제 업무에서 프로그램 개발 시 도움이 되는지의 여부와 졸업 후에 취업을 위한 프로그램 개발에서 도움이 되는 지의 분석 항목을 설정하였다. Alice는 교육용 프로그래밍 언어로 주로 사용되며, 업무용이나 상용 프로그램 제작의 응용분야에 사용되지 않는다는 인식을 학생들이 가지고 있어서 Java 프로그래밍에 비해 Alice 프로그래밍이 현실성 측면에서는 뒤진다고 평가한 것으로 분석된다.

    (2) 강의수강 전후 평가

    강의수강 전후의 학습 성취도와 관련된 평가 분야에서는 Alice 프로그래밍이 Java 프로그래밍보다 성적 향상 및 학습 의욕의 고취에 도움이 된 것으로 나타났다. 특히, OOP 수준, 이해도 등의 향상 정도에 관해서도 Alice 프로그래밍이 Java 프로그래밍보다 약 20% 높게 평가한 것으로 미루어 객체지향 프로그래밍의 이해도 향상에는 Alice 프로그래밍이 많은 도움이 된다는 것을 확인할 수 있다.

    (3) 목표 프로그램 완성을 위한 이해도 및 성취도

    학생들이 프로그램 작성 시 프로그램 완성을 위해서 습득해야 할 프로그래밍 언어에 대한 이해 및 프로그램 작성 능력에 대한 평가 항목으로서 Alice 프로그래밍을 통하여 프로그램의 표기법, 구문 선택, 조합 등 모든 항목에서 좋은 학습 효과가 나타남은 물론 최종 프로그래밍 학습 성취도에서도 학생들의 학습 성취도 달성에 많은 도움이 된다는 것을 확인할 수 있다.

    (4) 유용성 테스트

    이 평가 항목은 프로그램 작성/개발 단계별로 학생들의 이해도와 학업 성취도를 평가한 것으로서, Alice 프로그래밍 학습이 각 단계별로 모두 좋은 학업 결과를 보이고 있다. 시각 프로그래밍 학습을 통하여 학생들은 프로그램 개발의 전 단계를 쉽게 이해하고 학습하였다는 것을 확인한 결과로 보인다.

    (5) 프로그램 작성 과정에서의 난이도

    이 평가 항목은 프로그램 작성 과정에서 학생들이 어느 정도의 어려움을 느끼는 지를 평가하는 항목군이다. Alice 프로그래밍에서는 학생들이 언어의 구문을 쉽게 배우며, 그에 따라 구문 오류도 적어지며, 프로그램 수정에 대한 난이도 역시 쉽게 생각함을 확인할 수 있다.

    (6) OOP 분야에서의 프로그램 개발 관련 분석

    이 평가 항목은 시각적 표현에 대한 이해도와 클래스 사용에 대한 이해도를 측정하는 항목군으로서, 객체지향 프로그램 개발에서 매우 중요한 평가 항목이다. 학생들이 Alice 프로그래밍을 통하여 시각적 프로그래밍에 대한 이해 및 클래스 사용에 대한 이해도의 상승은 객체지향 분석, 설계 방법론에서 필수적으로 사용하는 도구인 UML[12]의 학습 및 활용에도 많은 도움이 될 것으로 분석된다.

    Ⅴ. 결 론

    전산 관련학과에서 컴퓨터 프로그래밍은 핵심 교과 과정을 구성하며 IT 관련 산업의 소프트웨어 개발 인력 양성의 핵심 요소이다. 그러나 컴퓨터 프로그래밍에 대한 학생들의 무관심과 학습의 어려움으로 인하여 학생들의 프로그래밍 능력을 향상시킬 수 있는 프로그래밍에 대한 교육방법론이 필요하다. 이에 따라 이 논문에서는 그 방안으로 교육용 시각 프로그래밍 언어인 Alice를 통한 프로그래밍 교육방법론을 제시하였다. 학생들의 프로그램 작성 능력을 향상시키기 위한 구체적인 방안으로 Alice 프로그래밍을 통하여 프로그래밍의 기본 개념을 습득하고 프로그램 작성 능력을 향상시킨다.

    이 논문에서는 학생들의 교육 및 취업에 적합한 교육용 및 상용 프로그래밍 언어, 도구에 대한 타당성을 분석할 수 있는 유용성에 관한 평가 지표를 개발하여 프로그래밍 교육에 적합한 프로그래밍 언어/도구를 선택하고, 이에 대한 교육 과정을 개발하여 프로그래밍 현장 교육에 적용하고 활용하는데 목적을 두었다. 구체적으로, 프로그래밍 언어 선택 및 학습 효과를 위한 평가 분석 항목에 대한 비교 및 평가 항목 설정을 위한 연구이며, 객체지향 텍스트 프로그래밍(JAVA)을 사용한 프로그래밍 교육과 시각 프로그래밍(Alice)을 사용한 프로그래밍 교육을 비교 분석하는데 활용하였다. Alice 프로그래밍을 통하여 향상된 프로그래밍 작성 능력을 바탕으로 상용 프로그래밍 언어로 프로그램을 개발하는 다음 단계로 자연스럽게 학습 과정을 확대하는 교과 과정으로 적용할 수 있을 것이다. Alice를 사용한 시각 프로그래밍을 정규 교과과정에 도입함으로써 학생들의 프로그래밍에 대한 이해도의 고취와 아울러 기본적인 프로그래밍 개념에 대한 이해도의 향상 뿐만이 아니라 객체지향 프로그래밍에 대한 이해도의 향상 및 프로그래밍 작성 능력의 향상을 확인할 수 있었다.

    향후 연구로는 객체 지향 프로그램 제작과정에 필수적인 코딩 이전 단계인 분석/설계 단계에서부터 시각 프로그래밍 과정과 연계한 UML 모델링[12]을 시각 프로그래밍 과정과 Java와 같은 텍스트 프로그래밍 교육과정과도 연계시킬 수 있는 프로그래밍 교육 방법론 및 교육과정의 개발이 필요하다. 객체지향 시각 프로그래밍의 응용 분야에는 내장형 프로그래밍, 모바일 프로그래밍, 로보틱스 프로그래밍(예: 레고 로봇) 등에 응용될 수 있는 프로그래밍 언어를 대상으로 하여 학생들에 대한 프로그래밍 교육의 적합성 및 수월성을 평가하는데 활용될 수 있다. RFID 등의 내장형 응용 소프트웨어 개발 등에 사용할 수 있는 상용 시각 프로그래밍 언어(예: LabVIEW[13, 14, 15])의 유용성 분석에서 시각 프로그래밍 언어를 사용한 프로그래밍 교육과 텍스트 기반 언어(JAVA)를 사용한 프로그래밍 교육을 비교, 분석하여, 학생들이 프로그램 개발을 진행하는 과정 혹은 프로그래밍을 교수하는 방법론과 프로그램 개발을 위한 적합한 분석 및 설계 방법론을 찾는 것이 향후 연구의 방향이다.

참고문헌
  • 1. Kolling M., Rosenberg J. 2001 "Guidelines for Teaching Object Orientation with Java," [ACM SIGCSE Bulletin] Vol.33 P.33-36 google cross ref
  • 2. Nettini L., Crescenzi P., Innocenti G., Loreti M. 2004 "An Environment for Self-Assessing Java Programming Skills in Undergraduate First Programming Courses," [Proc. of IEEE Int. Conf. on Advanced Learning Technologies (ICALT'04)] google
  • 3. Powers K., Ecott S., Hirshfield L. 2004 "Through the Looking Glass: Teaching CS0 with Alice," [Conference'04] google
  • 4. McIver L. 2002 "Evaluating Languages and Environments for Novice Programmers," [14th Annual Workshop of the Psychology of Programming Interest Group(PPIG 2002)] P.100-110 google
  • 5. Kolling M., Rosenberg J. 2001 "Guidelines for Teaching Object Orientation with Java," [ACM SIGCSE Bulletin] Vol.33 P.33-36 google cross ref
  • 6. Purao S., Vaishnavi V. 2003 "Product Metrics for Object-Oriented Systems," [ACM Computing Surveys] Vol.35 P.191-221 google cross ref
  • 7. Maila T. Object-flow Programming - Merging Dataflow and Object-Oriented Programming [Internet] google
  • 8. Georgantaki S., Retalis S. 2007 "Using Educational Tools for Teaching Object- Oriented Design and Programming," [Journal of Information Technology Impact] Vol.7 P.111-130 google
  • 9. DrJava [Internet] google
  • 10. Alice [Internet] google
  • 11. Lewis J., Depasquale P. 2009 Programming with ALICE & JAVA google
  • 12. UML(Unified Modeling Language) [Internet] google
  • 13. Brand H. 2003 "The PHELIX Control System Based on UML Design Level Programming in LabVIEW," [Proc. of ICALEPCS] P.472-474 google
  • 14. Ovcharuk V.N., Lyah A.P. 2013 "Evaluating the Effectiveness of Graphical Programming Packages for Solving Problems of Identification of Acoustic Signal," [Int. Siberian Conf. on Control and Communicaions(SIBCON)] P.1-4 google
  • 15. Sumangala B.V., Ram K.B. 2012 "Advantages of LabVIEW over Embedded System in Home Automations," [Int. Conf. on Advancement in Engineering Studies & Technology] P.41-44 google
OAK XML 통계
이미지 / 테이블
  • [ 표 1. ]  객체지향 시각 프로그래밍 교육의 유용성 분석 항목
    객체지향 시각 프로그래밍 교육의 유용성 분석 항목
  • [ 그림 1. ]  Alice 프로그램 예제
    Alice 프로그램 예제
  • [ 표 2. ]  시각 프로그래그래밍에 대한 학업 성취도
    시각 프로그래그래밍에 대한 학업 성취도
(우)06579 서울시 서초구 반포대로 201(반포동)
Tel. 02-537-6389 | Fax. 02-590-0571 | 문의 : oak2014@korea.kr
Copyright(c) National Library of Korea. All rights reserved.