본 논문은 C 언어를 배우는 초보자를 위한 기능성 게임 프레C맨(freCman)의 개발 사례를 소개한다. C 언어를 처음 배우는 사람들은 C 언어의 키워드나 문법, 문장 구조에 생소하여 학습에 어려움을 느낀다. 본 논문은 슈팅스타C, 숨은 오류 찾기, 코드 순서 맞추기 등의 3 가지의 게임을 개발하고, 이를 통해 C 언어에 보다 쉽게 접근할 수 있도록 하였고, CTS(Code to Speech) 기능을 추가하여 C 소스 코드를 읽어 줌으로써 청각적으로 C 언어의 키워드나 문장에 친숙하도록 하였다. C 언어를 처음 배우는 학생들을 대상으로 실험한 결과 프레C맨이 C 프로그래밍 학습에 도움이 되었다는 결과를 얻었다.
본 논문은 C 언어를 배우는 초보자를 위한 기능성 게임 프레C맨(freCman)의 개발 사례를 소개한다. C 언어를 처음 배우는 사람들은 C 언어의 키워드나 문법, 문장 구조에 생소하여 학습에 어려움을 느낀다. 본 논문은 슈팅스타C, 숨은 오류 찾기, 코드 순서 맞추기 등의 3 가지의 게임을 개발하고, 이를 통해 C 언어에 보다 쉽게 접근할 수 있도록 하였고, CTS(Code to Speech) 기능을 추가하여 C 소스 코드를 읽어 줌으로써 청각적으로 C 언어의 키워드나 문장에 친숙하도록 하였다. C 언어를 처음 배우는 학생들을 대상으로 실험한 결과 프레C맨이 C 프로그래밍 학습에 도움이 되었다는 결과를 얻었다.
This paper introduces a serious game called freCman developed for C programming language beginners. Since key words, syntax, and programming structure of C programming language are unfamiliar for them, they feel uneasy and have many difficulties to study. We developed three games such as shooting st...
This paper introduces a serious game called freCman developed for C programming language beginners. Since key words, syntax, and programming structure of C programming language are unfamiliar for them, they feel uneasy and have many difficulties to study. We developed three games such as shooting star C, finding hidden errors, unscrambling C codes through which C beginners can study C language easily. Also we developed CTS(Code to Speech) which speeches C source codes like English statements so that C beginners can be familiar with C key words and statements. To prove effectiveness of the freCman, some experiments have been conducted with C language beginners. Experiment results show that the freCman helps beginners studying C programming language much.
This paper introduces a serious game called freCman developed for C programming language beginners. Since key words, syntax, and programming structure of C programming language are unfamiliar for them, they feel uneasy and have many difficulties to study. We developed three games such as shooting star C, finding hidden errors, unscrambling C codes through which C beginners can study C language easily. Also we developed CTS(Code to Speech) which speeches C source codes like English statements so that C beginners can be familiar with C key words and statements. To prove effectiveness of the freCman, some experiments have been conducted with C language beginners. Experiment results show that the freCman helps beginners studying C programming language much.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문은 C 언어 학습의 보충 수단으로서 C 언어를 즐겁게 눈과 손으로 익히도록 할 목적으로, C 언어 프로그래밍 연습을 위한 기능성 게임 프레C맨을 개발하였다. 본 논문에서 구현한 프레C맨은 게임을 통해 C 언어 학습을 시도하는 시작 단계의 초보적인 연구이다.
본 논문은 C 언어를 공부하는 초보자들의 학습을 돕는 기능성 게임, 프레C맨을 만든 사례를 소개하였다. 게임은 키워드와 소스 라인을 따라 입력하여 C 언어의 표준 키워드와 소스에 대한 친밀감을 높이는 슈팅스타-C 게임, 간단한 오류를 포함하는 소스 코드에서 오류 찾기, 코드의 순서 맞추기, 소스 코드를 발음하여 읽어 주기 등으로 구성된다.
본 논문의 게임은 프로그래밍 언어의 공부를 돕는 기능성 게임의 활용성을 탐색하기 위한 초보적인 시도이다. 수년간의 C언어 강좌를 통해 초보자에게 필요한 학습 요소가 키워드, 문법, 문장구조 세가지 부분이라고 분석되었으며 이에 따라 3 종류의 게임을 연구하였다.
제안 방법
CTS는 영문 텍스트를 음성으로 출력하는 선마이크로시스템사의 자바 오픈 소스 freeTTS(Text to Speech)를 이용하여 작성하였으며, 목소리와 음높이, 속도를 조절할 수 있게 하였다.
본 논문은 C 언어를 공부하는 초보자들의 학습을 돕는 기능성 게임, 프레C맨을 만든 사례를 소개하였다. 게임은 키워드와 소스 라인을 따라 입력하여 C 언어의 표준 키워드와 소스에 대한 친밀감을 높이는 슈팅스타-C 게임, 간단한 오류를 포함하는 소스 코드에서 오류 찾기, 코드의 순서 맞추기, 소스 코드를 발음하여 읽어 주기 등으로 구성된다.
게임의 난이도 조절을 위해 초보자들을 대상으로 사전 게임을 실시하여 적당한 시간 조절값을 구하였다. 게임 점수는 각각의 단계에서 등장하는 문제들 중에 몇 개를 맞췄는지 마치 시험 점수를 표시하듯이 하여 게임과 학습의 의미를 동시에 갖도록 하였다.
게임의 난이도는 6단계로 하고, 1, 2 단계는 easy, 3, 4 단계는 normal, 5, 6 단계는 hard로 편성하였다. 난이도에 따라 소스 코드 길이와 빈 줄의 개수가 증가하도록 하였으며, 소스 코드 자체의 난이도도 증가시켰다.
게임의 난이도는 easy, normal, hard의 3 개로 나누고, easy는 10줄 이내, normal은 20줄 이내, hard는 20줄 이상으로 하였다.
프로그래밍 언어 학습은 첫째, 프로그래밍 언어의 요소에 대한 이해와, 둘째, 논리적인 구조로 프로그램을 작성하는 능력, 셋째, 오류를 찾아내는 능력을 발달시키는데 있다. 그러므로 이에 따라, 프레C맨의 세부 게임은 C 언어의 키워드에 익숙해지도록 돕는 슈팅스타-C 게임과 CTS 기능, 논리적인 구조에 보다 익숙해지도록 돕는 코드순서 맞추기, 오류 발견을 돕는 숨은 오류 찾기의 3 가지로 설정하였다.
단계 3, 4, 5년 30자 이내의 C 소스 코드를 파일에 저장해 놓고, 랜덤하게 선택하여 떨어뜨린다. 단계 3은 4초당 하나, 단계 4는 3.
사용자는 드래그앤드롭(drag and drop) 방식으로 보기 라인을 소스 코드로 이동시켜 소스 코드를 완성한다. 복수 답안은 존재하지 않고, 사용자는 정답 확인 메뉴를 통해 오답의 여부를 확인하게 하였다. 프로그램이 실행되는 결과를 확인할 수 있는 메뉴를 두어, 게임 도중에 프로그램을 실행할 수 있도록 하였다.
게임이 진행되는 동안 사운드와 그래픽 효과를 출력한다. 사용자의 입력이 성공하였을 때, 실패하였을 때, 등 다양한 상황에 따라 효과음을 출력하도록 작성하였다.
넷째, 소스 코드를 영어로 읽어주는 CTS(Code to Speech) 이다. 소스 코드를 선택하면 소스 코드의 영문이 귀에 익도록 영어 문장으로 읽어 주는 프로그램을 작성하였다.
본 논문의 게임은 프로그래밍 언어의 공부를 돕는 기능성 게임의 활용성을 탐색하기 위한 초보적인 시도이다. 수년간의 C언어 강좌를 통해 초보자에게 필요한 학습 요소가 키워드, 문법, 문장구조 세가지 부분이라고 분석되었으며 이에 따라 3 종류의 게임을 연구하였다. 프레C맨 게임의 활용성과 기능성에 대한 사용자의 다양하고 깊은 통계적 평가는 얻지 못했지만, 대학 내 경진 대회에서 사용자들의 많은 호응을 받았다.
흥미를 유발할 수 있으면서 학습에 도움이 되는 기능성 게임으로 보드 게임 형태인 C-Jump가 있다[11]. 이 게임은 스노보드팀과 스키팀으로 나뉘어 스키 슬로프를 내려오면서 각각의 위치에서 C언어 문제를 해결하면서 빨리 내려오는 팀이 승리하는 형태로 진행된다. 플레이어는 C언어의 if, else, continue 등의 키워드와 함수, 그리고 수식 연산을 통해 문제를 해결하면서 빠른 길을 찾아 내려와야 한다.
둘째, 숨은 오류 찾기 게임이다. 키워드나 괄호 등 비교적 쉬운 오류를 품은 간단한 프로그램에서 오류를 찾도록 한다.
프레C맨이 초보자들의 C 언어 학습에 있어 도움을 주는지를 확인하기 위해 컴퓨터공학과 1, 2학년 학생 중 C 언어를 처음 배우고 있거나 복학하여 C 언어를 다시 배우는 24명의 학생을 대상으로 3 가지의 프레C맨 게임을 사용하도록 한 후 설문을 실시하였다.
복수 답안은 존재하지 않고, 사용자는 정답 확인 메뉴를 통해 오답의 여부를 확인하게 하였다. 프로그램이 실행되는 결과를 확인할 수 있는 메뉴를 두어, 게임 도중에 프로그램을 실행할 수 있도록 하였다. 이때 명령창이 열리고 실행 결과를 볼 수 있다.
성능/효과
게임의 난이도는 6단계로 하고, 1, 2 단계는 easy, 3, 4 단계는 normal, 5, 6 단계는 hard로 편성하였다. 난이도에 따라 소스 코드 길이와 빈 줄의 개수가 증가하도록 하였으며, 소스 코드 자체의 난이도도 증가시켰다. 소스 코드의 길이는 5∼50줄 이내로 제안하였다.
본 실험의 설문에 참여한 학생 수도 작고, 실험 기간도 짧지만, 게임 만족도를 평가한 결과는 전반적으로 이 게임이 C 언어 학습에 도움을 줄 것으로 기대하는 결과를 보여주며 단기간의 실험을 통해서도 학습 효과가 있는 것으로 파악되었다. 전체 게임의 난이도가 높다는 평가 결과에 따라 게임의 난이도를 낮추는 것도 바람직하다고 판단한다.
그림 7은 실험에 참여한 학생들이 3가지 게임을 각각 30분씩 총 1시간 30분 실시한 후 처음 게임을 했을 때와 1시간 후의 정답률 변화를 보여준다. 비록 짧은 시간이었지만 학생들은 게임 점수가 향상되는 것을 보여주었으며 특히 슈팅스타-C와 숨은 오류 찾기는 학습 효과가 크게 나타남을 알 수 있다.
최고 점수를 5점으로 하였다. 평가 결과 대체로 프레C맨이 C 언어를 학습하는 초보자들에게 긍정적인 효과를 주는 것으로 평가되었다.
후속연구
즉, 정상적인 C 언어 코드를 오류가 있거나 순서가 틀린 문장으로 변형하는 연구가 필수적이었기 때문에 게임의 독창성을 고려하지 못하였다. 본 연구팀은 현재 C 언어 파서를 작성하여, 게임이 완전히 자동화될 수 있도록 프레C맨을 업그레이드하고 있으며 다양한 아이디어를 반영하여 게임의 독창성도 개선할 예정이다. 추후에는 개선된 프레C맨에 대해 사용자의 만족도나 학습 효과 등을 보다 체계적으로 분석하여 효과적인 C 학습 기능성 게임으로 발전시킬 예정이다.
이를 위해 게임의 난이도를 정량적인 수치로 조정하는 방법 외에도 C언어의 복잡도를 고려한 정성적인 난이도를 기준으로 문제들을 분류하여 학습시키는 것과 C++, JAVA와 같은 고급 언어를 위한 학습 도구로 확장할 예정이다. 아울러 기능성 게임의 특성상 학습 효과를 높이기 위해서는 다양한 컨텐츠가 준비되어고 개선되어야 하므로 C언어 학습자가 어려움을 느끼고 있는 부분에 대한 조사와 피드백을 통한 게임의 재구성을 지속적으로 실시할 예정이다.
추후에는 개선된 프레C맨에 대해 사용자의 만족도나 학습 효과 등을 보다 체계적으로 분석하여 효과적인 C 학습 기능성 게임으로 발전시킬 예정이다. 이를 위해 게임의 난이도를 정량적인 수치로 조정하는 방법 외에도 C언어의 복잡도를 고려한 정성적인 난이도를 기준으로 문제들을 분류하여 학습시키는 것과 C++, JAVA와 같은 고급 언어를 위한 학습 도구로 확장할 예정이다. 아울러 기능성 게임의 특성상 학습 효과를 높이기 위해서는 다양한 컨텐츠가 준비되어고 개선되어야 하므로 C언어 학습자가 어려움을 느끼고 있는 부분에 대한 조사와 피드백을 통한 게임의 재구성을 지속적으로 실시할 예정이다.
본 연구팀은 현재 C 언어 파서를 작성하여, 게임이 완전히 자동화될 수 있도록 프레C맨을 업그레이드하고 있으며 다양한 아이디어를 반영하여 게임의 독창성도 개선할 예정이다. 추후에는 개선된 프레C맨에 대해 사용자의 만족도나 학습 효과 등을 보다 체계적으로 분석하여 효과적인 C 학습 기능성 게임으로 발전시킬 예정이다. 이를 위해 게임의 난이도를 정량적인 수치로 조정하는 방법 외에도 C언어의 복잡도를 고려한 정성적인 난이도를 기준으로 문제들을 분류하여 학습시키는 것과 C++, JAVA와 같은 고급 언어를 위한 학습 도구로 확장할 예정이다.
전체 게임의 난이도가 높다는 평가 결과에 따라 게임의 난이도를 낮추는 것도 바람직하다고 판단한다. 한편 숨은 오류 찾기에 가장 흥미를 보였기 때문에, 추후 숨은 오류 찾기 부분을 더 재미있고 유익하게 만드는 것에 집중할 필요가 있다.
질의응답
핵심어
질문
논문에서 추출한 답변
C 언어 관련 학습 도구는 무엇이 있는가?
현재 시중에는 많은 C 언어 학습 책이 있고, 유튜브에는 많은 C 언어 동영상 강의가 있고, 인터넷에는 C 언어를 공부하는 다양한 카페와 C 언어의 지식을 제공하는 많은 블로그가 있다. 이러한 학습 도구들이 있음에도 불구하고, 여전히 C 언어를 처음 접하는 학생들은 프로그래밍 언어의 개념에 생소할 뿐 아니라, 몸에도 익숙하지 않아, 타이핑 속도라던가 오류를 한 눈에 찾아내는 능력이 빨리 학습되지 않는다.
기능성 게임이란?
기능성 게임이란 오락을 목적으로 개발된 게임이 아니라, 게임이라는 방법을 통해 재미있게 교육, 치료, 훈련, 경영, 헬스케어 등의 목적으로 달성하기 위해 작성된 게임이다[2]. 기능성 게임은 최근에 와서 매우 광범위한 영역으로 확대되고 있으며, 2015년에는 기능성 게임 시장이 88억 달러에 이를 것으로 예상하고 있다[3].
많은 사람들이 C 언어를 배우려고 하는 이유는?
C 언어는 1972년에 세상에 나온 이래 컴퓨터의 규모, 용도 등 많은 변화가 있었음에도 불구하고, TIOBE의 평가에 따르면 프로그래밍 언어 중에서 가장 많이 사용되고 있다[1]. C 언어는 임베디드 소프트웨어, 운영체제를 비롯한 각종 시스템 소프트웨어뿐 아니라, 다양한 응용 소프트웨어를 개발하는데 사용되므로 많은 사람들이 C 언어를 배우려고 시도하고 있다. 그러나 C 언어는 전공자도 익히기 쉽지 않은 언어이다.
참고문헌 (11)
http://www.tiobe.com
Soon-Sin Lee, "A Study on the development of the game industry", Korea Game Society, Vol. 2, No. 1, pp18-21, 2005.
Seoung Joong Kim, Young Mee Choi, Moon Won Choo, "Serious Game Development Practices for Adult Learning Korean as a Second Language Learning : Korean Tetris", Spring Conference on Korea Game Society, pp.277-281, 2013.
Ji Won Lee, Aeong Jun Park, Nam Hyun Cho, Kyung Sik Kim, "A Study of Serious Game Design Method for Elderly People", Spring Conference on Korea Game Society, pp.233-242, 2013.
Kyoung Hwan Ahn, Choi Sung, "Study on the Analysis of Immersive Critical Success Factors for Education Serious Games", Fall Conference on Korea Game Society, pp.143-147, 2010.
Jong Hyun Wi, In Su Song, "Analysis Learning Effect and Application of G-learning Contents by the Learning Tool", Fall Conference on Korea Game Society, pp.103-109, 2010.
Lee-Ji Seol, "Analysis of Learning and Fun Elements Inherent in Dance Game", Journal of Korea Game Society Vol. 15 No. 1, pp. 155-170, 2015.
Chun Feng Fang, Don Gon Lee, Kyeong Seok Han, "A Study on the Effect of Contents Characteristics and Operating Service Quality in Continued Usage Intention and Word of Mouth : Focus on Online Sports Game", Journal of Korea Game Society Vol. 15 No. 1 pp. 101-114, 2015.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.