View : 639 Download: 0

컴퓨팅 사고력 기반의 파이썬 프로그래밍 학습지원시스템 개발연구

Title
컴퓨팅 사고력 기반의 파이썬 프로그래밍 학습지원시스템 개발연구
Other Titles
Development Research of Python Programming Learning Support System based on Computational Thinking
Authors
고은지
Issue Date
2021
Department/Major
대학원 교육공학과
Publisher
이화여자대학교 대학원
Degree
Doctor
Advisors
이정민
Abstract
최근 세계의 동향은 소프트웨어(이하 SW) 역량을 가진 인재 양성을 위해 다방면으로 노력을 기울이고 있으며, 한국 또한 ‘SW 선도학교’와 ‘SW 중심대학’ 사업을 운영하는 등 전 교육과정에서 그 중요성을 강조하고 있다. 특히, SW 중심대학으로 선정된 대학에서는 비전공자를 대상으로 SW 교육과 융합교육을 활성화하고 컴퓨팅 사고력 함양이라는 목표로 모든 계열의 신입생을 대상으로 블록형 프로그래밍과 파이썬 프로그래밍 교육을 포함한 교과를 교양필수 교과목으로 운영하고 있다. 블록형 프로그래밍 언어인 Scratch가 직관적이고 사용하는 문법이 단순하여 초보 학습자들의 인지적 부담이 덜한 반면, 파이썬 프로그래밍 언어는 생소한 문법, 오류 수정의 어려움, 사전단계의 부재, 흥미의 부재 등으로 학습에 대한 동기가 저하되고 학습을 중도에 포기하는 현상이 나타나는데, 이에 따라 이들의 학습을 지원하는 방법에 관한 연구가 필요하다. 선행연구에서는 초보 학습자를 지원하는 방안으로 오류메시지 제공, 자동화된 코드분석을 통한 평가, 동료피드백을 제시하며 지원의 적시성을 강조하고 있는데, 이와 같은 요소를 시스템화하면 학습이 시스템에서 이루어지게 함으로써 적시에 지원이 제공될 뿐만 아니라 학습 과정에 대한 안내도 가능하다는 장점이 있다. 본 연구는 초보 학습자가 파이썬 프로그래밍 학습을 할 때, 컴퓨팅 사고력 기반의 프로그래밍 학습이 가능한 학습지원시스템을 설계하고 개발하는 것을 연구의 목적으로 하였다. 이를 위해 파이썬 학습에서 일어나는 문제해결과정과 컴퓨팅 사고력과의 관계를 선행연구를 통해 규명하고, 컴퓨팅 사고력 각 영역의 단편적 평가와 지원에서 벗어나 코딩 전 문제해결을 위한 절차, 코딩 시 발생할 수 있는 문제, 코딩 후 결과에 대한 성찰, 전 과정을 지원할 수 있는 학습지원시스템을 설계하였다. 구체적인 연구문제는 다음과 같다. 연구문제 1. 컴퓨팅 사고력 기반의 파이썬 학습지원시스템 개발을 위한 설계지침과 핵심기능은 무엇인가? 연구문제 2. 컴퓨팅 사고력 기반의 파이썬 학습지원시스템에 대한 학습자 인식(사용성, 학습자 만족도, 순혜택, 지속사용의향)은 어떠한가? 본 연구는 설계‧개발 연구방법을 채택하여 분석, 설계, 개발 및 평가 과정으로 연구를 수행하였다. 첫째, 분석단계에서는 선행연구를 고찰하여 파이썬 학습지원시스템의 요소를 도출하였고, 전문가 인터뷰를 통해 프로그래밍 학습의 맥락적 요소를 반영하였다. 분석단계를 통해 얻은 시사점은 1) 컴퓨팅 사고력에 기반한 인터페이스 설계의 필요성 2) 문제해결을 위한 학습지원 기능의 제공 3) 정적 분석방법의 활용 4) 오류의 지원 등이다. 둘째, 설계단계에서는 분석단계에서 얻은 결과를 바탕으로 설계지침을 도출하고 이를 기반으로 흐름도를 개발하였다. 초기 도출된 설계지침은 크게 1) CT 요소의 측정을 지원 2) 오류에 대한 안내 3) 자료 표현 및 분석을 지원 4) 의사소통 및 협업의 지원 등이다. 다음으로 설계지침과 흐름도에 대한 적절성을 확인하기 위해 예비 전문가 검토를 실시하고 설계지침을 수정하였다. 세부 지침 중 수정된 사항은 1) 측정하고자 하는 컴퓨팅 사고력(이하 CT) 개념요소를 변수, 연산, 조건, 반복으로 구체화하였고, 2) 각 CT 개념에 해당하는 문법의 활용 횟수뿐만 아니라 표현 방법에 대한 피드백을 제공하며, 3) 의사코드 툴을 코딩 전 활용할 뿐만 아니라 작성한 코드에 대한 ‘주석 달기’로 활용하는 것이다. 또한, 4) 커뮤니티에서 코드를 공유하고 리뷰하는 활동을 통해 협업을 지원하는 것과 5) 누적 학습결과를 시각화하여 제공하는 것을 추가하였다. 셋째, 개발 및 평가 단계에서는 설계지침을 기반으로 스토리보드와 학습지원시스템을 개발하였다. 스토리보드와 학습지원시스템에서 구현된 기능을 살펴보면, 1) 순서도와 의사코드, 코딩 창의 구성 2) 코딩 결과의 확인 3) CT 개념의 자동 측정과 피드백 제공 4) 커뮤니티 기능 등이다. 학습지원시스템 설계지침에 대한 1차 전문가 검토와 소리내어 생각하기를 통한 학습지원시스템에 대한 1차 사용자 평가를 시행하고, 그 결과를 적용하여 학습지원시스템의 설계지침과 시스템을 수정하였다. 1차 전문가 검토와 사용자 평가를 통해 수정된 내용은 1) CT 영역의 통합, 수정, 세분화 2) 코드의 적절성에 대한 판단 기준을 피드백 3) 문제해결 관점에서 시스템의 요소를 정리 4) 예시와 설명의 추가 등이다. 이에 대해 다시 2차 전문가 검토를 시행하고 본 학습지원시스템에 대한 학습자인식을 조사하기 위해 사용성, 학습자 만족도, 순혜택, 지속사용의향을 묻는 문항을 구성하여 2차 사용자 평가를 시행하였다. 그 결과, 1) 아이디어를 얻기 위한 수단에서 동료 찾기를 삭제하고 유튜브, 웹 검색 등을 활용하도록 하였고, 2) 선행연구를 통해 문제분해 도구를 탐색하였으며 3) CT 영역의 용어를 변경하고 결과 페이지에서 각 영역의 문법 예시를 제시하였다. 4) 평가보다는 제안의 언어를 사용하여 피드백을 수정하였으며 5) 각 문법을 학습할 수 있는 도전과제를 제시하였다. 이와 같은 절차를 토대로 최종적으로 1) CT 개념요소의 측정과 피드백 지원, 2) 오류에 대한 안내, 3) 자료수집, 표현, 분석을 지원 4) 의사소통 및 협업을 지원 5) 학습결과의 시각화, 6) 도전과제의 제시 등의 설계지침이 도출되었다. 최종적인 학습자 반응을 살펴보기 위해 2차 사용자 평가의 결과를 살펴보면 사용성 평가 결과에서 오류 수정에 대한 피드백을 제공하는 기능을 통해 ‘유용성’을 인식하였고, 생소한 언어의 사용은 ‘편이성’을 낮게 인식하게 하였다. 학습자 만족도의 하위요인 중 학습자 커뮤니티에 대한 만족도를 가장 높게 평가했으며, 순혜택에서는 문제를 잘 정의하고 작업을 수월하게 한다는 문항에서 높은 평가를 받았다. 또한, 연구 참여자들은 앞으로의 학습에서도 본 시스템을 활용하고 싶다고 응답하였다. 본 연구는 초보 학습자를 대상으로 한 프로그래밍 연구의 범위를 넓혔다는 점, 컴퓨팅 사고력과 문제해결과의 관계를 탐색하고 문제해결과정에서의 지원 방안을 제시했다는 점, 여러 전공 분야의 전문가 의견과 실제 학습자의 의견을 반영했다는 점에서 이론적 의의가 있으며, 본 학습지원시스템을 대형강의에서 유용하게 활용할 수 있다는 점, 예비교사들이 본 학습지원시스템을 통해 컴퓨팅 사고력 기반의 프로그래밍 과정을 이해하고 교육과정을 효율적으로 운영할 수 있다는 점, 설계지침을 활용하여 학습자 중심의 수업을 구성할 수 있다는 점, 학습자의 개별학습을 지원하여 자기주도적 학습이 가능하다는 점에서 실천적 의의가 있다. 반면, 연구의 범위에 본 학습지원시스템 활용에 대한 효과성이 포함되어 있지 않다는 점, 사용자 평가의 대상이 여성으로만 구성되어 있다는 점, 순서도와 메모장을 활용한 자료표현, 문제분해, 절차 수립 등의 과정에 대한 연구 참여자의 사전 연습이 필요하다는 점은 연구의 제한점이 될 수 있다.;Recently, global trends have made efforts to foster talented people with Software(SW) capabilities in various ways. The Ministry of Education has also started operating ‘SW leading schools’ and ‘SW-centered universities’ to emphasize the importance of SW. In particular, universities selected as SW-focused universities offer subjects including block-type and Python programming as essential subjects to first-year students of all disciplines to activate SW education and convergence education for non-majors and foster computational thinking skills. Scratch, a block-type programming language, is intuitive and straightforward to use; hence, it places limited cognitive burden on beginners. On the other hand, in the Python programming language, the motivation for learning is lower and learning is often abandoned halfway owing to unfamiliar grammar, difficulty correcting errors, lack of previous steps, and lack of interest. Therefore, there is a need for research on how to support beginners learning Python. Previous studies have provided error messages, assessment through automated code analysis, and peer feedback and emphasized the timeliness of support in a bid to support novice learners. Systematizing these elements has the advantage of providing timely support and guidance on the learning process. This study aimed to design and develop a programming learning support system based on computational thinking. Accordingly, this study investigated the relationship between the problem-solving process and computational thinking skills in Python learning by reviewing prior research. In addition, we designed a learning support system that could support the entire process, including procedures for problem-solving before coding, problems that may occur during coding, and reflection on the results after coding. Our specific research questions are as follows. Research Question 1. What are the core functions and design guidelines for developing a Python learning support system based on computational thinking? Research Question 2. What is the learner's perception (usability, learner satisfaction, net benefit, continuous usage intention) of the Python learning support system based on computational thinking? In this study, the design and development research method was adopted, and the research was conducted through analysis, design, development, and evaluation. First, in the analysis stage, the elements of the Python learning support system were derived by considering previous studies, and the contextual elements of programming learning were reflected through expert interviews. The implications obtained through the analysis are 1) the need for interface design based on computational thinking, 2) the provision of learning support functions for problem-solving, 3) the use of static analysis methods, and 4) support for errors. Second, in the design phase, design guidelines were derived based on the results obtained in the analysis phase, and flow charts were developed based on them. The design guidelines that were initially derived are 1) support measurement of Computational thinking(CT) elements, 2) guidance on errors, 3) support for data expression and analysis, and 4) support for communication and collaboration. Next, a preliminary expert review was carried out to confirm the adequacy of the design guideline and flow chart, and the design guideline was revised. The revisions in the detailed guidelines are 1) embody the CT concept elements to be measured into variables, operations, conditions, and repetitions; 2) provide feedback on the expression method and number of times the grammar corresponding to each CT concept is used; 3) use the pseudo-code tool before coding and ‘commenting’ the written code. In addition, these were added: 4) support collaboration through code sharing and reviewing activities in the community; and 5) provide visualization of accumulated learning results. Third, a storyboard and learning support system were developed based on the design guidelines in the development and evaluation stage. The functions implemented in the storyboard and learning support system include 1) flow chart, pseudo code, and coding window configuration; 2) coding result confirmation; 3) automatic measurement of CT concept and providing feedback; and 4) community function. The first expert review of the design guidelines for the learning support system and its first user formative assessment through think-aloud protocol were conducted. Additionally, the design guidelines and system of the learning support system were revised by applying the results. The contents revised through the first expert review and the first user formative assessment are 1) integration, correction, and segmentation of the CT area; 2) feedback on the judging criteria for the appropriateness of the code; 3) arrangement of system elements from a problem-solving point of view; and 4) examples and addition of explanations. Subsequently, the second expert review was conducted. To investigate the learner's perception of this learning support system, we conducted the second user formative assessment by composing questions regarding usability, learner satisfaction, net benefit, and continuous use intention. As a result, 1) among the guidelines for formulating ideas, ‘finding colleagues’ was deleted, and YouTube and web search were used; 2) the problem decomposition tool was explored by reviewing previous studies; 3) the terminology of the CT area was changed, and the grammar example of each area was presented on the result page; 4) feedback was modified to use the language of suggestion rather than that of evaluation; and 5) challenges for learning each syntax were presented. Based on these procedures, the following design guidelines were finally derived. 1) Measurement and feedback support for CT concept elements 2) Guidance on errors 3) Support for data collection, data representation, and analysis 4) Support for communication and collaboration 5) Visualization of learning results 6) Presentation of challenges. The learner's reaction was examined based on the results of the secondary user evaluation. In the usability evaluation result, ‘usefulness’ was recognized by providing feedback on error correction, and ‘convenience’ was low owing to the use of unfamiliar language. Satisfaction with the learner community was rated the highest among the sub-factors of learner satisfaction, and in net benefit, it was highly rated in terms of defining problems well and facilitating work. In addition, the study participants responded that they wanted to use this system continuously. This study has the following theoretical significance. The scope of programming research for learners has been expanded, the relationship between computational thinking ability and problem-solving has been explored, support measures have been suggested in the problem-solving process, and the opinions of experts in various majors and those of actual learners have been reflected. In addition, the study has the following practical significance. This learning support system can be useful in large-scale lectures, and pre-service teachers can understand the programming process based on computational thinking and operate the curriculum efficiently through this learning support system. Learner-centered classes can be organized using design guidelines, and self-directed learning is possible by supporting learners' learning. On the other hand, this study has several limitations. The effectiveness of using this learning support system was not included in the scope of the study, and the target of formative user evaluation was only women. Additionally, the research participants had to practice the process of data representation, problem decomposition, and procedure establishment using flowcharts and notepads in advance.
Fulltext
Show the fulltext
Appears in Collections:
일반대학원 > 교육공학과 > Theses_Ph.D
Files in This Item:
There are no files associated with this item.
Export
RIS (EndNote)
XLS (Excel)
XML


qrcode

BROWSE