JIKS 칼럼 연재
코딩교육의 핵심은 알고리즘의 구현이다. 알고리즘은 ‘문제를 해결하기 위한 일련의 방법 및 절차’이다.
가령, 양치를 할 때 ‘칫솔과 치약 준비하기 -> 칫솔에 치약 짜서 바르기 -> 양치질하기 -> 입 헹구기’의 순서가 바뀌면 양치질을 제대로 할 수 없다, 이와 같이, 알고리즘은 문제를 효과적이고, 효율적으로 해결하는 단계적 사고방법이다.
그리고 이러한 알고리즘을 컴퓨터가 이해할 수 있고, 실행할 수 있는 언어로 약속된 방식으로 변환(코딩)하여 만든 결과물이 바로 소프트웨어이다.
그럼 컴퓨터는 어떠한 언어로 어떻게 이루어졌을까? 컴퓨터의 언어(코딩)는 이진표현이다. 원활한 이해를 돕기 위해 아래의 그림으로 설명하고자 한다. 아래의 그림에서 카드 중 몇 개를 뒤집어 놓고서 그 합이 9가 되게 해보자.
카드의 뒷면이 놓여있으면 0으로 표시하고, 카드의 정면이 놓여있으면 1로 표시하도록 약속한다.
이를 컴퓨터 언어로 표현하다면, 숫자 9는 1001이다. (31=11111) 컴퓨터는 0과 1만을 사용하여 숫자, 글, 그림, 영화, 소리 등 모든 데이터를 단지 숫자 두 개로 표현한다.
이를 이진수 체계라고 하고, 컴퓨터는 0과 1의 디지털 개념으로 정보를 해석·처리한다. (참고로, 필자는 부모들이 아이들과 함께 놀이를 통해 컴퓨터의 이진 표현을 익혀보도록 권장하는 바이다.)
알고리즘은 ‘순차, 반복, 조건, 함수’ 구조로 이루어진다. 순차 구조는 컴퓨터에게 명령을 내릴 때 순서대로 하나씩 수행할 수 있도록 만든 구조이며, 알고리즘의 기본이 되는 일반적인 방법이다.
반복구조는 순차 구조에서 반복되는 과정이 포함된 알고리즘 구조를, 조건 구조는 제시된 상황이나 조건에 따라 다른 결과를 선택하게 되는 알고리즘 구조를 각각 뜻한다.
이는 주어진 문제에 따라 순차 구조 내에 반복 구조가 포함되거나, 선택 구조 내에 순차·반복 구조가 포함되는 등 다양한 변형된 구조를 가지게 되기도 한다.
이와 같이 컴퓨터 언어(코딩)를 가지고, 문제를 논리적(알고리즘)으로 해결해 나간 결과물이 소프트웨어이다.
아이들은 코딩 활동을 통해 특정 조건에 따라 움직임, 소리, 모양 등이 변할 수 있도록 알고리즘을 활용하여 제어하면서 게임, 애니메이션 등 상상 속의 다양한 아이디어들을 직접 제작해 나갈 수 있다.
이 과정을 통해 아이들은 스스로 논리적 사고력과 창의력을 키우게 되리라 생각하며, 이것이 코딩 교육의 목적이다.
<저작권자 ⓒ한인포스트, 무단 전재 및 재배포 금지. 인용시 사전허가>