컴퓨팅 사고는 컴퓨터가 사고하는 방법을 우리가 새로 배우는 것이 아닙니다.

과거에 인간들은 문제 해결을 위해 컴퓨팅 사고를 사용하고 있었습니다.

 

 

컴퓨팅 사고라는 용어는 카네기 멜론 대학의 자넷 윙(Jeannette M.Wing) 교수가 정의했습니다.

자넷 윙 교수는 2006년 '컴퓨팅 사고'가 현대인이 갖춰야 할 핵심 역량이라고 소개했습니다.

 

 

 

 

 

컴퓨팅 사고(Computational Thinking)의 4가지 구성요소

1. 분해(Decomposing)   2. 추상화(Abstraction)   3. 패턴인식(Pattern recognition)   4. 알고리즘(Algorithms)

 

 

 

 

오늘은 위의 4가지 요소 중 분해를 다뤄보려고 합니다.

 

 

 

 

 

분해

분해란 말 그대로 복잡한 문제를 풀기 쉬운 단위로 잘게 나누는 것입니다.

단순히 잘게 나누는 게 아니라 해결하기 쉬운 단위로 변형하는 데 있습니다.

 

분해를 안 해도 쉬운 문제이면, 굳이 안 해도 됩니다.

 

다양한 분해 방법들이 곳곳에서 사용되고 있습니다.

 

 

 

 

 

 

 

 

첫 번째, 문제 진행 순서에 따라서 분해(절차 분해)

 

절차 분해는 앞 단계가 완료되면 다음 단계로 넘어가는 형식으로 진행됩니다.

앞 단계의 결과물이 다음 단계에 중요한 자원으로 사용됩니다.

그래서 앞 단계를 건너뛰고 진행하면 문제가 생길 수 있습니다.

 

절차 분해는 장난감을 조립하거나 분해할 때 사용될 수 있습니다.

올바른 절차를 따르지 않으면 장난감이 고장 날 수 있습니다.

 

 

 

 

 

 

두 번째, 문제의 단위를 소분류로 분해

 

소분류로 분해는 일의 분업화로 이해하면 쉽습니다.

 

예를 들어 휴대폰을 만든다고 하면 조립은 순서를 지켜야 합니다.

하지만 부품을 생산하는 과정은 소분류로 나눠도 문제가 없습니다.

그 이유는 분류를 나눠도 시간적으로 서로 종속되어 있지 않기 때문입니다.

 

이런 방식은 일을 더욱 효율적으로 만들어 주게 됩니다.

 

공장에서는 소 분류된 부품이 동일한 시간에 생산되는 걸 중요시 생각합니다.

그래야 부품을 동시에 조립 하는 생산라인을 만들 수 있기 때문입니다.

 

 

 

 

 

 

 

세 번째, 문제를 뭉쳐서 해결

 

문제의 분해는 엄밀히 말하면 문제를 해결 가능한 형태로 변형하는 것입니다.

해결하기 적절한 단위로 만든다고 이해하는 것이 좋을 것입니다.

 

세 번째 방법은 프로그래밍에서 함수 기법에서 많이 적용하는 방식입니다.

클래스와 객체라는 개념이 있습니다.

 

자바와 같은 객체 지향 프로그래밍 언어에서 많이 사용하는 개념입니다.

 

 

 


분해의 과정은 단순히 나누는 과정으로 보기 어렵습니다.

자료를 분석하고 논리적으로 조직화하는 과정이라고 보시는 게 좋습니다.

 

 

 

 

 

 

* 참고 도서

- 논리적 문제 해결을 위한 컴퓨팅 사고 (저자 김두진)

반응형

+ Recent posts