1.1 소개


컴퓨팅 사고와 일상의 빅데이터를 교육하는 MOOT과정에 오신 것을 환영합니다. 이 과정은 대학의 의문에서 점점 기술 사회에서 생활과 번영을 위해 준비하는 데 걸리는 무엇에 대한 특정 질문에 대한 답변에서 성장했다. 이러한 질문에 대한 대답은 코스의 시작점이다.

 

1.1.1 컴퓨테이션(Computation)를 알아야 하는 이유

컴퓨팅(Computing)와 그 산물은 어느 곳에나 있으며, 모든 것에 영향을 끼쳤다. 컴퓨팅을 위한 폼 팩터는 데스크탑, 노트북, 태블릿, 스마트 폰 등으로 일반화 되어 있다. 컴퓨테이션은 우리가 서로 소통하고, 음악을 연주하고, 즐기며, 목적지로 안내하며, 새로운 뉴스를 전달해주고, 소셜 네트워크로 하나로 엮일 수 있게 하였으며, 물건을 사고, 보고, 배우고, 읽는 것을 가능하게 하였다. 우리의 인식 영역을 벗어나면, 컴퓨터는 차량과 비행기를 조종하고, 전력 공급선을 관리하며, 집의 가전 기기를 관측하고, 건축용 로봇을 제어하며, 군대의 무기를 가이드하고 있다. 매일 우리가 컴퓨팅과 직접적 또는 간접적으로 접촉하는 횟수는 상상하기 힘들다. 심지어 "사물의 인터넷"이라는 구상은 평범한 것들이 인터넷으로 연결되고 서로 상호작용하도록 하게 한다. 이러한 발전은 언제나 어디서나 보이지 않게 지속적으로 컴퓨테이션이 이루어지는 우리 일상을 예측하게 한다.


컴퓨테이션은 과학적인 발견과 공학적인 창조로 세상을 다시 보게 하여 인류가 우주를 탐사하는 근본적인 방법을 변경하였다. 전통적으로 연구는 실험(실험실에서는 실험과 시제품 작업)과 때로는 수식으로 표현되는 잘 정돈되는 이론의 패러다임에 기초하였다. 수 세기 동안, 이러한 패러다임은 르네상스부터 원자의 시대까지 지식의 형성을 이끈 동력으로 사용되었다. 실험과 이론은 R&D 체계로 지원받는 과학과 공학의 "두개의 기둥"으로 불리었다. 이제 컴퓨팅은 과학과 공학에서 실험과 이론에 이은 "세번째 기둥"으로 인식되고 있다. 컴퓨테이셔널 과학(Computational science)과 공학 없이 새로운 발견과 발명은 불가능하다. 지놈 프로젝트에서부터 다른 태양계 행성의 주기를 알아내는 작업에 컴퓨팅은 필수적이다.


"디지털 인문학"의 대두는 세상에서 인류의 역할과 표상을 이해하는 방법인 인문학과 컴퓨테이션이 얽히고 있음을 반증한다. 컴퓨테이션은 단순히 같은 작업을 위한 좋은 도구를 넘어서서 연구와 표현의 방법의 한계를 확장하였다. 생물학자들이 컴퓨팅을 이용하여 하나의 유전자를 연구하는 것에서부터 전체 지놈에 대한 연구를 수행하듯이, 학자들로 하여금 하나의 문헌을 "근시한적으로" 읽는 것에서부터 특정 기간 혹은 특정 분야의 모든 저자의 모든 논문을 "통찰적으로" 읽을 수 있게 하였다. 컴퓨테이션은 예술가의 새로운 "캔버스"와 작곡가의 새로운 "오케스트라"를 제공하여 새로운 형태의 창작 활동을 탐구하게 하였다. 더 나아가, 컴퓨테이션은 그 자체가 "문제화" 가능하므로, 인문학자들이 컴퓨테이션으로 구축된 프로세스와 결과물을 연구의 주제로 삼을 수 있다. 예를 들어, 사회 학자들은 "실제" 환경의 인구에 대한 연구를 하듯이 온라인 소셜 네트워크를 연구한다.
사실상 모든 측면의 인류 활동에 대한 컴퓨테이션의 광범위한 적용은 국민과 미래의 전문가에게 영향을 준다. 전문 직종 전문가의 생산성 향상과 정보화된 시민이 되기 위해, 우리는 세상에 대한 비판적이며 분석적이고 통찰력과 효율성을 겸비한 사고의 능력을 가져야 한다.
즉, 모든 곳에 컴퓨테이션이 존재하므로 우리는 이에 대한 이해가 필요하다.

 

1.1.2 컴퓨팅적 사고(Computational Thinking)란?

생각의 방법인 "컴퓨팅적 사고"를 설명하기 위해 미국 국립 연구 위원회(National Research Council)의 보고서에서 다음과 같이 기술한다.

“... 문제 해결 능력, 시스템 설계, 인간행동 이해, 넓은 범위의 지적 활동의 자동화를 보조하는 컴퓨터 업무 등을 지원하기 위한 컴퓨터 과학을 토대로한 사고의 도구와 개념을 포함한다.”

보다 구체적으로, 카네기 멜론 대학교의 쟈넷 윙(Jeannette Wing) 교수는 다음과 같이 기술한다.

“컴퓨팅적 사고는 문제 형성과 해결 방법에 관여하는 사고의 흐름이며, 그 해결 방법은 정보처리 도구를 이용하여 효율적으로 풀 수 있는 형태로 나타내도록 한다.”

위키피디아에서 컴퓨팅 사고력은 다음과 같이 기술되어 있다.

그림 1-1

그림 1-1. 컴퓨팅적 사고를 설명하는 3단계의 절차

 

“컴퓨팅 사고력은 문제를 공식화하고 컴퓨터나 사람 혹은 기계가 문제를 효율적으로 해결할 수 있도록 하는 방식으로 해결책을 표현하는 사고의 절차이다. 그리고 컴퓨팅 사고력은 3단계의 반복된 절차이다. 이 3단계는 중 1단계는 문제의 형식화(추상화)이고 2단계는 문제 해결책의 표현(자동화)이고 마지막 3단계는 그림1-1과 같은 문제 해결책의 실행 및 평가(분석)이다. 컴퓨팅 사고력이라는 용어는 ‘시모어 페퍼’에 의해 1980년에 처음으로 사용되었고 1996년에 다시 등장하게 되었다. 컴퓨팅 사고력은 복잡한 구조의 문제를 알고리즘적을 사용하여 해결하기 위해서 사용되거나, 효율성 측면에서 큰 개선을 추구하기 위해 사용된다.”

위와 같은 정의는 컴퓨팅 사고력을 정의하는 2가지 주요 개념에 대한 이해를 통해 보다 구체화된다.

  • 추상화(Abstraction) : 실세계의 모델에 대한 관련 속성을 표현하기 위한 정보의 활용
  • 알고리즘(Algorithms) : 명확한 규칙의 집합에 따른 모델의 정보 조작
  • 자동화(Programming) : 실세계의 모델을 알고리즘에 의해서 조작할 수 있게 프로그램을 개발

추상화는 복잡성을 가지는 실세계의 엔터티(entity)들의 연관 속성에 초점을 맞춤으로서 복잡성을 극복하는 능력을 가지게 한다. 우리로 하여금 보다 간소한 모델 생성, 보다 효율적인 해결 방법의 설계, 질문에 대한 보다 쉬운 답변을 가능하게 한다. 알고리즘은 우리에게 컴퓨터가 수행할 수 있는 프로세스를 만들 수 있는 능력을 가지게 한다. 이를 통해, 컴퓨터는 모델에서 정의한 정보를 조작할 수 있게 된다. 알고리즘의 결과(데이터 및 시각화)는 우리가 질문에 대답하는 것을 도와준다. 추상화와 알고리즘에 대한 아이디어들은 서로 엮어져서 컴퓨테이셔널의 관점으로 세상을 바라보며, 자동화된 기기가 동작하는 원리에 대한 이해를 가능하게 한다.

 

 

Multiple Choice “컴퓨팅적 사고”에 대한 설명으로 틀린 것은?



1.1.3 무엇을 얻을 수 있는가?

컴퓨팅적 사고의 능력을 갖출 경우 우리는 주위를 둘러싼 세상에 대한 충분한 이해와 더불어 세상을 변화하는 것에 깊게 관여할 수 있다. 미국 국립 연구 의원회는 컴퓨팅적 사고가 일반화되웠을 때 개인과 사회가 가지게 되는 이점에 대해 다음과 같이 기술한다.

  • 기술사회(technological society)의 주요 영향력 이해에 따른 사회에서의 성공
  • 제품 생산 및 서비스 가치 향상의 동력 강화에 따른 미국 경제 경쟁력의 유지 및 강화
  • 실질적으로 모든 연구 분야에서 컴퓨테이션의 융합에 따른 다학제의 연구 지원 강화
  • 복잡성에 대한 관리와 효율적인 프로세스 구조화 능력을 다루는 문제 해결 능력의 배양을 통한 개인 능력 강화

물론, 이 강의는 모든 사람에게 완전한 능력을 모두 제공할 수는 없다. 하지만, 이 강의를 통해 추가적인 학습과 연구를 위한 탄탄한 토대를 다질 수 있다.

 

1.1.4 학습 목표

이 강의는 네 가지 학습 목표를 달성하기 위해 설계되었다.

  1. 다양한 지식 영역에서 컴퓨팅적 사고의 응용 프로그램을 설명한다.
  2. 각 연구 분야에서 문제화와 해결 방법의 고안에 컴퓨팅적 사고의 기본 원칙을 적용한다.
  3. 복잡하고 거대한 현상을 조사하기 위해 컴퓨테이셔널 체계에 기반하여 모델을 분석한다.
  4. 컴퓨팅과 정보 기술이 인류에게 끼친 영향을 확인한다.

첫 번째 목표는 다수의(혹은 대부분)의 연구 영역에 컴퓨테이션이 끼친 영향을 배우는 것이다. 몇몇 분야에서 컴퓨테이션은 중요한 패러다임으로 자리잡고 있으며, 다른 분야(예:디지털 인문학, 창조적 표현, 자동화된 미술)에서는 새로운 연구 영역으로 높은 가치를 가지고 있다.


두 번째 목표는 특정 분야에서 해답을 찾기 위해 컴퓨팅적 사고를 사용하는 방법을 배우는 것이다. 이 강의는 각각의 학생의 전공이나 취미에 맞추어 학습할 수 있도록 구성되었다. 이 강의는 각자 가지고 있는 직업과 취미에서 컴퓨테이션이 어떻게 연관될 수 있는지를 볼 수 있도록 도와주는 것을 목표로 한다.


세 번째 목표는 대규모 문제를 해결하기 위해서 실용적인 컴퓨테이션의 도구를 적용하는 방법을 배우는 것이다. 컴퓨터는 대규모의 데이터를 아주 빠르게 처리할 수 있도록 설계된 특성을 가진다. 이러한 특성은 실세계의 문제에서 원하는 답을 얻기 위해 "빅 데이터"를 다루기 위한 많은 기술에서 활용된다.


네 번째 목표는 컴퓨테이션의 결과가 "전문가적 능력"으로 사용되고, 그 결과가 인류에게 미친 영향에 대해 배우는 것이다. 실제로 영향을 받은 사람에 기반한 몇가지 사례 연구를 통해 전문가적 능력의 본질에 대한 예제를 보게 될 것이다. 그리고, 윤리적인 행동이 특정 상황에서 무엇을 의미하는지를 다루는 몇 가지 윤리 체계를 탐구한다.


이 책을 공부하면서 우리가 설정한 이 목표들을 달성하는지를 알기 위해 많은 피드백을 바란다.

 

1.1.5 컴퓨팅적 사고 학습의 어려운 점

컴퓨팅적 사고 학습(Learning Computational Thinking)의 어려운점은 문장이 가지는 세 가지 키워드로 설명할 수 있다.

  • 학습(Learning) : 어떤 종류의 학습이라도 새로운 생각과 정보에 익숙해지기 위한 노력을 필요로 한다. 우리의 지식 구조를 확장하는 것은 약간의 인내를 필요로 하는 도전이다.
  • 컴퓨테이션(Computation) : 이 강의에서 배우게 될 것이지만, 사람이 정보를 처리하는 방식과 컴퓨터가 정보를 처리하는 방식은 큰 간극이 존재한다. 우리는 다른 사람들에게 일을 처리하는 방법을 설명하는 것이 익숙하다. 강사와 지시를 받는 대상은 정보 처리를 지시하는 방법이 같기 때문이다. 하지만 가르쳐야 하는 대상이 컴퓨터일 경우, 인간이 컴퓨터에게 정보 처리하는 과정을 어떻게 표현하는지는 큰 장애물로 자리잡는다. 컴퓨터가 정확하게 일을 수행하도록 지시를 내리는 방법이 필요하다.
  • 사고(Thinking) : 컴퓨팅적 사고는 우리가 기존에 하였던 사고 방식과 다른 방식의 사고이다. 사고 방식의 차이는 새로운 인지 능력을 개발해야 함을 의미한다. 이 것은 이 강의의 어려운 도전과제이지만, 그 결과 우리는 사고 방식의 확장으로 보다 창의적이고 혁신적인 인재로 자리잡는 장점을 가질 것이다.

본 강의는 위와 같은 도전을 맞닥뜨리고 해결할 수 있도록 구성되었다.

FAQ

What am I going to learn in this course?

You will learn how to think computationally.

4 thoughts on “1.1 소개

Leave a Reply

Your email address will not be published. Required fields are marked *

*