7 분 소요

hits

이번 학위 논문을 발표하면서 심사 교수님께 이런 질문을 받았습니다.

“인공지능 교육의 목표가 컴퓨팅 사고력 신장입니까?”

사실 이 질문은 다소 논쟁적이며, 학계에 종사하는 많은 분들 사이에 갈등을 불러일으킬 수 있습니다. 이 글에 대해서는 관점과 입장 차이로 불편하게 생각하시는 분들도 계실 수 있으리라 생각합니다. 하지만 이 공간은 제가 가지고 있는 의식과 생각들을 끄적이는 곳이기 때문에 자유롭게 개진합니다. 이 글을 통해 저도 저의 생각과 논리를 다듬고, 더 많은 사람들에게 동의될 수 있는 기준 틀이 마련되길 기대합니다.


주장 A. 인공지능 교육은 컴퓨팅 사고력을 목표로 할 수 있다

인공지능 교육의 목표는 인공지능 사고력입니다. 하지만 컴퓨팅 사고력을 “인간의 능력을 확장하는데 컴퓨터를 사용하여 문제를 해결하는 능력”이라 폭 넓게 정의한다면 인공지능 교육은 컴퓨팅 사고력을 목표로 하는 교육도 될 수 있습니다. 인공지능 교육은 컴퓨팅 사고력을 기르는데 기여할 수 있으며 상관 관계가 있습니다.

실제로 많은 논문을 살펴보면 인공지능 교육을 통해 컴퓨팅 사고력 신장을 기하고자 하는 시도들을 살펴볼 수 있습니다. 그도 그럴 것이 현재 인공지능 교육은 시수와 교육 방법 등 모든 부분을 소프트웨어 교육의 연장선상에서 실시하고 있기 때문입니다.

교사가 초등학교에서 인공지능 수업을 하기에는 2015 개정 교육과정 때 도입된 소프트웨어 교육과 맞물려 개발·배포된 블록 프로그래밍 플랫폼(엔트리, 엠블록, 스크래치, 머신러닝포키즈 등)을 활용할 수밖에 없습니다. 노골적으로 말하면, 소프트웨어 교육이 다 담아내지 못하는 인공지능 교육의 영역을 제대로 담아낼 수 있는 플랫폼이 없거나 매우 부족합니다. 자연스레 인공지능 교육은 소프트웨어 교육의 후속 주자이자, 소프트웨어 교육의 하위 범주 정도로 여겨질 수밖에 없는 현실인 겁니다.

그래서 그런지 몰라도, 소프트웨어 교육의 연장선상에서 실시하는 인공지능 교육의 방향성은 완벽히 맞지는 않아도 현장의 실천을 위해서는 꽤나 타당하고 현실적인 선택이라 보입니다.

소프트웨어 교육의 당위성 — 컴퓨팅 사고력

초등학교부터 중등학교까지 소프트웨어 교육이 필요하다고 말하는 그 당위성은 무엇일까요? 그것은 바로 컴퓨팅 사고력입니다. 컴퓨팅 사고력은 소프트웨어 교육을 통해 갖춰지길 바라는 필요 역량입니다.

그럼 컴퓨팅 사고력은 무엇인가요? Wing(2006)은 컴퓨팅 사고력을 해결해야 할 문제를 만났을 때, 컴퓨터 과학자처럼 사고하는 과정이며, 추상화와 자동화를 통한 문제해결능력이라 정의하였습니다. 최근에는 문제해결절차나 소프트웨어 개발 절차(폭포수 모델)에 비교하여, 분석이나 평가의 과정이 포함되어야 한다 여겨지고 있습니다. 그래서 컴퓨팅 사고력의 과정으로 추상화, 자동화분석의 과정까지 추가하여 말하고 있습니다.

좀 더 폭넓게 컴퓨팅 사고력의 개념을 잡는다면 “인간의 능력을 확장하는데 컴퓨터를 사용하여 문제를 해결하는 능력” — 이것 또한 컴퓨팅 사고력이라고 말할 수 있을까요?

인공지능 교육의 당위성은 무엇인가

자, 좋습니다. 그렇다면 인공지능 교육이 필요하다고 말하는 그 당위성은 무엇일까요? 이제껏 위에서 언급한 컴퓨팅 사고력일까요? 다시 처음으로 돌아가 심사 교수님의 질문과 마주해봅니다.

“인공지능 교육의 목표가 컴퓨팅 사고력 신장입니까?”

그렇다면 좀 더 공격적이고, 호전적으로 들릴 수 있는 반문을 던져봅니다.

  • 인공지능 교육이 컴퓨팅 사고력을 기르는 데 기여할 수 없다는 것인가요?
  • 인공지능 교육이 컴퓨팅 사고력 신장과 아무 관계가 없다는 말인가요?

이 질문에 답하기 위해서는 인공지능 교육의 목표와 필요성과 밀접한 관련을 갖는 학습자 요구 역량의 정의가 선행되어야 합니다. 단순히 인공지능 시대가 온다는 막연한 조급함을 이용하기보다는 말입니다.

  • 인공지능 교육을 통해 우리는 학생에게 어떤 역량을 갖추게 해야 할까요?
  • 혹자는 이에 대한 답으로 인공지능 사고력을 말하고 있습니다.

인공지능 사고력(AI Thinking)이란

사실 ‘인공지능 사고력’이라는 용어를 본 적이 있으나, 이 용어의 학술적 출처를 명확히 몰라 그간 사용하기 어려웠습니다. 최현종(2020)에 의하면 인공지능 사고력은 Daniel Zeng이 2013년 IEEE 논문지의 ‘From Computational Thinking to AI Thinking’에서 처음 소개된 용어로, 인간의 인지적 사고(Cognitive Thinking)와 딥러닝에 기반한 문제해결능력으로 정의되고 있습니다.

이렇게 보았을 때, 인공지능 사고력은 인간의 사고 과정을 닮은 능력이기 때문에 컴퓨팅 사고력보다 보다 높은 수준의 사고력입니다. 그러나 컴퓨팅 사고력과 인공지능 사고력은 별개의 사고과정이 아니며, 중복되는 공통과정이 존재해 서로 밀접한 관련이 있습니다.

주장 A의 결론

결국, 컴퓨팅 사고력을 포괄하는 인공지능 사고력을 기르기 위한 것이 인공지능 교육이라면 다음 질문에 대한 답은 No입니다.

  • “인공지능 교육은 컴퓨팅 사고력을 기르는 데 기여할 수 없을까요?”
  • “인공지능 교육이 컴퓨팅 사고력 신장과 아무 관계가 없을까요?”

즉, 인공지능 교육은 컴퓨팅 사고력을 기르는데 기여할 수 있습니다. 인공지능 교육은 컴퓨팅 사고력 신장과 밀접한 관련이 있다 결론 내릴 수 있습니다. 인공지능 교육의 목표가 비록 컴퓨팅 사고력이 아니라 인공지능 사고력이라 하더라도 말입니다.

사실 컴퓨팅 사고력을 “인간의 능력을 확장하는데 컴퓨터를 사용하여 문제를 해결하는 능력”이라 폭넓게 정의한다면 인공지능 교육은 컴퓨팅 사고력을 목표로 하는 교육도 될 수 있습니다. 컴퓨터의 역사는 인공지능의 역사이며, 컴퓨터의 역사가 인공지능의 역사이기 때문입니다. 이렇게 용어의 정의가 중요합니다.

이러한 논리의 종착점은 “인공지능 교육이 컴퓨팅 사고력의 신장과 관련이 있으며, 그러하기에 그 상관 관계를 연구할 가치가 있다”로 이어지게 됩니다.

이에 따라 “컴퓨팅 사고력에 기반한 인공지능 사고력 교육”이라는 표현은 매우 자연스럽습니다.


주장 B. 인공지능 교육은 컴퓨팅 사고력과 상관 관계가 없다

인공지능 교육의 목표는 컴퓨팅 사고력이 될 수 없으며, 인공지능 교육을 통해 컴퓨팅 사고력을 기를 수는 없습니다. 사실상 인공지능 교육은 컴퓨팅 사고력과 상관 관계가 없습니다.

이제는 상반된 주장의 편에 서서, 그 논리를 천천히 따라가봅시다.

공통점: 문제해결력

컴퓨팅 사고력(추상화, 자동화, 분석을 통한 문제해결력)과 인공지능 사고력(인간의 인지적 사고와 딥러닝에 기반한 문제해결력)의 정의에는 공통점이 있습니다. 그것은 바로 문제해결력입니다. 그렇다면 단순히 문제를 해결하는 능력만으로는 이 둘을 구분지을 수 없습니다. 공통의 속성이기 때문입니다. 소프트웨어 교육과 인공지능 교육, 이 둘은 모두 기술을 통해 문제를 해결하는 능력을 키우는 교육이라는 점에서 같습니다.

그렇다면 무엇으로 문제를 해결하느냐로 이 둘을 구분지을 수 있을 겁니다. (사실 굳이 구분지어야 하는지 생각하는 분들이 더 많을 수 있으리라 생각함에도 불구하고 말입니다.)

차이점: 추상화 vs 데이터·기술

  컴퓨팅 사고력 인공지능 사고력
핵심 알고리즘을 만드는 추상화 데이터 수집·전처리(데이터 리터러시)
  프로그래밍(코딩)을 뜻하는 자동화 학습(지능 만들기)
  평가를 뜻하는 분석 평가
공통 프로그래밍(코딩), 평가 프로그래밍(코딩), 평가

여기서 주의할 점은 코딩(프로그래밍), 즉 컴퓨터가 알아들을 수 있는 말로 표현하는 것이 알고리즘을 뜻하지 않는다는 점입니다. 추상화의 산물인 알고리즘 없이 그냥 코딩할 수도 있습니다.

“프로그래밍(코딩)”과 “평가”는 공통의 속성이므로 빼고 생각할 수 있겠군요. 그렇다면 결국 컴퓨팅 사고력과 인공지능 사고력의 차이점은 알고리즘(문제를 해결하기 위한 과정이나 절차)을 만드는 “추상화”와 데이터 수집 및 전처리(데이터 리터러시)를 통한 인공지능 모델 개발에 있습니다.

규칙을 만드는 것 vs 규칙을 찾게 하는 것

  • 컴퓨팅 사고력 — 어떻게 하면 규칙을 빈틈없이 잘 만들어서 컴퓨터가 주어진 규칙대로 빠르게 처리하게 할까를 고민하는 능력
  • 인공지능 사고력 — 데이터를 잘 정제하고, 데이터의 특성에 맞는 방법을 선택해서 어떻게 하면 컴퓨터가 규칙을 잘 찾아낼 수 있게 할까를 고민하는 능력

즉, 현 인공지능 교육에서는 사진 데이터, 숫자 데이터, 음성 데이터, 텍스트 데이터 중 어느 데이터를 사용할 것인가를 고민하게 합니다. 또 어떤 기술(지도학습: 분류와 예측 / 비지도학습: 군집화)을 활용해서 문제를 해결할 수 있을까를 고민하게 합니다.

인공지능 교육의 핵심

인공지능을 어떻게 가르쳐야 하는지 정리하면 문제 해결의 경험을 주는 것이 중요하며, 학습된 인공지능을 사용하다가 직접 인공지능을 학습시키는 경험으로 확장되게 하고, 무엇보다 문제해결을 ‘데이터’와 ‘기술’의 관점으로 보게 하는 것이 핵심임을 알 수 있습니다.

흔히 인공지능 교육의 3요소를 인공지능 이해교육, 활용교육, 개발교육이라 구분합니다. 인공지능의 이해와 인공지능 모델의 체험, 활용 수준의 교육은 인공지능 모델의 개발과는 거리가 멀겠지만, 그 자체로도 개발교육으로 다가갈 수 있는 다리를 놓아준다는 측면에서 인공지능 교육입니다.

그렇다면 인공지능 활용교육은 데이터와 기술의 관점보다는 문제 해결에 비중이 있습니다. 이에 비해 인공지능 개발교육은 데이터와 기술에 더욱 주목할 수 있도록 도울 수 있습니다.

학생들로 하여금 ‘인공지능 기술 이거 다양한 곳에 써먹을 수 있겠는데? 쓸만하다. 내 관심 분야에 써먹으면 좋겠는데?’ 이런 느낌이 들게 하면 인공지능 교육은 성공이라 볼 수 있을 것입니다.

인공지능 교육은 알고리즘을 짜게 하지 않는다

인공지능 교육은 학생이 직접적인 문제 해결과 관련한 알고리즘을 짜게 하지 않습니다. 인공지능 교육은 학생이 문제를 데이터와 기술의 관점으로 바라보고, 이를 바탕으로 기계(컴퓨터)가 알고리즘을 대신 짜도록 학생이 기계(컴퓨터)에게 프로그래밍(코딩)하여 문제를 해결하도록 가르칩니다.

인공지능이란 무엇인가 — 직관과 추상화의 대척점

인공지능은 지능이라 부를 수 있는 전체 혹은 일부분의 기능을 탑재한 기계(컴퓨터)입니다. 그렇다면 사칙연산을 할 줄 아는 기계(컴퓨터)는 지능이 있으므로 인공지능이라 부를 수 있을까요? 앨런 튜링의 시대에는 그것을 인공지능이라 부를 수 있었을 겁니다. 그러나 애석하게도 오늘날에는 계산기를 인공지능이라 부르지 않습니다.

직관적으로 알고 있는 것은 알고리즘(추상화)을 거쳐 프로그래밍(자동화)하기 어렵습니다. 그래서 사람들은 표현이 어려운 직관적 지식을 컴퓨터가 직접 알아내게끔(추상화) 하는 방식을 생각하게 됩니다.

사람이든 기계든 동물이든 지적 결정을 내리기 위해서는 지식이 필요한데, 전통적인 기호주의 AI의 해결책은 바로 기계학습이라 불리는 머신러닝이었습니다. 머신러닝을 통해 표현이 어려운 직관적 지식을 데이터를 통해 기계(컴퓨터)가 직접 알아내게끔 한 것입니다.

최근에 각광받고 있는 연결주의 AI의 해결책은 바로 인공 신경망에 기반한 딥러닝입니다. 마찬가지로 표현이 어려운 직관적 지식을 데이터를 통해 인공 신경망(뉴럴 네트워크)이 직접 알아내게끔 한 것입니다. 머신러닝은 데이터의 주요한 특성을 사람이 추출한 뒤, 이를 바탕으로 기계(컴퓨터)가 예측하게 했지만, 딥러닝은 사람이 담당하던 특성 추출마저도 기계(컴퓨터)에게 맡겨버립니다. 그러다보니 신경망 내부의 의사결정과정이 투명하지 않고, 블랙박스화되는 단점이 있습니다.

즉, 왜 그런 예측을 했는지 그 이유는 잘 모르지만, 직관적으로 알아채는 능력을 학습을 통해 기계(컴퓨터)에게 부여한 것입니다. 직관은 컴퓨팅 사고력과 관련이 없을 뿐 아니라 개념상 서로 대척점에 위치합니다. 그러므로 인공지능 교육을 통해 컴퓨팅 사고력을 기를 수 없습니다.

오늘날의 인공지능 정의

정리해봅시다. 오늘날에는 사람이 알고리즘(문제 해결의 과정이나 절차)을 제공하지 않았지만, 기계(컴퓨터)가 데이터의 특징을 추상화하여 알고리즘을 만들고, 이를 바탕으로 분류하고 예측하며 추론하고 생성해낸다면 이를 인공지능이라 부릅니다.

CNN 예시 — 알고리즘인가, 코딩인가

손글씨 숫자 데이터셋을 분류하기 위해 합성곱 신경망(CNN)을 활용한다고 가정해봅시다.

  • 여기서 해결할 문제는 입력된 손글씨 숫자 데이터가 0~9까지의 숫자 중 어떤 숫자에 해당하는가를 분류하는 것입니다.
  • 이를 위해서는 인공신경망의 노드와 노드 사이를 연결해주는 에지(Edge)의 연결 정도를 뜻하는 가중치들이 적정한 값으로 최적화되어야 합니다. 그러려면 사람이 신경망의 구조를 만들고, 하이퍼 파라미터를 설정하고, 튜닝하는 일련의 과정이나 절차를 수행하여야 합니다.
  • 이러한 일련의 과정이나 절차는 알고리즘일까요? 아니면 단순한 코드의 나열(코딩)일까요?
  • 손글씨 숫자 데이터를 분류하기 위해 신경망의 구조를 만들고, 하이퍼 파라미터를 설정하고, 튜닝하는 일련의 과정이나 절차는 문제를 해결하기 위해 블록 프로그래밍에서 특정한 기능이 내장되어 있는 모듈 형태의 블록을 단순히 가져와 명령어 묶음 덩어리를 만드는 것과 유사합니다.
  • 즉, 이는 추상화의 산물인 알고리즘이 아니라, 컴퓨터가 이해할 수 있는 방식으로 명령하는 코딩(프로그래밍)이라 할 수 있습니다.

주장 B의 결론

이러한 논리의 종착점은 “인공지능 교육이 컴퓨팅 사고력의 신장과 직접적인 관련은 없다(부차적으로나 간접적으로는 있을지 몰라도)”로 이어지게 됩니다.

이에 따라 “컴퓨팅 사고력에 기반한 인공지능 사고력 교육”이라는 표현은 매우 부자연스럽습니다.


이해를 위한 핵심 열쇠

  • 알고리즘(추상화)과 프로그래밍(자동화)를 구분하여야 합니다.
  • 컴퓨팅 사고력의 핵심은 사람의 뇌에서 연역적으로 구성하는 알고리즘(추상화)에 있고, 인공지능 사고력의 핵심은 데이터와 기술을 바탕으로 컴퓨터에게 귀납적으로 직관을 부여하는 데 있습니다.

추가적으로 든 생각

  • CNN, RNN, GAN 등을 딥러닝 알고리즘이라 부르는 것보다는 딥러닝 기술(기법)이라 하는 것이 혼선을 막을 수 있겠다는 생각이 듭니다.

  • Daniel Zeng(2013)이 제안한 “인공지능 사고력”은 인간의 인지적 사고(Cognitive Thinking)와 딥러닝에 기반한 문제해결능력으로 정의됩니다. 인공지능 사고력은 컴퓨터가 생각하는 방식이 아니라 인간의 사고 방식(인지적 사고)을 추구하며, 컴퓨터에게 직관을 부여(딥러닝)하는 방식에 기반하기에 어쩌면 컴퓨팅 사고력과는 접근 자체가 다를 수밖에 없겠다는 생각이 이 글을 정리하며 조금 더 강하게 자리잡습니다.

  • 그렇다고 해서 부가적으로나 간접적으로 인공지능 교육을 통해 컴퓨팅 사고력을 기를 수 없다고 단정짓는 것은 사려 깊지 못한 판단이 될 수 있어 보입니다. 교육에는 언제나 잠재적 교육과정이 존재합니다.