학부모들은 내 아이는 프로그래머가 될 것이 아닌데, 왜 코딩교육을 해야 하는가 하는 질문을 한다. 그러면, 필자는 과학자가 되기 위해 과학을 배우고, 수학자가 되려고 수학을 배우는가라고 농을 친다.
이번 칼럼에서는 코딩교육의 목적에 대한 이해를 돕기 위해, 다음과 같은 일화를 들고자 한다.
‘가우스의 계산’으로도 유명한 독일의 대 수학자인 가우스(Gauss, K. Friedrich; 1777~1855)의 소년 시절 이야기이다.
어느 날, 학교에서 선생님이 “1부터 100까지 더하라”는 문제를 냈는데, 가우스는 즉시 “ 선생님, 1에서 100까지 모두 더하면 5,050이 됩니다.” 라고 대답했다. 너무 빠른 계산에 놀란 선생님이 풀이 방법을 묻자, 소년은 아래와 같이 설명했다.
그는 1에서 100을 차례대로 늘어놓은 뒤 다음 줄에는 역순으로 이 수를 늘어 놓고, 대응하는 수끼리 합쳐서 101을 만든다.
그러면, 101이 100개이므로, 101 × 100 = 10100
그런데, 10100은 1에서 100까지를 2개 합친 것이므로,
10100 ÷ 2 = 5050 이 된다는 것이다.
위 풀이과정에서 덧셈, 곱셈, 나눗셈을 못하여 답을 구하지 못하는 경우는 없을 것이다. 문제는 주어진 문제를 1에서 100까지 순차적인 방법으로 덧셈을 할 것인가 아니면 주어진 문제를 다른 시각에서 분석하고, 간단명료한 다른 방법을 찾을 것인가 하는 것이다.
소프트웨어 교육의 핵심은 여기에 있다. 즉, 소프트웨어 교육은 단순한 코딩 기술의 전수가 아니라 컴퓨팅 사고력(Computational Thinking)의 신장인 것이다.
이는 실생활 및 다양한 학문 분야의 복잡한 문제에서 핵심 원리를 찾아 간단한 문제로 추상화하고, 문제 해결의 절차(순서도)를 만들어 논리적으로 해결하는 일련의 사고 과정을 육성해가는 것이다.
그러므로, 현재 뿐만 아니라 미래 사회에서도 중요한 역할을 차지할 컴퓨팅 사고력을 학생들이 체득하고, 활용하기 위해서 다양한 교육 장면에서 컴퓨팅을 활용한 문제 해결 과정의 경험을 폭넓게 경험할 수 있기를 소망한다.
<저작권자 ⓒ한인포스트, 무단 전재 및 재배포 금지. 인용시 사전허가>