컴퓨팅 파워는 어디까지 발전할까?
시모어 패퍼트(Symour Papert)는 컴퓨팅 사고력(Computational Thinking; 이하 CT)을 아이들이 컴퓨팅을 통해 자신의 아이디어를 표현하고 문제해결하는 데 사용하는 사고력이라고 설명한다.
개인적으로 최초의 컴퓨터 교육자는 패퍼트라고 생각한다.
컴퓨터를 성인대상이 아닌 아이들에게 처음으로 제대로 가르친 인물이기 때문이다.
그의 책 Mindstorms는 부제가 '어린이, 컴퓨터, 배움, 그리고 강력한 아이디어'로 된 것만 봐도 그렇다.
https://product.kyobobook.co.kr/detail/S000001033093
석사공부 때 만났던 패퍼트의 책은 컴퓨터 교육자로서의 가치와 영감을 주었다.
우리나라에서는 절판되었던 책이 40주년 기념판으로 다시 재번역되어 출간되었다.
감사하게도 나도 한국판 부록에서 한국에서의 교육자들이 어떻게 실천하면 좋을지 간단하게 제안한 글을 기고할 수 있었다.
패퍼트의 CT는 표현력(Expression)을 강조한다. 반면 2006년 지넷윙(Jinette Wing)이 이어받아 주장한 CT는 산업계에서의 문제해결력을 강조한다. 윙이 촉발한 CT의 보편화는 K-12 교육에도 영향을 미쳤고, 영국의 2014년 컴퓨팅 교과 신설과 더불어 선진국을 중심으로 초중등 교육에서 필수화 작업이 이루어졌다.
우리나라에서도 2015 개정교육과정을 통해 초등학교 5, 6학년부터 도입을 시작했고, 2022 개정교육과정에서는 더욱 강화하는 추세이다.
CT는 여러 교육기관에서 정의하고 있는데, 공통적인 요소는 추상화와 자동화이다.
추상화의 과정은 문제이해와 분석, 필수요소나 패턴 찾기, 알고리즘 만들기로 이루어지고, 자동화의 과정은 알고리즘의 코드화, 프로그래밍, 디버깅 등으로 구성된다.
이런 과정은 일반적인 문제해결 과정과 크게 다르지 않다. 일반적인 문제해결은 폴리아(https://en.wikipedia.org/wiki/George_P%C3%B3lya)가 주장한 4단계 전략을 사용한다.
문제의 이해 → 계획 수립 → 계획 실행 → 문제해결(반성, 검토)로 이루어진다.
CT도 이와 비슷한데, 계획실행 단계에서 컴퓨터한테 일을 시키는 과정이 포함된다.
도식으로는 다음과 같이 표현할 수 있겠다.
여기서 컴퓨터 파워, 컴퓨팅 파워의 용어가 혼재되는데, 컴퓨터가 작업을 수행하는 과정을 '컴퓨팅'이라고 하면, 컴퓨팅은 하드웨어와 소프트웨어가 동시에 작동해야 하므로 CT를 설명하는 용어로는 컴퓨팅이 더 적당하다.
패퍼트와 윙이 주장한 CT는 최소한 사람이 알고리즘을 만들고, 프로그래밍을 하는 과정이 포함된다.
ChatGPT가 촉발한 지식의 생성 과정을 되짚어 보면 사람이 했던 아이디어 산출이나 피드백을 컴퓨팅이 자동화해 준다.
그렇다면 CT 개념도 변화해야 할까?
ChatGPT를 활용해서 코드를 만들다 보면 위의 단계에서 핵심요소 추출, 알고리즘 만들기, 프로그램 작성, 실행 및 수정(디버깅)의 단계에서 기존에 사람이 했던 일을 맡길 수 있겠다는 생각이 든다. 심지어 문제를 분석 하는 것도 맡겨도 될 듯하다. 그렇다면 이제 CT는 ChatGPT에게 모두 맡겨도 되는가? 사람의 CT는 필요 없는 것일까?
이런 고민은 글쓰기 과정에서도 비슷하게 나타난다.
글감을 정하고, 글의 얼개를 짜고, 중심 문장을 만들고, 세부 내용을 전개하는 모든 과정에서 ChatGPT를 활용할 수 있다. 글쓰기는 ChatGPT에 맡기고 인간은 질문만 하면 될까?
이전의 CT가 추상화 과정은 주로 사람이 담당하고, 자동화 과정에서 컴퓨팅 파워를 활용하는데 국한했다면 ChatGPT를 활용한 CT는 문제해결 모든 과정에서 ChatGPT를 파트너로 두는 버전으로 업그레이드할 수 있다.
컴퓨팅 파워를 이용하지만 또 다른 컴퓨팅 파워인 ChatGPT를 사고의 파트너로 인정하고 활용하는 것이다. 이때, 문제를 발견하고 목적에 맞는 코드를 작성하기 위해 제대로 된 질문을 던지는 것이 필요하다. 이전 CT에서는 알고리즘의 정확성, 코드의 정확성, 적합성, 간결성 등이 중요했다면, CT2.0에서는 문제를 발견하고 출발상태와 목적상태를 제대로 정의하는 것이 더 중요하다. 즉, 문제에 더 집중하게 되고, 컴퓨터와의 소통에 필요한 코드 문법 등은 ChatGPT에게 위임할 수 있는 것이다.
CT를 배울 수 있는 가장 좋은 방법은 아이디어를 구상하고 직접 코드로 짜보는 것이다. 직접 아이디어를 표현하거나 문제해결을 위한 프로그래밍을 해보는 것이 효과적이었는데, 이런 방법이 CT2.0에서도 유효할까?
지금까지의 답은 '유효하다'이다.
유홍준 교수님의 '나의 문화유산 답사기'를 읽었을 때의 충격을 잊을 수 없다. 아는 만큼 보인다. 책을 읽고 나서 방문한 경복궁은 완전 다른 세상이었다. 이전에 볼 수 없던 것들이 보이기 시작했다.
컴퓨팅의 세계도 마찬가지다.
세상의 문제는 컴퓨팅으로 해결하면 효율적이고 효과적인 것도 있지만 그렇지 않은 것들도 있다. 예를 들어 감정과 관련된 문제는 컴퓨팅으로 해결하는 것을 권장하지 않는다.(이것도 어떻게 바뀔지 지켜볼 일이다)
컴퓨팅으로 문제를 해결하다면 보면 어떤 문제를 CT로 해결하면 좋은지 감이 생긴다. 그리고, 어떤 문제를 어떻게 해결하면 좋을지 해결방법에 대한 안목이 생긴다. 이렇게 세상의 문제와 현상을 CT로 바라보는 눈이 생길 때까지는 ChatGPT를 이용하기보다는 스스로 프로그래밍해보는 과정을 가지는 것이 좋겠다.
ChatGPT가 우리보다 글을 더 잘 쓰더라도 여전히 아이들에게는 글쓰기를 가르쳐야 하는 이유와 같다.
CT2.0이 제대로 작동되려면 CT1.0가 장착되어 있어야 한다. CT2.0은 날개를 달고 세상의 문제를 빠른 속도로 해결할 수는 있겠지만 근본적으로 어떤 문제를 해결할지, 왜 그 문제를 컴퓨팅으로 해결하는지, 그래서 어떤 목적을 달성하는지에 대한 부분은 여전히 CT1.0을 통해서 가르치는 것이 좋다. 문제발견부터 디버깅까지 풀 프로세스를 경험하지 못한 CT는 ChatGPT가 주어지더라도 제 기능을 제대로 발휘하지 못할뿐더러 ChatGPT가 잘못된 답을 주더라도 제대로 판단할 수 없기 때문이다.
바라건대 초, 중학교에서는 CT1.0을 가르치고, 고등학교, 대학교에서는 CT2.0을 가르치기를 제안한다.
ChatGPT시대가 도래해도 여전히 CT는 디지털 세상의 문제해결력이다!