[국내논문]과학영재 고등학교 도구교과로서의 프로그래밍 교육과정 내용요소 설계 Designing Content Elements of the Programming Curriculum as a Instrumental Subject for Gifted Science High School원문보기
본 연구에서 프로그래밍 교육과정의 내용 요소는 정보과학 영재가 아닌 과학영재학생들을 위한 도구교과로 설계되었다. 먼저, 도구교과로써의 프로그래밍 교육과정은 2학기 동안의 수업 결과를 바탕으로, 프로그래밍의 이해, 객체지향 프로그래밍, 시뮬레이션 프로그래밍의 3영역으로 구성하여 내용요소를 설계하였다. 그 후, 과학영재 고등학교 학생들에게 수학, 과학 수업이나 연구에서 활용 가능 여부 확인을 위해, 한 학기동안 수업 및 프로젝트과제, 문제해결과제를 수행하였다. 연구 결과를 통해, 학생들이 Computational thinking 기반의 문제해결능력 뿐 아니라 수학, 과학 분야에서의 수치 해석 및 시뮬레이션 프로그램 개발 역량이 향상됨을 알 수 있었다. 또한, 학생들은 프로그래밍 학습이 과학, 수학 공부나 연구를 하는데 필요한 도구교과라는 생각으로 바뀐 것을 알 수 있었다. 본 연구결과가 과학영재학교에서 도구교과 성격으로서의 정보 교과의 프로그래밍 교육과정을 설계하는데 가이드라인을 제시할 수 있을 것이라 기대한다.
본 연구에서 프로그래밍 교육과정의 내용 요소는 정보과학 영재가 아닌 과학영재학생들을 위한 도구교과로 설계되었다. 먼저, 도구교과로써의 프로그래밍 교육과정은 2학기 동안의 수업 결과를 바탕으로, 프로그래밍의 이해, 객체지향 프로그래밍, 시뮬레이션 프로그래밍의 3영역으로 구성하여 내용요소를 설계하였다. 그 후, 과학영재 고등학교 학생들에게 수학, 과학 수업이나 연구에서 활용 가능 여부 확인을 위해, 한 학기동안 수업 및 프로젝트과제, 문제해결과제를 수행하였다. 연구 결과를 통해, 학생들이 Computational thinking 기반의 문제해결능력 뿐 아니라 수학, 과학 분야에서의 수치 해석 및 시뮬레이션 프로그램 개발 역량이 향상됨을 알 수 있었다. 또한, 학생들은 프로그래밍 학습이 과학, 수학 공부나 연구를 하는데 필요한 도구교과라는 생각으로 바뀐 것을 알 수 있었다. 본 연구결과가 과학영재학교에서 도구교과 성격으로서의 정보 교과의 프로그래밍 교육과정을 설계하는데 가이드라인을 제시할 수 있을 것이라 기대한다.
In this study, contents of programming curriculum were designed as instrumental subjects for scientifically gifted students, not for IT gifted ones. Firstly, the programming curriculum consisted of 3 sections; Programming Understanding, Object-Oriented Programming, and Simulation Programming as a re...
In this study, contents of programming curriculum were designed as instrumental subjects for scientifically gifted students, not for IT gifted ones. Firstly, the programming curriculum consisted of 3 sections; Programming Understanding, Object-Oriented Programming, and Simulation Programming as a result of two semesters. Then, the lectures including project-based and problem-solving tasks were given to scientifically gifted students in a high school during one semester to verify whether they could apply the contents to studies and researches in math or science or not. As a result of this study, the students could improve numerical analysis and simulation program development capabilities in math or science as well as the problem-solving ability based on computational thinking. Moreover, it was proved that the students changed their perception about programing learning. They started to think that programing learning was necessary to studies and researches in math or science. The results of this study propose guideline to design programming curriculum as instrumental subjects for scientifically gifted students.
In this study, contents of programming curriculum were designed as instrumental subjects for scientifically gifted students, not for IT gifted ones. Firstly, the programming curriculum consisted of 3 sections; Programming Understanding, Object-Oriented Programming, and Simulation Programming as a result of two semesters. Then, the lectures including project-based and problem-solving tasks were given to scientifically gifted students in a high school during one semester to verify whether they could apply the contents to studies and researches in math or science or not. As a result of this study, the students could improve numerical analysis and simulation program development capabilities in math or science as well as the problem-solving ability based on computational thinking. Moreover, it was proved that the students changed their perception about programing learning. They started to think that programing learning was necessary to studies and researches in math or science. The results of this study propose guideline to design programming curriculum as instrumental subjects for scientifically gifted students.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
이에 본 연구에서는 정보과학영재가 아닌 과학영재학생들을 위한 프로그래밍 교육과정으로서의 내용요소를 설계하고, 그 효과성을 검증하고자 한다.
예를 들어, 물리 영역에서는 물리적 원칙과 모델을 설명한 후 파이썬을 이용해 시뮬레이션하면서 학생들이 정보과학적 사고의 개념을 적용할 수 있음을 제시하였다. 본 연구에서 설계하고자 하는 과학영재학생들을 위한 프로그래밍 교육과정도 위 연구들과 같이, 물리, 화학 등의 과학 분야를 개념, 실험으로 확인하는 것 이상의 더 큰 데이터를 처리할 수 있고, 복잡하고 어려운 실험도 가능할 수 있는 시뮬레이션 알고리즘 구현 능력을 목표로 하고 있다. 특히, 과학영재학생들이 기존의 내용을 확인하는 수준이 아닌 학생 주도적으로 연구가 이루어질 수 있도록 프로그래밍 교육과정 설계가 요구된다.
본 연구는 과학영재 고등학교에서 정보과학영재들이 아닌 과학영재학생들을 위한 도구 교과로서의 프로그래밍 교육과정 내용요소를 설계하였다. 또한, 설계한 내용요소를 기반으로 과학영재 고등학생들에게 한 수업과 과제를 통해 수학이나 과학 교과에서 응용이 가능한 시뮬레이션 프로그램을 개발할 수 있는지에 대해 검증하였다.
먼저, 학생들에게 난이도가 쉽고 어려운 아이디어가 다른 2가지 경우의 프로젝트를 제시하였다. 학생들에게 로봇을 이용해 해결할 수 있는 문제 상황을 정의, 알고리즘을 설계하여 구현하는 것으로, 로봇을 이용해 해결할 수 있는 문제가 어떤 것이 있는지 스스로 생각할 수 있도록 독창성과 유창성을 향상시키는 것이 목표이다. 또한, 자신과 다른 사람들이 정의한 문제들을 함께 풀어보면서 로봇으로 해결할 수 있는 다양한 문제들을 살펴보고, 직접 해결해 볼 수 있도록 하였다.
본 연구는 프로그래밍 교육과정의 내용요소를 정보과학영재가 아닌 과학영재 고등학생들을 위한 도구 교과로서의 관점으로 설계하고 한 학기 동안의 수업을 통해 설계한 내용요소에 대해 검증하였다. 먼저, 1년 동안의 수업 결과를 바탕으로, 도구교과로서의 프로그래밍 교육과정의 내용요소를 프로그래밍의 이해, 객체지향 프로그래밍, 시뮬레이션 프로그래밍 영역으로 구성하여 설계하였다.
가설 설정
C : 저한테 아주 잘 맞는 수업이었다고 생각합니다. 여러 가지 과제들을 할 때, 아이디어가 떠오르지 않았을 때는 긴장했지만 그래도 항상 과제를 해결하고는 뿌듯했습니다! 수학이 아니라 정보를 하고 싶다는 생각도 많이 했습니다!
E : 너무 유익했어요. 파이썬으로 졸업논문 데이터 처리하는 게 더 편했어요.
F : 유명 GUI 프로그램들이 어떻게 만들어졌는지 생각을 해 볼 수 있게 되었습니다.
제안 방법
먼저, 프로그래밍 교육과정의 영역과 내용요소를 1년 동안의(2012학년도 2학기, 2013학년도 1학기) ‘객체지향 프로그래밍’ 과목 수업 리뷰를 바탕으로 다음과 같은 방향으로 설계하였다.
마지막으로, 본 연구를 통해 학생들이 프로그래밍에 대한 인식이 어떻게 변화되었는지 알기 위해, 와 같이 지적 및 문제해결, 프로그래밍에 대한 자신감에 대한 9개의 5점 평정 척도 문항과 주관식 설문 문항을 설계하였다.
• 파이썬(Python)과 로봇 기반의 교육용 파이썬 프로그래밍 언어인 러플(RUR-PLE)을 이용하여 문제해결방법 이해 및 알고리즘 구현이 이루어지도록 한다.
위의 연구결과들을 통해, 본 연구에서는 현재 전 세계적으로 선호도가 높은 프로그래밍 언어 패러다임인 객체지향 언어이면서, 프로그래머가 아닌 사람들도 쉽게 프로그램을 개발해 다른 학문 분야로의 전이가 쉬운 Python(RUR-PLE, VPython 포함)을 선택하여 교육과정 내용요소를 설계하였다.
본 연구는 과학영재 고등학교에서 정보과학영재들이 아닌 과학영재학생들을 위한 도구 교과로서의 프로그래밍 교육과정 내용요소를 설계하였다. 또한, 설계한 내용요소를 기반으로 과학영재 고등학생들에게 한 수업과 과제를 통해 수학이나 과학 교과에서 응용이 가능한 시뮬레이션 프로그램을 개발할 수 있는지에 대해 검증하였다.
수업시간은 매주 3시간씩 총 14주로 진행되었으며, 총 4번의 수행평가를 실시하였다. 프로그래밍의 이해, 객체지향 프로그래밍, 시뮬레이션 프로그래밍의 각 영역별로 프로젝트 과제를 공통적으로 부여하였다.
프로그래밍의 이해, 객체지향 프로그래밍, 시뮬레이션 프로그래밍의 각 영역별로 프로젝트 과제를 공통적으로 부여하였다. 추가적으로, 프로그래밍의 이해 영역에서는 주어진 문제를 알고리즘으로 설계해 구현하는 문제해결 평가를 추가로 수행하였다.
마지막으로, 본 연구를 통해 학생들이 프로그래밍에 대한 인식이 어떻게 변화되었는지 알기 위해, <표 2>와 같이 지적 및 문제해결, 프로그래밍에 대한 자신감에 대한 9개의 5점 평정 척도 문항과 주관식 설문 문항을 설계하였다. 수업을 듣기 학기 초, 학기 후에 자기 설문 조사를 실시하여 평균값을 비교하여 프로그래밍에 대한 인식의 변화를 확인하였다.
프로그래밍 교육과정의 영역과 내용요소는 1년 동안의 ‘객체지향 프로그래밍’ 과목 수업 리뷰를 바탕으로 다음과 같이 총괄 목표와 영역별 세부 능력, 내용요소로 설계하였다.
다음으로, 프로그래밍 교육과정을 ‘프로그래밍의 이해’, ‘객체지향 프로그래밍’, ‘시뮬레이션 프로그래밍’의 총 3개의 영역으로 구분하여 내용요소를 설계하였다.
본 연구에서는 설계한 프로그래밍 교육과정 내용요소를 직접실습법, 문제해결법, 프로젝트법을 기반으로 수업 및 평가를 실시하였다. 프로그래밍 교육과정의 각 영역별로 실제 수업에서 수행한 과제 및 평가 결과는 다음과 같다.
‘프로그래밍의 이해’ 영역은 문제해결평가와 프로젝트 과제를 수행평가로 실시하였다. 먼저, 학생들에게 난이도가 쉽고 어려운 아이디어가 다른 2가지 경우의 프로젝트를 제시하였다. 학생들에게 로봇을 이용해 해결할 수 있는 문제 상황을 정의, 알고리즘을 설계하여 구현하는 것으로, 로봇을 이용해 해결할 수 있는 문제가 어떤 것이 있는지 스스로 생각할 수 있도록 독창성과 유창성을 향상시키는 것이 목표이다.
학생들에게 로봇을 이용해 해결할 수 있는 문제 상황을 정의, 알고리즘을 설계하여 구현하는 것으로, 로봇을 이용해 해결할 수 있는 문제가 어떤 것이 있는지 스스로 생각할 수 있도록 독창성과 유창성을 향상시키는 것이 목표이다. 또한, 자신과 다른 사람들이 정의한 문제들을 함께 풀어보면서 로봇으로 해결할 수 있는 다양한 문제들을 살펴보고, 직접 해결해 볼 수 있도록 하였다.
<그림 1>은 학생이 수행한 프로젝트 과제(쉬운 난이도)의 한 예로, 시각장애인 안내 로봇이 목적지까지 가장 최적화된 길을 찾을 수 있는 아이디어를 제시하여 맵을 설계하고 알고리즘을 구현하였다.
두 번째로, 문제해결평가는 학생들이 교사가 주어진 문제를 분석해 알고리즘으로 설계해 구현할 수 있도록 설계하였다. <그림 2>는 문제해결평가 문항의 한 예로, 섬의 모든 지역에 횃불을 놓고 다시 돌아오는 문제이다.
‘객체지향 프로그래밍’ 영역은 직접 클래스를 정의해 객체를 생성하여 프로그램을 완성하는 프로젝트 과제를 수행평가로 실시하였다. 이 과제를 수행하기에 앞서 다양한 실습 문제를 통해 어떻게 파이썬을 이용해 클래스를 정의하고 객체를 생성해야 되는지를 이해하고, 객체지향 프로그래밍이 구조적 프로그래밍의 이해와 어떠한 차이를 가지고 있는지를 이해하도록 하였다. <그림 3>은 학생이 수행한 프로젝트 과제의 한 예로, 객체지향 설계를 통해 직접 객체지향 프로그래밍을 구현한 프로젝트 과제 중 한 예이다.
<그림 5>는 학생이 만든 ‘3-body problem'으로, 3개의 천체를 우주 공간에 각각 질량, 속도를 부여하였을 때 나타나는 현상을 볼 수 있는 중력 시뮬레이션 프로그램 코드 일부분과 실행 예이다. 이 프로그램은 각 천체의 질량 초기 위치, 초기 속도를 숫자로 입력하면, 만유인력의 법칙에 따라 천체들이 운동하는 모습을 직접 볼 수 있게 설계되어 있다.
학생들의 프로그래밍에 대한 인식을 확인하고자, 수업을 듣기 학기 초, 학기 후의 자기 평가 설문을 실시하였고, 평균 결과값은 다음과 같다(Q# 수업 전/수업 후).
본 연구는 프로그래밍 교육과정의 내용요소를 정보과학영재가 아닌 과학영재 고등학생들을 위한 도구 교과로서의 관점으로 설계하고 한 학기 동안의 수업을 통해 설계한 내용요소에 대해 검증하였다. 먼저, 1년 동안의 수업 결과를 바탕으로, 도구교과로서의 프로그래밍 교육과정의 내용요소를 프로그래밍의 이해, 객체지향 프로그래밍, 시뮬레이션 프로그래밍 영역으로 구성하여 설계하였다. 그 후, 설계된 내용요소를 바탕으로 한 학기동안 Python(RUR-PLE, VPython)을 이용하여 수업을 진행하면서 프로젝트 과제와 문제해결 평가를 수행하였다.
먼저, 1년 동안의 수업 결과를 바탕으로, 도구교과로서의 프로그래밍 교육과정의 내용요소를 프로그래밍의 이해, 객체지향 프로그래밍, 시뮬레이션 프로그래밍 영역으로 구성하여 설계하였다. 그 후, 설계된 내용요소를 바탕으로 한 학기동안 Python(RUR-PLE, VPython)을 이용하여 수업을 진행하면서 프로젝트 과제와 문제해결 평가를 수행하였다. 그 결과 다음과 같은 결과를 도출할 수 있었다.
대상 데이터
본 연구에서는 ‘객체지향 프로그래밍’ 과목 수업을 들은 31명의 학생들 중 정보과학이 전공이 아닌 3학년 25명의 학생들을 대상으로 하였다.
데이터처리
‘객체지향 프로그래밍’ 영역은 직접 클래스를 정의해 객체를 생성하여 프로그램을 완성하는 프로젝트 과제를 수행평가로 실시하였다.
성능/효과
정여진(2010)은 총 16개 대학에서 컴퓨터공학과 및 정보통신 학부를 제외한 학과들의 모든 과목 강의 계획서를 분석하여 각 과목별로 요구하는 컴퓨터 과학 내용 요소와 ICT 활용 내용 요소를 추출하여 프로그래밍 교육의 중요성을 보여주었다[17]. 16개 대학의 모든 학과(정보통신학부, 컴퓨터 공학과 제외)에서 가장 많이 필요로 하는 내용요소는 프로그래밍 영역이었으며, 가장 많이 필요로 한 언어는 C, Matlab, Python 등의 결과로 나왔다.
첫째, ‘프로그래밍의 이해’ 영역에서는 Python과 RUR-PLE을 이용하여 프로그래밍의 원리를 이해하고, 주어진 문제를 해결할 수 있는 능력을 향상시킨다.
둘째, ‘객체지향 프로그래밍’ 영역에서는 Python을 이용하여 객체지향의 원리 및 특징을 이해하고, 문제를 정의하거나 주어진 문제를 객체지향적으로 설계하여 구현하는 능력을 키운다.
셋째, ‘시뮬레이션 프로그래밍’ 영역에서는 Python, VPython을 이용한 GUI 프로그래밍을 통해 시뮬레이션 프로그램을 구현할 수 있는 능력을 키운다.
설문결과, 전반적으로 학생들은 수업 전보다 프로그래밍 교육에 대한 중요성을 인식하고 있었고, 프로그래밍이 문제를 해결하거나 타 교과와 강한 연관성을 가지고 있다는 인식을 하는 것을 알 수 있었다.
먼저, 학생들이 수업전보다 수학, 과학 공부나 연구를 하는데 프로그래밍이 필요하다는 인식을 많이 갖게 되었다는 것을 알게 되었다. 또한, 프로그래밍을 통해서 문제를 해결하거나 시뮬레이션 프로그램을 만드는데 자신감을 갖게 된 학생들이 많게 되었다.
두 번째로, 학생들은 프로그래밍 수업이 단순히 프로그래밍 언어를 배우는 수업이 아니라, 문제에 대한 해결방법을 찾아 설계하는 것이 더 중요하다는 생각을 하게 되었다. 연구 결과는 학생들에게 수업을 통해 프로그래밍 교육이 단순히 코딩 교육이 아닌 정보과학적 사고(Computational Thinking)를 향상시키는 교육이라는 관점을 갖게 해 주었다.
마지막으로, 대부분의 학생들은 자신의 연구나 공부를 할 때 어떻게 프로그램을 만들어 사용해야 될지에 대해 이해하고 있었다. 설계한 내용요소를 바탕으로 한 수업은 정보 뿐 아니라 수학, 과학 공부나 연구에서 데이터 분석을 위한 수치 해석 및 시뮬레이션 프로그래밍 역량을 향상 시킬 수 있음을 알 수 있었다.
후속연구
본 연구가 미래의 자연과학, 공학자가 될 과학 영재 학생들이 이론의 검증 및 실험을 수행할 수 없는 극한 상황이나 나노 또는 빅 데이터 처리 등의 융합 역량을 갖출 수 있는 정보교과의 가이드라인을 제시할 수 있을 것이라 기대한다.
질의응답
핵심어
질문
논문에서 추출한 답변
전 세계적으로 정보 교과의 도입 추세는 어떠한가?
또한, 전 세계적으로 정보 교과를 초등학교 교육과정에부터 필수교과로 지정되고 있는 최근의 추세는 정보교과가 도구 교과로서의 방향성을 가지고 있음을 보여주고 있다. 미국 의회는 초·중등교육에서 정보과학을 필수 교과로 지정하기 위해 2011년부터 ‘컴퓨터 과학 교육 법령(Computer Science Education Act of 2011)’(H.R.3014) 을 채택하였으며, 핀란드 또한 IT 조기 교육 방침으로 초등학생 때부터 프로그래밍 기초 기술을 가르치는 교육과정을 도입하겠다고 공표하였다[6][7]. 또한, 영국은 2014년부터 알고리즘 이해와 응용 프로그램은 물론, 문제해결을 위한 프로그래밍 내용을 포함시킨 컴퓨팅(Computing) 과목이라는 이름으로 초, 중등 전 학년에 필수화 한다고 공표하였다[8].
도구 교과란?
도구 교과는 다른 교과를 학습하는데 도구로 사용되는 교과이며, 고등사고능력을 길러주는데 기반이 되는 교과를 말한다. 정보 교과는 도구적 성격을 가지고 있다는 실천적, 실험적 연구 뿐 아니라 교육적 패러다임 연구들을 통해 도구 교과로서의 근거들을 제시하고 있다[13][14][15][16].
전 세계적으로 많이 사용되는 프로그래밍 언어의 순위는 어떠한가?
전 세계적으로 많이 사용되는 프로그래밍 언어 순위를 확인한 결과, 2007년부터 2013년까지 C언어는 1~2위, Python은 6~8위, Matlab은 16~19위를 보여주었다[23]. 프로그래밍 언어 패러다임에서는 객체지향 언어(Object-oriented language)가 56.
이 논문을 인용한 문헌
활용도 분석정보
상세보기
다운로드
내보내기
활용도 Top5 논문
해당 논문의 주제분야에서 활용도가 높은 상위 5개 콘텐츠를 보여줍니다. 더보기 버튼을 클릭하시면 더 많은 관련자료를 살펴볼 수 있습니다.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.