공부를 시키자니 아이가 안쓰럽고
공부를 안 시키자니 그래도 되나 걱정스럽고..
그래, 어차피 해야 한다면
공부를 즐길 수 있게 도와주자!
이렇게 해서 아이와 즐겁게 공부할 수 있는
여러 가지 방법을 고민해 봤습니다
집집마다 손맛 따라 적당히 간 맞추듯
내 아이에 맞게, 내 걸음에 맞게
적당히 간 맞춰주세요
맛있는 공부 레시피
시작합니다 ^^
------------------------------------------------------
요즘 코딩교육에 대해 여러 가지 이야기들이 있어요. 4차 산업혁명이 다가오니 코딩을 알아야 한다는 이야기도 있고, 학교 공교육에서도 코딩교육을 하니 미리 준비해야 하나 걱정하기도 해요. 저희 아이들도 코딩교육을 어떻게 할지에 대해 많이 알아보기도 하고 간단한 스크래치 같은 것 알려주기도 했는데요. 오늘은 코딩 교육에 대해 한 번 정리를 해보려고 합니다 ^^
4차혁명의 시대, 컴퓨터가 인간의 정신적인 영역을 모방하기 시작하는 시대가 오고 있다고 합니다. 그래서 컴퓨터가 중요해지니 컴퓨터의 언어인 코딩을 배워야 한다고 생각하기도 해요. 하지만 바로 그 인공지능, 생각하는 컴퓨터가 인간의 언어도 번역을 해주고 있는 이 마당에 굳이 컴퓨터의 언어를 배워야만 할까요?
사실 컴퓨터로 필요한 프로그램을 만들기 위해 코딩을 배우는 거라면 코딩교육은 필요없다고 생각합니다
영어나 중국어 같은 외국어도 인공지능이 알아서 번역을 해주는 시대가 열리고 있어요. 인간의 언어도 번역을 하는 마당에 이러이러한 기능을 하는 부분을 컴퓨터의 언어로 번역해주면 좋겠다고 하면 인공지능이 알아서 세부적인 코딩 짜주는 것도 가능하지 않을까 합니다. 그러니 정말 프로그래밍을 하기 위해서라면 코딩교육을 어릴 때부터 할 필요가 없는 거에요.
그럼 대체 코딩을 왜 초등학교 때부터 가르치려고 하는 걸까요? 사실 4차혁명 이야기가 나오기 전부터, 학교 공교육에서 코딩 교육을 하겠다는 이야기가 나오기 전부터 저희 아이들에게는 코딩에 대해 가르쳐줘야지 하고 예전부터 생각하고 있었답니다. 제가 어릴 적 배웠던 GW 베이직이, 그 알고리즘을 짜는 논리적인 과정이, 컴퓨터와 전혀 상관 없는 직업을 가진 지금까지도 굉장히 큰 영향을 미치고 있고, 그 때 배운 것을 아이들에게 가르쳐주고 싶었거든요 ^^
<코딩 교육, 왜 필요할까?>
한 마디로 정리하자면 코딩을 배우는 이유는 알고리즘을 배우기 위해서에요. 그런데 이 알고리즘이라는 것도 조금 구체적으로 들어가야 할 것 같아요. 요즘 인공지능 쪽 공부를 조금 해보다 보니 저처럼 문외한(ㅋㅋ)은 몰랐던 걸 알게 되었는데요. 알고리즘에서도 이미 다른 사람들이 연구해놓았던 알고리즘에 이름을 붙여서 문제를 해결하는 다양한 알고리즘을 공부하기도 하더라구요? 제가 말하는 알고리즘은 이게 아니라 진짜로 문제를 해결하기 위해 논리적으로 실행 단계를 세우는 방법으로써의 알고리즘이에요 ^^
일단 어떤 문제를 해결하기 위해 코딩을 한다고 하면, 문제에서 나온 목표가 구체적으로 무엇인지를 정확하게 알아야 해요. 이건 수학 문제 풀 때 대충 아무 숫자나 계산해버리면 안되고 정확하게 구해야 하는 답이 무엇인지 알아야 하는 것과 비슷하죠? ㅎㅎ 그리고 그 구체적인 목표를 달성했는지 여부를 객관적으로 표시할 수 있도록 기준을 정해야 해요. 목표를 "잘" 하거나 "적당히" 하라고 하면 컴퓨터는 못 알아듣죠 ^^;
구체적인 목표를 정했다면 그 목표로 가기위한 세부적인 단계를 정해야 해요. 그 목표를 이루기 위한 세부 목표를 정한다고 생각하면 좋아요. 그렇게 단계 단계 나누어진 것들을 코딩해서 각 단계를 논리적으로 결합하면 드디어 문제를 해결하는 코딩이 완성되는 거죠!
목표를 구체적으로 설정하고, 세부적인 목표로 나눈다. 그리고 평가 가능한 객관적인 지표를 만들고 단계적으로 만들어간다. 이거... 어디서 많이 들어본 것 같지 않으세요? 자기계발서에서 꿈을 이루기 위해서는 꿈을 구체적으로 설정하고 작은 단계로 나눠서 조금씩 실천해가라고 하는 내용 많이 봤던 것 같아요. 그리고 실제로 이 방법을 코딩 말고 생활 속에서 적용해보면 정말 강력한 효과를 나타내는 방법이기도 했습니다. 제가 아이들에게 가르쳐주고 싶었던 것은 바로 이 부분이었어요.
사실 컴퓨터를 통해 배우긴 했고 지금도 생활 속에서 문제 해결을 위해 계속 사용하고 있는 내용이지만 현재 저는 컴퓨터 코딩은 전혀 하지 못해요 ㅋㅋㅋ 그렇다면 굳이 이걸 배우기 위해 코딩이 필수적으로 꼭 필요한 것 같지는 않아요. 만일 코딩을 너무너무 싫어하는 아이가 있다면 굳이 코딩으로 이걸 가르칠 필요는 없을 것 같습니다. 다른 방법으로도 배울 수 있으니까요. 다만 이건 코딩으로 배우면 굉장히 편한데요. 왜냐하면 컴퓨터는 바보여서 이 과정을 아이들에게 매우 빠르고 엄격하게 알려줄 수 있거든요 ㅋㅋㅋㅋ
인공지능 말고 아직까지 일반적인 컴퓨터는 명령어를 통해 문제를 해결합니다. 이 명령어나 그 전개하는 논리가 어긋나면 에러가 나는데요. 모니터 밖의 작성자가 아이라고 해서 봐줄 수 없어요. 컴퓨터는 그런 거 모르거든요 ㅋㅋㅋ 그리고 잘못된 논리로 코딩을 하면 즉각적인 피드백이 나옵니다. 에러 메세지가 뜨면 머리를 움켜잡고 대체 어디에서 무엇이 잘못된 것인지 찾아내서 고쳐야만 해요. 그래서 잘 되면 또 즉각적으로 목표 달성의 피드백을 받을 수 있죠!
실생활에서 목표를 구체적으로 설정하고 단계적으로 나누어서 실행해보는 것은 컴퓨터만큼 즉각적이고 분명한 피드백을 주지 못해요. 사실 이 과정은 실생활에서는 매우 천천히 일어나는 과정이기도 하고 우리 주변의 사람들은 "적당히"나 "잘" 같은 구체적이지 않은 내용도 너무 잘 알아들어서 논리적이지 않아도 대충 굴러가요. 하다보면 중간에 정했던 기준점이 좀 흐려지기도 하구요. 그래서 저는 아이들에게 코딩교육을 해주고 싶었습니다
아이들 훈육할 때에도 엄격한 기준이 있어야 한다고 하지요? 엄격함은 무서운 게 아니에요. 눈을 무섭게 치뜨고 큰 소리로 말하는 게 엄격한 게 아니라 기준이 그 어떤 때에도 흔들리지 않는게 엄격한 거에요. 하지만 아이들이 칭얼대거나 열심히 여러 번 했는데도 잘 안되면 우리는 흔들리기도 해요. 그만하면 됐다 하고 기준을 완화해주기도 하죠. 컴퓨터는 그걸 할 수 없고, 컴퓨터가 봐줄 수 없다는 사실, 아무리 떼 써도 들어줄 수 없다는 사실을 아이들도 잘 알고 있지요. 세상 그 무엇보다 엄격한 선생님입니다 ㅎ
또 잘못하면 에러 메세지가 바로 나오니 논리가 잘못되었다는 사실을 즉각적으로 알 수 있는데요. 제대로 논리적으로 알고리즘을 짜면 성공했다는 것도 즉각적으로 알 수 있어서 좋아요! 과정과 결과에 대해 이토록 명확하고 빠르게 배울 수 있는 것도 드물 것 같아요. 또 부담 없이 에러를 여러 번 할 수 있는 것, 마음껏 실수할 수 있다는 것도 장점이에요. 달리기를 잘하기 위해 연습하면 넘어지는 에러나 나오면 아프지만, 컴퓨터 코딩에서 에러 메세지가 나는 건 거의 타격없이 바로 그냥 다시 고치면 되거든요. 빠른 피드백과 별 타격 없는 에러 덕분에 마음껏 실수하고 실패해 볼 수 있는 것도 장점인 것 같아요
이런 여러 가지 이유로 아이가 즐겁게 코딩을 해볼 수만 있다면 코딩교육은 유용한 것 같습니다. 뭐 코딩을 싫어한다면 다른 것으로도 대체 가능하지만 코딩을 통해 배우면 아이도 부모도 매우 편하거든요. 그래서 저희 아이들에게는 요즘 즐겁게 코딩을 접할 수 있게 해주고 있답니다. 이제 조금 더 커서 제대로 알고리즘을 만들 수 있게 되면 그때부터 본격적으로 코딩 교육을 해볼 생각입니다 ^^
<코딩 교육, 어떻게 할까?>
그럼 코딩교육은 어떻게 해야 할까요? 기본적으로 이건 컴퓨터 언어를 배운다거나 알고리즘의 종류나 기법을 배우는 게 목적이 아니라고 생각해요. 아이가 세상을 살아가면서 문제를 해결하는 과정에 사용할 수 있는 알고리즘을 짜는 방법을 배우는 것이 목표입니다. 그러기 위해서 저희 아이들에게는 다음과 같은 원칙을 기본으로 코딩교육을 시키기로 했습니다
1. 즐겁게 배우기
아이들의 다양한 사고를 가르쳐주기 위한 것이니 일단 즐거워야 할 것 같아요! 재미가 없어지고 해야하는 숙제가 되는 순간 아이의 생각은 닫힙니다. 그러니 그 무엇보다도 즐거운 시간이 되도록 하는 것에 중점을 두려고 합니다. 그래야 아이가 스스로 생각하며 진짜 문제 해결을 위해 어떻게 해야 할지 열심히 궁리해 볼 수 있을 것 같아요~
2. 다양한 가능성 열어놓기
코딩에 대해 이것 저것 알아보다 정보 올림피아드라는 것이 있다는 것도 알게 되었어요. 호기심에 찾아보다가 같은 문제를 해결 하더라도 효율적으로 만들면, 즉 코딩한 줄이 짧으면 점수를 더 받는다는 사실에 충격을 받았습니다;;; 음.. 줄이 짧으면 보다 머리를 굴려 효율적인 방법을 찾아낸 게 맞으니 더 효율적이란 건 맞는 말 같아요. 하지만 코딩교육에서 제가 알려주고 싶었던 것은 한 가지 목표를 향해 가는 백 가지 길이 있고, 그 모든 것이 모두 정답이라는 사실이었어요. 여기에서도 더 많은 점수를 받는 방법이 있고, 그렇지 않은 방법이 있다는 사실이 좀 충격적이었는데.. 그래서 아이들에게는 그냥 마음껏 놀이처럼 해보고, 아이가 해 낸 그 어떤 방법도 다 잘한 것이라고 이야기 해 줄 예정입니다. 비효율 백만 퍼센트(?) 라고 해도 해냈다는 것만으로도 무한 칭찬해주며 진행할 예정입니다! ㅋㅋㅋ
어딘가에서 누군가 파워포인트에 동영상 넣는 방법을 물어본 것에 대한 굉장한 대답을 봤어요. 검은 색 네모를 하나 넣어놓고 발표할 때 그거 클릭 해본 다음 "어, 안되네요?" 라고 하며 자연스럽게 그냥 바깥 쪽 폴더에서 동영상을 틀어주라고 하더라구요? ㅋㅋㅋㅋㅋㅋ 진짜 동영상을 넣는 방법은 아니었지만 그 상황을 타개할 수 있는 반짝이는 아이디어에 무한한 경의를 표합니다! 진정한 알고리즘 교육이라면 컴퓨터로 프로그램을 만드는 것에 국한하지 않고 그것만으로 해결이 안되는 것은 인간의 활동까지 연장해서 코딩할 수 있다면 좋겠다고 생각해요. 그런 면에서 저 네모칸 아이디어는 컴퓨터 점수로는 엉망이겠지만 제가 생각하는 알고리즘 측면에서는 만점을 주고 싶습니다!
3. 충분한 시간과 자유롭게 생각할 여유 주기
아이가 생각이 자라나려면 어려운 문제를 풀고 있을 때 충분한 시간을 주고 자유롭게 생각할 수 있게 해줘야 해요. 사실 어려운 수학 문제 풀기도 이런 생각하는 힘을 길러주는 역할을 하는데요. 사실 수학은 배워야 하는 내용이 있으니 어느 정도 하다 안되면 방법을 알려주게 돼요 ㅠㅠ 익혀야 할 내용이 있고 그걸 범위 안의 내용은 다 알아야만 하니까요. 하지만 코딩은 적어도 지금까지는 그럴 필요가 없다는 게 장점입니다! 코딩에 있어서 어떤 진도 나갈 범위가 있는 것도 아니고 특정 내용 몰라도 상관 없어요! 그러니 그냥 무한히 즐겁게 생각할 시간을 줄 수 있고, 정해진 방식으로 풀지 않아도 됩니다. 게다가 엄마가 코딩을 모르면 그것도 장점이에요. 그러면 아이가 무엇을 만들어와도 그냥 진짜로 놀라며 감탄해줄 수 있거든요! ㅋㅋㅋㅋㅋ
4. 변형해서 해보도록 유도해주기
아이가 어떤 문제에 대해 코딩으로 만들어오면 그 방법에 감탄하면서 이런 것도 되는지 물어보면서 변형해보는 걸 유도해보는 것도 좋은 것 같아요. 엄마가 코딩에 대해 잘 몰라도 됩니다. 그저 아이가 만든 것 보며 궁금해 하면서 약간 변형시킬 수 있는지 아이에게 질문을 던져주면 될 것 같아요ㅎ 만일 그게 불가능한 일이어서 답이 없어도 괜찮습니다. 어떤 일이 주어진 조건으로는 불가능한지 여부를 판단하는 것도 좋은 배움이라고 생각하니까요. 그리고 컴퓨터 내에서 지금은 불가능하더라도 어떻게하면 나중에 가능하게 할 수 있을지, 혹은 컴퓨터 외의 것을 이용해 가능하게 하는 방법이 있을지 생각해보면 융합적 사고 발달에도 좋을 것 같습니다 ^^
5. 친구들과 협동해서 만들기
이건 나중에 이 블로그의 프로젝트로도 해보고 싶어요 ㅎㅎ 혼자서도 할 수 있는 소규모 코딩을 해보다가 여러 명이 만든 것 합쳐서 하나의 커다란 프로그램이 되도록 만들어보면 그것도 재밌을 것 같아요! 그러면서 서로 소통해야 하는 부분, 연결고리 통합하는 부분, 다른 사람이 만든 알고리즘과 호환이 되도록 조정하는 것 등을 조율하면서 서로 협력하여 하나의 커다란 결과물을 만들어 볼 수 있을 것 같아요. 그걸 통해 서로 협력하는 과정에 대해 많은 것을 배울 수 있을 것 같습니다 ^^
<코딩교육, 구체적인 계획>
지금까지 코딩교육에 대한 생각 말씀드렸는데요. 저희 아이들 요새 하고 있는 것과 앞으로의 계획에 대해 말씀드려볼게요 ^^ 요즘은 스크래치로 조금씩 놀아보고 있는데요. 진짜로 코딩을 해보기보다는 그냥 놀고 있답니다;;;; 한 번 튜토리알 따라하면서 하는 것 봤는데.. 음.. 아직은 머리가 좀 더 여물면 시키는 게 나을 것 같아 보여서 그냥 재미 삼아 만져보는 정도만 하고 있습니다 ^^
나중에 학교 공교육에서는 엔트리를 한다고 들었는데 실제로 어떻게 진행이 될 지는 잘 모르겠어요. 하지만 대충 살펴보니 미리 뭘 배우거나 준비하지 않아도 괜찮을 것 같아요 ^^ 나중에 학교에서 배우기 시작하고, 아이가 정말 코딩에도 관심이 있다면 파이썬 쪽을 배워도 좋을 것 같은데요. 엔트리를 하면서 파이썬 코딩도 볼 수 있는 프로그램도 있다고 하니 나중에는 엔트리와 파이썬으로 공부를 해봐도 될 것 같아요 ^^ (아, 스크래치나 엔트리는 블록 같은 명령어 조각을 마우스로 끌어와서 조립하듯 코딩을 하는 방식이고, 파이썬은 명령어를 외워서 타이핑을 해서 코딩을 하는 방식입니다 ^^)
코딩교육은 언제부터 할까 하는 것도 많이들 고민하시는 내용인데요. 초등 저학년은 재미나게 노출 정도 해줘도 되고 안해줘도 될 것 같아요 ^^; 어차피 제대로 알고리즘을 짜서 논리적으로 만드는 것은 좀 더 논리적인 사고가 가능해진 다음, 초등 고학년 정도서부터나 가능할 것 같습니다. 그래서 학교에서도 고학년부터 코딩 교육을 하는 것 같아요. 저희 아이는 빠르면 올해 겨울방학이나 내년 여름방학 쯤 집에서 코딩 교육 다시 한 번 시도해볼까 생각 중입니다 ^^
코딩 로봇도 여러 가지 종류가 나와있는데요. 이건 유아나 초등 저학년 흥미 유발용으로는 괜찮은 것 같아요. 그러나 고학년이 가지고 놀기에는 너무 간단해서 고학년의 경우 그냥 스크래치나 엔트리가 좋을 것 같습니다.
에구구.. 이야기 하다 보니 또 길어졌네요. 오늘은 코딩교육에 대해 이쯤 정리해보도록 하구요. 예전에 코딩에 관해 올렸던 글 혹시나 도움될까 몰라 목록 다시 올려봅니다. 그럼 다음에 또 재미난 이야기 가지고 올게요~ ^^
4차혁명 시대의 교육 (2) - 코딩과 타로, 인문학에 대하여
오늘 내용이 재밌으셨다면
요기 아래 공감 버튼 눌러주세요~
(로그인 하지 않아도 누르실 수 있답니다 ^^)
↓↓↓↓↓
'컴퓨터 코딩 레시피' 카테고리의 다른 글
[초등 코딩교육] 스크래치 vs. 엔트리 (27) | 2018.04.12 |
---|---|
[코딩교육 자료] 엔트리 자료 모음 (18) | 2018.03.28 |
코드 아카데미로 파이썬 배우기 (24) | 2017.09.16 |
코딩 로봇 관련 자료 모아봤어요 (27) | 2017.08.14 |
코딩교육 사이트 살펴보기 (26) | 2017.07.29 |