최근 컴퓨터 교육에서 프로그래밍에 대한 관심이 높아지고 있다. 학습에서 논리력과 창의력의 요구가 늘어나고 있는 추세에 힘입어 컴퓨터 교육 분야에서도 프로그래밍 학습을 통한 논리력과 창의력을 함양하려는 다양한 시도가 이루어지고 있다. 프로그램은 알고리즘을 컴퓨터 언어로 구현한 것이므로 문제해결의 핵심은 논리적 해결 방법의 고안 즉, 알고리즘의 고안에 있다. 알고리즘의 중요성을 인식한다면 이제 알고리즘 교육에 대한 방향 정립을 위한 체계적 연구가 필요한 시점에 와 있다고 볼 수 있다. 지금까지 주로 정렬, 탐색과 같은 특정 문제를 중심으로 한 문제 종속적이고 개별적인 알고리즘 학습을 강조해 왔다. 본 논문에서는 문제 독립적, 집단적 성질을 고려하는 문제 해결의 개념적 유형이라는 관점에서 개념적 알고리즘(conceptual algorithm)을 정의한다. 개념적 알고리즘의 유형적 특성을 바탕으로 개별적, 문제 종속적인 기존의 알고리즘 교육과 구분되는 체계적, 문제 독립적, 알고리즘적인 문제 해결력을 지향하는 알고리즘 교육의 새로운 방향을 제안한다.
최근 컴퓨터 교육에서 프로그래밍에 대한 관심이 높아지고 있다. 학습에서 논리력과 창의력의 요구가 늘어나고 있는 추세에 힘입어 컴퓨터 교육 분야에서도 프로그래밍 학습을 통한 논리력과 창의력을 함양하려는 다양한 시도가 이루어지고 있다. 프로그램은 알고리즘을 컴퓨터 언어로 구현한 것이므로 문제해결의 핵심은 논리적 해결 방법의 고안 즉, 알고리즘의 고안에 있다. 알고리즘의 중요성을 인식한다면 이제 알고리즘 교육에 대한 방향 정립을 위한 체계적 연구가 필요한 시점에 와 있다고 볼 수 있다. 지금까지 주로 정렬, 탐색과 같은 특정 문제를 중심으로 한 문제 종속적이고 개별적인 알고리즘 학습을 강조해 왔다. 본 논문에서는 문제 독립적, 집단적 성질을 고려하는 문제 해결의 개념적 유형이라는 관점에서 개념적 알고리즘(conceptual algorithm)을 정의한다. 개념적 알고리즘의 유형적 특성을 바탕으로 개별적, 문제 종속적인 기존의 알고리즘 교육과 구분되는 체계적, 문제 독립적, 알고리즘적인 문제 해결력을 지향하는 알고리즘 교육의 새로운 방향을 제안한다.
Computer programming in computer education draws much attention recently. Encouraged by the increased tendency of acquiring logical ability and creativity through learning, various attempts have been made to develop them through learning computer programming in the area of computer education as well...
Computer programming in computer education draws much attention recently. Encouraged by the increased tendency of acquiring logical ability and creativity through learning, various attempts have been made to develop them through learning computer programming in the area of computer education as well. The fact that a computer program is the representation of a computer algorithm expressed in a computer language makes us realize that the devise of a logical method for a solution - i.e., the design of an algorithm - is the key to the solution of a problem. Recognizing the importance of computer algorithm would lead us to such a point that systematic investigations for directional establishment for algorithm education are necessary. We observe that researches on teaching computer algorithm have concentrated mostly on specific problems such as sorting and searching, which can be characterized as problem-dependent and individual. In this paper, the idea of conceptual algorithm is stated from the standpoint of conceptual types of problem-solving methods which are considered as problem-independent and collective. A novice approach to algorithm education based on the characteristics of types of conceptual algorithms is proposed for the purpose of developing systematic, problem-independent, algorithmic problem-solving capabilities of learners, which is widely different from the current methods of individual and problem-dependent algorithm education.
Computer programming in computer education draws much attention recently. Encouraged by the increased tendency of acquiring logical ability and creativity through learning, various attempts have been made to develop them through learning computer programming in the area of computer education as well. The fact that a computer program is the representation of a computer algorithm expressed in a computer language makes us realize that the devise of a logical method for a solution - i.e., the design of an algorithm - is the key to the solution of a problem. Recognizing the importance of computer algorithm would lead us to such a point that systematic investigations for directional establishment for algorithm education are necessary. We observe that researches on teaching computer algorithm have concentrated mostly on specific problems such as sorting and searching, which can be characterized as problem-dependent and individual. In this paper, the idea of conceptual algorithm is stated from the standpoint of conceptual types of problem-solving methods which are considered as problem-independent and collective. A novice approach to algorithm education based on the characteristics of types of conceptual algorithms is proposed for the purpose of developing systematic, problem-independent, algorithmic problem-solving capabilities of learners, which is widely different from the current methods of individual and problem-dependent algorithm education.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
특정한 문제를 해결하는 과정에서 알고리즘의 학습이 될 수 있음을 인정하지만 개별적 문제에 대한 알고리즘 학습 이전에 알고리즘의 원리에 입각한 보다 일반적인 개념을 체계적으로 학습하는 것이 더 효과적이라 생각된다. 과연 알고리즘의 개념에 입각한 전체적이고 체계적 학습이라는 것이 존재하는지, 있다면 어떠한 순서로 학습해야 하는지, 왜 그러한지, 등에 대한 논의를 본 논문에서 다루고자 한다.
이 단계의 문제가 갖는 특징은 창의적인 다양한 풀이가 가능하며 동일한 답을 산출하더라도 알고리즘에 따라 풀이의 효율성이 상당히 달라지고 소수의 재능 있는 학생들만 풀 수 있다는 점들이다. 따라서 교수자는 모든 학습자들에게 동일하게 요구하지 말고 자원하거나 학습 성취도가 탁월한 학습자들을 선별하여 제시한다.
이러한 문제 종속적이고 개별적인 알고리즘의 학습으로는 체계적이고 종합적인 시각을 갖춘 알고리즘 적 문제 분석력을 함양하기에 미흡하다. 본 논문에서는 개념 중심의 문제 독립적, 집단적 성질을 바탕으로 하는 개념적 알고리즘의 학습을 제안하였다.
본 절에서는 개념적 알고리즘을 어떠한 단계로 교육할 것인지에 대해 논의하고자 한다. 각 개념적 알고리즘에 대해 아래와 같은 네 단계의 학습 과정을 거친다.
습득한 지식의 단순한 적용으로는 풀 수 없는 응용력과 사고를 요하는 문제를 제시한다. 교수자는 문제에 대한 설명, 예시 등을 통해 학습자들이 문제를 충분히 이해하도록 하되 학생들이 스스로 해결하도록 문제의 풀이에 직접 영향을 주는 도움은 피한다.
문제 해결력은 효율적 알고리즘의 설계능력을 요구한다. 이를 위해 개념적 알고리즘의 학습이 필요한 이유를 제시하고자 한다. 학습 내용에 대한 논의에 앞서 제3장에서 제시한 여섯 가지의 개념적 알고리즘에 대한 학습이 필요한 이유를 아래와 같이 세 가지로 제시한다.
이에 대한 새로운 방향의 제시로 본 논문은 문제 독립적인 개념적 알고리즘 학습을 제안하였다. 아직 그 논거가 견고하지 않지만 컴퓨터 알고리즘 교육에 대한 새로운 방향을 제시하는데 그 의미가 있을 것으로 본다.
이제 정렬이 아닌 다른 문제를 생각해 보자. 주어진 자료에서 특정 값에 대한 정보를 찾는 탐색 문제 (search problem)를 생각해 보자.
주어진 자료에서 특정 값에 대한 정보를 찾는 탐색 문제 (search problem)를 생각해 보자. 많은 탐색 알고리즘들 중에 효율 좋은 이진 탐색(Binary Search) 알고리즘은 정렬된 원래의 자료에서 그 중앙에 위치한 값과 찾고자 하는 값을 비교하고, 그 두 값이 다르면 중앙값에 의해 분할된 두 부분 중에서 어느 한 부분만 찾는다.
가설 설정
C) 개념; 원래의 문제를 둘 이상의 작은 문제로 분할하는데 분할된 각각의 문제는 원래의 문제와 성격이 같다. 따라서 분할된 문제의 개수는 증가하더라도 처리하는 알고리즘은 동일(즉, 재귀적)하다.
제안 방법
'반복' 알고리즘의 예; '반복'의 알고리즘 적 의미를 배우고 일상적 의미와 비교한다.
(匸) 문제에 대한 분석력의 함양을 위하여; 개념적 알고리즘을 통한 문제 해결 방식은 문제 해결을 위한 적합한 개념 원리의 발견을 요구하므로 학습자로 하여금 문제의 성격을 규명하기 위해 문제를 분석적으로 관찰하게 한다. 이러한 분석 과정을 통해 문제를 이해하고 분석하는 힘을 기르게 된다.
[14] ; 구체적 조작기 초등학생들의 인지 수준에 적합한 교수학습 방안을 제시하였으며 알고리즘 학습 내용으로 정렬(선택, 삽입버블 정렬정렬)을 선정하였다. 정렬 알고리즘의 선정 이유로 프로그램에서 기초적인 도구라는 중요성과 함께 구체적 조작기 아동의 인지 수준인 서열화, 유목화, 가역적 사고에 적합하다는 이유이었다.
[5]; 초등학생을 위한 알고리즘 교육용 웹 기반 시뮬레이션의 모형을 제시하였으며 알고리즘의 교육내용으로 정렬과 탐색 알고리즘을 선정하였다. 선정의 이유로 자료처리의 가장 기본이 됨을 들었다.
목표와 학습 내용을 제시하였다. 개념적 알고리즘들 상호간의 위계성과 학습 난이도, 활용도를 고려하여 학습 순서를 정하였고 학습 단계(개념 도입 단계, 기초 연마 단계, 응용 확산 단계, 창제안하였다단계)를 제안 하였다.
개념적 알고리즘의 유형으로 여섯 가지(반복, 탐욕, 재귀, 분할 정복, 동적 프로그래밍, 백트래킹)를제시하였고 각각의 특징과 함께 개념적 알고리즘의 학습 목표와 학습 내용을 제시하였다. 개념적 알고리즘들 상호간의 위계성과 학습 난이도, 활용도를 고려하여 학습 순서를 정하였고 학습 단계(개념 도입 단계, 기초 연마 단계, 응용 확산 단계, 창제안하였다단계)를 제안 하였다.
주장하였다. 그 교육내용은 중요성을 근거로 정렬과 검색 알고리즘을 선정하였으며 순서도 작성법을 아울러 교육내용에 포함하였다.
논문의 구성은 제2장 관련 연구에서 컴퓨터 알고리즘의 특성 및 교육의 중요성을 살펴보고 알고리즘교육의 내용과 관련된 기존의 연구 결과를 검토하여 현재의 연구 방향에 대한 전반적 이해를 돕고자 한다. 제3장에서는 개념적 알고리즘과 그 유형을 식별할 목적으로 개별적 알고리즘과 개념적 알고리즘을 정의하고, 개념적 알고리즘의 유형과 특징을 제시한다.
니 백트래킹 요소의 발견과 알고리즘 적 표현; 문제에서 백트래킹의 요소를 발견하고, 백트래킹 개념을 사용하여 문제를 알고리즘으로 표현한다.
니 분할 정복 요소의 발견과 알고리즘 적 표현; 문제에서 분할 정복의 요소를 발견하고, 분할 정복 개념을 사용하여 문제를 알고리즘으로 표현한다.
니 재귀 요소의 발견과 알고리즘 적 표현; 문제에서 재귀의 요소를 발견하고, 재귀 개념을 사용하여 문제를 알고리즘으로 표현한다.
감 7개, 귤 12개가 들어있다. 이 상자로부터 아무 과일이든 합해서 10개가 되는 모든 경우를 나열하는 알고리즘을 작성하시오. 그러한 경우가 모두 몇 가지인지를 계산하는 프로그램을 작성하시오.
대상 데이터
첫째, 본 논문에서는 학습자를 초등학교 고학년 이상의 학생으로 한다. 따라서 초등학교 고학년 학생의 인지능력에 적합한 내용을 선정한다.
성능/효과
(匸) 재귀 알고리즘; 문제의 재귀적 표현은 알고리즘의 설계에서 빈번하게 요구된다. 문제의 재귀적 정의는 문제를 간결하게 표현 할 수 있어 알고리즘의 고안과 이해에 도움을 준다.
넷째, 개별적 알고리즘은 필요하다면 하나 이상의 개념적 알고리즘을 충돌 없이 상호 보완적으로 사용할 수 있다.
선정하였다. 정렬 알고리즘의 선정 이유로 프로그램에서 기초적인 도구라는 중요성과 함께 구체적 조작기 아동의 인지 수준인 서열화, 유목화, 가역적 사고에 적합하다는 이유이었다.
첫째, 개념적 알고리즘은 문제 해결의 집단적, 포괄적 설계에 해당한다. 개별적이고 구체적인 알고리즘은 각 개별 문제에 맞게 개별적 알고리즘을 고안해야 한다.
후속연구
국내의 많은 정보 영재 교육기관에서 프로그래밍을 위주로 교육하고 있으나 알고리즘에 대한 체계적 교육은 아직 미흡하다. 따라서 기본적인 프로그래밍 기능을 갖춘 학생들이 스스로 설계한 알고리즘을 직접 프로그래밍 하여 본다면 문제해결력의 향상에 많은 도움이 될 것이다.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.