사고하는 법 가르쳐주는 프로그래밍, 코딩(Coding)

놀뫼신문
2019-08-21


 연무고등학교 코알라동아리 회원들이 새순지역아동센터에서 놀이를 통해 코딩하는 모습



코딩은 결국 기발한 아이디어로 프로그램을 잘 짜는 것이다. 미래 사회에서 꼭 필요한 능력이기도 하다. 그렇다면 언제, 어디서, 어떠한 과정으로 궁극적 목표에 도달할 수 있을까?

작은 아들이 초등학교 1학년 때 수영을 가르치려고 수영반에 접수했다. 아이는 물에서 노는 것을 좋아해서 수영도 즐겁게 배우리라는 기대는 몇 주 후에 실망으로 돌아왔다. 알고 보니 수영 선수를 발탁하기 위해 개설된 반이었다. 취미로 즐겁게 배우라고 신청한 것인데, 엄마의 목표와 기대에 무관하게 지도했던 것이다. 아이를 키우며 그런 경험이나 실수가 나만 있었을까. 그런 경험을 한 다 큰 아들은, 지금도 수영을 배우려 하지 않는다.

모든 교육이 그러하지만 코딩교육은 교육의 적절한 시기와 접근 방법이 매우 중요하다. 그렇다면 코딩을 언제부터 어떻게 접근해야 할까? ‘언플러그드’→ ‘기초 알고리즘’→ ‘교육용 프로그래밍 언어’→ ‘피지컬 컴퓨팅’ 순서로 접근해야 한다.


[언플러그드] 언플러그드 활동부터 시작되어야 한다. 언플러그드란 플러그를 꼽지 않은 상태, 곧 전기를 연결하지 않은 상태를 의미하는 것이다. 그래서 보드게임이나 간단하게 작동하는 로봇 교구를 활동하여 프로그램의 기본 원리와 순차, 반복, 판단과 같은 프로그램의 핵심 원리를 습득해야 한다. 이런 종류의 교구들은 “언플러그드 코딩”를 검색하면 쉽게 찾을 수 있다. 이런 놀이를 했다면 다음으로는?

 

[기초 알고리즘] 기초 알고리즘을 알아야 한다. “알고리즘”이라고 하면 어렵게 느껴진다. 소프트웨어의 기본적인 원리를 쉽고 재미있게 배울 수 있도록 구성해 놓은 사이트가 있다. 엔트리(playentry.org)를 소개한다.

게임을 하듯이 미션을 해결하고 인증서를 받아보자. 엔트리(www.playentry.org)에 접속하여 학습하기→ 엔트리 학습하기→ 주제별 학습과정→ 미션 해결하기→ 자세히 보기 메뉴로 들어가면 된다.(인터넷 접속할 때 최신 버전의 “크롬” 사용을 권장한다. 속도가 빠르고 안정적이다.)

난이도는 ★의 개수로 구분된다. ★☆☆ = 기초, ★★☆ = 중급, ★★★ = 고급이다. <엔트리봇 학교 가는 길>, <로봇 공장>을 해 보면 순차, 반복의 개념을 익힐 수 있다. <샐리를 찾아서>, <헤네시스> 와 같이 ★를 먼저 한다.



참고로 알고리즘을 더 익히고 싶다면 영국에서 운영하는 코드닷오알지(code.org) 사이트에 방문하면 <과정1>, <과정2>, <과정3>, <과정4> 자신에 맞는 과정을 선택하면 된다.


일상에서 알고리즘 배우기 = 아침에 잠에서 깨어 학교까지 가는 과정을 순서대로 생각해 볼까요? 일어난다→ 세수하고 양치한다→ 밥을 먹는다→ 가방을 챙긴다→ 현관을 나선다→ 버스를 탄다→ 학교에 도착한다. 개략적 흐름을 기호로 나타내는 것을 ‘순서도’라고 하고 그 흐름을 “알고리즘”이라 한다.


순차 처리 = 위에 나열된 순서대로 일이 처리된다. 그런 과정을 “순차 처리”라 한다. 여기서 한 가지 집고 넣어가야 할 것이 있다. 밥 먹고, 세수하고, 양치하고, 가방 챙기는 것 등은 개인차가 있어 순서가 바뀌어도 상관없다. 하지만 순서가 바뀌면 안 되는 것이 있다. 무엇이 바뀌면 안 될까. 가방 챙기는 것과 현관 나서는 일이 바뀌었다면 어떻게 될까? 일의 순서가 바뀌면 안 된다는 사실을 쉽게 찾아내고 생각할 수 있다. 무심코 지나치는 일상을 한 번씩 종이에 적어보면 순서가 중요하다는 것을 바로 깨닫게 된다.


반복 처리 = “양치하기”라는 큰 덩어리의 문제를 작게 쪼개 구체적으로 지시해야 한다. 구체적으로 코드를 나열해 볼까? 왼손에 칫솔을 든다→ 오른손으로 치약을 짠다→ 칫솔에 치약을 묻힌다→ 칫솔을 위 아래로 움직여 이 닦는 일을 반복한다→ 3분이 지나면 칫솔을 물에 헹군다→ 컵에 물을 담아 입을 헹군다.


조건 및 선택하기 = 위의 알고리즘에서 3분이 될 때까지 반복하다가 3분이 지나면 반복처리를 멈추고 다음 진행 될 알고리즘을 선택해야 한다.


코딩하기 = 우리는 뇌로 생각하고 행동을 한다. 이때 우리의 일상은 아무런 생각 없이 행동하는 것 같지만 뇌는 모든 기관들이 전달해 주는 정보를 수집하고 판단하여 명령을 내린다. 우리 몸이 움직이는 것은 그 명령대로다. 하지만 로봇은 스스로 정보를 수집하고 판단하여 명령을 지시하지 못한다. 그래서 하나하나 모두 정해줘야 하는데, 정해주는 명령어의 나열을 “코딩”이라 한다.

그럼 모든 일에는 알고리즘이 필수일 터인데 여러분들은 이런 일을 경험한 적이 있나요? 아침 식사로 야채 셀러드와 계란 후라이를 준비하려는데 급한 마음에 후라이팬이 달궈지지 않은 상태에서 계란을 깬 적이 있나요?

지금은 후리이팬 만드는 기술이 좋아져서 그렇게 해도 엉망이 되지 않지만, 예전에 후라이팬은 식용유를 두르고 적당한 시간이 흘러야 계란 후라이가 눌러 붙지 않고 엉망이 되지 않았다. 이것은 코딩이 적절하게 잘 되어 있어야 한다는 의미이다. ‘기계의 성능이 좋다’고 인정받는 것은 ‘코딩이 적절하게 잘 되어 있다’는 의미다. 코딩이 중요하다고 생각하고 강조하는 이유가 여기에 있다. 어떤 문제를 만났을 때 해결해야 하는 방식과 생각해야 하는 방법이 예전과 달라졌기 때문이다.


어떻게 달라졌을까? = 마트에서 일어나는 일을 생각해 보자. 계산기가 처음 나왔을 때 참 편리했다. 하지만 숫자를 일일이 눌러야 하는 일은 시간이 많이 걸려 비효율적이었다. 그래서 빛을 쏘아 정보를 입력하는 바코드가 개발되었고, 일일이 사람이 하던 재고 정리도 자동으로 처리 되어 데이터가 출력된다. 앞으로는 마트에 계산대가 없어질 것이다.


코딩을 배워야 하는 이유 = 마트를 운영하는 것이 소프트웨어나 IT 산업과 관련된 직업이라고 아무도 말하지 않는다.

코딩을 배운 사람과 그렇지 않은 사람이 운영한다면 차이가 날 것이란 생각은, 누구나 할 것이다. 그렇듯 직접적으로 관련된 직업이 아니더라도 코딩을 알아야 미래의 사회에 적응하고 문제를 해결해 나가는 데 도움이 된다. 애플의 창업주인 스티브 잡스가 “누구나 프로그래밍을 배워야 한다. 사고하는 법을 가르쳐주기 때문”이라고 말한 까닭도 여기에 있다.


코딩이 초등학교에서 필수과목이 된 이유 = 초등학교 교육과정에서 코딩 교육은 “컴퓨팅 사고력”을 기르는 데 목적이 있다. 2019년부터 5~6학년 2학기 수업에 17시간이 배정되어 있다. 1주일에 1회씩 4개월에 해당된다. 일각에서는 시간이 많이 부족하다고 한다. 그래서 부모님이 알아야 할 것이 있다.

위의 제시한 과정을 거쳐야만 코딩 교육에 실패하지 않는다. 아이들의 뇌에 컴퓨팅 사고가 되어 있지 않은 상태에서 프로그램 작성으로 들어가면 바로 병목현상에 부딪치게 된다.


컴퓨팅 사고력은 무엇일까? = 복잡한 문제를 효율적으로 다루고 해결하는 사고능력이다. 그렇다면 효율적 해결은 어떻게 하는 것일까?

큰 덩어리의 문제를 작게 쪼개고 어떤 순서로 처리할 것인가를 생각하는 것이 ‘컴퓨팅 사고력’이다. 예를 들어 책 정리를 해보자. 무턱대고 책꽂이에 꽂는 것보다, 먼저 어떤 방식으로 정리를 할 것인지 계획을 세워놓고 책을 정리하는 것이 효율적인 관리가 될 것이다. 그 계획을 할 때 컴퓨터처럼 생각하면 된다.


교육용 프로그래밍 언어 


엔트리에서 <작품 만들기> = 엔트리는 누구나 무료로 소프트웨어 교육을 받을 수 있는 플랫폼이다. 학생들이 소프트웨어를 쉽고 재미있게 학습하고, 선생님들은 효과적으로 학생들을 가르칠 수 있도록 구성된 학습 사이트이다.

유튜브에서 “엔트리”를 검색하면 많은 동영상 강의가 있다. 만들기→ 작품 만들기에서는 미국 MIT에서 개발한 Scratch와 같은 블록형 프로그래밍 언어를 사용하여 프로그래밍을 처음 접하는 사람들도 쉽게 자신만의 창작물을 만들 수 있다. 또한 블록 코딩과 텍스트 코딩의 중간다리 역할을 하는 ‘엔트리파이선’ 모드에서는 텍스트 언어의 구조와 문법을 자연스럽게 익힐 수 있다.


엔트리에서 <공유하기> = 공유하기→ 작품 공유하기에서는 엔트리를 통해 제작한 작품을 다른 사람들과 공유할 수 있다. 또한 공유된 작품이 어떻게 구성되었는지 살펴보고 발전시켜 자신만의 작품을 만들 수 있다. 공동 창작도 가능하여 친구들과 협업해 더 멋진 작품을 만들어 볼 수 있다.

 

피지컬 컴퓨팅

엔트리와 피지컬 컴퓨팅 도구를 연결하면 현실세계와 상호작용하는 멋진 작품들을 만들어낼 수 있다. 이런 과정으로 코딩을 시작한다면 코딩 교육의 미래는 밝을 것이다. 또한 궁극적 목표에 도달하는 것이 어렵지 않다. 경제적 부담도 전혀 없다. 적절한 시기는 언플러그드 놀이를 재미있어할 연령에 시작하면 된다. 코딩 교육을 준비 없이 정규과목에 넣었다고 사교육을 걱정하는 목소리는, 이런 사이트를 활용해 보지 않았기 때문이다. 교육부는 이미 플랫폼을 구축하여 대비하였다.

물론 비싼 교육비로 교육하는 곳도 있다. 비싼 교재와 교구로 구성된 키트를 구입해야 교육이 가능한 곳도 있다. 왜 그런지는 각자 생각해 보자. 팔아야 수익을 만들 수 있기 때문이라고, 나만 그렇게 생각하는 것일까? 교육에는 교육자와 사업자가 있기 마련이다. 교육자와 사업자를 학부모들은 구분하면 좋겠다.

                                     

- 김은(마을교육공동체 사회적협동조합 벌개 이사)