코딩에서 가장 중요한 ‘추상화’ 이해할 수 있는 인지발달은 6학년
코딩이란 컴퓨터가 해야 할 일을 수행할 수 있도록 컴퓨터가 이해할 수 있는 언어로 작성하는 작업입니다. 지난 호에서 코딩에 관해 전반적인 설명을 드렸던데 이어 이번 호에서는 코딩을 잘하기 위해 필요한 컴퓨팅 사고력에 대해 소개해드리고자 합니다.
01_컴퓨팅 사고력 (Computational Thinking)이란?
컴퓨팅 사고력이란 좁게는 컴퓨터가 작동하는 방식을 이해하고 컴퓨터를 활용하여 효과적으로 문제를 해결하기 위해 절차적으로 생각할 수 있는 능력을 의미합니다. 넓은 의미로는 논리적인 사고를 통해 문제를 인식하고 해결해 나갈 수 있는 능력입니다.
02_컴퓨팅 사고력은 왜 중요한가?
문제를 인식하고 해결해나가는 과정에서 컴퓨터가 직접 사고하지 않습니다. 결국 문제를 찾고 이를 해결하기 위해 컴퓨터를 활용하여 효율적으로 문제를 다루기 위해 사고하는 것은 사람입니다.
코딩은 문제를 해결하는 과정에서 사람이 하기에 비효율적이거나 실수가 자주 나올 수 있는 부분을 컴퓨터가 보완하고 도울 수 있도록 컴퓨터가 할 수 있는 일들을 작성해두는 활동입니다. 이에 따라 훌륭한 코딩은 잘 발달된 컴퓨팅 사고력 없이 나오기가 상당히 어렵습니다.
게다가 코딩은 직업에 따라 필요가 없는 경우도 많습니다. 하지만 컴퓨팅 사고력이 필요 없는 직업은 미래에 새로 생기는 직업 대부분이 요구하는 기본 능력입니다.
같은 패턴이 반복되는 대부분의 일들은 앞으로 컴퓨터 또는 인공지능이 사람들보다 훨씬 잘 처리할 수 있는 일이기 때문에 컴퓨터가 하기 힘든 문제해결 능력을 갖추는 것이 중요합니다.
결과적으로 컴퓨팅 사고력이 잘 발달된 인재는 컴퓨터의 효율을 최대화하여 더 적은 비용 및 시간으로 문제를 해결할 수 있게 됩니다. 더 좋은 효율이란 더 적은 컴퓨터 리소스와 더 적은 개발 인원 또는 개발 기간, 적은 소프트웨어 업그레이드와 유지 및 보수 비용 등을 의미합니다. 회사가 컴퓨팅 사고력이 잘 발달한 인재를 찾을 수밖에 없는 이유입니다.
03_컴퓨팅 사고력과 추상화
코딩에서 가장 중요한 능력 중 하나는 추상화입니다. 추상화 (Abstraction)는 컴퓨팅 사고력의 중요 요소로서 우리가 생각하는 사고 또는 우리가 보는 사물을 프로그래밍 언어로 표현하는 과정입니다.
교육학계에서는 평균적으로 추상화를 이해할 수 있는 인지발달이 6학년으로 보고 있으며 개발자들이 실제로 일할 때 사용하는 코딩은 초등학생에게 교육하기는 어렵습니다.
예를 들어 초등학교 1학년에게 (코딩에 많은 관심을 보이고 붙들고 있는 아이가 아니라면) 자바 같은 프로그래밍 언어를 가르치는 것은 세 살 아이에게 철학을 가르치는 것과 같습니다.
그렇다면 코딩 교육을 어린 학생들에게 어떻게 적절히 교육할 수 있을까요? 수학 커리큘럼에서 중학교 이후 음수 (Negative Numbers), 변수 (Variables) 및 함수 (Functions) 개념을 배우는 이유는 음수, 변수, 상수 및 함수 개념은 추상화 과정이 필요하기 때문입니다.
그래서 초등학생 때에는 변수 등을 활용하여 문제를 풀기보다는 그림 또는 표 등 시각적으로 표현하여 문제를 해결합니다. 이처럼 코딩을 어린 학생에게 가르치기 위해서는 추상화 과정을 처음에는 단순화하여 교육하기 시작합니다. 대표적으로 MIT에서 만든 코딩 교육용 Scratch가 있습니다.
다음 호에서는 추상화뿐만 아니라 컴퓨팅 사고력을 구성하는 모든 요소에 대하여 설명 드리도록 하겠습니다.
기사제공: SeedTree (0490 420 489)