티스토리 뷰
학습목표
- 컴퓨팅 사고(Computational Thinking)의 개념과 중요성을 이해한다.
- 문제 해결을 위한 폴리아(Polya)의 4단계 문제 해결 방법을 적용할 수 있다.
- 컴퓨팅 사고의 핵심 요소(문제 분해, 패턴 인식, 추상화)를 설명하고 실생활 문제에 적용할 수 있다.
- 알고리즘적 사고를 통해 문제를 논리적으로 분석하고 해결하는 방법을 익힌다.
제3강에서는 컴퓨팅 사고의 개념과 이를 활용한 문제 해결 방법에 관하여 살펴보도록 한다. 지난 시간에는 컴퓨터와 디지털 정보 처리에 대해 학습하였으며, 컴퓨터는 아날로그 신호를 캡처하여 디지털로 변환한 후 저장하고 처리하여 정보를 생성하며, 이를 다시 아날로그로 변환하여 인간이 인식할 수 있도록 출력한다고 하였다.
그렇다면 컴퓨터가 문제를 처리하는 방식과 그 사고 과정은 어떻게 이루어질까?
이번 강의에서는 컴퓨팅 사고력이 무엇이며 왜 필요한지를 먼저 알아보고, 인간의 문제 해결 방법과 컴퓨터를 통한 문제 해결 방법을 비교하여 살펴본다. 또한, 컴퓨팅 사고력의 핵심 요소인 문제 분해, 패턴 인식, 추상화 과정을 학습하고, 실제 예제를 통해 문제 해결 과정을 구체적으로 탐색하도록 한다.
프로그램 개발의 변천
기존의 프로그램 개발 방식에서는 특정 문제를 해결하기 위해 각 분야의 전문가가 분석을 수행한 후, 프로그래머 또는 관련 전문가에게 요청하여 프로그램을 개발하는 방식이 일반적이었다. 이 과정에서 개발자는 컴퓨터나 AI를 활용한 전문 지식으로 문제 해결을 위한 솔루션을 제공하였다.
그러나 4차 산업혁명 시대에서는 모든 사물에 컴퓨팅 기술이 적용될 수 있으며, AI를 통해 전문 지식과 통찰력을 보다 쉽게 활용할 수 있는 환경이 조성되었다. 과거에는 문제를 해결하기 위해 의뢰자와 개발자의 원활한 소통이 필수적이었으며, 문제의 본질을 이해하는 각 분야의 전문가가 필요성을 정확히 전달하는 것이 중요했다.
하지만 현재는 컴퓨터공학 전공자뿐만 아니라 비전공자도 자기 분야에서 발생하는 문제를 해결하기 위해 AI 및 적절한 툴을 활용할 수 있는 시대가 되었다. 이를 위해 컴퓨팅 사고력을 바탕으로 문제를 분석하고, AI를 적절히 활용하며, 컴퓨터와 소통하기 위한 기본적인 코딩 역량이 점점 더 필요해지고 있다.
인간 사회에서는 문제가 발생하면 불편함을 개선하거나 지적 호기심을 해결하기 위해 이를 인식하게 된다. 이러한 문제를 보다 명확하고 명료하게 표현하기 위해 핵심 요소를 추출하는 추상화 과정을 거치며, 이후 해결 방안을 모색하고 실행하여 문제를 해결한다. 특히, 이러한 문제 해결 과정은 인간의 지적 노력과 협력을 바탕으로 이루어지며, 다양한 수단과 도구를 활용하여 보다 효과적으로 진행된다.
오늘날에는 컴퓨터와 기계를 이용하여 문제 해결 과정을 더욱 단순화하고 자동화할 수 있게 되었다. 이는 인간이 사회 발전 과정에서 문제를 해결해온 방식과 유사하며, 결국 컴퓨터 또한 인간의 사고방식을 모방하여 문제를 해결하는 도구로 발전해왔다.
컴퓨팅 이전의 문제 해결 방식에서는 사회, 문화, 윤리, 정치 등 다양한 요소를 고려하며 사회적 가치와 윤리적 측면을 반영하는 것이 중요했다. 반면, 컴퓨터 기반 문제 해결은 기술 중심으로 이루어지며, 데이터 처리와 알고리즘 개발에 초점을 맞춘다. 이를 통해 작업을 자동화하고 반복성을 높이며, 높은 정확성과 빠른 속도를 제공할 수 있다. 더 나아가, 컴퓨터는 복잡한 데이터와 대규모 연산을 처리하는 데 강점을 가지며, 대용량 데이터에서 패턴을 찾고 예측 모델을 구축하는 데 효과적이다.
따라서 4차산업혁명의 시대에서는 누구나 컴퓨팅을 활용한 문제 해결 방법을 활용해야하며, 이를 위해서는 컴퓨팅 사고력을 길러야 한다고 이야기 하고 있다.
자넷 윙의 컴퓨팅 사고력
특히 자넷 윙(Jeanette Wing)은 컴퓨터 과학자로, 컴퓨팅 사고력(Computational Thinking)을 정의하고 이론화하는 데 기여한 주요 인물 중 하나이다. 그녀는 컴퓨팅 사고력을 다음과 같이 정의하였다.
"컴퓨팅 사고력은 문제 해결 및 시스템 디자인을 위한 일반적인 개념들의 집합이며, 이러한 개념들은 컴퓨터 과학자들의 사고와 연구에 뿌리를 두고 있습니다. 컴퓨팅 사고력은 문제의 정의, 해결책의 설계, 그리고 결과의 구현 및 실행과정을 다루며, 이를 효율적으로 수행하기 위해 추상화, 자동화, 알고리즘 개발 및 문제 분해와 같은 여러 컴퓨터 과학적 개념과 기술을 활용합니다."
따라서 자넷 윙의 정의에 따르면, 컴퓨팅 사고력은 컴퓨터 과학적인 관점에서 문제 해결과 시스템 디자인을 다루는 데 필요한 일반적인 개념과 기술을 포함하는 개념이며, 이 개념은 컴퓨터 과학 분야뿐만 아니라 다양한 분야에서 유용하게 적용될 수 있습니다.
컴퓨팅 사고력의 정의
다시한번 컴퓨팅 사고력을 정의 해 보면,
컴퓨팅 사고력(Computational Thinking)은 컴퓨터 과학의 기본 개념과 원리를 활용하여 실생활 및 다양한 학문 분야의 문제를 이해하고 창의적인 해결법을 구현하여 적용할 수 있는 능력을 의미한다.
이를 구성하는 핵심 요소는 다음과 같다.
- 추상화 능력: 문제의 본질을 파악하고 불필요한 요소를 제거하여 핵심 요소만을 추출하는 능력.
- 자동화 능력(프로그래밍): 컴퓨터와 프로그래밍을 활용하여 문제 해결 과정을 자동화하는 능력.
- 창의·융합 능력: 각 분야의 전문 지식과 다양한 도메인을 융합하여 새로운 해결책을 도출하는 능력.
즉, 컴퓨팅 사고력은 문제를 분석하고 논리적으로 해결하는 과정에서 추상화, 자동화, 창의적 융합 능력을 활용하는 사고 방식이라고 정의할 수 있다.
컴퓨팅 사고력은 1980년대 MIT의 시무어 페퍼트 교수의 언급으로 자넷 윙 교수의 논문에 의해 더 강조되고 있습니다.

컴퓨팅 사고력의 필요성
- 컴퓨팅 사고력은 우리에게 매우 중요함
- 창의력, 문제 해결 능력, 융합 사고 능력을 함께 키울 수 있음.
- 제4차 산업혁명 시대에서의 중요성
- 컴퓨팅 기술을 기반으로 다양한 산업이 융합되면서 새로운 문제를 해결해야 함.
- 이를 위해 컴퓨팅 사고력 활용이 필수적임.
- 단순히 프로그래밍 언어의 문법을 익히는 것이 아니라, 일반적인 문제를 해결하고 적용하는 능력을 키우는 것이 중요함.
- 소프트웨어의 열풍과 역할
- 미국과 영국을 포함한 여러 나라에서 소프트웨어가 핵심 기술로 주목받고 있음.
- 소프트웨어 혁신이 부족한 기업들은 경쟁력을 잃고 다른 기업에 흡수됨.
- 창의적이고 혁신적인 소프트웨어 기업들이 급성장하고 있음.
- 소프트웨어 발전을 통해 목적지까지 자동으로 이동하는 자율주행 기술 등 다양한 자동화 기술이 개발되고 있음.
결론적으로, 컴퓨팅 사고력은 단순한 코딩 기술을 넘어 창의적 문제 해결과 융합적 사고를 기르기 위한 필수 역량이며, 4차 산업혁명 시대에 적응하기 위해 반드시 필요한 능력이다.
컴퓨팅 사고력의 특징
자넷 윙은 컴퓨팅 사고력(Computational Thinking, CT)을 처음 개념화한 학자로, 이를 모든 사람이 가져야 할 필수 사고 능력으로 정의하였다. 그녀가 제시한 컴퓨팅 사고력의 주요 특징은 다음과 같다.
- 문제 해결 중심 사고
- 컴퓨터과학적 개념을 활용하여 복잡한 문제를 논리적이고 체계적으로 해결하는 사고 과정.
- 컴퓨터가 문제를 해결하는 방식을 인간이 학습하고 적용하는 것.
- 자동화 가능성(Automation) 고려
- 문제를 해결하는 과정에서 컴퓨터나 기술을 어떻게 활용할 수 있는지를 생각하고, 자동화를 통해 효율성을 높이는 것.
- 문제 분해(Decomposition)
- 복잡한 문제를 더 작은 부분으로 나누어 해결하는 방식.
- 문제를 여러 개의 작은 부분으로 쪼개면 해결하기 쉬워지고, 나중에 다시 조립하여 전체적인 해결책을 구성할 수 있음.
- 패턴 인식(Pattern Recognition)
- 기존의 유사한 문제에서 반복되는 패턴을 발견하여 해결책을 도출하는 방식.
- 과거의 경험을 활용하여 새로운 문제를 보다 효율적으로 해결함.
- 추상화(Abstraction)
- 핵심 요소만 남기고 불필요한 세부 사항을 제거하여 문제를 단순화하는 과정.
- 핵심적인 개념과 원리에 집중하여 보다 효율적으로 문제를 해결할 수 있도록 함.
- 알고리즘적 사고(Algorithmic Thinking)
- 문제 해결을 위해 명확한 절차와 규칙을 정의하여 해결책을 구현하는 방식.
- 알고리즘을 설계하면 문제를 해결하는 과정이 논리적이고 일관성 있게 유지됨.
- 일반화(Generalization) 및 재활용
- 한 가지 문제를 해결한 후, 해결 방법을 일반화하여 다른 문제에도 적용할 수 있도록 함.
- 컴퓨터 과학에서 재사용 가능한 코드나 모듈을 설계하는 개념과 유사.
자넷 윙의 컴퓨팅 사고력 개념은 단순한 프로그래밍 기술이 아니라, 문제를 효과적으로 해결하기 위한 논리적 사고 및 문제 해결 전략을 의미한다. 이는 모든 학문 분야와 실생활 문제 해결에도 적용될 수 있는 보편적인 사고 방식으로, 4차 산업혁명 시대에 필수적인 역량으로 자리 잡고 있다.
미국의 컴퓨터과학 교사협의회(The Computer Science Teachers Association, CSTA)는 컴퓨팅 사고력의 특징
다음은
미국의 컴퓨터과학 교사협의회(The Computer Science Teachers Association, CSTA)는 컴퓨팅 사고력의 특징을 교육적인 맥락에서 강조하며 컴퓨터 교육을 강조하고 있는데요.
- 문제 형성(Problem Formulation)
- 문제를 해결하는 데 도움을 주는 다양한 도구와 컴퓨터를 활용하여 문제를 체계적으로 정의하고 구성하는 과정.
- 데이터 분석(Data Analysis)
- 논리적으로 정보를 조직화하고 데이터를 분석하여 문제 해결의 기초를 마련하는 과정.
- 추상화 및 데이터 표현(Abstraction & Data Representation)
- 모델링과 시뮬레이션 같은 추상화 기법을 활용하여 데이터를 표현하고, 핵심 요소만을 남겨 보다 효율적인 문제 해결을 가능하게 함.
- 알고리즘적 사고(Algorithmic Thinking)
- 일련의 단계적 절차(알고리즘)를 설계하여 해결책을 자동화하는 과정.
- 문제를 해결하기 위해 컴퓨터가 이해할 수 있도록 논리적인 순서를 구성.
- 효율적 문제 해결(Efficient Problem Solving)
- 다양한 문제 해결 전략을 식별하고 분석하여 가장 효율적이고 효과적인 해결책을 실행하는 과정.
- 목표 달성을 위해 단계별 계획을 수립하고 자원을 최적화하여 활용.
- 일반화 및 전이(Generalization & Transferability)
- 특정 문제 해결 과정을 다양한 문제에 적용하고 일반화하여 전이할 수 있도록 사고하는 과정.
- 해결된 문제의 패턴을 파악하여 새로운 문제에도 활용 가능하도록 함.
CSTA에서 정의한 컴퓨팅 사고력은 논리적 사고와 데이터 분석, 문제 해결 능력을 갖춘 사고방식으로, 컴퓨터 과학뿐만 아니라 다양한 학문과 실생활에서도 필수적인 역량이다. 특히, 문제 해결을 체계적으로 구성하고, 알고리즘을 활용하여 자동화하며, 해결 방법을 일반화하여 확장하는 과정이 중요한 요소로 강조된다.
코딩 교육 ?
특히 코딩 교육은 컴퓨터와의 원활한 소통(커뮤니케이션)을 활성화하기 위한 중요한 수단으로 강조되고 있다. 코딩(Coding)이란, 컴퓨터를 활용하여 문제를 해결하기 위해 주어진 절차와 방법을 논리적으로 표현하는 과정이라고 정의할 수 있다. 이를 위해 다양한 교육 방법과 접근법이 연구되고 있으며, 단순한 프로그래밍 기술 습득을 넘어 컴퓨팅 사고력을 배양하고 창의적인 문제 해결 능력을 향상시키는 방향으로 발전하고 있다.
문제해결방법
우리가 어떤 문제를 발견하고 해결하기 위한 접근 방식은 크게 세 가지로 나눌 수 있는데요. 크게 일반적문제해결, 컴퓨팅 사고적으로 문제 해결, 창의적으로 문제 해결로 나눠 볼 수 있습니다.
- 일반적 문제 해결 (General Problem Solving): 일상의 해결이 어렵지 않은 문제 해결 방법입니다.
- 주로 논리적 사고와 상식적인 접근을 기반으로 하며, 문제를 이해하고 분석한 후, 기존 지식과 경험을 활용하여 문제를 해결하게 되죠.
- 다양한 상황에서 적용 가능하며, 주로 일반적인 생활 문제나 업무 관련 문제를 해결하는 데 사용됩니다.
- 컴퓨팅 사고적으로 문제 해결 (Computational Thinking for Problem Solving):
- 컴퓨팅 사고력을 기반으로 문제 해결하는 방법입니다.
- 추상화, 자동화, 알고리즘 개발, 패턴 인식 등의 컴퓨터 과학적 개념과 접근 방식을 활용합니다.
- 복잡한 문제를 단순화하고 컴퓨터 기술을 활용하여 효과적으로 해결하며, 주로 데이터 분석, 소프트웨어 개발, 컴퓨터 시스템 설계와 같은 분야에서 사용됩니다.
- 창의적으로 문제 해결 (Creative Problem Solving):
- 이 방법은 창의적 사고와 문제 해결을 결합합니다.
- 기존의 접근법으로 해결하기 어려운 문제나 혁신적인 아이디어가 필요한 문제를 다루죠.
- 새로운 관점에서 문제를 바라보고, 창의적인 해결책을 찾기 위해 다양한 방법을 시도합니다.
- 주로 예술, 디자인, 공학, 연구 및 혁신 분야에서 중요한 역할을 합니다.
이러한 접근 방식은 문제의 본질, 난이도 및 필요한 해결 방법에 따라 선택되고 적용되는데
때로는 여러 접근법을 혼합하여 복잡한 문제를 해결하는 것이 효과적일 수도 있습니다. 문제 해결 과정에서 중요한 것은 상황에 맞는 최적의 방법을 선택하고, 문제를 분석하고 해결하기 위한 적절한 도구와 기술을 활용하는 것입니다.
폴리아의 4단계 문제 해결 방법
다음은 문제해결방법 중 폴리아의 4단계 문제 해결 방법을 도식화 하였습니다.
폴리아의 문제해결을 위한 4단계는
문제이해, 해결계획수립, 문제해결, 컴토와 최종 점검의 단계를 거칩니다.이 방법은 다양한 문제 도메인에서도 적용 가능하며 특히, 폴리아(Polya)의 4단계 문제 해결 방법은 수학 문제를 해결하기 위한 접근 방법으로 유용하게 사용됩니다.
- 문제 이해 (Understand the Problem):
- 첫 번째 단계는 주어진 문제를 완전히 이해하는 것입니다.
- 문제에 어떤 정보가 주어졌는지 파악하고, 문제가 무엇을 요구하는지 이해합니다.
- 문제를 읽고 다시 읽고, 필요한 경우 질문을 하거나 정보를 요약하여 문제를 분석합니다.
- 해결 계획 수립 (Devise a Plan):
- 이 단계에서는 문제를 해결하기 위한 계획을 수립합니다.
- 가능한 접근 방법을 고민하고, 어떻게 문제를 해결할 것인지 생각합니다.
- 경우의 수, 비슷한 문제, 거꾸로 풀기, 단순화 하기 등 어떻게 문제를 풀것인가 계획을 수립합니다.
- 문제 해결 (Carry Out the Plan):
- 세 번째 단계에서는 계획을 실행하여 문제를 해결합니다.
- 수학 공식을 사용하거나 계산을 수행하며, 중간 단계에서의 결과를 정확하게 기록합니다.
- 검토와 최종 점검 (Look Back and Check):
- 마지막 단계는 해결한 문제를 다시 검토하고 최종 결과를 확인하는 것입니다.
- 계산 오류나 논리적 오류가 있는지 확인하고, 문제를 다시 읽어보며 답안이 문제의 요구 사항을 충족하는지 확인합니다. 필요하다면 해결책을 다듬고 개선합니다.
폴리아의 4단계 문제 해결 방법은
문제를 체계적으로 다루고, 해결 과정을 논리적으로 진행하여 수학 문제뿐만 아니라 다른 문제도 효과적으로 해결하는 데 도움이 됩니다. 이 방법은 학습자에게 문제 해결에 대한 구조적인 접근 방법을 제공하며, 문제 해결 역량을 향상시키는 데 유용한 도구로 사용되고 있죠..
예를 들어 같은 크기의 정사각형 12개로 이루어진 도형에서 크고 작은 정사각형이 모두 몇개인가? 라는 문제가 있을때 다음과 같이 4단계로 문제를 풀어보도록 합시다.
- 문제 이해 (Understand the Problem):
- 먼저 문제를 잘 이해해야 합니다. 주어진 도형은 크기가 같은 정사각형 12개로 구성되어 있습니다. 이 도형에서 큰 정사각형과 작은 정사각형이 모두 몇 개인지 찾아야 합니다.
- 해결 계획 수립 (Devise a Plan):
- 이 문제를 해결하기 위한 계획을 수립합니다. 큰 정사각형과 작은 정사각형을 구분하여 개수를 세어야 합니다.
- 한 가지 접근 방법은, 변의 길이로 1, 2, 3인 경우로 계산해 봅니다.
- 문제 해결 (Carry Out the Plan):
- 계획을 실행합니다. 큰 정사각형과 작은 정사각형의 변을 비교하여 개수를 셉니다.
- 예를 들어, 만약 작은 정사각형의 변의 길이가 1이라고 가정하면, 4* 3 = 12
길이 2라면 3 * 2 = 6
길이가 3이라면 2 *1 =2 20개
- 검토와 최종 점검 (Look Back and Check):
- 마지막으로, 해결한 문제를 다시 검토합니다. 예를 들어, 큰 정사각형과 작은 정사각형의 개수를 확인하고 문제의 요구 사항을 만족하는지 다시 확인합니다.
따라서 이 문제에서는 정사각형이 20개라는 결론을 얻을 수 있습니다.
예제 ) 아이스크림과 와플을 한 손에 잡고 한꺼번에 먹고 싶다!
문제는 아이스크림과 와플을 한 손에 잡고 한꺼번에 먹고 싶다는 이유에서 아이스크림을 먹는 용기에 담아 편리하게 먹을 수 없을까? 라는 문제를 해결 해 봅시다.
- 문제 이해 (Understand the Problem):
- 먼저 문제를 완전히 이해합니다. 아이스크림과 와플을 한 손에 잡고 편리하게 먹을 수 있는 용기를 만들고자 하는 문제입니다.
- 해결 계획 수립 (Devise a Plan):
- 이 문제를 해결하기 위한 계획을 수립합니다. 용기 디자인을 생각해야 하며, 아이스크림과 와플을 함께 보관하고 먹을 수 있는 형태로 만들어야 합니다.
- 문제 해결 (Carry Out the Plan):
- 계획을 실행하여 아이스크림과 와플을 함께 담아 먹을 수 있는 용기를 디자인합니다. 이 과정에서 디자인과 재료 선택, 크기 결정 등이 필요합니다.
- 검토와 최종 점검 (Look Back and Check):
- 마지막으로, 디자인한 용기가 문제를 해결하는 데 적합한지 확인합니다. 아이스크림과 와플을 함께 담아 먹을 수 있는지, 편리하게 사용할 수 있는지 검토합니다. 만약 수정이 필요하다면 수정하고 최종 제품을 확인합니다.
이렇게 폴리아의 4단계 문제 해결 방법을 활용하여 아이스크림과 와플을 한 손에 잡고 먹을 수 있는 용기를 개발할 수 있을 것입니다. 이 과정에서 디자인, 재료 선택, 기능성 고려 등이 중요한 역할을 할 것입니다.
예제 ) 로켓의 무게와 연료 효율성의 문제를 해결
미국과 소련이 로켓을 우주 궤도까지 진입시키는 도중 로켓의 무게와 연료 효율성의 문제를 해결하기 위해 다음과 같은 문제 해결 단계를 따를 수 있습니다.
- 문제 이해 (Understand the Problem):
- 로켓을 우주 궤도에 진입시키기 위해 필요한 연료량과 로켓의 무게 문제를 완전히 이해합니다. 로켓이 무거워지면 연료를 많이 필요로 하지만, 연료를 많이 싣게 되면 무게가 더 늘어나는 애로사항이 있습니다.
- 해결 계획 수립 (Devise a Plan):
- 문제를 해결하기 위한 계획을 수립합니다.
- 먼저, 더 효율적인 로켓 엔진 디자인을 고려할 수 있습니다. 연료 소비 효율을 높이고 로켓의 효율적인 무게 감소를 고려하여 기존 로켓 엔진을 개선할 수 있습니다.
- 즉, 연료통을 가진 추진체를 여러 단계로 분리, 한 단계식 지날때마다 연소된 로켓을 분리되어 나가도록 합니다.
- 그러면 가벼원진 몸체로 더 멀리 날아가겠죠.
- 문제 해결 (Carry Out the Plan):
- 수립한 계획을 실행합니다.
- 이를 통해 효율적인 로켓 엔진을 개발하고, 로켓의 무게와 연료 효율성을 향상시켰습니다.
- 검토와 최종 점검 (Look Back and Check):
- 마지막으로, 개발한 로켓 엔진이 문제를 얼마나 효과적으로 해결했는지를 검토하고 최종 점검합니다.
- 엔진 개발 후 시험과 실험을 통해 로켓의 성능을 확인하고 개선 사항을 발견하면 계속해서 개발을 진행합니다.
이처럼 문제 해결은 결구과 문제를 제대로 이해하고 분해하고 , 분석하는 것이고 이 또한 컴퓨팅 사고의 기본이 되는 거겠죠.
- Total
- Today
- Yesterday