4차 산업혁명으로 초지능, 초연결 사회가 도래했다. 4차 산업혁명의 핵심 기술들은 소프트웨어가 중요한 부분을 차지한다. 소프트웨어를 통해 문제를 해결하는 능력은 모든 사람이 갖추어야 할 핵심 역량이란 점에서 소프트웨어 교육이 필요하다. 소프트웨어 교육은 프로그래밍 과정을 통해 문제를 해결하는 능력인 컴퓨팅 사고력 향상을 목표로 한다. 지금까지 대부분의 문제해결 프로그래밍 교수학습 모형은 전통적 개발 방식인 폭포수 모형(분석-설계-개발-테스트)을 따른다. 이는 선행 단계에서 문제가 있는 경우 테스트 단계에서 발견되어 문제의 해결책을 다시 찾는 데 적지 않은 시간과 노력이 소요되어 학습에 부담으로 작용할 수 있다. 본 연구에서는 애자일(Agile) 개발 방식인 TDD(테스트주도개발)를 적용한 컴퓨팅 사고력 기반 테스트 중심 문제해결 학습 모형을 제안하고 전문가 검토를 통해 모형의 적절성을 검증하였다. 모형의 검증 결과 긍정적인 평가 결과를 보였다. 특히, 모형의 학습 단계 구성, 프로그래밍 학습에의 도움, 컴퓨팅 사고력 증진에의 도움 등에서는 높은 평점을 보여 향후 학습 적용 시 문제해결 프로그래밍 학습을 통한 컴퓨팅 사고력 발달에 긍정적인 효과가 있을 것으로 판단된다.
4차 산업혁명으로 초지능, 초연결 사회가 도래했다. 4차 산업혁명의 핵심 기술들은 소프트웨어가 중요한 부분을 차지한다. 소프트웨어를 통해 문제를 해결하는 능력은 모든 사람이 갖추어야 할 핵심 역량이란 점에서 소프트웨어 교육이 필요하다. 소프트웨어 교육은 프로그래밍 과정을 통해 문제를 해결하는 능력인 컴퓨팅 사고력 향상을 목표로 한다. 지금까지 대부분의 문제해결 프로그래밍 교수학습 모형은 전통적 개발 방식인 폭포수 모형(분석-설계-개발-테스트)을 따른다. 이는 선행 단계에서 문제가 있는 경우 테스트 단계에서 발견되어 문제의 해결책을 다시 찾는 데 적지 않은 시간과 노력이 소요되어 학습에 부담으로 작용할 수 있다. 본 연구에서는 애자일(Agile) 개발 방식인 TDD(테스트주도개발)를 적용한 컴퓨팅 사고력 기반 테스트 중심 문제해결 학습 모형을 제안하고 전문가 검토를 통해 모형의 적절성을 검증하였다. 모형의 검증 결과 긍정적인 평가 결과를 보였다. 특히, 모형의 학습 단계 구성, 프로그래밍 학습에의 도움, 컴퓨팅 사고력 증진에의 도움 등에서는 높은 평점을 보여 향후 학습 적용 시 문제해결 프로그래밍 학습을 통한 컴퓨팅 사고력 발달에 긍정적인 효과가 있을 것으로 판단된다.
In the Fourth Industrial Revolution, a super-intelligent and super-connected society has arrived. Software is an important part of the core technologies of the Fourth Industrial Revolution. The ability to solve problems through software requires software education in that it is a core competency tha...
In the Fourth Industrial Revolution, a super-intelligent and super-connected society has arrived. Software is an important part of the core technologies of the Fourth Industrial Revolution. The ability to solve problems through software requires software education in that it is a core competency that everyone should have. Software education aims to improve Computational Thinking, which is the ability to solve problems through programming. Until now, most problem-solving programming learning models follow the traditional method of development: Waterfall model (Analysis-Design-Development-Test). In this model, if there is a problem in the preceding step, That could be found in the test phase. This takes a considerable amount of time and effort to find a solution to the problem and can be a burden on the programming learning. In this study, we proposed a Test-Driven Problem-Solving learning model using TDD (Test Driven Development) as Agile development method, and reviewed the appropriateness of the model through experts review. The verification results of the model showed positive evaluation results. In particular, the learning phase configuration of the model, helping in programming learning, helping of Computational Thinking improvement showed high rating, it is determined that there will be positive effects on Computational Thinking improvement through problem-solving programming learning when applying future learning.
In the Fourth Industrial Revolution, a super-intelligent and super-connected society has arrived. Software is an important part of the core technologies of the Fourth Industrial Revolution. The ability to solve problems through software requires software education in that it is a core competency that everyone should have. Software education aims to improve Computational Thinking, which is the ability to solve problems through programming. Until now, most problem-solving programming learning models follow the traditional method of development: Waterfall model (Analysis-Design-Development-Test). In this model, if there is a problem in the preceding step, That could be found in the test phase. This takes a considerable amount of time and effort to find a solution to the problem and can be a burden on the programming learning. In this study, we proposed a Test-Driven Problem-Solving learning model using TDD (Test Driven Development) as Agile development method, and reviewed the appropriateness of the model through experts review. The verification results of the model showed positive evaluation results. In particular, the learning phase configuration of the model, helping in programming learning, helping of Computational Thinking improvement showed high rating, it is determined that there will be positive effects on Computational Thinking improvement through problem-solving programming learning when applying future learning.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 연구에서는 최근 프로그래밍 개발에서 활용도가 높은 애자일(Agile) 개발 방식에서 사용되는 TDD(Test Driven Development)를 적용한 테스트 중심의 문제해결 프로그래밍 학습 모형을 제안 하였다.
교사는 학생이 만든 프로그램을 평가할 수 있는 지표가 필요하다. 프로그래밍 과정과 프로그램 실행 결과에 대한 객관적인 평가 지표를 제공하도록 한다.
가설 설정
- 자동차가 화면 끝에 닿으면 화면이 바뀌거나 또는 자동차의 방향이 바뀐다.
제안 방법
1단계에서 정의된 하위 단위 문제별로 테스트 방법을 구상하고, 모듈을 설계한다.
1차 모형 적절성 설문 문항의 내용 타당도 검사는 컴퓨터교육분야의 교육전문가를 대상으로 각 문항별 리커드 3점 척도 ‘필수적임’, ‘보통임’, ‘필요없음’으로 구성하였고 CVR(항목내용타당도비율) 검증을 통해 결과를 분석하였다.
2단계에서 구현한 테스트 모듈을 만족하는 실행 모듈을 설계하고 코드를 작성한다. 하위 단위 문제 별로 하나씩 작성하면서 점증적으로 확장할 수 있다.
각자의 프로그램 개발 과정을 발표, 공유하고 서로의 해결책을 비교한다. 다른 해결책을 이용하여 알고리즘을 개선해 볼 수 있다.
나열하기, 세어보기, 관찰 등을 통해 문제 해결의 핵심 원리를 발견하고 규칙성과 유사성을 찾아 해결책을 추론한다.
본 연구에서 제안하는 학습 모형은 문제해결 프로그래밍의 학습 절차에 애자일(Agile) 개발 방식인 테스트주도개발(TDD)을 적용한 것으로 문제 해결을 위한 테스트 코드를 먼저 작성함으로써 명확한 개발 목표를 설정하고 즉각적인 피드백을 제공해 설계상의 오류나 문제점을 프로그래밍 과정에서 바로 확인할 수 있도록 하여 학생들로 하여금 문제 해결에 자신감을 갖게 하고 프로그래밍 학습에 몰입할 수 있도록 하였다. 또한, 각 학습 단계는 컴퓨팅 사고력 구성 요소에 기반하여 구성하였고, 실제 문제 해결 예제를 통하여 문제해결 프로그래밍 과정을 시연하고 전문가를 통하여 모형의 적절성을 검증하였다.
본 모형의 적절성을 검증하기 위하여 모형 적절성 설문 문항의 내용 타당도 검사(1차)와 모형의 적절성 검사(2차)를 실시하였다.
본 연구에서 제안하는 학습 모형은 문제해결 프로그래밍의 학습 절차에 애자일(Agile) 개발 방식인 테스트주도개발(TDD)을 적용한 것으로 문제 해결을 위한 테스트 코드를 먼저 작성함으로써 명확한 개발 목표를 설정하고 즉각적인 피드백을 제공해 설계상의 오류나 문제점을 프로그래밍 과정에서 바로 확인할 수 있도록 하여 학생들로 하여금 문제 해결에 자신감을 갖게 하고 프로그래밍 학습에 몰입할 수 있도록 하였다. 또한, 각 학습 단계는 컴퓨팅 사고력 구성 요소에 기반하여 구성하였고, 실제 문제 해결 예제를 통하여 문제해결 프로그래밍 과정을 시연하고 전문가를 통하여 모형의 적절성을 검증하였다.
선행 연구를 통해 문제해결 프로그래밍 학습 절차와 테스트주도개발 절차를 고려한 학습 단계를 적용하여 4단계로 구성하였다.
설계를 바탕으로 테스트 모듈을 작성한다. 테스트 모듈은 3단계에서 개발할 실행 코드와 연계하여 테스트 결과가 올바른지 확인할 수 있다.
문제를 분석하고 분해하여 하위 단위 문제들로 정의한다. 정의된 하위 단위 문제의 해결 과정을 추론하여 해결책을 구상하고 입력값에 따른 결과값을 예측한다.
최종 완성된 프로그램에 대해 개발 과정을 발표 하고 공유하여 나의 해결책과 다른 해결책을 비교해 본다.
모형을 통해 문제를 해결하는 과정에서 생각한 아이디어와 해결책을 이야기 합니다. 테스트 코드 구현, 실행 코드 구현, 개선 과정을 설명하고 최종 완성된 프로그램을 시연해 봅니다.
실행 모듈을 빠르게 성공시키도록 결과 변수의 값을 희망값으로 지정할 수 있다. 해결책을 구상하고 알고리즘을 설계하여 의사코드를 작성한다.
성능/효과
남은 단계와 목표를 잊지 않게 도와준다. 둘째, TDD를 통해 만들어진 프로그램은 품질이 우수하다. 이는 필요한 만큼 테스트를 거친 ‘품질이 검증된 부품’을 갖게 되는 것과 마찬가지다[12].
모형의 적절성 검증 결과, 대부분의 문항에서 긍정적인 평가 결과가 나타났다. 특히, 학습 단계 구성, 프로그래밍 학습에 도움, CT 증진에 도움 등의 문항에서는 평가 결과가 높게 나타났는데 이는 해당 모형의 학습 단계가 적절하고 실제 학습에 적용했을 때 문제해결 프로그래밍 학습과 컴퓨팅 사고력 발달에 긍정적인 효과가 있을 것으로 판단한 것으로 해석할 수 있다.
반면, 테스트 코드 구현, 실행 코드 구현, CT 연결의 적절성 등에서는 상대적으로 낮은 평가 결과가 나타났는데 이는 테스트를 먼저 만들고 프로그래밍을 한다는 점에서 기존 모형들과는 익숙하지 않은 점이 있고 그로 인해 컴퓨팅 사고력 하위 요소와의 연관성에도 의구심을 갖는 것으로 추측된다.
51로 긍정적인 것으로 나타났다. 특히, 학습 단계 구성(4.7)과 모형의 적용 효과 측면인 프로그래밍 학습에 도움(4.7), CT 증진에 도움(4.7)에서는 높은 평가 결과 가 나타났다. 이는 모형에서 제공된 예제 확인을 통하여 학습 단계별로 문제를 해결하는 과정과 프로그래밍 과정이 실제 학습에 유용하고 컴퓨팅 사고력 구성 요소 발달에 긍정적인 효과가 있을 것으로 생각하는 것으로 해석할 수 있다.
모형의 적절성 검증 결과, 대부분의 문항에서 긍정적인 평가 결과가 나타났다. 특히, 학습 단계 구성, 프로그래밍 학습에 도움, CT 증진에 도움 등의 문항에서는 평가 결과가 높게 나타났는데 이는 해당 모형의 학습 단계가 적절하고 실제 학습에 적용했을 때 문제해결 프로그래밍 학습과 컴퓨팅 사고력 발달에 긍정적인 효과가 있을 것으로 판단한 것으로 해석할 수 있다.
평가 결과, 전체 문항 평점은 4.51로 긍정적인 것으로 나타났다. 특히, 학습 단계 구성(4.
후속연구
향후 본 연구에서 제안하는 컴퓨팅 사고력 기반 테스트 중심 문제해결(CT-TDPS) 학습 모형을 실제 문제해결 프로그래밍 수업에 적용하여 컴퓨팅 사고력 발달 등 학습에 미치는 영향에 대한 연구가 필요할 것으로 생각된다.
질의응답
핵심어
질문
논문에서 추출한 답변
소프트웨어 교육이 필요한 이유는?
4차 산업혁명의 핵심 기술들은 소프트웨어가 중요한 부분을 차지한다. 소프트웨어를 통해 문제를 해결하는 능력은 모든 사람이 갖추어야 할 핵심 역량이란 점에서 소프트웨어 교육이 필요하다. 소프트웨어 교육은 프로그래밍 과정을 통해 문제를 해결하는 능력인 컴퓨팅 사고력 향상을 목표로 한다.
소프트웨어 교육의 목표는?
소프트웨어를 통해 문제를 해결하는 능력은 모든 사람이 갖추어야 할 핵심 역량이란 점에서 소프트웨어 교육이 필요하다. 소프트웨어 교육은 프로그래밍 과정을 통해 문제를 해결하는 능력인 컴퓨팅 사고력 향상을 목표로 한다. 지금까지 대부분의 문제해결 프로그래밍 교수학습 모형은 전통적 개발 방식인 폭포수 모형(분석-설계-개발-테스트)을 따른다.
폭포수 모형의 단점은?
지금까지 대부분의 문제해결 프로그래밍 교수학습 모형은 전통적 개발 방식인 폭포수 모형(분석-설계-개발-테스트)을 따른다. 이는 선행 단계에서 문제가 있는 경우 테스트 단계에서 발견되어 문제의 해결책을 다시 찾는 데 적지 않은 시간과 노력이 소요되어 학습에 부담으로 작용할 수 있다. 본 연구에서는 애자일(Agile) 개발 방식인 TDD(테스트주도개발)를 적용한 컴퓨팅 사고력 기반 테스트 중심 문제해결 학습 모형을 제안하고 전문가 검토를 통해 모형의 적절성을 검증하였다.
참고문헌 (17)
이철현 (2016). 소프트웨어 교육을 위한 컴퓨팅 사고력 기반 문제 해결 모형(CT-PS Model) 개발. 실과교육연구. 22(3), 23-44.
김영직, 안성훈 (2017). TDD를 활용한 문제중심 프로그래밍 교육에 대한 고찰. 한국창의정보학회 하계학술발표논문집. 61-66.
전석환, 김정동, 백두권 (2009). 테스트 주도 개발을 위한 유연한 단위 테스트 도구. 정보과학회논문지:컴퓨팅의 실제 및 레터. 15(2), 140-144.
채수원 (2010). 테스트주도개발 TDD 실천법과 도구. 한빛미디어.
Kayongo, P. (2016). Why do software developers practice test-driven development?. University of Cape Town.
Edwards, S. H. (2003, August). Using test-driven development in the classroom: Providing students with automatic, concrete feedback on performance. In Proceedings of the international conference on education and information systems: technologies and applications EISTA (Vol. 3). Citeseer.
Buffardi, K., & Edwards, S. H. (2013, March). Impacts of adaptive feedback on teaching test-driven development. In Proceeding of the 44th ACM technical symposium on Computer science education (pp. 293-298). ACM.
Computing at School (n.d.). Computational Thinking - How do we think about problems so that computers can help?. Available from https://community.computingatschool.org.uk/
Janzen, D. S. (2005). Software architecture improvement through test-driven development. In Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (p. 240).
※ AI-Helper는 부적절한 답변을 할 수 있습니다.