입시·정책
학교 코딩 교육, 10년의 성적표
중학교 소프트웨어 교육 의무화 7년이 지난 지금, 고교 정보 과목 선택률은 20%에 머문다. 컴퓨팅 사고력의 실제 의미, 교육과정과 교실 현실 사이 구조적 간극, 그리고 정보 수업을 다르게 설계하는 한 가지 방법을 분석한다.

중학교 정보 수업을 마친 학생이 코드 한 줄을 스스로 쓸 수 있는가. 이 질문에 답할 공식 지표는 없다. 있는 건 고등학교 정보 과목 선택률이다. 2025년 기준, 전국 고교생 중 정보 과목을 선택한 비율은 20% 안팎이다. 달리 읽으면, 중학교 의무 이수를 마친 학생의 80%가 한 학기도 더 배우지 않겠다고 결정했다는 뜻이다. 교육과정이 목표로 삼은 '디지털 역량을 갖춘 시민'을 기르기 위해 의무화를 도입했는데, 정작 그 교육을 경험한 학생의 대다수가 그 다음 문을 닫았다. 이 숫자가 던지는 질문은 하나다. 학교 코딩 교육이 지난 10년 동안 실제로 무엇을 가르쳤는가.
의무화가 낳은 것과 낳지 못한 것
2015 개정 교육과정이 소프트웨어 교육을 정규 교과에 편입시킨 건 한국 교육사에서 결정적 분기점이었다. 중학교는 2018년부터 정보 과목 34시간 이상 이수를 의무화했고, 고등학교도 2019년부터 정보를 선택 과목군에 올렸다. 교육부가 내세운 목표는 선명했다. 컴퓨팅 사고력과 문제해결 역량을 갖춘 디지털 시민을 기른다. 비슷한 시기에 영국도 2014년 기존의 ICT 과목을 폐지하고 컴퓨팅 교과를 새로 도입했다. 선언의 방향은 옳았다. 문제는 선언 이후 교실에서 무슨 일이 일어났는가다.
34시간을 한 학기에 배분하면 주 1시간이 되지 않는다. 중학교 한 학년 전체 이수 시수에서 정보 과목이 차지하는 비율은 2~3%에 불과하다. 내신에서 상대적으로 낮은 비중을 차지하는 과목에 교사와 학생 모두가 할애할 수 있는 집중력은 제한된다. 수능 응시 과목 선택이 고등학교 2~3학년의 학습 방향을 사실상 결정하는 입시 구조에서, 정보 과목의 내신 점수는 대입에서 실질적 무게를 갖기 어렵다. 교육과정 문서가 부여한 명목상 위상과, 학교 현장에서 실제로 작동하는 시간 배분은 처음부터 어긋나 있었다.
더 근본적인 문제는 교원이었다. 정보 교사 자격을 가진 교원은 수요에 비해 부족했다. 전국 중학교 수와 필요한 정보 교사 수를 단순 대입해도, 자격 교원이 모든 학교를 커버하기에는 부족했다. 수학, 기술·가정, 과학 등 인접 과목 교사가 방학 중 연수를 이수한 뒤 정보 수업을 맡는 학교가 적지 않았다. 이것은 단순한 인력 부족 문제가 아니다. 교사가 자신이 가르치는 내용을 얼마나 깊이 이해하는가는, 수업에서 학생이 경험하는 질문의 깊이에 직결된다. 교육과정이 목표로 삼은 역량과, 그 역량을 실제로 전달할 준비가 된 교사의 숫자 사이에는 의무화 첫날부터 간극이 존재했다.
컴퓨팅 사고력이 수업 안에서 실제로 작동하는 방식
코딩 교육의 목표로 가장 자주 등장하는 개념이 컴퓨팅 사고력(computational thinking)이다. 문제를 더 작은 단위로 분해하고, 반복되는 패턴을 인식하고, 알고리즘으로 해결책을 설계하는 능력. 이 개념은 1980년대부터 컴퓨터 과학 교육 논의에서 다뤄왔고, 2014년 영국의 교육과정 개편이 이를 전면에 내세우면서 전 세계 교육과정 개정에 영향을 미쳤다. 한국도 이 흐름을 받아들였다. 알고리즘적으로 사고하는 능력이 코딩 여부와 무관하게 유용한 역량이라는 전제는 설득력이 있다. 문제는 그 개념이 한국 학교 수업 안에서 어떤 형태로 착지하는가였다.
고등학교 1학년 정보 수업을 구체적으로 보면, 대부분의 교과서 알고리즘 단원은 순서도와 의사코드로 구성된다. 학생들은 조건문과 반복문의 원리를 도식으로 배우고, 간단한 문제의 풀이 과정을 순서도로 표현하는 연습을 한다. 이것이 나쁜 출발점은 아니다. 하지만 그 다음 단계가 충분히 이루어지지 않는다. 실제 문제를 학생 스스로 정의하고, 코드로 해결책을 구현하고, 오류를 직접 수정하며 반복하는 과정. 이 과정이 바로 컴퓨팅 사고력이 체화되는 방식이다. 개념을 듣고 이해하는 것과, 그것을 직접 실행하며 몸으로 습득하는 것은 다르다. 34시간 안에 개념 설명, 도구 실습, 프로젝트 수행을 모두 마치는 것은 구조적으로 불가능에 가깝고, 대부분의 수업은 결국 개념 소개에서 멈춘다.
학원가의 코딩 수업이 2018년 전후로 급성장한 건 이 간극을 정확히 겨냥했기 때문이다. 학교 수업이 개념을 소개하는 수준에서 멈출 때, 코딩 학원은 프로젝트 중심 커리큘럼을 앞세웠다. 실제로 프로그램을 만들고, 앱을 설계하고, 포트폴리오를 완성하는 수업이었다. 그런데 학원 코딩 교육의 수요도 결국 대입 특기자 전형이나 스펙 구성과 연결될 때 가장 높았다. 그 연결이 느슨해지자 수요도 함께 줄었다. 학교와 학원 모두에서 코딩 교육은 그 자체로 배우고 싶어서 선택하는 것이 아니라, 외부 목적을 위한 수단으로 작동했다. 내신에 반영되지 않는 수업에서 학생의 동기 온도는 다르다는 것을 교사들은 경험으로 알고 있다.
교육과정이 교실보다 앞서 달릴 때 생기는 일
2022 개정 교육과정은 이전보다 분명히 앞으로 나아갔다. 중학교 정보 시수를 기존 34시간에서 68시간으로 두 배 늘리고, 고등학교에는 AI 기초 과목을 신설했다. 데이터 과학의 기초, 알고리즘 설계, 인공지능의 개념과 윤리적 쟁점까지 포함한 문서 위에서 한국의 코딩 교육은 진전을 이뤘다. 교육과정 설계자들의 문제의식 자체는 타당하다. 생성형 AI가 이미 학생의 일상에 들어와 있는 상황에서, 그 작동 방식과 한계를 이해하는 능력은 필요하다. 그런데 균열은 오히려 새로운 방식으로 나타났다.
AI 기초 과목을 지금 담당할 교사는 누구인가. 머신러닝의 원리, 훈련 데이터의 편향, 생성형 AI의 작동 방식을 고등학생에게 개념적으로 설명하고 윤리적 맥락까지 다룰 수 있는 교사를 어떻게 단기 연수로 양성하고 배치하는가. 교육부는 연수 프로그램을 확대했지만, 기존 정보 교사들조차 AI 교육의 깊이에 대한 자신감이 낮다는 현장 조사 결과는 반복적으로 나왔다. 자신이 가르치는 내용을 충분히 이해하지 못하는 교사가, 그 내용을 배우는 학생에게 줄 수 있는 경험의 질은 제한될 수밖에 없다. 교육과정이 먼저 달리고 교사 역량이 그 뒤를 쫓는 구조는 2018년 의무화 때와 달라지지 않았다.
더 불편한 반론도 있다. 알고리즘 설계와 프로그래밍 언어 문법이, 국어·수학과 같은 의미에서 모든 학생에게 필요한 기초 역량인가. 디지털 환경을 이해하고 비판적으로 판단하는 능력이 보편 역량이어야 한다는 논리는 설득력이 있다. 하지만 코드를 직접 작성하는 능력과, 알고리즘적 사고를 삶에 적용하는 능력은 다르다. 그 두 가지를 동일시하는 것이 코딩 교육 의무화의 전제였다면, 그 전제는 한 번쯤 점검되어야 한다. 수능 체계 안에서 정보 과목이 실제로 갖는 무게감은 교육과정 문서가 부여한 명목적 비중과 다르다. 학생들은 그 온도 차를 매 학기 수강 신청 앞에서 직접 계산한다.
10년이 그은 좌표, 다음 10년이 물어야 할 것
10년의 의무화가 완전한 실패였다는 결론은 과도하다. 코딩이 학교 교육의 언어가 되었다는 사실 자체는 변화다. 중학교 3학년 학생이 알고리즘과 변수의 개념을 접한다는 것, 데이터라는 단어가 수업에서 낯설지 않다는 것은 10년 전에는 없었다. 정보 교사라는 직군이 학교 시스템에서 안정적인 위치를 갖게 된 것도 성과다. 코딩 교육이 특수한 재능을 가진 학생만의 것이 아니라 보편 교육의 일부라는 인식이 형성된 것, 그것이 이 10년이 한 일이다.
하지만 10년이 드러낸 구조적 한계도 분명하다. 코딩 교육의 성패는 시수와 교육과정 문서가 결정하지 않는다. 교사가 무엇을 어떻게 가르치는가, 학생이 무엇을 위해 배우는가, 평가 체계가 그 배움을 어떻게 측정하는가. 이 세 가지가 정렬되지 않은 상태에서 교육과정을 더 정교하게 만드는 것은, 설계도를 새로 그리면서 시공 인력과 자재를 점검하지 않는 일과 같다. 68시간으로 시수를 늘리는 것이 의미 있으려면, 그 68시간 안에 학생이 실제로 어떤 경험을 해야 하는가에 대한 답이 먼저 있어야 한다. 그 답을 교사가 갖고 있어야 한다.
2022 개정 교육과정이 AI 기초 과목을 신설했을 때, 가장 먼저 공개되었어야 할 숫자는 이 과목을 가르칠 준비가 된 교사가 전국에 몇 명인가였다. 그 숫자가 공개된 적은 없다. 다음 10년은 교육과정 문서를 얼마나 정교하게 만드느냐의 경쟁이 아니라, 그 문서가 실제 수업으로 착지하는 과정에서 무엇이 빠지는가를 추적하는 일이 되어야 한다.
34시간을 다르게 설계하는 한 가지 방법
지금 중·고등학교 정보 수업을 담당하고 있다면, 수업 설계에서 가장 현실적인 전환은 학생이 직접 문제를 정의하는 시간을 수업 안에 넣는 것이다. 코드를 완성하는 것이 목표가 아니라, 어떤 문제를 풀기 위해 코드가 필요한지를 학생 스스로 말하게 하는 수업. 내신 반영 비중이 낮더라도, 학생이 자신이 실제로 불편하거나 궁금한 한 가지 상황을 선정하고, 그 상황을 해결하기 위한 알고리즘 구조나 데이터 흐름을 탐색하는 시간이 있는 수업. 알고리즘의 원리를 설명하는 한 회차보다, 학생이 자신의 문제를 알고리즘으로 표현하려 시도하는 한 회차가 컴퓨팅 사고력에 훨씬 가깝다. 교육과정이 10년 동안 목표로 삼은 것이 그것이었다면, 그 경험은 교과서 설명이 아니라 수업 설계로 만들어진다.
34시간은 짧다. 그 안에서 파이썬 문법과 알고리즘 이론을 모두 가르칠 수는 없다. 하지만 학생이 나는 이것을 왜 배우는가를 한 번이라도 스스로 대답해봤다면, 그 수업은 그렇지 않은 수업과 결과가 다르다. 고등학교 정보 선택률 20%는 그 경험의 밀도를 묻는 숫자다. 지금의 68시간도 그 경험 없이 채워진다면, 10년 뒤에도 같은 숫자가 남을 것이다.
고등학교 정보 과목 선택률 20%를 어떻게 읽을 것인가. 학생들이 코딩에 흥미를 잃었다는 신호인가, 아니면 의무 이수가 끝났을 때 자발적으로 더 배우고 싶게 만들 만큼 수업이 설계되지 않았다는 신호인가. 그 해석이 어느 쪽이냐에 따라, 다음 10년의 교육과정 개정이 무엇을 먼저 바꿔야 하는지도 달라진다.