코딩교육 어떻게 할지 막막할 때!
"향후 10년 안에 영국 내 400만개의 일자리 로봇으로 대체될 것" - 영국 가디언-
"미국 2020년 소프트웨어 일자리 100만개 부족" - code.org-
"2018년부터 초중고 코딩교육 의무화" - 교육부-
http://news.naver.com/main/read.nhn?mode=LSD&mid=sec&oid=001&aid=0009588696&sid1=001
> 초등학교는 2019년부터 5∼6학년 실과 과목에서 17시간 이상, 중학교는 2018년부터 정보 과목에서 34시간 이상 SW 교육
> 코딩학원 비용, 지역과 학생 연령별로 다르지만 한 달에 20만∼50만원
> 한 학부모의 인터뷰, "'컴퓨팅적 사고력'을 가르쳐준다느니, 기존에 없던 신개념 수업이라느니 광고 전단지가 집에 많이 들어오는데 컴퓨팅적 사고력이 대체 뭔지 이해가 가지 않을뿐더러, 결국은 교재를 달달 외우는 암기식 교육이 될 것 같아 고민"
http://mn.kbs.co.kr/news/view.do?ncd=3527862
> 서울은 32곳의 코딩학원이 운영되고, 곳곳에 코딩 과외 등이 성행을 하는 등 사교육 시장은 이미 정착 상태
> 하지만 공교육에서는 교사 숫자가 부족하다는 지적. 1개 학교에 0.4명 정도밖에 안 되는 인력. 이를 극복하기 위해 초등교사들에게 60~75시간의 코딩 관련 연수를 받도록 하지만, 이 정도 인력으로 많은 학생들을 커버할 수 있을지 의문
> 창의력에 대한 평가 기준은 모호
코딩 교육의 중요성이 커지고 있는 지금, 학부모 입장에서는 애가 타기만 하실 겁니다.
코딩 교육은 어떻게 시작해야하지?
우리 아이가 뒤처지면 안되는데...
학부모 뿐만 아닙니다. 교사들도 애가 타죠.
코딩이 뭐지?
학생들을 어떻게 가르치지?
고민이 되는건 당연한 겁니다. 왜냐하면 아직 누구도 코딩 교육을 어떻게 하면 좋은지 모르니까요.
현재 우리나라의 코딩 교육 시장은 말 그대로 '춘추전국시대' 입니다. 교육 산업의 특징인지 또는, 아직 코딩 교육 의무화가 시행이 안되어 체계적인 커리큘럼이 없어서 그런지, 방향성없이 유행따라 비슷한 프로그램만 많아지고 있습니다.
코딩 교육에 조금이라도 관심있는 학생, 학부모, 교사라면 다음 용어들 들어보셨을겁니다.
스크래치, 블록코딩, 아두이노, 알고리즘
이 단어들이 코딩 교육에서 최근 가장 이슈가 되고 있는 단어들입니다.
알고리즘 사진 출처 : 인프런(https://www.inflearn.com/course/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B0%95%EC%A2%8C/)
스크래치는 2005년 MIT 에서 개발한 블록 코딩으로 배우는 프로그래밍으로서, 블록의 배치로 코딩을 배울 수 있는 프로그램으로 전세계적으로 가장 많이 사용하는 프로그램 중 하나입니다.
이런 방식의 코딩 교육은 현재 우리나라에서 유아와 초등학생 대상들을 위주로 매우 유행을 타고 있습니다. 대부분의 회사들이 말하는 '블록 코딩'은 스크래치형 프로그램을 말하는 것이죠.
스크래치형 블록코딩을 기반으로 엔트리, code.org 같은 프로그램 뿐만 아니라 이를 응용하여 블록을 조립하여 움직이는 큐브로이드, 앱을 개발하는 앱 인벤터 등이 있습니다.
아두이노는 교육용 개발 보드로, 하드웨어의 작동을 이해하고 학습하기에 좋은 교육 도구입니다. 이를 IoT* 개발 도구라고 부릅니다.
*IoT 란 Internet of Things 의 약자로 사물인터넷이라고도 부릅니다. IoT는 각종 사물에 센서와 통신기능을 장착하여 인터넷에 연결하는 기술입니다. 하지만 IoT 개발은 최근에는 센서 등을 활용하여 하드웨어를 동작하게 만드는 코딩을 뜻합니다. [1]
아두이노는 기본적으로 프로그래밍 언어에 대한 지식이 있어야 합니다. 그리고 하드웨어에 대한 지식도 필요합니다. 그렇기 때문에 주로 프로그래밍과 하드웨어에 대한 기본적인 지식을 배우고자하는 중고등학생을 대상으로 합니다.
아두이노와 유사한 프로그램으로는 레고 마인드스톰 등이 있습니다.
알고리즘은 어떤 문제를 해결하기 위한 방법을 포괄적으로 가리키는 것으로 스크래치 프로젝트를 만드는 것도 프로젝트를 완성하기 위한 방법에 대해 고민을 하는 것이므로 알고리즘을 학습한다고 볼 수 있습니다.
하지만, 여기서 이야기하는 알고리즘은 블록코딩이 아닌 프로그래밍 언어를 활용한 코딩을 통해 주어진 문제를 해결하는 것을 가리킵니다.
*프로그래밍 언어란 C 언어, Java(자바), Python (파이썬)과 같이 프로그램을 만들 때 사용하는 프로그래밍 언어를 말합니다. 프로그래밍 언어에 대해서는 나중에 자세히 다루도록 하겠습니다.
*자료구조란 데이터를 저장하기 위한 방법으로 배열, 스택, 큐 등이 있습니다. 이런 내용에 대해서는 나중에 자세히 다루도록 하겠습니다.
최근에는 웹 상에서 코드를 입력하고 실행시켜 테스트 케이스를 모두 통과하는지 채점을 하여 문제해결을 잘 했는지 확인하는 알고리즘 테스트 웹 사이트들이 많이 생기고 있습니다.
이는 주로 취업을 준비하는 경시대회를 준비하는 학생들이나 소프트웨어 인력을 뽑으려하는 기업들사이에서의 유행입니다.
백준 알고리즘, 삼성 코드그라운드, 삼성 SW Expert Academy, 프로그래머스 등 다양한 알고리즘 웹 사이트가 기업들과 손을 잡고 알고리즘 테스트를 진행하고 있습니다. 일반 사용자들도 문제를 풀고 답을 채점할 수 있습니다.
드론을 활용한 교육, 3D 프린팅을 이용한 교육, 모바일을 이용한 교육 등 다양한 방법을 활용한 코딩 교육이 늘어나고 있습니다.
위에서 다룬 내용은 최근 이슈가 되고 있는 코딩 교육 분야에 대한 것을 말한 것이고, '생활코딩'과 같이 기존에 활성화 되어있는 웹페이지 개발이나 모바일 어플리케이션 교육도 코딩 교육의 일부라고 할 수 있습니다. (웹/앱 개발에 대한 학습 방법은 추후에 다루도록 하겠습니다)
이 글을 읽는 분들이 정말 코딩에 대해서 어떻게 공부할지 모르신다면, 내 상황에 알맞는 학습을 어떻게 시작하면 좋을까요?
다음 글에서는 내 상황에 알맞는 학습법에 대해서 알아보도록 하겠습니다. 그리고 각 학습법에서 사용할 수 있는 좋은 프로그램들을 소개하도록 하겠습니다.
글은 계속 이어집니다~
참고 자료
http://www.irobotnews.com/news/articleView.html?idxno=11793
http://news.hankyung.com/article/2014040405551