상세 컨텐츠

본문 제목

[디자인] 컴퓨팅 사고 Computational Thinking

디자인 Design/디자인

by tamm 2021. 1. 22. 00:23

본문

지난 글에서 디자인 프로세스를 통해 디자인하는 과정을 간략하게 설명했다. 디자인 프로세스에 대한 이야기를 하고 난 후 컴퓨팅 사고에 대해 공부하게 되었다. 컴퓨팅 사고에 대해 알게 되니 디자인 프로세스와 많이 닮아있다는 생각이 들었다. 그래서 컴퓨팅 사고에 대해 글을 쓰고 싶었다. 

 

그럼 컴퓨팅 사고가 무엇인지 함께 알아보자. 

 

 

 

컴퓨팅 사고 Computational Thinking

Computational Thinking이라고 하는 컴퓨팅 사고는 몇 년 전부터 한국에서도 중요하게 떠오르는 코딩 교육의 핵심이라 할 수 있다. 1980년에 시모어 파퍼트 Seymour Paper 교수가 처음 사용했던 이 개념은 2006년 자넷 윙 Jeannette Wing 교수가 ACM 통신 논문 (Communication of the Association for Computing Machinery) (www.cs.cmu.edu/~15110-s13/Wing06-ct.pdf)에서 사용해 부상하기 시작했다. 

 

전 세계 각국에서 강조하고 중요하게 생각하는 개념이며, 현재 한국에서도 이 부분에 대한 다양한 교육 시스템을 만들어 운영하고 있다. 이렇듯 전 세계 각국이 컴퓨팅 사고에 대한 중요성을 인정하고 교육에 적극적으로 활용하고 있다. 그럼 왜 컴퓨팅 사고가 뜨고 있는 것일까? 

 

컴퓨팅 사고란 문제를 정의하고 논리적이고 효율적으로 문제를 해결할 수 있도록 돕는 사고의 과정을 의미한다. 그 사고의 과정은 여러 다양한 분야의 문제들을 해결하기 위해 사용할 수 있다. 그래서 이 부분에 대한 교육이 중요하게 떠오르는 것이다. 

 

Photo by Dragos Gontariu on Unsplash

 

 

다양한 사고의 종류 

물론 컴퓨팅사고만으로 모든 문제를 해결할 수는 없고, 사고에도 다양한 종류가 있다. 기발하고 독특한 아이디어를 적용해야 할 때에는 창의적 사고가 필요하고, 살아가면서 경험하고 학습을 통해 쌓기도 하며, 본능적인 감각을 통한 사고도 있다. 

 

이렇게 다양한 사고들 중에서 컴퓨팅 사고에 집중하는 이유는 문제를 효율적으로 해결할 수 있고, 거의 모든 분야에서 활용될 수 있기 때문이다. 경험과 학습을 통한 사고의 문제점을 보완해주고, 창의적 사고를 위한 토대를 마련해주는 것 등 컴퓨팅 사고는 거의 모든 분야에 활용 가능하다. 

 

 

 

컴퓨팅 사고의 구성 요소  

컴퓨팅 사고는 연구자나 학자, 혹은 분야에 따라 조금 다른 모습을 하고 있다. 자넷 윙 교수는 주요 구성 요소를 아래 4가지로 요약했다. 

 

  1. 분해 Decomposition 어려운 문제를 잘게 쪼개고 분할하여 문제를 분석한다. 
  2. 추상화 Abstraction 복잡한 자료와 데이터들을 통합하고 단순화하여 핵심 요소를 추출한다. 
  3.  재귀적 사고 Recursive Thinking 문제에 대한 해법을 찾고 난 후에 그 해결 방법이 지속적이고 반복적으로 적용할 수 있는 지를 확인한다. 
  4. 병렬처리 Parallelization 문제를 동시에 처리할 수 있는 방법을 찾는다. 

 

 

컴퓨팅 사고 문제 해결 과정

미국의 컴퓨터과학 교사협의회 CSTA (Computer Science Teachers Association)는 컴퓨팅 사고를 통한 문제 해결 과정을 이렇게 정리했다.

  1. 컴퓨터 및 기타 도구를 사용하여 문제를 해결할 수 있도록 문제를 공식화한다. 
  2. 데이터를 논리적으로 구성 및 분석한다. 
  3. 모델 및 시뮬레이션과 같은 추상화를 통해 데이터를 표현한다. 
  4. 일련의 순서화된 단계인 알고리즘적 사고를 통해 솔루션을 자동화한다.
  5. 단계와 리소스의 가장 효율적이고 효과적인 조합을 목표로 가능한 해결 방안을 구현하고 정의한다. 
  6. 이 문제 해결 프로세스를 일반화하여 다양한 문제로 전환한다.
출처: eric.ed.gov/?id=EJ918910

 

미국의 컴퓨터과학 교사협의회 CSTA 가 말한 문제 해결 과정들은 아래와 같은 요소로 정리할 수 있다. 

  1. 데이터 수집 Data collection 데이터를 수집한다. 
  2. 데이터 분석 Data analysis 수집한 데이터를 분석한다. 
  3. 데이터 표현 Data representation 수집한 데이터를 정리하여 시각적으로 표현한다. 
  4. 문제 분해 Problem decomposition 문제를 잘게 쪼개어 분할한다. 
  5. 패턴인식 Pattern recognition 비슷한 규칙성을 가진 데이터와 문제들을 그룹핑하여 패턴화 한다. 
  6. 추상화 Abstraction 복잡한 자료와 데이터들을 통합하고 단순화하여 핵심 요소를 추출한다. 
  7. 알고리즘 Algorithm 문제 해결을 위해 입력된 자료를 토대로 결과를 유도한다. 
  8. 자동화 Automation 반복적인 방법들을 자동화한다. 
  9. 시뮬레이션 Simulation 실제와 비슷한 모형을 통해 모의실험을 통해 문제를 파악한다. 
  10. 병렬화 Parallelization 문제를 동시에 처리할 수 있는 방법을 찾는다. 
  11. 일반화 Generalizing 해결 방안이 다른 문제에 적용 가능한지 확인한다. 

 

 

컴퓨팅 사고에 다양한 방법론들과 요소들이 나오지만 핵심은 결국 양질의 데이터를 잘 모아, 데이터에 입각하여 분석하고 분석한 데이터를 시각적으로 잘 표현하여 본질적인 문제를 파악하고, 그 문제를 분해하고 분석하여 해결방안을 찾은 후 그 해결방안을 토대로 다른 문제에도 적용될 수 있게 일반화하는 것이다. 

 

디자인 프로세스도 마찬가지이다. 프로젝트에 대한 정보를 수집하고 수집된 정보를 분석하고 분석을 토대로 문제의 핵심을 찾고, 그 문제를 해결을 하기 위한 과정이다. 다만, 디자인 프로세스는 디자인적 관점에서 결과물을 작업한다는 점이 다를 뿐 컴퓨팅 사고와 디자인 프로세스의 본질은 같다. 

 

그래서 디자인을 시작할 때, 컴퓨팅 사고에 대해 먼저 알았다면 어땠을까 하는 생각을 했다. 디자인 프로세스를 제대로 알기 전에 경험으로 부딪히며 디자인 프로세스에 대한 정의를 내리며 프로젝트를 진행해 왔기에 시행착오도 많았다. 물론 컴퓨팅 사고를 알았다고 해도 시행착오가 없었을 거라고 생각하지 않는다. 하지만 더 나은 해결 방법을 찾을 수 있지 않았을까 하는 생각이 들었다.

 

이런 내 모습은 처음 컴퓨팅 사고라는 말을 들었을 때와는 사뭇 달라진 모습이다. 

 

 

코딩 교육? 컴퓨팅 사고?

 

어린이 코딩 50주년 기념

오늘의 #GoogleDoodle에서 코딩을 하고 당근을 모두 모아보세요

www.google.com

 

처음에 코딩 교육이라고 들었을 때는 모든 사람을 프로그래머로 만드는 건가 싶었고, 위 구글 게임을 해보고 난 후에는 이걸 코딩 교육이라고 하는구나 싶어서 신기했다. 그 후에 컴퓨팅 사고라는 단어를 들었을 때는 컴퓨터처럼 사고하라는 건가?라는 생각을 했었다. 

 

하지만 공부하다 보니 그것은 프로그래머가 되기 위한 과정이나, 컴퓨터처럼 사고하는 방법을 배우는 것이 아니라 인간의 상상력의 실현을 위해 컴퓨터를 제대로 잘 사용하기 위함이다. 물리적으로 처리하지 못했던 다양한 문제들을 처리하고 상상만 했던 기능이나 시스템을 구축할 수 있도록 하는 것이다. 

Equipped with computing devices, we use our cleverness to tackle problems we would not dare take on before the age of computing and build systems with functionality limited only by our imaginations - Jennette M. Wing

더 나아가 모든 문제의 해결에 활용하는 것이었다. 

 

알고 나니 컴퓨팅 사고가 중요하게 떠오른 이유가 이해되었다. 그래서 더 미리 알고 적용했다면 더 효율적으로 일을 처리할 수 있는 방법들을 찾을 수 있지 않았을까 하는 생각이 들었다. 

 

그리고 디자인 프로세스를 다시 한번 정리해야겠다 마음먹었다. 내가 정리한 디자인 프로세스에 컴퓨팅 사고를 활용하여 더 효율적인 방안을 찾고 더 탄탄한 프로세스로 정리해보고 싶다는 생각이 들었다. 그동안 타성에 젖어 일을 한 것 같아 마음이 무거웠다. 

 

이 업계에서 얼마나 오래 디자인을 하게 될지 모르겠지만, 열심히 배워야 하는 직업임을 다시 한번 깨달았다. 

더 열심히 알아보고 노력해야 한다는 것을 깨닫게 해 주었다. 

 

이미 너무 유명한 컴퓨팅 사고를 통해 효율적으로 문제를 해결할 수 있는 방법을 배우기를 바란다. 

 

 

관련자료

Jennette M. Wing

www.cs.cmu.edu/~15110-s13/Wing06-ct.pdf

CSTA

 

ERIC - EJ918910 - Computational Thinking: A Digital Age Skill for Everyone, Learning & Leading with Technology, 2011

In a seminal article published in 2006, Jeanette Wing described computational thinking (CT) as a way of "solving problems, designing systems, and understanding human behavior by drawing on the concepts fundamental to computer science." Wing's article gave

eric.ed.gov

Education Paving the way for Computational Thinking

 

Wayback Machine

8 captures 14 Jan 2015 - 24 Nov 2020

web.archive.org

Google for Education

 

컴퓨팅 사고 | Google for Education

문제 해결, 코딩, STEM 과목에 초점을 맞춘 교과 과정은 학생들이 미래의 도전 과제를 해결하는 데 도움을 줍니다. 따라서 학교에서는 학생들이 최선의 환경에서 시작할 수 있도록 학생들의 기술

edu.google.com

 

관련글 더보기

댓글 영역