추상화? 추상화!

in #abstraction6 years ago

추상화는 피카소의 그림을 말하는 건가?

최근 SW교육의 필수화가 진행되면서 혼란을 겪고 있는게 바로 '추상화'에 대한 논쟁이다.

우리가 일반적으로 추상화란 단어를 생각하면, 대부분 피카소의 '추상화'가 먼저 떠오른다.
피카소의 추상화(畫)는 추상화(化)의 개념을 차용해서 그린 그림이다.

번스타인(생각의 탄생 저자)이 그의 책에서 정리한 추상화의 개념은 다음과 같다.
"추상이란 어떤 대상의 전체를 재현하는 것이 아니라 눈에 덜 띄는 한두 개의 특성만을 나타내는 것이다. 과학자, 화가, 시인들은 모두 복잡한 체계에서 '하나만 제외하고' 모든 변수를 제거함으로써 핵심적 의미를 발견하려고 애쓴다. 진정한 의미에서 추상화란 현실에서 출발하되, 불필요한 부분을 도려내가면서 사물의 놀라운 본질을 드러나게 하는 과정이라고 할 수 있다."’

매우 정확한 개념 정리라고 볼 수 있다. 이 책에서는 여러 영역에서의 추상화 사례를 제시한다.

"우리는 휘파람을 불 때 곡의 일부를 발췌하는 식으로 관현악 대작이나 팝 음악을 추상화한다. 또한 우리는 막 읽은 책을 누군가에게 요약해서 말해주면서 추상화를 한다. 또한 보고 싶은 TV프로그램을 선택할 때도 TV 가이드나 신문에 실린 한줄짜리 안내기사를 보고 고르는데, 이것 역시 추상이라고 할 수 있다."

그렇다면 SW교육에서의 추상화는 일반적인 추상화의 개념과 다른가?

SW교육에서의 추상화가 중요하게 대두된 것은 Wing(2006)이 주장한 '컴퓨팅 사고력(Computational thinking)' 의 하위요소가 추상화와 자동화로 제시되었기 때문이다.

컴퓨팅 사고력에서의 추상화는 개념의 측면에서 본다면 일반적인 추상화의 개념과 같다.
하지만, 과정을 들여다보면 일반적인 추상화와 다르다는 것을 알 수 있다.
일반적인 추상화의 결과물은 추상화된 공식, 수식, 그림, 음악, 패턴 등으로 나타나지만
컴퓨팅 사고력의 추상화는 알고리즘, 프로그래밍의 변수, 함수, 객체와 같은 형태로 나타나며 문제해결 흐름의 추상화와 데이터 추상화의 결과물이 생성된다.
이런 추상화의 결과물은 반드시 뒤쪽의 자동화(컴퓨팅에 의해 계산되는)와 연결이 된다.
즉, 일반적인 추상화는 아날로그의 추상적인 형태로 마무리 되지만, 컴퓨팅 사고력의 추상화는 반드시 뒤쪽의 프로그래밍과 연결되어야 하므로, 그 방식이나 결과물의 측면에서 차이점이 나타난다. 근본적으로 디지털 정보를 다루는 정보수집부터 가공, 처리, 연산, 출력 등의 과정을 거치게 되며, 일반적인 추상화의 아날로그 정보를 다루는 작업과는 다른 양상을 띤다.

결국, SW교육에서의 추상화는 개념측면에서는 일반 추상화와 같지만 과정과 결과물 측면에서는 다른 추상화이므로, 일반적인 추상화 교육과 SW교육의 추상화 교육은 달라야 한다.

최근에 컵을 순서에 따라 두드리고, 보드게임에서 절차를 나열하는 행위가 SW교육에서의 절차와 추상화를 가르친다고 생각하는 경우가 많은데, 단순히 그런 활동만 하는 것은 SW교육에서 가르치고자 하는 절차적 사고나 추상화를 가르치고자 하는 것과는 거리가 멀다.

특히, 초중등 SW교육에서 추상화를 가르치고자 한다면, 활동의 말미에는 이런 추상화가 어떻게 자동화와 연결되는지에 대한 내용을 반드시 제시해 주어야 한다.

SW교육에서의 추상화는 일반적인 추상화와 같으나, 다르다.

Sort:  

보드게임 은 많이 들어봤는데 글 말미에 있는 자동화와 연결시켜주는 내용은 어떤게있는지도 궁금하네요.
너무 다 내놓으라고 하는거죠?^^.
좋은 글 잘 읽고 갑니다.

예를 들어 부루마블 게임은 이전부터 있었던 것이고, 절차적 사고는 인류가 문제해결에 사용하던 사고인데, 컴퓨팅 사고력은 여기서 끝나지 않고, 컴퓨터에게 자동으로 계산하는 과정까지 연결해야 하는 것이죠. 단순히 부루마블이나 할리갈리 게임을 하고 절차적 사고를 학습했다고 하면 안된다는 생각입니다.