[Expert Column] 소프트웨어와 창의력
소프트웨어 교육은 필요한가?
2014년부터 IT 업계와 교육계가 주목하는 화두 중 하나는 ‘소프트웨어 교육’이다. 모바일의 급격한 확산과 애플리케이션에 대한 관심이 증가하였으며, 정부의 ‘소프트웨어 중심 사회’ 정책의 발표로 코딩에 대한 열기가 그 어느 때보다 뜨거워졌다. 소프트웨어를 만드는 프로그래밍 교육을 통하여 논리력과 사고력을 키우고, 창의적인 인재를 양성한다는 이야기가 여기저기서 쏟아지고 있는데 과연 소프트웨어 교육이 논리, 사고, 창의에 관한 능력을 키우는데 도움이 되는 것일까?
월간 ‘안’에서는 이 질문에 대한 답을 찾기 위해서 과거와 현재, 소프트웨어와 창의력, 그리고 소프트웨어의 미래에 대해 두 번으로 나누어서 정리하였다.
1회 지금은 소프트웨어의 시대 (2015년 4월호)
2회 소프트웨어와 창의력 (이번 호)
피타고라스의 정리
2014년 8월 세계수학자대회가 서울에서 열렸는데, 이 대회의 주관 방송사였던 EBS는 관련된 시리즈로 5부작 다큐멘터리 <다큐프라임 – 문명과 수학>을 방송하였다. 이 프로그램의 2부 에서는 이집트 피라미드의 높이와 변의 길이를 구하는 고민에서 출발하여 피타고라스의 정리에 대해서 다루었다.
우리나라의 중학교 교과과정에서 배우는 피타고라스의 정리는 c² = a² + b²이라는 공식으로 표현되고 있는데, 직각삼각형의 두 밑변의 길이를 알면 그로부터 나머지 한 변의 길이를 계산할 수 있음을 의미한다. 하지만 교과과정에서 증명하는 방법은 대부분 한 가지만 배우고 만다.
[그림 1] 피타고라스의 정리
실제로 이 정리를 증명하는 방법은 동서양을 막론하고 매우 다양하여 중국의 고대 수학서인 《주비산경》에는 ‘구고현의 정리’라고 불리는 아주 오래된 것부터 피타고라스의 정리와 함께 약 400여 가지가 알려졌다고 한다.
하나의 증명 방법만 알고 있는 대부분의 사람들에게 400이라는 숫자는 비현실적으로 들리지만, 가만히 생각해 보면 우리는 한 가지 방법으로만 생각하고 있다는 뜻이다. 하나의 현상을 설명할 수 있는 방법은 다양한데, 평생 오직 한 가지 방법만 알고 지낸다면 다른 방법에서 보여주는 수 많은 논리와 지식의 폭을 경험할 수 없다고 생각하니 매우 안타까운 일이다.
산업화와 정보화
우리는 왜 다양한 방법 중에서 하나의 방법만을 배우게 된 것일까? 설명할 수 있는 수 많은 논리가 있겠지만, 살아온 시대적 배경이 우리를 그렇게 이끌었다는 점을 설명해 보려고 한다.
산업혁명 이후에 우리는 대량 생산(Mass Production)의 시대를 살아 왔다. 인구가 기하급수적인 그래프를 그리면서 폭발적으로 증가함에 따라 수요를 충족시키기 위한 생산성의 증대가 매우 중요해졌다. 이 시대는 몇 가지 종류의 상품을 대규모로 생산하고 유통하여 같은 것을 소비했다. 이를 위하여 산업 시설을 확장하고 공급량을 늘려서 수요를 뒷받침할 수 있도록 프로세스와 속도가 매우 중요한 시스템으로 자리잡았다. 즉, 최적화되고 정형화된 프로세스와 이를 활용한 생산성 향상이 중요한 관리 목표가 되었고, 커뮤니케이션, 연산, 도식화, 논리적 설계, 우수한 기술의 활용 등이 산업화의 중심이 되면서 국어, 영어, 수학, 과학과 같은 과목이 중시되었다. 또, 이를 실현할 수 있는 대규모 하드웨어 설비, 사회기반 시설, 생산 시설과 운송 역량 등이 확산되었다.
그러나 2000년대 이후에는 속도와 생산성을 추구하던 산업화 시대의 가치는 더 이상 유효하지 않다. 이제 인구가 정체되거나 감소하는 시대가 되었고 더불어 줄어드는 수요와 함께 새로운 방향에 대해 고민해야 하는 시점이 된 것이다.
소수의 상품을 대량으로 생산하던 시대를 지나서 수요가 정체되면 그 동안 소홀히 여기고 있었던 비교적 작지만 나름의 시장을 가지고 있는 작은 수요들을 돌아보게 된다. 이러한 작은 수요들은(대량으로 생산되던 시장과 비교하여) 다양한 모습을 가지고 있다. 예를 들어 컴퓨팅 파워가 중요한 시대에는 얼마나 빠른 CPU와 메모리를 가지고 있는가가 중요한 가치로 작용했다면, 이제는 메모리가 큰 컴퓨팅 파워가 필요한 경우, 그래픽 처리를 더 많이 필요로 하는 경우, 네트워크 속도가 중요한 경우 등 서로 다른 부분이 중요하게 여겨지는 수요들로 나뉘게 되었다.
이러한 시대적 흐름에서는 다양한 것에 대한 정보의 획득이 중요하다. 즉, 산업화 시대에는 같은 정보 혹은 더 많은 정보를 가지는 것이 유리한 반면, 다양성을 중요시하는 현재는 해당 분야에서 필요한 더 좋은 정보를 확보하는 것이 중요해졌다.
다양성의 구체화, 소프트웨어 교육
2014년 포브스가 조사한 세계 브랜드 순위에서 1위는 애플, 2위 마이크로소프트, 3위 코카콜라, 4위 IBM, 5위가 구글로 조사되었다. 코카콜라를 제외하고는 모두 IT 기업이라는 점이 현재를 이끌고 있는 파워가 어디에 있는지를 미루어 짐작할 수 있을 것 같다.
소프트웨어 교육에 대해서 국가별로 관심과 실천 방안들이 나오고 있다. 영국의 경우 2014년을 ‘코드의 해(Year of Code)로 지정하여 코딩 교육의 중요성을 알리고 격려하는 캠페인을 진행했으며, 우리나라의 국어∙영어∙수학 과목처럼 코딩 교육을 필수로 지정하였다. 미국은 버락 오바마 대통령이 Code.org의 캠페인에 참여해 학생들과 함께 코딩을 배우기도 했고, 우리나라도 2014년 7월에 ‘소프트웨어 중심사회’에 관한 정부 주도의 비전을 제시하면서 코딩을 수능에 반영하는 논의가 시작되었다.
애플의 창립자인 스티브 잡스는 “사람들이 프로그래밍을 배워야 하는 이유는 사고하는 법을 배워야 하기 때문이다”라고 하였으며, 미국의 대통령인 버락 오바마도 “코딩을 배우는 것이 개인의 미래를 위해서라기 보다는 자국의 미래를 위해 중요하다”고 말할 만큼 소프트웨어 교육과 사고는 매우 중요하게 이야기되고 있다.
창의적 사고와 경험의 축적
흔히 IQ로 이야기하는 지능 지수는 창의력 지수가 아니다. IQ는 몇 가지 척도(scale)로 구성되어 있는데, 일반적으로 언어력, 수리력, 기억력, 논리력, 공간지각능력 등이다. 언어력은 말이나 글로써 표현하는 능력을 뜻하며, 수리력은 수학적인 계산이나 숫자에 대한 능력, 기억력은 단기나 장기 기억 속에 얼마나 잘 저장하고 인출할 수 있는가에 대한 능력이다. 논리력은 논리적으로 생각하고 표현할 수 있는 능력을 말한다. 공간지각능력은 공간에 대한 이미지와 인식 능력인데 주차를 쉽게 한다거나 도형의 숨겨진 부분을 잘 파악한다거나 하는 능력을 의미한다. 즉, 지능 지수는 사람이 가지고 있는 사고의 체계를 구성하고 있는 요소를 각각 평가하는 지표라는 의미이며, 지능이 높다고 창의적이라는 의미는 아니다.
아르키메데스가 목욕통 속에 앉아 있다가 물이 넘치는 것을 보고 ‘비중’이라는 것을 깨닫고 뛰쳐나오며 ‘유레카!’라고 외쳤다는 이야기는 잘 알려졌다. 그렇다면 창의력, 창의적인 사고는 어디에서 오는 것일까?
인간은 학습이나 독서 등을 통하여 습득하는 지식, 그리고 살면서 겪는 다양한 직∙간접적인 경험, 어떤 문제를 풀고 해결한 결과들을 모아 하나의 개인적인 체계를 갖게 된다. 이러한 체계에 새로운 지식과 경험이 추가되면서 계속 성장해 나가게 되는 것이다. 또한 어떤 임계점을 넘어서게 되면 비로소 새로운 아이디어로 연결되고, 창의적인 사고로 발전하게 된다. 즉, 인간의 지능은 논리와 사고력을 중심으로 성장할 것이고, 여기에 지식과 경험이 누적되면 창의력이라는 새로운 눈을 뜨게 될 것이다. 이런 학습된 경험을 제공하는 방법으로 소프트웨어는 매우 유용한 도구가 될 수 있다.
소프트웨어와 문제 해결 능력
소프트웨어를 통한 학습은 문제를 파악하고 상황을 다양하게 풀어내는 능력을 키우는 좋은 방법이다. 소프트웨어는 문제 해결에 있어서 논리적인 흐름을 따르게 되는데, 흔히 알고리즘이라고 하는 논리의 연속적인 연산 작용을 이용하게 된다. 해결해야 할 문제를 작은 문제들로 나누고, 각각 해결할 수 있는 답을 작성하고, 작은 문제들이 연결되어 원래의 큰 문제를 해결할 수 있도록 맞추어 나가다 보면 결국 처음의 문제를 해결할 수 있게 되는 것이다. 이러한 단계를 거치기 위해서는 문제를 작게 나누고 연결할 수 있는 논리적인 사고와 작은 문제들을 다른 방향에서 바라보면서 해결할 수 있는 창의적인 사고가 필요하다.
소프트웨어는 하드웨어와 달리 프로그래밍 언어로 수정이 가능하도록 유연하게 구성되어 있고, 수정된 코드는 업데이트가 가능하다. 프로그래밍을 시작할 때 처음 배우는 “Hello PC World”를 출력하는 코드는 사실 몇 줄만으로 가능하다. 하지만 작성하는 언어에 따라, 프로그래머에 따라 다른 코드로 작성이 되며, 4~5줄에서 100여 줄까지 길이도 천차만별로 나올 수 있다.
소프트웨어로 코딩을 하는 것은 운영체제 위에서 돌아가는 프로그램, 브라우저에서 돌아가는 프로그램, 데이터베이스를 다루는데 특화된 프로그램 등 다양한 프로그래밍 언어를 가지고 작업을 할 수 있기 때문에, 똑같은 결과물을 보여주더라도 그것을 구현하는 프로그램은 제작자의 논리력과 창의력에 따라 아주 다르게 나올 수밖에 없다.
결론적으로, IT 기술이 우리의 삶에 중요한 부분으로 자리잡게 되면서 소프트웨어에 대한 이해와 교육이 주목받고 있다. 교과과정을 통해서 같은 내용을 배우고 세상에 나와서 활용하던 산업화를 지나서 이제는 다양한 문제를 해결하고 창의적인 사고를 기를 수 있는 소프트웨어의 시대가 되었다. 창의적이라는 것은 지식, 경험, 습관에서 나오는 것이며 이를 키우고 유지하기 위해서는 좋은 업무 환경과 자신의 방식으로 습관을 만들어 가는 것이다. 특히 소프트웨어는 안정된 운영을 중시해야 하는 하드웨어에 비해서 다양한 방법으로 문제를 해결하는 방법을 생각할 수 있게 해주는 가장 좋은 방법이 아닌가 생각한다. @
- AhnLab교육서비스팀 전상수 부장