1. 서론
1.1 연구 배경
인공지능 기술의 혁신적인 발전은 교육 분야에서도 큰 변화를 일으키고 있다. 특히 생성형 인공지능 모델은 사람과 일상 수준의 대화를 가능하게 하여 새로운 형태의 교육적 접근법을 제시하고 있다. 프로그래밍 교육 분야에서도 이러한 기술 발전은 중대한 변화를 만들어가고 있으며, 학습자들이 프로그래밍 개념을 이해하고 응용할 수 있도록 돕는 데 있어 인공지능의 가능성이 크게 주목받고 있다[1].
근래 가장 주목받고 있는 ChatGPT는, GPT(Generative Pre-trained Transformer)를 기반으로 만들어진 생성형 인공지능 모델로서 미국의 오픈AI에서 개발하였다[2]. ChatGPT는 자연어 처리 능력을 통해 학습자와의 상호작용을 지원하며, 교육에서 개념 설명, 문제 해결 지원 등 다양한 역할을 할 수 있다. 2022년에 발표된 GPT-3는 텍스트 중심의 대화 방식을 지원했지만, 2023년에 발표된 GTP-4는 멀티모달 대화 능력을 제공하며 이미지 해석 능력도 갖추게 되었다. 2024년 5월에 발표된 GPT-4o는 다국어 실시간 음성 대화 기능도 지원하게 되었고, 같은 해 12월에 발표된 OpenAI-o1은 사고의 연쇄 추론 기능이 강화되어 다양한 학문 영역에서 사용자에게 더욱 정교한 피드백 제공하게 되었다[3].
이러한 발전은 ChatGPT가 코드작성, 디버깅, 일고리즘 분석 등의 프로그래밍 학습을 실시간으로 도와 줄 수 있는 강력한 프로그래밍 학습지원 도구가 될 수 있음을 의미한다.
1.2 관련 연구
생성형 인공지능의 활용에 관한 연구는 교육 분야에서 활발히 진행되고 있다.
이수환 외(2023)는 생성형 인공지능의 교육적 활용에 관한 국내 연구 동향을 살펴보며, 이 기술이 교육에 어떻게 적용될 수 있는지에 대한 종합적인 연구 필요성을 강조했다[4]. 김슬기(2023)는 ChatGPT가 프로그래밍 교육에서 어떤 가능성을 가졌는지 분석했으며[5], 프로그래밍 교육을 위한 코드 생성 방법에 대해 교수학습 전략과 프롬프트 공학 기법을 결합하여 새로운 프롬프트를 제안했다[6]. 박중오(2024)는 프로그래밍 수업에서 AI 챗봇을 활용한 학습자의 경험 변화를 분석했으며[7], 공병찬 외(2023)는 사람과 ChatGPT가 생성한 코드의 잠재력과 실용성 차이를 비교하였다[8]. 최수지 외(2023)는 ChatGPT-3.5와 4.0을 포함한 여러 모델 간의 코딩 문제해결 능력을 비교하고, 이에 대한 평가체계를 제시했다[9]. 고광일(2024)은 비SW전공생을 대상으로 생성형 인공지능을 활용한 프로그래밍 교육의 효과를 실험적으로 검증하였다[10].
1.3 연구 주제
본 연구는 이러한 배경 속에서 ChatGPT가 SW전공생의 프로그래밍 언어 학습에 미치는 효과성을 탐구하였다. 구체적으로, 본 연구는 SW전공생 대상의 C프로그래밍 수업을 ChatGPT를 활용한 분반과 전통적인 수업방식의 분반으로 구분하고, 동일한 평가를 통해 두 분반의 학습성과 차이를 통계적으로 분석하였다. 이때, 익숙하지 않은 수업방식으로 인한 학생들의 학습 효율성 저하를 최소화하기 위해 학습 영역별로 프롬프트를 설계하여 ChatGPT 활용 분반 학생들에게 제공하였다. 또한, ChatGPT 활용 분반의 학생들을 대상으로 설문 조사를 시행하여, ChatGPT와 프롬프트 활용의 효용성과 C프로그래밍 학습 영역별로 어느 정도 도움이 되었는지 평가하였다. 이와 같은 ChatGPT를 활용한 프로그래밍 학습의 효과성 검증은 보안을 포함한 다양한 분야에서 프로그래밍 교육을 받는 학생에게 새로운 교육 접근법을 제시할 수 있다.
논문의 구성은 다음과 같다. 제2장에서는 C프로그래밍 수업의 주요 학습 영역별 ChatGPT 활용 내용을 분석하고, 이를 바탕으로 프롬프트를 설계하였다. 제3장에서는 본 연구의 실험 방식을 설명하고 실험을 진행하기 전에 두 분반 학생들의 학습 역량 차이를 분석하였다. 제4장에서는 두 분반의 학습성과 차이를 통계적으로 분석하고, 설문 조사를 통해 ChatGPT와 프롬프트 활용의 효용성을 평가하였다. 마지막으로 제5장에서 본 연구를 종합적으로 정리하고, 본 연구의 향후 과제와 의의를 논하면서 결론을 맺는다.
2. ChatGPT 활용도와 프롬프트 설계
C프로그래밍 교육에서 ChatGPT를 효과적으로 활용하기 위해서는 주요 학습 영역에 대한 활용 가능성을 체계적으로 분석하는 것이 중요하다. ChatGPT는 C언어의 기본 문법 설명, 예제 코드 생성, 실습 문제 출제, 코드 오류 피드백 제공 등 다양한 기능을 통해, 학생들의 문제해결 능력과 논리적 사고를 강화하는데 기여할 수 있다. 본 연구에서는 C프로그래밍 수업의 주요 학습 영역을 분류하고, 각 영역에서 ChatGPT의 활용 내용을 제시하였다(<표 1> 참조).
<표 1> 주요 학습 영역별 ChatGPT 활용 내용
교수자가 주도하는 전통적인 수업방식에 익숙한 학생들을 대상으로 ChatGPT를 활용한 자기 주도적 학습 방식을 적용하는 것은 수업의 효율성과 학습 효과 저하를 유발할 위험이 있다. 따라서 본 연구는 <표 1>을 참고하여, 학습 영역별로 학생들의 학습이해도를 점검하고, 학생들이 스스로 오류를 수정할 수 있도록 돕는 프롬프트를 설계하였다.
학습 영역별 프롬프트는 기본적으로 ①기본 개념 학습, ②실습 기반 학습, ③퀴즈 기반 학습 단계로 구성되며, 학생은 각 학습 단계에서 프롬프트에 제시된 질의어를 통해 ChatGPT와 상호작용하면서 자신의 학습이해도를 향상할 수 있다. 또한, 학생은 자신의 학습 수준과 지적 호기심에 따라 교수자가 제공한 프롬프트에 국한되지 않고 ChatGPT를 자유롭게 활용할 수 있다. <표 2>는 조건문 제어 영역의 학습을 위해 설계된 프롬프트 일부를 보여준다.
<표 2> 조건문 제어 영역 프롬프트
3. 실험 방식 및 실험 사전 준비
3.1 그룹별 수업 진행 방식
본 연구는 ChatGPT와 프롬프트 활용이 SW전공학생들의 프로그래밍 학습에 미치는 영향을 실험하기 위해, 모 지방 사립대학의 C프로그래밍 수업을 활용하였다. 구체적으로, 본 연구는 해당 C프로그래밍 수업을 두 개의 분반으로 나누어 진행하였으며, 한 분반(그룹A, 35명)은 ChatGPT와 프롬프트를 활용한 수업을 진행하고, 다른 분반(그룹B, 34명)은 교수자 주도의 전통적인 수업방식을 적용하였다.
그룹A의 수업에서는 교수자가 기본적인 이론 강의와 강의 내용 이해를 돕는 프로그램을 설명하고, 그 후 학생이 프롬프트에 설계된 내용에 따라 ChatGPT와 상호작용하면서 기본 개념, 프로그래밍 실습, 퀴즈풀이 과정을 수행하였다. 이 과정에서 학생은 자신이 잘못 알거나 이해하지 못한 내용을 ChatGPT와 상호작용하면서 자기 주도적으로 학습하게 된다. 그룹B의 수업에서는 교수자가 기본적인 이론 강의와 강의 내용을 돕는 프로그램을 설명하고, 실습을 진행할 때 교수자가 프로그래밍의 전 과정을 먼저 설명한 후, 학생들에게 구현하도록 하였다. 두 그룹 모두에서 교수자는 실습과 관련된 학생들의 질의에 대응하였다. <표 3>은 두 그룹의 수업 진행 방식과 교수자의 역할을 정리한 것이다.
<표 3> 그룹별 수업 진행 방식
3.2 실험 사전 준비
본 연구는 그룹별로 수업방식이 상이하므로, 수업 오리엔테이션을 통해 수업방식에 대한 공지와 학생들의 동의를 얻었다. 참고로 실험이 진행된 대학은 SW중심대학으로, 신입생들에게 의무적으로 SW기초교육을 이수하도록 요구하며, SW전공생에게는 파이썬 기초교육을 수강하도록 하고 있다. 따라서 본 실험에 참여한 학생들은 모두 파이썬 프로그래밍 기초교육을 이수한 학생들이다.
이러한 배경을 바탕으로, 본 연구는 ChatGPT와 프롬프트 활용이 C프로그래밍 학습에 미치는 효과를 실험하고자 하였으며, 실험 시작 전에 두 그룹의 프로그래밍 능력을 사전 평가하였다. 이를 위해 수업 오리엔테이션에 파이썬을 활용하여 학생들의 프로그래밍 능력을 평가하고, 두 그룹 간의 초기 능력 차이를 분석하였다. 사전 평가는 변수 활용, 조건 생성, 선택적/반복적 문장 제어 영역 문제로 구분하여 총 30점 만점으로 평가하였다.
<표 4>는 그룹A의 학생 35명과 그룹B의 학생 34명에 대한 사전 평가 점수를 독립표본 t-양측검정으로 분석한 결과를 보여준다. 분석 결과, 그룹A의 평균점수는 24.63점, 그룹B의 평균 점수는 25.24점으로 나타났으며, 두 그룹 간의 프로그래밍 역량에는 통계적으로 유의미한 차이가 없었다 (유의 수준 α = 0.025, 유의 확률 0.5075).
<표 4> 프로그래밍 역량에 대한 t-검정 분석
참고로, 그룹A는 오리엔테이션에 해당하는 첫 주 수업에 ChatGPT의 기초적인 교육을 진행하였다. 교육의 내용은 기본적인 ChatGPT 사용법과 교수가 제공한 프롬프트를 활용하여 학습을 진행하는 방법을 실습하는 내용으로 구성되었다. 이를 통해, 학생들은 프롬프트의 중요성을 인지하고, 자신에게 필요한 답을 얻기 위해 프롬프트를 구체적이고 명확하게 기술하는 방법을 경험하였다.
4. 실험 결과 및 분석
4.1 평가 방식
그룹A와 그룹B의 학습성과 평가는 객관적인 평가를 위해 동일한 문제로 이루어진 중간고사와 기말고사 점수를 사용하였다. 중간고사는 변수와 연산자 활용, 조건문 및 반복문 제어, 함수 활용 능력을 평가하는 문제로 구성되었으며, 기말고사는 배열, 포인터, 구조체 활용 능력을 평가하는 문제로 이루어졌다. <표 5>는 본 연구에서 사용된 중간고사 및 기말고사의 문제 영역, 주요 문제 내용, 배점을 정리한 것이다.
<표 5> 중간, 기말고사 문제 구성
4.2 평가결과 및 분석
<표 6>은 그룹A와 그룹B의 중간고사와 기말고사 결과에 대해 문제 영역별 평균 점수(영역별 100점 만점으로 환산)와 분산을 정리한 것이며, (그림 1)과 (그림 2)는 각각 <표 6>에 정리된 두 그룹의 영역별 평균 점수와 점수 분산을 그래프로 나타낸 것이다.
<표 6> 그룹별 시험 영역별 평균 점수와 분산
(그림 1) 그룹별 시험 영역별 평균 점수
(그림 2) 그룹별 시험 영역별 점수 분산
(그림 1)에서 변수와 연산자 활용 영역에 대해 두 그룹의 평균 점수는 거의 차이를 보이지 않으나, 그 외의 영역에서는 그룹A가 그룹B보다 평균 점수가 가시적으로 높았다. 특히 수업 후반부 학습 내용을 평가하는 기말고사에서는 모든 학습 영역에서 그룹A가 그룹B보다 평균 점수가 확연히 높음을 알 수 있다. (그림 2)에서 두 그룹의 중간고사와 기말고사의 문제 영역별 점수 분산 차이를 보면, 수업 후반부로 갈수록 그룹A에 비해 그룹B의 점수 분산이 더 커지는 경향을 보인다. 이는 ChatGPT와 프롬프트를 활용하여 자기 주도적 학습을 한 그룹A의 학생들이 그룹B의 학생들에 비해 수업에 뒤처지거나 포기하는 경우가 상대적으로 적다는 것을 시사한다.
그룹A와 그룹B의 평균 점수와 시험 영역별 점수를 통계적으로 분석하기 위해 IBM SPSS Stastics 28을 사용하여 t-검정 분석을 수행하였다. <표 7>은 그룹A와 그룹B의 평균 점수에 대한 독립표본 t-양측검정 분석 결과를 보여준다. 분석 결과, 그룹A의 평균 점수는 74.26점, 그룹B의 평균 점수는 63.78점으로, 그룹A가 그룹B에 비해 통계적으로 유의미하게 높은 점수를 받았다 (유의 수준 α = 0.025, 유의 확률 2.4971E-09). <표 8>은 두 그룹 간 시험 영역별 점수에 대한 독립표본 t-양측검정 분석 결과를 정리한 것이다. 변수와 연산자 활용 영역 및 함수 활용 영역에서 두 그룹 간 평균 점수에 통계적으로 유의미한 차이가 없었는데, 이는 교수자의 강의와 교재 내용만으로 학습이 충분히 이루어졌기 때문으로 판단된다 (변수와 연산자 활용 영역: 유의 확률 p = 0.8709, 함수 활용 영역: 유의확률 p = 0.1664). 그 외의 영역에서는 그룹A가 그룹B보다 통계적으로 유의미하게 높은 점수를 보였으며, 특히 수업 후반부 학습 영역에서는 두 그룹 간 차이가 뚜렷했다 (조건문 제어: 유의 확률 p = 0.0196, 반복문 제어: 유의 확률 p = 0.0010, 배열 활용: 유의 확률 p = 1.1973E-05, 포인터 활용: 유의 확률 p = 6.5507E-05, 구조체 활용: 유의 확률 p = 3.8357E-06). 이는 학습량이 누적되고 학습 내용이 어려워질수록 자기 주도적 학습을 한 그룹A의 학생들이 그룹B의 학생들보다 학습 내용의 이해와 흥미 유지에 있어서 차이를 보였다고 해석할 수 있다.
<표 7> 그룹간 시험 평균 성적 t-검정 분석
<표 8> 문제 유형별 성적에 대한 t-검정 분석
4.3 ChatGPT와 프롬프트 활용 설문 조사
그룹A의 35명 학생들을 대상으로 ChatGPT와 프롬프트 활용의 효용성에 관한 설문을 진행하였다. 설문 항목은 <표 9>와 같이 ChatGPT 활용이 학습의 이해도와 흥미도 향상에 얼마나 도움이 되었는지, 프롬프트 활용이 학습에 얼마나 유용했는지, 그리고 학습 영역별로 ChatGPT와 프롬프트 활용이 얼마나 도움이 되었는지를 파악하기 위한 문항으로 구성되었다.
<표 9> ChatGPT와 프롬프트 활용 설문 항목
(그림 3)은 설문 조사 결과를 그래프로 나타낸 것이다. 설문 응답자 35명 중, ChatGPT 활용이 학습의 이해도 향상에 ‘그렇다’와 ‘매우 그렇다’로 응답해 긍정적이라고 생각한 학생이 30명(85.71%), 학습 흥미도 향상에 긍정적이라고 응답한 학생이 29명(82.86%)이었다. 나머지 학생들은 '보통이다'라고 답했으며, 부정적인 응답은 없었다. 프롬프트 활용이 학습에 도움이 되었는지에 대한 설문 결과, '매우 그렇다'가 29명, '그렇다'가 6명으로 모든 응답자가 긍정적이었다.
(그림 3) 설문 조사 결과
학습 영역별로 ChatGPT와 프롬프트 활용의 유용성을 묻는 설문에서는, 포인터 활용(평균 4.74점), 구조체 활용(평균 4.69점), 조건문 제어(평균 4.43점), 배열 활용(평균 4.37점), 반복문 제어(평균 4.06점), 함수 활용(평균 3.94점), 변수와 연산자 활용(평균 2.94점) 순으로 점수가 높았다. 이는 학생들이 고난도의 포인터와 구조체 활용을 학습할 때 프롬프트 활용이 큰 도움이 되었음을 의미하는데, 실제 수업 시간에 학생들이 자신이 이해하지 못한 내용을 ChatGPT와 반복적으로 상호작용하면서 학습하는 모습을 확인할 수 있었다. 반면, 교수자의 강의와 교재 내용으로 학습이 충분한 변수와 연산자 활용 영역에 대해서는 학생들이 ChatGPT와 프롬프트의 유용성을 크게 느끼지 않았음을 나타낸다.
5. 결론
본 연구는 SW전공 학생을 대상으로 ChatGPT 활용이 C프로그래밍 학습에 미치는 효과를 분석하였다. 이를 위해 C프로그래밍 수업을 ChatGPT 활용 분반과 비활용 분반으로 나누어 동일한 평가를 시행하고, 두 집단 간 학습성과의 차이를 통계적으로 분석하였다. 또한, ChatGPT 활용 분반의 학생들에게는 학습 영역별로 ChatGPT 활용을 효과적으로 유도할 수 있도록 설계된 프롬프트를 제공하였으며, ChatGPT 활용의 효용성에 대한 설문 조사를 시행하였다.
연구결과, ChatGPT 활용이 C프로그래밍 학습 효과에 통계적으로 유의미한 긍정적인 영향을 미치는 것으로 나타났다. 특히, 포인터 활용 및 구조체 활용과 같은 고난도 학습 영역에서 ChatGPT의 활용이 높은 학습 효율성을 제공하는 것으로 평가되었다. 또한, ChatGPT 활용 분반의 학생들이 비활용 분반보다 학습 영역 전반에서 균형 잡힌 성적을 기록한 점은 주목할 만하다. 이는 ChatGPT가 학생들의 자기 주도적 학습을 촉진하여 학습 내용을 내재화하고, 학습 난도가 증가하는 수업 후반부까지 학습 습득력과 흥미의 저하를 최소화하는 데 도움을 주었음을 시사한다.
<표 10>은 본 연구를 포함하여 서론에서 기술한 관련 연구들 중 생성형 AI가 프로그래밍 교육에 미치는 효과를 실증적으로 분석한 연구들을 정리한 것이다. 박중호(2024)[7]의 설문 결과에 따르면, 생성형 AI는 문제 분석과 이해, 문제해결에 높은 활용도를 보였는데, 이는 본 연구에서 문제 분석과 해결 능력이 중요한 수업 후반부에서 ChatGPT 활용반과 비활용반간의 점수 차이가 더욱 크게 나타난 실험 결과로 반증될 수 있다. 이러한 결과는 고광일(2024)[10]의 연구에서도 확인할 수 있는데, 문제 분석과 해결 능력이 중요한 알고리즘 이해 영역에서 ChatGPT 활용반이 비활용반에 비해 큰 점수 차이를 보였다는 실험 결과가 맥락을 같이한다고 볼 수 있다.
<표 10> 기존 관련 연구와 본 연구의 비교
ChatGPT의 능력을 고려할 때, 본 연구는 C언어 외의 다양한 고급 프로그래밍 언어를 대상으로 연구를 확장할 필요성을 제기한다. 또한, 학생 개개인의 학습 역량 차이를 분석하여 개인 맞춤형 학습지원을 위한 프롬프트 설계에 관한 연구도 중요한 후속 연구 과제로 남아 있다.
본 연구는 ChatGPT 활용반과 비활용반의 학습 범위와 수업 시간을 동일하게 진행했지만, ChatGPT 활용이 자기 주도적 학습을 촉진하는 특성상, ChatGPT 활용반 학생들이 수업 시간 외에 추가 학습을 할 가능성이 있다. 따라서 두 분반 학생들의 학습 시간에 차이가 발생할 수 있다는 점은 본 연구의 한계로 작용할 수 있다. 하지만 본 연구는 정량적 분석을 통해 프로그래밍 교육에서 생성형 인공지능과 프롬프트 활용의 잠재력을 실증적으로 검증했다는 점에서 의의가 있으며, 이를 통해 생성형 인공지능 시대의 보안 분야 프로그래밍 교육에 기여할 수 있기를 기대한다.
References
- 진회승, 윤보성, 신승윤, 생성형 AI에 대응한 SW 인재양성 정책 방향 연구, 연구보고서 RE-158, 소프트웨어정책연구소(SPRI), 2023.
- OpenAI 홈페이지, https://openai.com/
- GPT 나무위키 홈페이지, https://namu.wiki/w/ChatGPT
- 이수환, 송기상, "생성형 인공지능의 교육적 활용에 대한 국내 연구 동향 탐색", 컴퓨터교육학회 논문지, 제26권, 제6호, pp. 15-27. DOI: https://doi.org/10.32431/kace.2023.26.6.002, 2023.
- 김슬기, "프로그래밍 교육을 위한 생성형 인공지능 활용 가능성 탐색 : ChatGPT를 중심으로", 2023년 한국컴퓨터교육학회 하계 학술대회 논문집, 제27권, 제2호, pp. 151-154, 2023년 8월.
- 김슬기, "생성형 AI를 활용한 프로그래밍 교육용코드 생성 프롬프트 개발", 컴퓨터교육학회 논문지, 제26권, 제5호, pp. 107-117, DOI : 10.32431/kace.2023.26.5.009, 2023.
- 박중오, "생성형 인공지능 기반 수업 경험 및 활용방안에 대한 연구-프로그래밍 수업을 중심으로", 실천공학교육논문지, 제16권, 제1호, pp. 33-39, DOI: https://doi.org/10.14702/JPEE.2024.033, 2024.
- 공병찬, 조수희, 장지영, 박소희, 권기현, "ChatGPT와 인간 프로그래머가 생성한 코드의 비교 분석", 2023년 한국정보기술학회 하계 종합학술대회논문집, 제18권, 제1호, pp. 789-792, 2023년 6월.
- 최수지, 변혜원, "한국어 코딩 테스트에서의 인간대 ChatGPT 3.5 & 4.0 성능 비교 및 평가 체계", 한국디지털콘텐츠학회논문지, 제24권, 제12호, pp. 3167-3178, DOI: https://doi.org/10.9728/dcs.2023.24.12.3167, 2023년.
- 고광일, "생성형AI 활용이 프로그래밍 학습에 미치는 효과성에 관한 연구 – ChatGPT와 스크래치 프로그래밍 중심으로", 융합보안논문지, 제24권, 제3호, pp. 33-39, DOI: https://doi.org/10.33778/kcsa.2024.24.3.033, 2024년.