엘리스에서는 학생의 미래 성적을 어떻게 예측할까요?

엘리스 / 18. 11. 08. 오전 2:56




조교와 강사가 볼 수 있는 대시보드를 이용하면 학생들에 대한 EPS 분포를 확인하고 어떤 학생이 얼마나 열심히 하는지, 얼마나 높은 성취도를 이루었는지 한눈에 확인할 수 있습니다.


엘리스에서는 선생님 대시보드에서 Elice Performance Score(EPS)를 확인할 수 있습니다. EPS는 학생들의 교육 현황에 따라 1점부터 5점까지 주어지며, 학생의 지금까지의 상태를 파악하여 수업이 끝날 때 얼마나 높은 성취도를 이룰 수 있을지를 자동으로 예측합니다. 이를 통해 선생님은 EPS가 낮은 학생들을 중점적으로 지도할 수 있으며 학생이 질문하기 전에 학생에게 먼저 다가가는 선제적 교육을 진행할 수 있습니다. 이러한 EPS는 어떻게 연구/개발 되었을까요?

Fuller와 Elice의 전산학 교육 분류 체계

분류 체계가 뭐지? 하고 갸우뚱하시는 분들이 많을 겁니다. 일반적인 분류학Taxonomy은 생물학의 학문 중 하나로, 지구에 살고 있는 생물들을 특정 기준에 따라 분류한 것을 말합니다. 그중 가장 유명한 것이 린네Carl Linnaeus의 분류법인데요, 이 글을 읽고 있는 독자들도 린네의 분류법에 대해서 배웠던 적이 있을 것입니다.


계, 문, 강, 족, 목, 과, 류, 속, 종으로 이루어진 린네의 분류법. Image from Wikipedia


이러한 분류법은 고도로 복잡한 생물들을 의미 있는 기준 (역사, 진화 과정, 유전학…) 에 따라 분류하고, 이들 사이의 관계를 체계적으로 밝히는 데에 목적이 있습니다. 이를 통해 기존에 없었던 새로운 동/식물이 발견되더라도 우리는 이미 확고히 정립된 분류 체계를 간단히 확장하는 것만으로 기존에 있던 동/식물들과의 관계를 정립할 수 있습니다. 그뿐만 아니라 과학의 발달과 함께 유전학 등의 도움으로 체계를 더욱 고도화할 수 있습니다.


Bloom의 교육 분류체계


교육학에서는 교육을 받는 과정에 대한 연구가 활발히 진행되었습니다. 1956년 Benjamin Bloom은 사람의 학습 과정을 인지/정서/정신이라는 세 개의 카테고리로 분류했습니다. 특히, 인지 영역을 낮은 정신 능력에서 고등 정신 능력이 필요한 활동 6가지로 분류했습니다. 학생은 가장 기본이 되는 암기 — 어떤 형상이나 사실에 대한 정보를 기억하는 것 — 로 시작해 이해, 적용, 분석, 평가를 거쳐 창작 — 다양한 원소를 조합해 새로운 구조나 패턴을 창출하는 것 — 으로 배움을 마무리하게 됩니다.

Ursula Fuller는 전산학 교육과 기존 교육의 차이점에 주목했습니다. 다른 교육과는 달리, 전산학 교육은 코딩, 즉 창의적으로 새로운 것을 만들어내는 활동이 주가 되는 학문입니다. Bloom의 교육 분류체계에서는 학생이 새로운 코드를 만들어 내기 전에 그곳에서 사용하는 모든 원소에 대한 이해, 적용, 분석, 평가를 모두 완료해야 하지만 실제로 코딩을 배워보신 분들은 그렇지 않다는 것을 알고 있을 것입니다. 예를 들어, Python에서 새로운 개념인 recursion (재귀 호출) 을 배웠다고 하면 이것에 대한 깊은 이해 없이 재귀적으로 호출되는 함수를 만들어 보고 실행해 볼 수 있습니다. 아직 재귀호출이 얼마나 성능이 좋은지 평가하거나 분석할 수 없더라도 재귀적으로 동작하는 함수가 들어있는 프로그램을 만들 수 있습니다.


Elice에서 코드를 작성하면서 전산학에 대해 배우는 과정. Fuller의 taxonomy를 Elice 연구팀이 학생의 코드 작성 과정에 적용했습니다. Image from Elice: An online CS Education Platform to Understand How Students Learn Programming


Fuller는 차원을 하나 확장해 전산학 교육을 학생이 이론적인 것을 배우는 Interpreting 차원과 코드를 통해 새로운 것을 만들어내는 Producing 차원 두 개로 정리했습니다. 예를 들어 Implement 단계는 학생이 이론에 대한 깊은 이해 없이 현상에 대한 기억만을 의존하여 구현하고 테스트를 해 보는 단계입니다. 만약 여기에서 더 이상 이론에 대한 학습이 진행되지 않는다면 학생은 Implement/Test 단계에서 계속 머무르게 됩니다. 실행해 보고, 안 되면 조금 고쳐 보고, 다시 실행해 보고, …

학생이 이론에 대해 이해하고, 그 이론에 대해 분석할 수 있는 단계가 되면 (예: 재귀 호출의 시간복잡도를 계산할 수 있게 됨) 학생은 드디어 문제가 무엇인지 판별하고 이것을 고칠 수 있는 활동 (Debug) 을 할 수 있게 됩니다. 코딩 스킬이 받쳐준다면 어떻게 해야 더 좋은 코드를 만들 수 있을지 생각해 볼 수도 있습니다 (Design). 어떻게 고칠지 생각해 내고, 이것을 구현 (Implement) 하는 단계를 반복하다 보면 학생은 이론과 개발 양쪽 차원에서 서서히 학습을 진행하면서 최종 단계인 Refactor 단계에 이르게 됩니다. Refactor는 작성한 코드를 최적화하는 단계로 높은 개발 능력과 이론에 대한 완전한 이해가 있어야만 이룰 수 있습니다.

교육 분류 체계를 Elice에 적용하기

Elice의 연구팀은 Fuller의 교육 분류체계를 Elice에 맞게 변형시켰습니다. Elice 의 인공지능 시스템 elice-ai는 학생이 제출하는 코드를 자동으로 분석하여 현재 학생이 제출한 코드가 교육 분류체계에서 어떤 단계인지 분류합니다. 이를 통해 학생이 현재 풀고 있는 문제에서, 혹은 과목에서 학생이 이론적으로 얼마나 많이 배웠는지, 얼마나 개발을 잘할 수 있는지 판단할 수 있습니다.

Elice 연구팀이 2016년에 Learning at Scale 국제학회에 발표한 논문에서는 1,000명이 참가한 온라인 기계학습 강의에서 이 새로운 교육 분류 체계의 효과성을 검증했습니다. 분석 결과는 굉장히 흥미로웠습니다. 먼저 조교가 있는 조 기반의 학습, 조교가 없는 조 기반의 학습, 그리고 학생 혼자 듣는 상황을 비교했을 때 조교가 있는 조교가 있을 때의 학습 성취도가 조교가 없을 때의 학습 성취도보다, 그리고 조 기반의 학습에서의 학습 성취도가 혼자 수업을 진행할 때의 학습 성취도보다 월등히 높았습니다.


4주 동안의 “조교가 있는 조 기반의 학습”, “조교가 없는 조 기반의 학습”, “혼자 학습” 을 진행한 학생들의 학업 성취도. 조교가 있을때, 그리고 조 기반의 학습을 할 때 성취도가 월등하게 높았습니다. Image from Elice: An online CS Education Platform to Understand How Students Learn Programming


이러한 발견은 현재 Elice가 수행하고 있는 Python, Java, 데이터 구조 수업에서 강사와 학생 간의 인터랙션을 최대화하는 수업을 진행하는 데에 도움이 되었습니다. 또한, 새로운 분류 체계를 적용한 결과, 기존의 방법에 비해 학생들의 미래 성적을 굉장히 높은 정확도로 예측할 수 있었습니다.


2주간의 학생의 학습 현황을 토대로 6주 후의 학습 진행을 예측. Pearson’s r: 0.914, 0.905. Image from Elice: An online CS Education Platform to Understand How Students Learn Programming


위 그래프는 학생의 2주간의 학습 현황을 토대로 학생의 8주 뒤의 성적 및 Elice에서 코딩을 위해 쓴 시간을 예측한 것입니다. 예측을 위해 사용한 알고리즘이 굉장히 간단한 알고리즘 (linear regression with OLS)임에도 불구하고, 매우 훌륭한 결과를 보여주었습니다. 이 시스템을 통해, 학생의 초반 행동을 분석하면 학생의 미래 성취도 및 노력을 높은 정확도로 예측할 수 있습니다. 그리고 이것을 수치화한 것이 EPS (Elice Performance Score) 입니다.

마치며

이번 포스트에서는 엘리스의 AI 시스템이 하는 역할 중 하나인 EPS와 그것의 바탕 이론이 되는 Elice의 학습 분류체계에 대해서 살펴보았습니다. EPS 점수는 수업을 어려워하는 학생을 찾아내는 것 외에도 우수학생 선발 및 교육 과정이 원활히 진행되는지 살펴보는데에도 사용되고 있습니다.

이 체계를 더욱 고도화하면 학생들이 문제를 푸는 동안 실시간으로, 선제적으로 도움을 줄 수 있습니다. 예를 들어, 학생이 문제를 풀다 어떤 부분에서 막히게 되면 Implement — Debug 과정을 반복하게 됩니다 (이것을 Implement-Debug cycle이라고 부릅니다). 이 늪에 빠진 학생을 조교가 빠르게 도와줄 수 있다면, 혹은 문제를 이미 푼 다른 학생이 도와줄 수 있다면 교육의 효과성과 즐거움이 더욱 증가할 것입니다.

글쓴이

  • 김수인: KAIST 전산학부 박사과정 / Research Lead, Elice

#엘리스 #코딩교육 #교육기업 #기업문화 #조직문화 #서비스소개

기업문화 엿볼 때, 더팀스

로그인

/