IT Life

어렵고 복잡한 코딩. 교육용 프로그래밍으로 재미있게 배우자!

2016.05.18 10:00

안녕하세요 LG CNS 대학생 기자단 박찬호입니다.


알파고와 이세돌 9단의 대국결과는 세상을 뒤집어 놓을 만큼의 커다란 파장을 가져왔습니다. 4:1이라는 알파고의 압도적 승리로 끝이 나면서, 인공지능과 소프트웨어에 대한 관심이 어느 때보다 뜨거워지고 있는데요. 소프트웨어 시장이 다시 주목 받게 되면서, 소프트웨어 교육산업도 함께 부흥기를 맞고 있습니다.


오늘은 날로 발전하는 소프트웨어 교육산업과 앞으로의 전망에 대해서 알아보겠습니다.

 

 

 소프트웨어 교육, 왜 필요한 걸까?


먼저 소프트웨어는 컴퓨터 프로그래밍 언어를 통해서 구현이 되는데요. 따라서 소프트웨어를 이해하기 위해서는 우선적으로 프로그래밍에 대한 이해가 필요합니다.


프로그래밍 언어에 대해 알고 계신가요? C언어 자바, 루비와 같이 수 많은 컴퓨터 언어들이 존재하는데요. 각 프로그래밍 언어들은 함수를 통한 사용방법이 조금씩 다를 뿐 아니라 컴퓨터 언어 그 자체가 인간의 사고와는 다른 방식을 갖기 때문에, 프로그래밍을 처음 접하는 사람들은 그 특성을 이해하기가 매우 어려웠습니다. 사람들은 이런 어려움을 해결하고자 소프트웨어 교육을 통해 컴퓨터와의 괴리감을 없애고자 노력하게 되었습니다.


2000년대의 인터넷과 2010년도의 모바일 플랫폼의 변화는 사람들의 소비, 사고, 문화의 패턴을 바꾸기 시작했습니다. 그 결과 컴퓨터를 활용하는 정보통신산업이 현재의 그리고 앞으로 산업 흐름의 주역임을 증명하는 사례가 되었습니다. 


결국엔 컴퓨터에 대한 인식이 뛰어난 사람이 앞으로의 산업에 우위를 점하는 분위기로 흘러가고 있어 소프트웨어 산업과 교육이 그 어느 때보다 중요해진 것입니다.


 국내 소프트웨어 교육


소프트웨어는 그리 길지 않은 역사를 가지고 있는데요. 2000년대 이래로 하드웨어의 급격한 발전은 인터넷을 통한 네트워크 통신의 일상화를 가져왔고, 그에 따라 소프트웨어의 인식도 높아지게 되었습니다.


이처럼 빠른 속도로 떠오른 소프트웨어의 중요성은 당시 사람들에겐 쉽게 받아들여지지 않았고,선진국들도 이런 기술을 바로 도입하는 것이 쉽지 않은 일이었습니다. 성장동력이 2차 생산산업이었던 우리나라와 같은 국가들은 이것의 중요성에 대한 인식조차 할 수 없었죠. 


2010년도에 들어 우리 정부는 소프트웨어 교육을 대대적으로 실시하면서, 그 격차를 줄이려고 노력하고 있는데요. 하지만 급격한 소프트웨어 교육의 실시는 무리한 시도로 느껴졌고, 실제로 많은 어려움을 겪고 있습니다. 그중 대표적인 문제가 소프트웨어 교육이 가능한 인원의 부족과 해외에 비해 절대적으로 낮은 의무 교육 이수 시간인 것으로 파악되고 있습니다.


 교육용 플랫폼의 활용 방안


교육부와 미래창조과학부는 최근 소프트웨어 교육 필수화 준비를 위한 신규 소프트웨어 교육 선도 학교를 발표했습니다. 이에 따라 의무 교육시간 배정과 단계적 교육에 대한 부분은 정부의 소프트웨어 육성 정책 아래 어느 정도 가닥이 잡힐 것이라 예상되고 있습니다. 하지만 소프트웨어 교육 전문지식인원의 부족이나 어느 매체를 통해 교육할 것인지는 아직도 불분명한 것으로 보입니다.


이러한 부분은 소프트웨어 교육용 플랫폼을 적극적으로 활용하여 해결할 수 있을 것으로 기대되는데요. 프로그래밍을 배우려고 하던 사람들의 가장 큰 진입장벽이던 함수를 익히는 시간을 줄여 누구라도 교육할 수 있게 함으로써 당장 소프트웨어 교육 인력이 부족한 우리나라에 적절한 돌파구를 제시할 수 있을 것입니다. 

 

 소프트웨어 교육용 플랫폼


컴퓨터적 사고(Computational Thinking: CT)를 강화하기 위한 여러 교육용 프로그램들이 개발되고 있습니다. 이들은 기존에 가진 컴퓨터 언어의 딱딱함을 없애고 직관적인 흥미를 자극하여 동기를 부여하는 것을 목적으로 하고 있는데요. 최근 주목 받는 교육용 플랫폼들을 소개해 드리겠습니다. 

 

l 엔트리의 구동 장면 (출처: www.play-entry.org/#!)

 

① “엔트리” 문장을 통한 절차적 사고의 확립

 

먼저 소개해드릴 것은 엔트리교육연구소의 코딩 교육 플랫폼 엔트리(Entry)인데요. 엔트리는 기존 언어들과는 다르게 UI(User Interface)[각주:1]의 확장성을 높여 좀 더 친근감 있게 다가가는 방식을 택하고 있습니다. 


엔트리를 시작하면 여러 문장들을 마우스로 선택할 수 있는데요. 기존에는 소프트웨어를 제작하기 위해 해당 언어에 맞는 함수를 익혀야 하고 언어를 작성하는 데에도 오타를 허용하지 않는 등의 많은 제약이 있었습니다. 하지만 엔트리는 사용자의 직관성을 높여 단순히 마우스 클릭과 이동만으로도 다양한 함수를 구현할 수 있어 쉽고 재미있게 코딩을 배울 수 있습니다. 


또한 엔트리는 학교 수업에서 사용할 수 있는 교육자료를 제공하며 인터넷이 연결되지 않는 환경에서도 이용할 수 있는 ‘엔트리 오프라인 에디터’ 기능도 있습니다. 

 

② MIT 미디어랩의 “스크래치”

 

l 스크래치(출처: https://scratch.mit.edu)

 

다음은 엔트리와 같은 ‘비주얼 프로그래밍 플랫폼’ 형태를 보이는 MIT 미디어랩(MIT Media Labs)의 스크래치(Scratch)입니다. 엔트리와 스크래치 모두 스몰토크(Small Talk)라는 동적형 객체지향언어를 바탕으로 하며, 이미지 기반이기 때문에 함수를 따로 익히지 않아도 사용할 수 있는데요.


스크래치는 여기서 더 나아가 밑에 다루게 될 아두이노(Arduino)와 호환이 가능해 작은 ICT(Information Communication Technology)[각주:2]를 구현할 수 있다는 점에서 앞으로는 더 다양한 분야에 사용될 것이라고 예상되고 있습니다.

 

l 아두이노 (출처: www.arduino.cc)

 

③ “아두이노” ICT는 내 앞에!

 

아두이노는 2005년 이탈리아 회사의 마시모 반지(Massimo Banzi) 프로젝트에서 처음으로 개발되었습니다. 아두이노는 AVR이라는 개발환경(IDE) 속 JAVA와 C를 활용하여 ICT를 구현하는 크로스 플랫폼 응용 소프트웨어인데요. 하드웨어를 보다 쉽게 제어할 수 있는 미니 컴퓨터라고 할 수 있습니다. 


이렇게 하드웨어를 결합한 기술을 피지컬(Physical) 컴퓨팅 개발환경이라고 하며, 우리가 추상적으로만 바라보던 사물인터넷(IoT) 기술을 보다 직접적으로 체험할 수 있다는 장점을 가지고 있습니다. 

 

l 보드게임에 아두이노를 활용하는 장면 (출처: www.arduino.cc)

 

위 사진은 손가락 축구게임에 아두이노 센서를 활용한 점수가 표시되는 장면인데요. 물리적 환경에서의 자극을 탐지하고 이를 컴퓨터 환경언어로 바꿔주며 프로그래밍적 사고를 현실의 물리현상으로 바꿔주는 것이 아두이노의 궁극적 목표라고 할 수 있습니다.

 

④ 비봇, 친근한 장난감을 통한 사고의 증진

 

l 비봇(출처: www.bee-bot.us/)


컴퓨터적 사고의 교육을 조기에 돕는 기술들도 존재합니다. 영국에 가장 대표적 소프트웨어 교구인 비봇(Beebot)인데요. 아이들에게 친근한 꿀벌이 둥그렇게 누워 있는 모습의 이 제품은 몸체에 4개의 방향 버튼과 정지, 취소 등 총 7개의 버튼이 있습니다. 지도에 비봇이 도달해야 할 목표 지점을 지정하면 아이들은 버튼을 눌러 비봇의 방향과 순서를 정하고, 명령어를 입력하는 방식으로 동작을 하게 됩니다. 어린아이들은 장난감을 통해 어려서부터 컴퓨터와의 상호작용을 이해하고 체감할 수 있는 것입니다.


지금까지 우리나라 소프트웨어 교육의 현황과 현재 교육용 플랫폼 산업 그리고 교육용 플랫폼의 활용 방안까지 알아보았는데요. 우리나라도 소프트웨어 교육에 박차를 가함에 따라 앞으로는 교육용 플랫폼들을 좀 더 쉽게 접하게 될 것이라고 예상하고 있습니다.


교육용 플랫폼의 보편화를 통해 ‘소프트웨어를 제작하려면 복잡한 프로그래밍 언어나 자료구조와 같은 전문 지식을 무조건 배워야 한다’라는 인식을 크게 바꾸고, 교육용 플랫폼이라는 튼튼한 자양분을 바탕으로 한국에도 제2의 마크 주커버그나 빌게이츠가 탄생하기를 기대해 봅니다.

 


* 해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 LG CNS 블로그에 저작권이 있습니다.

* 해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.



  1. UI: 사용자 인터페이스(user interface)는 사람(사용자)과 사물 또는 시스템, 특히 기계, 컴퓨터 프로그램 등 사이에서 의사소통을 할 수 있도록 일시적 또는 영구적인 접근을 목적으로 만들어진 물리적, 가상적 매개체를 뜻한다. 사용자 인터페이스는 사람들이 컴퓨터와 상호 작용하는 시스템이다. 사용자 인터페이스는 물리적인 하드웨어와 논리적인 소프트웨어 요소를 포함한다. [위키백과] [본문으로]
  2. 정보통신기술(ICT): 정보 기술(Information Technology)과 통신 기술(Communication Technology)을 합한 말로 정보 기기의 하드웨어, 운영, 정보 관리에 필요한 소프트웨어 기술과 이들 기술을 이용하여 정보를 수집, 생산, 가공, 보존, 전달, 활용하는 모든 방법으로서 자기에서 필요한 자료를 수집하고, 가공하고, 재창출하기 위해서 필요한 과학적 지식과 관련한 분야이다. [네이버 지식백과] [본문으로]
Posted by IT로 만드는 새로운 미래를 열어갑니다 LG CNS

댓글을 달아 주세요

  1. Favicon of http://blog.naver.com/kdzdsyygijfs?63949 BlogIcon 좋은날 2016.06.08 08:33  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 잘보고 갑니다

  2. Favicon of http://blog.naver.com/aa105969?17339 BlogIcon 가을하늘 2016.06.08 13:46  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 잘보고 갑니다

  3. Favicon of http://blog.naver.com/aa_fish_man1?64485 BlogIcon 가을하늘 2016.06.08 14:05  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 잘보고 갑니다

  4. Favicon of http://blog.naver.com/shegirl1003?119403 BlogIcon 겨울비 2016.06.08 14:13  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 잘보고 갑니다

  5. Favicon of http://blog.naver.com/aa_fish_man?45784 BlogIcon 겨울비 2016.06.08 14:17  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 잘보고 갑니다

  6. Favicon of http://blog.naver.com/happyhansang?84775 BlogIcon 반가 2016.06.11 19:31  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 잘보고 갑니다

위로