예비교사들의 소프트웨어교육 능력을 키우기 위한 방안으로 정규 교과시간에 두 종류의 프로그래밍 도구(파이썬, 스크래치)를 이용하여 프로그래밍 학습을 각각 실시하였다. 프로그래밍 학습에서 지속적으로 흥미와 성취감 및 창의성을 저해하는 요소인 각종 오류들의 종류들을 수집하고 유형별로 분석하였다. 분석된 자료들을 활용하면 향후 예비교사들이 초등학교에서 가르쳐야 할 소프트웨어교육에서 발생 가능한 오류들을 줄일 수 있도록 대처할 수 있는 능력을 키울 수 있어 최적의 학습효과를 올릴 수 있다. 본 연구에서는 평균적으로 텍스트를 입력하는 기존 형태의 언어와 불럭을 조립하는 형태의 언어 모두에서 프로그래밍 시 가장 많은 오류를 발생시키는 유형이 논리오류(37.63%)로 가장 많았다. 또한, 두 언어에서 차이점이 많이 나타나는 세부적인 오류는 문법 등의 사용미숙, 오타 등으로 인한 단순오류가 파이썬이 14.3%, 스크래치가 3.5%로 큰 차이가 있음을 알 수 있었다.
예비교사들의 소프트웨어교육 능력을 키우기 위한 방안으로 정규 교과시간에 두 종류의 프로그래밍 도구(파이썬, 스크래치)를 이용하여 프로그래밍 학습을 각각 실시하였다. 프로그래밍 학습에서 지속적으로 흥미와 성취감 및 창의성을 저해하는 요소인 각종 오류들의 종류들을 수집하고 유형별로 분석하였다. 분석된 자료들을 활용하면 향후 예비교사들이 초등학교에서 가르쳐야 할 소프트웨어교육에서 발생 가능한 오류들을 줄일 수 있도록 대처할 수 있는 능력을 키울 수 있어 최적의 학습효과를 올릴 수 있다. 본 연구에서는 평균적으로 텍스트를 입력하는 기존 형태의 언어와 불럭을 조립하는 형태의 언어 모두에서 프로그래밍 시 가장 많은 오류를 발생시키는 유형이 논리오류(37.63%)로 가장 많았다. 또한, 두 언어에서 차이점이 많이 나타나는 세부적인 오류는 문법 등의 사용미숙, 오타 등으로 인한 단순오류가 파이썬이 14.3%, 스크래치가 3.5%로 큰 차이가 있음을 알 수 있었다.
As a way to improve the software education ability of the pre - service teachers, we conducted programming learning using two types of programming tools (Python and Scratch) at the regular course time. In programming learning, various types of errors, which are factors that continuously hinder inter...
As a way to improve the software education ability of the pre - service teachers, we conducted programming learning using two types of programming tools (Python and Scratch) at the regular course time. In programming learning, various types of errors, which are factors that continuously hinder interest, achievement and creativity, were collected and analyzed by type. By using the analyzed data, it is possible to improve the ability of pre-service teachers to cope with the errors that can occur in the software education to be taught in the elementary school, and to improve the learning effect. In this study, logic error (37.63%) was the most frequent type that caused the most errors in programming in both conventional language that input text and language that assembles block. In addition, the detailed errors that show a lot of differences in the two languages are the errors of Python (14.3%) and scratch (3.5%) due to insufficient use of grammar and other errors.
As a way to improve the software education ability of the pre - service teachers, we conducted programming learning using two types of programming tools (Python and Scratch) at the regular course time. In programming learning, various types of errors, which are factors that continuously hinder interest, achievement and creativity, were collected and analyzed by type. By using the analyzed data, it is possible to improve the ability of pre-service teachers to cope with the errors that can occur in the software education to be taught in the elementary school, and to improve the learning effect. In this study, logic error (37.63%) was the most frequent type that caused the most errors in programming in both conventional language that input text and language that assembles block. In addition, the detailed errors that show a lot of differences in the two languages are the errors of Python (14.3%) and scratch (3.5%) due to insufficient use of grammar and other errors.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
우리나라에서도 2018년부터 초등학교에서 소프트웨어교육을 정규교과에 편입하였다. 본 연구에서는 미래 초등학생들을 위해 체계적이고 효율적인 소프트웨어 교육시스템을 만들게 되는 주체인 에비교사들을 상대로 정보교양 교과시간에 텍스트 입력을 기본으로 하는 기존 모형의 언어인 파이썬과 불럭조립형인 스크래치를 각각 소양 학습시킨 후 담당교수가 제시한 초등학교 일부 교과내용을 기초로 제시한 프로젝트를 해결하는 방법으로 프로그래밍하는 과정에서 경험적으로 발생 하는 오류들을 조사하고 분석하여 예비교사들이 프로그 래밍 시 사전에 발생 가능한 오류들을 예측하는 능력과 문제 해결력을 키워 소프트웨어 학습에 대한 지속적인 흥미 및 창의성을 유발시켜서 최적 소프트웨어 학습과 성취도 향상에 도움을 주고자 한다.
본 연구에서는 2018년부터 실시되는 초등학교 소프트웨어교육에 대비해 예비교사들의 프로그래밍교육 능력 향상과 프로그래밍 시 어떤 문제점과 어려운 점들이 발생할 수 있는지를 미리 파악하여 교사가 코딩교육에 적절하고도 최적의 방법을 찾을 수 있는 능력을 키우기 위해, 예비교사들에게 파이썬과 스크래치를 각각 선행학습 시킨 후 제시한 프로젝트를 구현하기 위해 프로그래밍하고 그 과정에서 오류 데이터들을 유형별로 수집하고 분석하였다.
제안 방법
연구에 필요한 오류데이터 수집은 진주교육대학교 3학년 교과인 “소프트웨어와 프로그래밍 언어교육”을 수강하는 학생들 대상으로 A 반(25명)은 스크래치를 선행 학습하고 다른 한반인 B반 (25명)은 파이썬을 선행 학습한 후 매월(4, 5, 6월) 마지막 주에 초등교과 내용을 기초로 담당교수가 프로젝트를 제시하고 이들 문제들을 해결하기 위해 학습자 스스로 알고리즘을 구현하고 프로그래밍 한 결과를 도출하는 과정(1시간 이내)에서 발생한 모든 오류들을 수집하고 분석하였다.
프로그래밍 과제는 [Table 1] 처럼 초등학교 5학년 수학, 과학, 6학년 수학, 과학교과에서 특정 영역의 단원을 응용한 과제로 스크래치 및 파이썬으로 각각 프로그래밍 하였다.
학습자들의 프로젝트 수행과정에서 발생시키는 오류 들은 전문 소프트웨어 개발자들을 위해 Lipow가 제안한 8개(16개의 세부항목)의 오류항목들을 기초로 하였다[10]. 프로그래밍이 미숙한 학습자들의 실정에 맞게 5개 항목(논리오류, 연산오류, 데이터오류, 인터페이스오류, 기타오류)으로 하였다. 각 항목의 세부적인 오류 종류들을 모두 9종류로 분류하였다.
대상 데이터
본 연구는 소프트웨어 개발기업에서 행하는 테스트를 중심으로 수집하는 기존 오류데이터 수집방법과는 다르게 오류데이터를 수집하였다. 연구에 필요한 오류데이터 수집은 진주교육대학교 3학년 교과인 “소프트웨어와 프로그래밍 언어교육”을 수강하는 학생들 대상으로 A 반(25명)은 스크래치를 선행 학습하고 다른 한반인 B반 (25명)은 파이썬을 선행 학습한 후 매월(4, 5, 6월) 마지막 주에 초등교과 내용을 기초로 담당교수가 프로젝트를 제시하고 이들 문제들을 해결하기 위해 학습자 스스로 알고리즘을 구현하고 프로그래밍 한 결과를 도출하는 과정(1시간 이내)에서 발생한 모든 오류들을 수집하고 분석하였다.
이론/모형
학습자들의 프로젝트 수행과정에서 발생시키는 오류 들은 전문 소프트웨어 개발자들을 위해 Lipow가 제안한 8개(16개의 세부항목)의 오류항목들을 기초로 하였다[10]. 프로그래밍이 미숙한 학습자들의 실정에 맞게 5개 항목(논리오류, 연산오류, 데이터오류, 인터페이스오류, 기타오류)으로 하였다.
성능/효과
두 번째로 많이 발생된 오류데이터는 부적절한 데이터를 지정하거나 입출력 미지정 및 잘못된 입·출력 형식 지정 등으로 발생하는 데이터오류 항목이 28.32%로 나타났다.
5개 항목별 오류데이터 중에서 가장 많이 발생시키는 오류는 논리오류로 파이썬이 244건으로 전체 오류의 39.2%이고, 스크래치가 전체 오류의 38.7%로 나타나 프로그램 작성 시 발생시키는 전체 오류 중 \(\frac{1}{3}\) 이상으로 평균 37.63%를 차지하고 있다. 두 번째로 많이 발생된 오류데이터는 부적절한 데이터를 지정하거나 입출력 미지정 및 잘못된 입·출력 형식 지정 등으로 발생하는 데이터오류 항목이 28.
논리오류에서의 항목별 세부오류 발생 수집은 프로그래밍 과정에서 논리식을 잘못 사용한 경우가 파이썬이 65건, 스크래치가 48건으로 나타나 전체 오류의 10.5% 그리고 12.1%로 가장 많이 나타났으며, 부적절한 제어 구조를 사용하거나 부적절한 연산자 사용 그리고 결과가 잘못된 논리사용, 무한루프 사용 순으로 오류를 발생 시켰다. 학습자들이 주어진 프로젝트를 결과로 도출하는 논리적인 알고리즘 표현이 가장 어려운 부분으로 분석되었으며 향후 프로그램 복잡도가 높아지면 더욱 많은 오류가 지속적으로 발생할 것으로 판단된다.
데이터 오류의 항목별 세부오류 발생은 부적절한 데이터 지정이 파이썬은 6.9%, 스크래치가 7.3%이며 잘못된 입·출력 형식 지정이 7.1%와 10%로 각각 나타났으며 입출력 미지정이 5.5%와 6%로 나타났다.
속성 잘못 지정, 화면 디자인 등의 설계 잘못으로 인해 발생되는 인터페이스 오류에서 파이썬과 스크래치에서 각각 5.5%와 7.1%로 나타났다.
분석된 오류데이터를 예비교사들에게 피드백 시켜 소프트웨어교육에 활용하면 초등학생들에게 교육전에 프로그래밍 학습 난이도, 성취도를 예측하여 학습자들에 맞는 최적 소프트웨어교육을 시킴으로서 흥미도 및 성취도를 점진적으로 높여 성공적인 학습 효과를 얻을 수 있다.
후속연구
1%로 가장 많이 나타났으며, 부적절한 제어 구조를 사용하거나 부적절한 연산자 사용 그리고 결과가 잘못된 논리사용, 무한루프 사용 순으로 오류를 발생 시켰다. 학습자들이 주어진 프로젝트를 결과로 도출하는 논리적인 알고리즘 표현이 가장 어려운 부분으로 분석되었으며 향후 프로그램 복잡도가 높아지면 더욱 많은 오류가 지속적으로 발생할 것으로 판단된다. 이는, 소프트웨어 개발업체에 입사한지 1년 전·후의 프로그래머가 가장 많이 발생시키는 오류가 논리오류로 비슷한 현상을 보였다[8].
질의응답
핵심어
질문
논문에서 추출한 답변
예비교사들의 소프트웨어교육 능력을 키우기 위한 방안은 무엇인가?
예비교사들의 소프트웨어교육 능력을 키우기 위한 방안으로 정규 교과시간에 두 종류의 프로그래밍 도구(파이썬, 스크래치)를 이용하여 프로그래밍 학습을 각각 실시하였다. 프로그래밍 학습에서 지속적으로 흥미와 성취감 및 창의성을 저해하는 요소인 각종 오류들의 종류들을 수집하고 유형별로 분석하였다.
소프트웨어 오류란 무엇인가?
소프트웨어 오류란 소프트웨어를 개발하기 위한 전체 단계에서 작성자의 실수에 의해 만들어진 결함과 만들어진 프로그램이 실행 시 사용자가 요구하는 요구명세서 대로 작동하지 않는 모든 현상을 말한다. 이는, 소프트웨어 결함을 발생시키는 부주의한 행위를 말한다.
하드웨어 오류의 예방방법은 무엇인가?
소프트웨어 오류는 일반적으로 소프트웨어 개발과정 에서 입력된 결함이나 논리적 착오 등으로 오류가 발생 하지만 하드웨어는 보통 구성 부품의 잘못된 설계 등의 제조과정에서 발생하는 오류와 제품 사용이 어느 정도 진행하여 부품의 마모나 피로도에 따라 오류율은 급격히 증가하는 현상이 발생한다. 따라서, 오류 발생을 줄이기 위해서는 마모 고장기간 내에 부품교환 및 수리 등을 실시하여 오류를 예방할 수 있다. 따라서, 소프트웨어 오류 유형과는 다르다.
참고문헌 (14)
Amrit L. Goal Software Error Dection Model with Application, The journal of system and software Vol.127, No. 4, pp. 17-25, 2013.
Andy Oram, Greg, Wilson(2010). Making Software : O'reilly Media.
Georage rawvski, Identification of factors which cause software failure, proceedings Annual reliability and maintainability IEEE Symp, 2013.
Hyungshin Choi(2014). Computational Thinking Gramework-based Analysis of After-school Scratch Team project Experience Journal of the Korean Association of Information Education, 18-4, 549-553.
Jun yongju(2017), "A Study on the Cognitive, Psychomotor and Affective Aspects of Software Education by Exploring Computational Thinking", Korea Computer Education Association Summer conference (2017).
Kang jungsuk(2016), The status of software education in preparation for the fourth industrial revolution era, Jeju Special Self-Governing Province Office of Education.
Littlewood, B and Miller D. Software Reliability and safety, Elsevier applied science, London, 1993.
Moon, W. S(2006). Analyzing the types of errors that elementary students encounter in programming learning. Korea Computer Information Association Vol 11, No. 2, 2006, pp. 324-326
Muneo Takahssi and Yuki Kamyachi, An Empirical Study of A Model for Program Error Prediction, Proceedings of 8th IEEE Conference on Software Engineering", pp. 331
Myron Lipow, Prediction of software failure, Journ of system and software, Vol 15, No 4, pp. 31 - 35, 2012.
Rost, Johann, Glass(2011). Dark Side of Software Engineering : Wley-IEE Computer Socity PR
Shin Seung-yong(2003). Development of information gifted discrimination tool based on creativity and information science characteristics, Korean Computer Education Association Summer Lecture(2).
Youngsik Jeong, Kapsu Kim, Inkee Jeog, Hyunbae Kim, Chul Kim, Jeomgsu Yu, Chongwoo Kim, Myunghui Hong(2015). A Development of the Software Education Curriculum Model for Elementary Students. Journal of The Korean Association of Information Education. 19(4). 467-475.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.