2017.11.16

이재용 칼럼 | 4차 산업혁명 시대의 프로그래밍 교육

이재용 | CIO KR
IT 전공이 아닌 전문가도 인공지능 프로그래밍을 하는 4차 산업혁명시대를 맞이했다. 이제는 대중에게 적용할 수 있는 프로그래밍 교육 모델이 절실히 필요하게 됐다. 이번 컬럼에서는 프로그래밍에서의 심리학적 방법론과 미국에서 진행되고 있는 새로운 교육 시스템을 통하여 우리나라에 적합한 프로그래밍 교육 모델을 생각해 본다.

컴퓨터 발전 초기의 3가지 접근법
컴퓨터가 개발되는 초기에 프로그램 작성의 문제를 사람(Person)의 문제, 과정(Process)의 문제, 기술(Technology)의 문제로 구분했다. 과정(Process)은 소프트웨어 공학의 발전으로 크게 진보했으며, 기술(Technology)도 다양한 프로그래밍 언어와 디버깅 툴, 통신에 적합한 기능, 데이터베이스에 적합한 언어와 소프트웨어가 등장하면서 크게 발전했다. 그러나, 프로그래밍 과정은 인간 소수의 프로그래머간의 협력을 기반으로 하는 인간의 내면의 작업이라는 특성과 사람과 프로그램과의 상관 연구의 어려움으로 크게 발전하지 못했다.


(그림1) 컴퓨터 개발 초기 프로그래밍의 3가지 접근 방법

사람(Person)에 관심을 가지는 관점은 프로그래밍의 행위를 심리학 문제로 해석하고자 하는 프로그래밍에서의 심리학(Psychology in Programming)으로 발전했다. 특히, 인지주의 심리학과 행동주의 심리학에 많은 영향을 받았다.

그럼에도 불구하고 대학을 중심으로 우리나라의 프로그래밍 교육은 인간의 행위로 보는 심리학적 접근이 아니라 문제해결과 창의력 증진이라는 점에 집중, 티칭(teaching)에 기반해 가르쳐왔다. 그 결과 프로그램 과정에서 고려해야 하는 복잡한 문제들을 인간행위들의 관점들로 분리, 구분해내는 방법을 고려하지 않는 방식으로 이루어지게 됐다. 이는 내밀한 개인의 심리적 상황에 의해 좌우되는 상황을 적절히 코칭하거나 인간에게 주어지는 환경이라는 측면에서 접근하지 못하는 결과를 낳았다.

이에 반해 미국에서는 인간을 보다 독립적으로 바라보는 서양의 문화적 특성을 활용해 현장실무 근무자들이 코칭 방식으로 대학생의 프로그래밍 기술을 습득시키는 교육모델이 출현했다. 미네르바 대학, P Tech 대학, Flation 스쿨 등에서 찾아볼 수 있다.

새로운 접근 방법의 필요성
프로그래밍은 미시적 관점에서의 문제해결방법과 거시적 관점의 전략적 계획 능력의 사고 기술을 순환하면서도 100%의 완성도를 이뤄야 결과를 만들어낼 수 있는 고난도의 고난한 정신과정이다. 어떤 사람은 빠른 속도로 구현 능력을 완성해 나가는 반면, 어떤 사람은 자신의 경험 체계 속에서만 머물러 문제해결의 결과를 만들어 내지 못하거나 과정 속에서 완성도를 달성하는데 지지부진하거나 느린 속도를 보인다. 이와 같이 프로그래밍은 인간 심층구조의 사고체계를 표층구조로 전환하는 기능의 매우 내면적인 정신활동으로 볼 수 있으며, 그 작업은 2~3명의 소수의 사람들이 그룹을 형성하여 진행하는 경우가 많다.

이러한 문제로 IT 관련학과 졸업생들조차 현장에서 필요로 하는 프로그래밍 능력을 습득하지 못하고 졸업하는 경우도 다반사로 발생하고 있다. 이러한 문제를 극복하고자 미래창조과학부(과학기술정보통신부로 개편)에서는 소프트웨어 중심대학이라는 제도를 시행했다.

소프트웨어 중심대학의 IT관련학과는 집중이수제를 통하여 프로그래밍 능력을 키우는 집중학기제를 실시하여 학업 성취를 이루지 못하는 학생들을 학기 유급을 시키는 방식을 사용하고 있다. 그러나 여전히 문제해결과 창의력이라는 관점만을 강조하고 있다. 더욱이 현장에서 필요한 프로그래밍 기술을 가르치기에는 미흡할 뿐 아니라, IT 관련학과가 아닌 공학전공자나 인문학전공자가 활용할 수 없는 구조적 한계를 가지고 있다.

이제는 절차적 사고를 중심으로 한 구조화 프로그래밍, 데이터와 행위, 클래스, 캡슐화, 상속 및 다형성 등 고도의 추상적 사고가 필요한 객체지향형 프로그래밍, 컨볼루션 신경망(Convolutional Neural Network, CNN)을 이용한 통계적 추론과 강화학습을 이용해 설계하고 구현하는 인공지능 프로그래밍을 해야 하는 상황이 도래했다. 즉 지식 표상의 근원적 활용을 통해 프로그래밍하여야 하는 시대다. 따라서 프로그래밍에서의 심리학(PIP : Psychology in Programming)이 더욱 필요로 하게 되었다.

프로그래밍에서의 심리학 : 2가지 접근 방법
프로그래밍을 효과적을 코칭하기 위해서는 심리학을 기반으로 하는 2가지 접근 방법이 있다.

1) 프로그래밍 지식의 인지주의적, 행동주의적 심리학관점으로의 지식구분 : 행동주의적 관점과 인지주의적 관점이 컴퓨터 프로그래밍의 학습, 이해, 구현의 과정에 넓게 응용됐다. 행동주의 심리학은 프로그래밍 표기 체계, 코딩 테크닉, 언어학습과 코딩, 디버깅에 영향을 미쳤으며, 인지주의 심리학은 프로그래밍 행위를 지식표상으로 설명하고 통사적 지식, 의미적 지식, 도식적 지식, 전략적 지식으로 나뉘어 프로그래밍 심리학에 영향을 미쳤다.

통사적 지식은 프로그램의 개별요소들과 그들을 관계 지우는 규칙에 대한 지식으로 키워드, 변인명칭, 수치지식, 좌우배정의 개념으로 구분하는 능력이다. 의미적 지식은 컴퓨터 내부의 위치, 대상, 메모리에 대해 취해질 수 있는 행위에 대한 지식이다. 도식적 지식은 정렬이나 반복문 계산 수행등과 같은 루틴들에 대한 프로그램의 지식이다. 전략적 지식은 계획을 세우고 모리터링하는 지식을 말한다.

2) 분석심리학의 선호도에 따른 프로그래머의 성격분포이해, 소프트웨어 개발 주기, 팀 빌딩구축을 위한 소통교육 : 분석심리학을 기반으로 프로그래머의 개인차의 연구가 발전했다. MBTI 성격검사를 통하여 프로그래머와 일반인의 성격 분포 비교연구가 진행되었다. 그 결과 TJ의 선호도를 가지는 사람들이 FP의 선호도를 가진 사람들 보다 많다는 결론이 도출됐다(그림2). 이는 분석심리학의 심리적 기능 중에서 판단기능(T/F)과 태도지표중에서 행동양식(J/P)이 소프트웨어 개발주기와 높은 상관을 가진다는 것을 의미한다.

이에 따라 전통적인 5가지 소프트웨어 개발 주기별 선호도가 분석심리학을 활용해 발전했다. MBTI 성격은 각각의 지표에서 소프트웨어 개발 주기별로 다른 선호도를 보인다(표 1). 분석심리학은 효과적인 협업을 이끌기 위하여 서로 다른 심리적 기능을 가진 팀원들이 서로 협업하는 과정에서 팀원들의 특성을 이해할 수 있도록 소통교육(workshop)을 통하여 이해를 돕는 주요한 방법을 제공한다. (그림 3)은 소통교육에서 사용되는 지그재그(zig zag) 모델이다.

이와 같이 행동주의 심리학과 인지주의 심리학은컴퓨터 프로그래밍 과정에 막대한 영향을 미쳤고 분석심리학은 개인차의 구분을 통하여 프로그래밍 협업의 새로운 장을 열었다. 그러나 컴퓨터 기술과 심리학적 지식이 서로 학문적 거리를 멀리하고 있는 구조적 한계로 인하여 국내에서는 크게 인식하지 못하고 있다.


(그림 2) 프로그래머와 일반인의 성격 분포 비교


<표 1> 성격유형과 소프트웨어 개발주기


(그림 3) 문제 해결에서의 zig-zag 모델


4차산업혁명에 적합한 코칭 중심의 프로그래밍 교육 모델
미네르바 대학, P tech 대학과 Flation 스쿨 같은 미국의 코칭형 프로그래밍 학습 모델을 국내에서는 어떻게 만들면 좋을까? 프로그래밍 코칭은 절차적 학습, 객체지향형 학습, 인공지능적 학습을 모두 포용하는 구조이어야 할 것이다.

그렇게 하기 위해서는 P tech 대학이 마이크로 소프트나 구글, 페이스북에서 활동하는 전문 프로그래머가 코칭하는 것처럼 우리도 삼성이나 LG등 IT 전문 기업의 프로그래머가 참여하여 코칭하는 구조를 만들어야 한다. 프로그래머가 인지주의 심리학과 행동주의 심리학의 차이를 구분하는 일은 그리 어려운 일이 아니므로 코칭으로 나서기 전에 일정한 교육이 이뤄지면 될 것이다. 따라서 다음과 같은 내용으로 범사회적 프로그래밍 교육 모델을 만들기를 제안한다.

1) IT 전문 기업(삼성, LG, 한국 구글 등)의 프로그래머가 참여하도록 할 것.
2) MBTI 전문 교육을 받은 많은 IT전문가들을 발굴하고 소통교육(workshop)을 하여 인간 내면의 차이를 이해할 수 있도록 할 것.
3) 전문 프로그래머가 코칭할 수 있는 Mooc 프로그램을 체계적으로 수집하고 관리할 것
4) 전문 프로그래머와 그로부터 배우는 학습자가 사이버 공간에서 만날 수 있도록 시스템을 구축할 것.

지금까지 행동주의 심리학과 인지주의 심리학이 얼마나 프로그래밍 기술에 영향을 미쳤는지를 살펴보고 분석심리학을 이용하여 효과적인 프로그래밍 협업 방식에 대하여 살펴봤다. 또, 프로그래밍을 전문적으로 다루지 않는 사람도 인공지능 프로그래밍을 하여야 하는 상황에 어찌 대처할지에 대하여 살펴봤다.

이제 4차산업혁명을 이끌 수 있는 프로그래머을 양성해야 하는 급박한 상황에 이르렀으며 이는 대학의 힘만으로는 달성하기 어렵다. 따라서, 범사회적인 개방형 무그(Mooc)식 프로그래밍 코칭 모델을 조속히 구축하여 인공지능발 4차 산업혁명에 임할 수 있는 인력양성에 모두 힘을 모아야 할 것이다. 이와 같은 모델은 금년 9월에 출범한 대통령 직속 4차 산업혁명위원회에서 적극 검토해주기를 바라며 국내의 글로벌 IT기업들도 적극적으로 참여하여 4차산업혁명의 파고를 슬기롭게 넘을 수 있는 힘이 되기를 기대한다.

* 한서대학교에 근무하는 이재용 교수는 4차산업혁명 카운셀러로써 IT 조직심리학, 심리정보과학의 연구, 강연 및 소통교육을 하고 있다. 4차 산업혁명의 지향점을 인간심리요소의 4가지 컴퓨팅 개념화 파라다임으로 설명하는 컴퓨터공학자이자 심리정보학자이다. 특정 프로젝트나 제품, 연구가 4차 산업혁명의 지향점 중 어떤 위치에 해당하는지를 확인해 볼 수 있는 <특이점 지도>를 만들기 위해 노력하고 있다. ciokr@idg.co.kr 



2017.11.16

이재용 칼럼 | 4차 산업혁명 시대의 프로그래밍 교육

이재용 | CIO KR
IT 전공이 아닌 전문가도 인공지능 프로그래밍을 하는 4차 산업혁명시대를 맞이했다. 이제는 대중에게 적용할 수 있는 프로그래밍 교육 모델이 절실히 필요하게 됐다. 이번 컬럼에서는 프로그래밍에서의 심리학적 방법론과 미국에서 진행되고 있는 새로운 교육 시스템을 통하여 우리나라에 적합한 프로그래밍 교육 모델을 생각해 본다.

컴퓨터 발전 초기의 3가지 접근법
컴퓨터가 개발되는 초기에 프로그램 작성의 문제를 사람(Person)의 문제, 과정(Process)의 문제, 기술(Technology)의 문제로 구분했다. 과정(Process)은 소프트웨어 공학의 발전으로 크게 진보했으며, 기술(Technology)도 다양한 프로그래밍 언어와 디버깅 툴, 통신에 적합한 기능, 데이터베이스에 적합한 언어와 소프트웨어가 등장하면서 크게 발전했다. 그러나, 프로그래밍 과정은 인간 소수의 프로그래머간의 협력을 기반으로 하는 인간의 내면의 작업이라는 특성과 사람과 프로그램과의 상관 연구의 어려움으로 크게 발전하지 못했다.


(그림1) 컴퓨터 개발 초기 프로그래밍의 3가지 접근 방법

사람(Person)에 관심을 가지는 관점은 프로그래밍의 행위를 심리학 문제로 해석하고자 하는 프로그래밍에서의 심리학(Psychology in Programming)으로 발전했다. 특히, 인지주의 심리학과 행동주의 심리학에 많은 영향을 받았다.

그럼에도 불구하고 대학을 중심으로 우리나라의 프로그래밍 교육은 인간의 행위로 보는 심리학적 접근이 아니라 문제해결과 창의력 증진이라는 점에 집중, 티칭(teaching)에 기반해 가르쳐왔다. 그 결과 프로그램 과정에서 고려해야 하는 복잡한 문제들을 인간행위들의 관점들로 분리, 구분해내는 방법을 고려하지 않는 방식으로 이루어지게 됐다. 이는 내밀한 개인의 심리적 상황에 의해 좌우되는 상황을 적절히 코칭하거나 인간에게 주어지는 환경이라는 측면에서 접근하지 못하는 결과를 낳았다.

이에 반해 미국에서는 인간을 보다 독립적으로 바라보는 서양의 문화적 특성을 활용해 현장실무 근무자들이 코칭 방식으로 대학생의 프로그래밍 기술을 습득시키는 교육모델이 출현했다. 미네르바 대학, P Tech 대학, Flation 스쿨 등에서 찾아볼 수 있다.

새로운 접근 방법의 필요성
프로그래밍은 미시적 관점에서의 문제해결방법과 거시적 관점의 전략적 계획 능력의 사고 기술을 순환하면서도 100%의 완성도를 이뤄야 결과를 만들어낼 수 있는 고난도의 고난한 정신과정이다. 어떤 사람은 빠른 속도로 구현 능력을 완성해 나가는 반면, 어떤 사람은 자신의 경험 체계 속에서만 머물러 문제해결의 결과를 만들어 내지 못하거나 과정 속에서 완성도를 달성하는데 지지부진하거나 느린 속도를 보인다. 이와 같이 프로그래밍은 인간 심층구조의 사고체계를 표층구조로 전환하는 기능의 매우 내면적인 정신활동으로 볼 수 있으며, 그 작업은 2~3명의 소수의 사람들이 그룹을 형성하여 진행하는 경우가 많다.

이러한 문제로 IT 관련학과 졸업생들조차 현장에서 필요로 하는 프로그래밍 능력을 습득하지 못하고 졸업하는 경우도 다반사로 발생하고 있다. 이러한 문제를 극복하고자 미래창조과학부(과학기술정보통신부로 개편)에서는 소프트웨어 중심대학이라는 제도를 시행했다.

소프트웨어 중심대학의 IT관련학과는 집중이수제를 통하여 프로그래밍 능력을 키우는 집중학기제를 실시하여 학업 성취를 이루지 못하는 학생들을 학기 유급을 시키는 방식을 사용하고 있다. 그러나 여전히 문제해결과 창의력이라는 관점만을 강조하고 있다. 더욱이 현장에서 필요한 프로그래밍 기술을 가르치기에는 미흡할 뿐 아니라, IT 관련학과가 아닌 공학전공자나 인문학전공자가 활용할 수 없는 구조적 한계를 가지고 있다.

이제는 절차적 사고를 중심으로 한 구조화 프로그래밍, 데이터와 행위, 클래스, 캡슐화, 상속 및 다형성 등 고도의 추상적 사고가 필요한 객체지향형 프로그래밍, 컨볼루션 신경망(Convolutional Neural Network, CNN)을 이용한 통계적 추론과 강화학습을 이용해 설계하고 구현하는 인공지능 프로그래밍을 해야 하는 상황이 도래했다. 즉 지식 표상의 근원적 활용을 통해 프로그래밍하여야 하는 시대다. 따라서 프로그래밍에서의 심리학(PIP : Psychology in Programming)이 더욱 필요로 하게 되었다.

프로그래밍에서의 심리학 : 2가지 접근 방법
프로그래밍을 효과적을 코칭하기 위해서는 심리학을 기반으로 하는 2가지 접근 방법이 있다.

1) 프로그래밍 지식의 인지주의적, 행동주의적 심리학관점으로의 지식구분 : 행동주의적 관점과 인지주의적 관점이 컴퓨터 프로그래밍의 학습, 이해, 구현의 과정에 넓게 응용됐다. 행동주의 심리학은 프로그래밍 표기 체계, 코딩 테크닉, 언어학습과 코딩, 디버깅에 영향을 미쳤으며, 인지주의 심리학은 프로그래밍 행위를 지식표상으로 설명하고 통사적 지식, 의미적 지식, 도식적 지식, 전략적 지식으로 나뉘어 프로그래밍 심리학에 영향을 미쳤다.

통사적 지식은 프로그램의 개별요소들과 그들을 관계 지우는 규칙에 대한 지식으로 키워드, 변인명칭, 수치지식, 좌우배정의 개념으로 구분하는 능력이다. 의미적 지식은 컴퓨터 내부의 위치, 대상, 메모리에 대해 취해질 수 있는 행위에 대한 지식이다. 도식적 지식은 정렬이나 반복문 계산 수행등과 같은 루틴들에 대한 프로그램의 지식이다. 전략적 지식은 계획을 세우고 모리터링하는 지식을 말한다.

2) 분석심리학의 선호도에 따른 프로그래머의 성격분포이해, 소프트웨어 개발 주기, 팀 빌딩구축을 위한 소통교육 : 분석심리학을 기반으로 프로그래머의 개인차의 연구가 발전했다. MBTI 성격검사를 통하여 프로그래머와 일반인의 성격 분포 비교연구가 진행되었다. 그 결과 TJ의 선호도를 가지는 사람들이 FP의 선호도를 가진 사람들 보다 많다는 결론이 도출됐다(그림2). 이는 분석심리학의 심리적 기능 중에서 판단기능(T/F)과 태도지표중에서 행동양식(J/P)이 소프트웨어 개발주기와 높은 상관을 가진다는 것을 의미한다.

이에 따라 전통적인 5가지 소프트웨어 개발 주기별 선호도가 분석심리학을 활용해 발전했다. MBTI 성격은 각각의 지표에서 소프트웨어 개발 주기별로 다른 선호도를 보인다(표 1). 분석심리학은 효과적인 협업을 이끌기 위하여 서로 다른 심리적 기능을 가진 팀원들이 서로 협업하는 과정에서 팀원들의 특성을 이해할 수 있도록 소통교육(workshop)을 통하여 이해를 돕는 주요한 방법을 제공한다. (그림 3)은 소통교육에서 사용되는 지그재그(zig zag) 모델이다.

이와 같이 행동주의 심리학과 인지주의 심리학은컴퓨터 프로그래밍 과정에 막대한 영향을 미쳤고 분석심리학은 개인차의 구분을 통하여 프로그래밍 협업의 새로운 장을 열었다. 그러나 컴퓨터 기술과 심리학적 지식이 서로 학문적 거리를 멀리하고 있는 구조적 한계로 인하여 국내에서는 크게 인식하지 못하고 있다.


(그림 2) 프로그래머와 일반인의 성격 분포 비교


<표 1> 성격유형과 소프트웨어 개발주기


(그림 3) 문제 해결에서의 zig-zag 모델


4차산업혁명에 적합한 코칭 중심의 프로그래밍 교육 모델
미네르바 대학, P tech 대학과 Flation 스쿨 같은 미국의 코칭형 프로그래밍 학습 모델을 국내에서는 어떻게 만들면 좋을까? 프로그래밍 코칭은 절차적 학습, 객체지향형 학습, 인공지능적 학습을 모두 포용하는 구조이어야 할 것이다.

그렇게 하기 위해서는 P tech 대학이 마이크로 소프트나 구글, 페이스북에서 활동하는 전문 프로그래머가 코칭하는 것처럼 우리도 삼성이나 LG등 IT 전문 기업의 프로그래머가 참여하여 코칭하는 구조를 만들어야 한다. 프로그래머가 인지주의 심리학과 행동주의 심리학의 차이를 구분하는 일은 그리 어려운 일이 아니므로 코칭으로 나서기 전에 일정한 교육이 이뤄지면 될 것이다. 따라서 다음과 같은 내용으로 범사회적 프로그래밍 교육 모델을 만들기를 제안한다.

1) IT 전문 기업(삼성, LG, 한국 구글 등)의 프로그래머가 참여하도록 할 것.
2) MBTI 전문 교육을 받은 많은 IT전문가들을 발굴하고 소통교육(workshop)을 하여 인간 내면의 차이를 이해할 수 있도록 할 것.
3) 전문 프로그래머가 코칭할 수 있는 Mooc 프로그램을 체계적으로 수집하고 관리할 것
4) 전문 프로그래머와 그로부터 배우는 학습자가 사이버 공간에서 만날 수 있도록 시스템을 구축할 것.

지금까지 행동주의 심리학과 인지주의 심리학이 얼마나 프로그래밍 기술에 영향을 미쳤는지를 살펴보고 분석심리학을 이용하여 효과적인 프로그래밍 협업 방식에 대하여 살펴봤다. 또, 프로그래밍을 전문적으로 다루지 않는 사람도 인공지능 프로그래밍을 하여야 하는 상황에 어찌 대처할지에 대하여 살펴봤다.

이제 4차산업혁명을 이끌 수 있는 프로그래머을 양성해야 하는 급박한 상황에 이르렀으며 이는 대학의 힘만으로는 달성하기 어렵다. 따라서, 범사회적인 개방형 무그(Mooc)식 프로그래밍 코칭 모델을 조속히 구축하여 인공지능발 4차 산업혁명에 임할 수 있는 인력양성에 모두 힘을 모아야 할 것이다. 이와 같은 모델은 금년 9월에 출범한 대통령 직속 4차 산업혁명위원회에서 적극 검토해주기를 바라며 국내의 글로벌 IT기업들도 적극적으로 참여하여 4차산업혁명의 파고를 슬기롭게 넘을 수 있는 힘이 되기를 기대한다.

* 한서대학교에 근무하는 이재용 교수는 4차산업혁명 카운셀러로써 IT 조직심리학, 심리정보과학의 연구, 강연 및 소통교육을 하고 있다. 4차 산업혁명의 지향점을 인간심리요소의 4가지 컴퓨팅 개념화 파라다임으로 설명하는 컴퓨터공학자이자 심리정보학자이다. 특정 프로젝트나 제품, 연구가 4차 산업혁명의 지향점 중 어떤 위치에 해당하는지를 확인해 볼 수 있는 <특이점 지도>를 만들기 위해 노력하고 있다. ciokr@idg.co.kr 

X