
Computaional thinking에 대해 현대적의미로 재정의 해 준 Jeannette M. Wing의 "Computaional thinking"(https://www.cs.cmu.edu/~15110-s13/Wing06-ct.pdf)이라는 글의 번역이다. 목차는 내가 임의로 생성 하였다.
컴퓨터의 처리 과정이 가진 힘과 한계가 바로 컴퓨팅 사고의 토대다. 이는 사람이 처리하든 기계가 처리하든 마찬가지다. 컴퓨터적 방법과 모델은 우리에게 특별한 힘을 준다. 덕분에 우리는 혼자서는 도저히 해결할 수 없는 문제들을 풀고, 복잡한 시스템을 설계할 용기를 얻게 된다. 컴퓨팅 사고는 기계 지능이라는 수수께끼와 마주한다. "인간이 컴퓨터보다 더 잘하는 것은 무엇일까?", "컴퓨터가 인간보다 더 잘하는 것은 무엇일까?" 그리고 가장 근본적인 질문인 "무엇을 계산할 수 있을까?"와 씨름한다. 하지만 오늘날 우리는 이런 질문들의 답을 부분적으로만 알고 있을 뿐이다.
컴퓨팅 사고는 컴퓨터 전문가만을 위한 것이 아니다. 모든 사람에게 필요한 기본 능력이다. 읽고, 쓰고, 셈하는 기초 능력처럼 컴퓨팅 사고도 모든 아이들의 분석 능력에 포함되어야 한다. 인쇄술이 읽기, 쓰기, 셈하기의 보급을 도왔듯이, 컴퓨터와 컴퓨팅도 컴퓨팅 사고의 확산을 이끌고 있다. 이것이 바로 이 시대가 가진 특별한 점이다.
컴퓨팅 사고는 컴퓨터 과학의 기본 개념을 활용해 문제를 해결하고, 시스템을 설계하며, 인간의 행동을 이해하는 것이다. 이는 컴퓨터 과학 전반을 아우르는 다양한 사고 도구를 포함한다.
문제 해결에 직면했을 때, 우리는 이런 질문들을 던진다:
"이 문제는 얼마나 어려울까?",
"이 문제를 가장 잘 해결하는 방법은 무엇일까?"
컴퓨터 과학은 이러한 질문들에 정확한 답을 제시할 수 있는 탄탄한 이론적 기반을 갖고 있다. 문제의 난이도를 파악할 때는 해결책을 실행할 컴퓨터의 기본 성능도 고려해야 한다. 즉, 기계가 이해할 수 있는 명령어들, 사용 가능한 자원의 한계, 그리고 작동 환경을 모두 살펴봐야 한다.
문제를 효율적으로 해결하려면 다음과 같은 사항도 고민해야 한다:
컴퓨팅 사고는 얼핏 보면 어려워 보이는 문제를 우리가 해결할 수 있는 형태로 바꾸는 것이다. 문제를 단순화하거나, 다른 문제에 녹여 넣거나, 형태를 바꾸거나, 모의실험을 통해 이를 달성할 수 있다.
컴퓨팅 사고는 다음과 같은 특징을 지닌다:
큰 규모의 복잡한 작업이나 시스템을 다룰 때, 컴퓨팅 사고는 추상화와 분해를 활용한다. 문제를 다루기 쉽게 만들기 위해 적절한 표현 방식을 선택하거나, 문제의 핵심 측면을 모형화하는 것이 여기에 포함된다. 또한 시스템의 움직임을 간단명료하게 설명하기 위해 변하지 않는 속성을 찾아내는 것도 포함된다.
우리 주변의 일상적인 사례들을 살펴보자:
컴퓨팅 사고는 '알고리즘'이나 '전제 조건' 같은 용어들이 모든 사람의 일상 언어가 되고, '비결정성'과 '쓰레기 수거'와 같은 개념이 컴퓨터 과학자들이 쓰는 의미로 이해되며, 계층 구조를 나타내는 나무가 거꾸로 그려질 때 우리 삶에 완전히 스며들게 될 것이다.
우리는 이미 컴퓨팅 사고가 다른 학문 분야를 어떻게 바꾸고 있는지 목격하고 있다. 예를 들면:
컴퓨터 과학자들이 최근 생물학에 관심을 보이는 이유는 생물학자들도 컴퓨팅 사고의 혜택을 누릴 수 있다고 믿기 때문이다. 컴퓨터 과학이 생물학에 기여하는 바는 단순히 방대한 유전자 서열 데이터에서 패턴을 찾는 것을 넘어선다. 데이터 구조와 알고리즘이라는 컴퓨터적 사고방식과 방법으로 단백질의 구조를 표현하여 그 기능을 밝혀낼 수 있을 것으로 기대한다.
컴퓨터 과학은 계산에 대한 연구다. 무엇을 계산할 수 있고, 어떻게 계산할 수 있는지를 탐구하는 학문이다. 이런 관점에서 컴퓨팅 사고는 다음과 같은 특징을 지닌다:
많은 사람들이 컴퓨터 과학을 단순히 프로그래밍이라고만 생각한다. 일부 학부모들은 자녀가 컴퓨터 과학을 전공하면 취업 기회가 매우 제한될 거라고 여긴다. 또 많은 이들이 컴퓨터 과학의 기초 연구는 이미 끝났고 응용 기술만 남았다고 생각한다. 컴퓨팅 사고는 이런 인식을 바꾸기 위한 큰 그림이다. 컴퓨터 과학 교육자, 연구자, 현장 전문가들이 이 분야에 대한 사회의 시선을 바꾸도록 이끄는 나침반이다. 특히 우리는 교사, 학부모, 학생들을 포함한 예비 대학생들에게 다가가 두 가지 핵심 메시지를 전달해야 한다:
대학의 컴퓨터 과학 교수들은 신입생을 위해 "컴퓨터 과학자처럼 생각하는 법"이란 강좌를 개설해야 한다. 이 강좌는 전공자뿐 아니라 비전공자도 들을 수 있어야 한다. 또한 대학 입학 전 학생들에게도 컴퓨팅의 방법과 모델을 접할 기회를 줘야 한다.
컴퓨터 과학에 대한 관심이 줄었다거나 연구 지원금이 감소했다고 한탄하기보다는, 이 분야의 지적 모험에 대한 대중의 관심을 불러일으키는 데 집중해야 한다. 이를 통해 컴퓨터 과학이 주는 즐거움과 경이로움, 그리고 힘을 널리 알리고, 컴퓨팅 사고가 우리 일상의 자연스러운 일부가 되게 만들어야 한다.
추가로 다음과 같은 개념에 대한 설명이 필요 한 것으로 보여 부가 설명을 붙인다.
필요한 경우:
한계점/덜 적합한 경우: