// 구글 애드센스
본문 바로가기
매블 프로젝트

[매블 Day_3] 어린이 코딩교육 | 학부모님에게 전하고 싶은 말 1: 코딩교육이 어렵게 느껴지는 이유

by 호두달걀 2022. 3. 2.
반응형

나는 어린이와 청소년 학습자를 대상으로 하는 코딩/소프트웨어 교육콘텐츠를 기획하는 일을 했었다. 그 일을 내려놓으며 '아이들을 학습시키기 전에 학부모들이 알면 좋을 내용들을 정리해야지.'하고 다짐을 했었다. 다짐만 하고 실천하기까지 아주 오랜 시간이 걸렸다. 부족하지만 조금이나마 학부모님들에게 도움이 되길 바라며 적는다.

 

2022년인 지금은 학부모들에게 '코딩교육'이라는 키워드가 제법 익숙해졌다. 코딩교육 외에도 인공지능, 머신러닝, 빅데이터 등 아이들에게 가르쳐야 할 것들이 한 바가지인 것처럼 보인다. 코딩을 배워야 하는 이유가 사고력을 키우고 4차 산업혁명 시대의 인재로 자라기 위해서라고 한다. 쉽게 말해, 코딩교육은 코딩을 잘 하기 위해서 하는 것이 아니라는 뜻이다. 그렇다면 '대체 왜?'라는 의문을 가진 사람들이 많을 것이다. 그래서 나는 코딩교육에 관해 그동안 학부모들에게 전하고 싶던 이야기들을 쉽게 말해 보려 한다.


먼저 코딩과 프로그래밍에는 어떤 차이가 있는지 알아보자. 프로그래밍은 말 그대로 프로그램을 만드는 모든 과정을 말한다. 쉽게 말해 기획부터 결과물을 내는 것을 포괄하는 모든 과정이라 말할 수 있다. 코딩은 컴퓨터 언어인 '코드'를 입력하는 것을 말한다. 즉, 코딩은 프로그래밍의 일부분이다. 프로그램을 만들기 위해 코드를 입력하는 과정을 코딩이라 한다.

 

프로그래밍과 코딩의 목적은 심플하다. 내가 세운 목표를 만들어내는(이루어내는) 것이다. 이 목적을 꼭 기억하길 바란다. 그런데 프로그래밍과 코딩엔 정답이 없다. '정답', 정해진 답이 없다는 뜻이다. 그래서 가르치는 사람도, 배우는 사람도 어렵게 느낄 수 있다. 한 개의 프로그램을 만드는 방법은 여러 가지일 수 있기 때문이다. 예를 들어, 10이 나오는 수식을 '1+9', '5+5', '1+2+3+4' 등으로 만들 수 있는 것과 같다. 우리가 코딩을 배워야 한다고 말하는 이유는 이 여러 가지 방법 중에서 가장 효율적인 방법을 찾기 위해서다.

 

흔히 코딩교육은 논리적 사고 방법을 배우기 위해서 한다고 말한다. 나는 여기서 말하는 논리적 사고를 '절차적 사고', '단계적 사고'라고 표현하고 싶다. 즉, 목표 또는 결과를 만들어내기 위해 타당한 순서(단계)를 찾는다는 것이다. 타당한 순서를 찾기 위해서는 전후/앞뒤 연결고리를 생각해야만 한다. 이 연결고리를 나타내어 설명한 것을 '알고리즘'이라 한다. '실마리에서부터 근거에 의해 그다음 스텝을 연결 짓고, 이 과정을 반복하여 결과 또는 목표를 완성한다' 이것이 논리적 사고 흐름이라 할 수 있겠다. 그래서 어린이들이 보통 '길 찾기'와 같은 형태의 게임을 코딩교육 콘텐츠로 처음 접하고는 한다.(목표까지 도착하는 타당한 순서를 찾는 것이다.)

(이 그림에서 '정답'이 '앞으로 가기를 네 번 반복하기'가 아니냐고 말하는 사람이 있을지 모르겠다.

소피가 집에 도착하는 방법은 '앞으로 가기 1번 - 뒤로 가기 1번 - 앞으로 가기 4번 반복'일 수도,

'앞으로 가기 2번 반복 - 뒤로 가기 1번 - 앞으로 가기 3번 반복'일 수도 있다.

'앞으로 가기를 네 번 반복하기'는 정해진 답이라기보다는 여러 방법 중 가장 효율적인 방법이다.

아까도 말했다시피, 코딩교육의 목적은 수많은 방법들 중에서 가장 효율적인 방법을 찾는 것이다.)   

 

 

출처: 소프트웨어야 놀자 - 소프트웨어 - 기초 영상

https://www.playsw.or.kr/software/view/ebs_software2/613?currentTab=software_basic 

 

 

이 논리적 사고는 파고들면 우리 생활 어디에나 있다. '라면을 끓인다'는 목표를 달성하기 위해서, 라면을 끓이는 절차가 있다.

냄비를 준비한다 → 냄비에 물을 붓는다 → 냄비를 가스레인지 위에 올린다 → 가스레인지의 불을 켠다 → 냄비에 라면수프를 넣는다 → 물이 끓을 때까지 기다린다 → 물이 끓으면 라면을 넣는다 → 3분을 기다린다 → 가스레인지의 불을 끈다 → (후략) 

라면 끓이는 것은 우리에게 너무 익숙해서 단계적으로 사고하지 않고 행동하는 것 같다. 물이 끓을 때 라면을 넣는 이유가 있지만, 딱히 이유를 생각하지 않고 으레 그게 당연하다는 듯 그렇게 한다. 이건 우리에게 익숙해져서 그런 것뿐이다. 아이들이 라면 끓이는 문제와 달리 익숙하지 않은 문제를 맞닥뜨렸을 때, 그 문제를 합리적이고 효율적으로 해결하라고 아이들에게 코딩학습을 시키는 것이다. 큰 목표를 이루기 위해 작은 목표로 단계를 쪼개고, 쪼갠 목표를 달성하기 위한 순서나 근거, 단계를 찾기 위해서 말이다. 

 

지금까지의 설명이 굉장히 장황하게 느껴질 수 있다. 그렇게 느끼는 게 맞다고 본다. 생각보다 코딩교육은 복잡하고 복합적이다. 그래서 단기간에 가시적인 효과가 나타나지 않는다. 나는 코딩교육이 어렵게 느껴지는 또 한 가지 이유로 문화적 분위기를 꼽고 싶다. 전반적으로 우리 사회에서는 '정답'을 요구하는 경향이 있다. 아직까지는 어린 아이들에게도 그러는 것 같다. 보통 사회적인 의미에서 정답은 한 가지로 정해져 있다. 하지만 앞에서도 말했다시피 코딩에 정해진 답은 없다. 우리 사회에서 아이들에게 여러 가지 방법을 생각할 충분한 여유를 허용한다면, 코딩학습의 파생효과는 더 커지리라 생각한다. 또한 굳이 '코딩'이라는 것을 학습하지 않고서도 아이들이 4차 산업혁명 시대의 인재로 자라날 가능성이 무궁하다고 생각한다.

 

앞에서 쉽게 말해 보려 한다고 했지만, 쉽지 않게 느꼈을 수도 있겠다. 나의 부족을 부디 너그러이 이해해주시길 바라며, 다음 시간에는 '코딩을 학습에 활용하는 방법'에 대해 말해볼까 한다. 

반응형

댓글