컴퓨터 비전공자를 위한 ChatGPT 기반의 소프트웨어 교양 교육 과정 설계
Copyright ⓒ 2024 The Digital Contents Society
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-CommercialLicense(http://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
초록
최근 인공지능 시대를 살아가는 학습자들에게 소프트웨어와 인공지능을 이해하고 활용할 수 있는 소프트웨어 리터러시와 인공지능 리터러시 능력이 요구되고 있다. 하지만 컴퓨터 비전공 학습자에게 소프트웨어와 인공지능 학습은 경험의 부재 및 사고력 차이등으로 인해 학습의 어려움을 느끼고 있다. 본 연구에서는 비전공 학습자를 대상으로 소프트웨어 교양 교육 과정에서 대형 언어모델인 ChatGPT의 활용 가능성을 조사하였다. 그 결과 프로그램 기술을 위해 26.6%, 특정 문법 이해와 디버깅 과정에서 39.9%가 ChatGPT를 활용함을 확인하였고 이를 기반으로 ChatGPT를 활용한 소프트웨어 교양 교육 과정을 설계하였다. 제안하는 교과과정은 탐구학습, 설계학습, 개발 단계로 진행하며 학습자의 성취도 및 흥미를 유발하기 위해 ChatGPT를 활용하여 각 단계를 구체화하였다. 제안한 교과과정이 비전공 학습자에게는 인공지능 리터러시를 함양하고 교수자에게는 인공지능 시대의 소프트웨어 교육의 방향성에 기여할 수 있기를 기대한다.
Abstract
Learners living in the current era of artificial intelligence are required to have software and artificial intelligence literacy skills to understand and utilize them. However, non-computer major learners find software and artificial intelligence learning difficult owing to lack of experience and differences in thinking ability. In this study, we investigated the possibility of using ChatGPT, a large language model, in a software liberal arts education course targeting non-major learners. We confirmed that 26.6% of students used ChatGPT to solve problems and 39.9% used ChatGPT to understand specific grammar and correct errors. Based on this, a software liberal arts curriculum using ChatGPT was designed. The proposed curriculum contains inquiry learning, design learning, and development stages, with each stage specified using ChatGPT to stimulate learner achievement and interest. We hope that the proposed curriculum will improve artificial intelligence literacy for non-major learners and contribute to software education in the artificial intelligence era.
Keywords:
ChatGPT, Artificial Intelligence, Software Education, Non-Majors Education, Basic Liberal Arts키워드:
인공지능, 소프트웨어 교육, 비전공자 교육, 교양교육Ⅰ. 서 론
2016년 4차 산업혁명 발표 이후, 소프트웨어와 인공지능 그리고 데이터를 기반으로 모든 분야에서 기술 융합의 결과물들이 모습을 드러내고 있다. 각 대학에서는 인공지능 시대를 살아가는 인재들을 육성하기 위하여 인공지능을 가속화하는 소프트웨어 교육의 중요성을 인지하고 비전공자들도 소프트웨어 교육을 받을 수 있도록 다양한 교과과정을 설계하고 운영하고 있다. 소프트웨어 교육은 현실 세계의 문제를 정의하고 문제해결과정을 프로그래밍 언어를 활용하여 기술하는 전반적인 과정을 의미한다. 하지만 컴퓨터 비전공자들은 시대의 흐름에 따라 소프트웨어 교육의 필요성은 공감하고 있지만, 일반 언어와 프로그램 언어의 작성 환경 차이, 프로그래밍 언어의 문법 지식 및 경험의 부재, 전공과의 연관성, 사고력 차이 등으로 학습의 어려움을 호소하고 있다[1],[2]. 이는 학습동기 저하와 소프트웨어의 지적 호기심 저하로 이어지고 있다[3]. 이에 소프트웨어 교육 과정에 대한 문제점과 한계점을 극복하기 위한 많은 연구가 진행되고 있다[4],[5]. 특히 코로나19를 지내면서 학습자는 온라인 영상 학습 자료를 통하여 장소에 구애 받지 않고 반복 학습이 가능해졌으며 원격 수업 참여, 온라인상에 과제 제출등 디지털 환경 변화에 거부감없이 적응하였다. 더불어 교수자는 다양한 형태의 학습 자료를 설계하고 수업에 반영할 수 있었다. 2022년 11월 ChatGPT(Generative Pre-Trained Transformer)의 발표는 의료, 법률, 경제, 산업 분야에 새로운 변화를 예고하였다. ChatGPT는 자연어 처리 모델을 지원하는 시스템으로 인간과 대화하는 것처럼 인공지능과 자연스러운 대화가 가능하다. 방대한 데이터를 학습한 ChatGPT는 사용자가 입력한 프롬프트에 따라 분야와 수준에 맞게 빠른 답변을 제공한다[6],[7]. 이에 국어, 영어, 프로그램등 다양한 교육측면에서 ChatGPT의 활용 사례들이 소개되고 있다.
본 연구에서는 소프트웨어 학습에 어려움을 느끼는 컴퓨터 비전공자들을 대상으로 진행하는 소프트웨어 교양교육 측면에서 ChatGPT를 활용할 수 있는 프로그램 교육 과정을 제안하고자 한다. 이를 위해 교육 및 프로그램 개발 측면에서의 ChatGPT 활용, 비전공자 중심의 프로그래밍 학습에 대한 연구와 ChatGPT 활용 사례들을 살펴보았다. 그리고 소프트웨어 교육에서 ChatGPT의 활용 가능성을 살펴보기 위해 비전공자를 대상으로 진행한 프로그래밍 수업에서 ChatGPT 활용 용도 및 활용가능성에 대한 설문을 분석하고 이를 바탕으로 ChatGPT를 활용한 단계적 소프트웨어 교양교육과정을 제안하고자 한다. 이로써 인공지능 기술을 활용한 소프트웨어 교육 변화의 필요성과 학습자들이 소프트웨어 리터러시와 인공지능 리터러시를 함양할 수 있는 방향을 제시하고자 한다.
Ⅱ. 이론적 고찰
2-1 ChatGPT의 개념
OpenAI에서 개발한 ChatGPT는 대형언어모델(LLM; Large Language Model) 기반의 생성형 인공지능으로써 사용자와 자연스러운 문장 형태로 대화를 주고 받을 수 있는 챗봇이다[7]. ChatGPT는 2022년 11월 GPT-3.5를 발표한지 5일만에 서비스 이용자가 100만명을 돌파하면서 일반 사용자 외에 산업 및 교육 분야에서 많은 관심을 갖기 시작하였다. ChatGPT는 온라인상의 대규모 데이터를 수집한 후 문맥 및 특성들을 분석하고 학습하며 변환기를 생성한다. 사용자가 프롬프트(Prompt)에 검색 및 질의 사항등을 입력하면 학습된 변환기를 통하여 통계적으로 예측한 응답을 생성한다. ChatGPT는 영어와 한국어를 포함한 다국어를 지원하며 사람과 자연스러운 대화를 이어나가는 것처럼 결과를 출력한다. 또한 이전의 대화 내용 및 문맥을 기억하고 있어서 지속적인 대화가 가능한 특징이 있다. ChatGPT의 자연어 처리 능력과 생성으로 의료, 번역, 글쓰기, 마케팅, 프로그래밍 등 다양한 분야와의 활용 방안을 위한 연구들이 이루어지고 있다[8],[9].
2-2 ChatGPT의 교육적 활용
신동광 외 2인은 내용중심 영어 교수 학습과 외국어 학습 연계의 가능성을 확인하였다. 이 과정에서 ChatGPT는 대화, 질의를 통하여 창작 및 글쓰기에서 도움을 받을 수 있을 것으로 파악하였다[10]. 김형민은 고급 한국어 학습자 3인에게 말하기, 쓰기를 주고 ChatGPT와 상호작용한 결과 한국어 말하기 연습용, 맞춤형 학습, 말하기 감소등의 측면에 ChatGPT의 활용 유용성을 확인하였다[11].
변정호외 1인은 생명과학 개념학습과 탐구 활동에 ChatGPT를 학습 보조 도구로써 활용 가능성에 대해 설명하고 교수·학습 전략 단계로써 탐색 및 결정, 정교화 및 생성, 검증 및 해석, 의사소통 및 정리를 제시하였다[12]. 손태권은 수학 교육에서 ChatGPT 활용 가능성을 탐색하기 위하여 분수 크기 비교 문제에 대해 학생 산출물과 예비교사와 학생과의 담화 자료를 사례로 산정하고 ChatGPT를 통하여 분석 결과와 수학교육전문가의 분석 결과를 비교하였다. 그 결과 ChatGPT가 학생의 지식과 사고를 파악할 수 있으며 교사의 관행을 분석할 수 있는 도구로 활용될 수 있음을 확인하였다[13]. 이수환은 텍스트를 입력하여 사진과 같은 이미지를 생성할 수 있는 Stable Diffusion과 텍스트 처리를 지원하는 NLTK(Natural Language Tool Kit)를 ChatGPT와 결합하여 수업 주제어에 따라 교수·학습용 그림 자료를 추천하는 프로그램으로 ChatGPT의 다양한 활용 가능성에 대해 언급하였다[14].
Biswas는 자료구조, 알고리즘, 프로그램 언어에 대한 이해를 요구하는 복잡한 프로그래밍 분야에서 ChatGPT의 활용 방안들을 코드 완성 및 수정, 코드 스니펫(snippet) 예측 및 제안, 구문오류 자동 수정, 코드 최적화 및 리팩토링, 누락 코드 생성, 문서 생성, 챗봇 개발, 텍스트 기반의 코드 생성으로 구분하여 정의하였다[15]. Liu, C는 CodeXGlue 데이터 세트를 사용하여 텍스트-코드 생성과 코드-코드 생성에 ChatGPT의 코드 생성 작업을 평가하였다. 이 과정에서 프롬프트 설계에 따라 코드 생성 성능이 향상됨을 확인하였다[16]. Yetiştiren는 CodeWhisperer, Copilot, ChatGPT의 코드 생성 결과를 코드 유효성, 코드 정확성, 코드 보안, 코드 신뢰성 및 코드 유지 관리성을 기준으로 성능을 비교한 결과 ChatGPT가 다른 도구에 비해 높은 성능을 보임을 확인하였다[17]. Nigar M은 ChatGPT가 디버깅 지원, 버그 예측, 버그 설명을 통하여 프로그램의 버그 문제를 해결하는데 활용될 수 있음을 기술하였다. 하지만 출력의 결과는 버그의 특정 상황, 훈련된 데이터의 품질과 시스템 설계에 따라 달라질 수 있으므로 ChatGPT를 디버깅 보조 도구로 활용하고 IDE(통합개발환경) 및 디버거와 같은 다른 디버깅 도구와 함께 사용하는 방안을 제안하였다[18]. 공병찬외 4인은 ChatGPT와 사람이 프로그래밍한 코드를 문제 해결 시도 횟수, 사용 메모리, 코드 길이, 실행시간 측면에서 비교 분석하여 ChatGPT가 초기 코드 생성에 효과적으로 활용될 수 있음을 제안하였다[19].
최정원 외 1인은 프로그래밍 교육에서 초보 학습자들이 느끼는 어려움을 분석하였고 그 결과 프로그래밍 개념에 대한 이해와 정교화된 알고리즘 작성 및 다양한 문제 해결 경험의 중요성을 주장하였다[1]. 문외식은 프로그래밍 교육에서 문제 해결력과 논리력 향상에 영향을 주는 오류 요소들을 수집하고 논리 오류, 데이터 정의 및 취급 오류, 인터페이스 오류, 기타 오류로 분류하였다. 이중 구문 오류보다는 논리 오류가 더 많음을 확인하고 논리 오류를 통한 문제해결의 중요성을 강조하였다[2]. 김수환은 컴퓨팅적 사고 학습 과정에서 비전공 학습자들은 알고리즘 작성 단계에서 문법 개념을 가장 어려워하고 문제 해결 과정을 구현하는 과정, 프로그래밍에서 명령어 선택 및 활용 순으로 어려워함을 확인하였다[3]. 서주영외 1인은 비전공 학습자들의 학습 동기 향상을 위해 전공 친화적 문제 중심의 프로그래밍 교과를 설계하고 일반 문제 해결 중심 과정과 비교하였다[20]. 정혜욱은 비전공 신입생들이 실습 시간에 스스로 문제를 해결하면서 프로그래밍 경험을 쌓을 수 있는 시연중심모델(DMM) 기반의 단계적 블라인드 프로그래밍 실습 과정을 적용한 학습모델을 설계 및 적용하였고 학습 주차가 진행될수록 문제 해결 비율이 상승하는 것을 확인하였다[21]. 종합하면, 비전공 학습자들은 프로그램 개념 이해, 작성 과정에서 발생하는 다양한 오류들, 문제해결과정 기술의 경험 부족, 사고력의 차이등으로 프로그램 학습에 어려움이 있음을 확인하였다. 이를 위한 다양한 교수학습모델들이 제시되고 있으며 효과성이 입증되고 있지만, 학습자의 이해 차이와 즉각적인 피드백의 한계등 실습환경과 같은 외부적인 문제점도 존재한다. 이를 해결하기 위해 최근 인공지능 기술 중 자연어 처리를 지원하는 ChatGPT의 활용 방안들이 모색되고 있다. 최서원외 1인은 챗봇 플랫폼인 담비(Danbee.Ai)를 카카오톡 메신저 서비스와 연동하는 챗봇을 개발하였다. 그리고 중학생 대상으로 알고리즘 수업에 사용될 예제를 챗봇으로 구현하고 선행 학습 또는 복습을 할 수 있도록 지도한 결과 인공지능 챗봇이 수업 집중도와 학업 성취에 긍정적인 영향을 제공함으로 확인하였다[22]. 김슬기는 프로그래밍 교육에서 프롬프트 엔지니어링 기법을 적용한 프롬프트를 개발하였다. 개발한 프롬프트는 교수학습 자료에 적합한 양질의 코드를 생성함으로써 학습자의 수준을 고려한 코드와 연습문제 생성에 적용할 수 있음을 확인하였다[23]. 김송희외 1인은 프로그래밍 교육에서 인공지능 챗봇의 지속 사용에 영향을 주는 요인을 분석한 결과 인지된 유용성과 인지된 용이성임을 확인하였다. 특히 오류 수정 과정에서 유용함을 나타냈다[24].
방대한 데이터를 학습한 ChatGPT는 사용자의 질문사항에 따라 학습한 변환기를 통하여 대화형 결과를 출력한다. 따라서 학습한 데이터의 종류에 따라 제시한 질의에 대한 답변도 다양할 것이다. 교육 측면에서 살펴본 연구를 종합하면 효과적인 수업 진행을 위한 교사의 보조자료 측면과 학습자의 개인 맞춤형 학습 자료로 활용될 수 있음을 확인하였다[25]. 그리고 프로그램 개발 측면에서 ChatGPT는 코드 작성 및 수정, 구문오류 추출 및 수정, 코드 최적화 , 누락 코드 생성등에 활용될수 있음을 확인하였다. 하지만 프로그램 교육에서의 ChatGPT 활용 부분에서는 자체 개발한 챗봇의 효과성을 분석하거나 ChatGPT를 활용하더라도 ChatGPT 사용 방법에 초점이 맞춰져 있었다. 따라서 본 연구에서는 소프트웨어 교육에 ChatGPT를 활용 가능성과 활용 방향성을 확인하고 기존의 소프트웨어 교육에서 비전공자를 위한 개선된 교육 과정을 제언하고자 한다.
III. 소프트웨어 교양교육에서 비전공 학습자의 ChatGPT 활용
본 연구에서는 컴퓨터 비전공 학습자 중심의 소프트웨어 교육 과정에 ChatGPT를 반영하는 데 있어 ChatGPT 활용 가능성 및 활용 방향을 살펴보기 위하여 수업 종료 후 설문을 진행하였다. 연구대상은 A대학에서 2023년 1학기에 진행하였던 ‘컴퓨팅적 사고와 알고리즘’ 교과목을 수강한 1학년 신입생들을 대상으로 진행하였다. ‘컴퓨팅적 사고와 알고리즘’ 교과목은 교양필수 교과목으로 텍스트 기반의 파이썬 프로그래밍 학습을 통하여 컴퓨팅적 사고력을 함양하고 소프트웨어를 이해하여 전공과 사회 전반에 활용할 수 있는 역량을 함양하는데 목표가 있다. 수업 후 설문에 응답한 학생은 127명이며 모두 컴퓨터 비전공자로서 설문 응답자의 소속 대학 정보는 표 1과 같다. 수강 전 3.9%를 제외한 학습자의 54.3%는 프로그래밍 학습 경험이 전혀 없었고, 33.1%는 학습 경험은 있으나 스크래치(Scratch)와 앱인벤터(App Inventor)와 같은 블록 기반 프로그래밍 학습 경험으로 텍스트 기반의 프로그래밍 학습 경험은 없었다.
해당 교과목은 온·오프라인이 병행되는 블렌디드 러닝(Blended Learning) 수업으로 진행되었다. 1주차~2주차는 컴퓨팅적 사고와 알고리즘에 대한 이론적인 설명과 함께 실습 환경 구축 및 순서도 기반의 알고리즘 기술 도구인 Flowgorithm의 사용방법을 학습하였다. 3주차~10주차는 파이썬의 기본 문법을 기반으로 컴퓨팅적 사고의 구성요소들을 단계적으로 학습하였다. 오프라인에서는 온라인에서 학습한 주차별 기본 문법 및 컴퓨팅적 사고 개념들을 바탕으로 간략한 실습과 함께 일상생활에서 발견되는 다양한 문제들을 매 주차 워크시트 형태로 제시하여 해결하는 시간을 가졌다. 그리고 11주차~15주차는 컴퓨팅 사고력을 함양하기 위하여 학습한 개념들을 바탕으로 전공 및 현실 문제를 활용하여 소프트웨어를 계획, 설계, 구현하는 프로젝트 기반 학습(Project Based Learning)을 진행하였다. ChatGPT의 활용 분포를 확인하기 위하여 5주차 수업이 진행하기 전 간략히 ChatGPT를 소개하고 프롬프트 사용방법에 대해 설명하였다. 5주차부터는 연습문제 및 워크시트 난이도에 따라 문제 해결에 선택적으로 ChatGPT를 활용할 수 있도록 하였으며 팀 프로젝트에서는 교과목의 흥미도와 프로젝트의 완성도를 위하여 자유롭게 ChatGPT를 활용할 수 있도록 하였다. 그리고 프로젝트 결과물에 활용 용도를 기술하도록 하였다.
표 2는 파이썬 프로그램을 활용하여 문제 해결 및 팀 프로젝트를 진행하는 과정에서 ChatGPT의 활용 정도를 분석한 것이다. 그 결과 워크시트나 프로젝트의 문제 해결을 위해 약 21.2%의 응답자가 ChatGPT를 50%이상 활용, 24.4%가 30%이상 활용 그리고 29.9%가 10~30%정도 활용하였다. 프로그래밍 학습에서 비전공자의 ChatGPT 활용 용도에 관한 결과는 표 3과 같다. 활용용도 부분에서는 중복 선택이 가능하도록 하였다. 응답자의 26.6%는 ChatGPT를 주어진 문제에 대한 프로그램 결과를 도출하는 데 활용하였고 특정 문법 이해 25.4%, 디버깅 14.5%의 순위로 활용되었다. 프로그램을 구현하는 부분에서는 문제 해결을 위한 전체 혹은 일부분 작성을 위해 ChatGPT를 활용하거나 리스트(list)와 반복문의 관계 및 프로그램 작성과정의 어려움을 해결하기 위해 ChatGPT의 도움으로 해결하였다. 이는 최종명외 2인에서 전공자들을 대상으로 한 ChatGPT 사용 목적 결과와 유사함을 확인할 수 있었다[26]. 프로그램은 순차, 조건, 반복 구조를 가지며 논리적이며 체계적으로 작성되어야 한다. 텍스트 명령어를 기반으로 프로그램의 흐름을 기술하는 파이썬은 다른 프로그래밍 언어에 비해 쉬운 문법을 제공하며 인터프린터 방식으로 결과를 바로 확인할 수 있다. 하지만 비전공자에게는 프로그래밍 문법을 이해하고 조합하여 논리적인 흐름을 기술해야 하는 부담감이 있다. 또한, 프로그램 작성과정에서 발생하는 오류들은 학습자에게 학습 동기를 저하시키는 요인으로 발생될 수 있다. 비전공 학습자가 프로그래밍 교육이 어려운 이유는 프로그램 작성과정의 어려움, 프로그램 문법의 이해 부족, 문법 오류 수정순으로 나타났다[1],[3],[5]. 이는 설문 결과에서도 나타나듯이 프로그램 작성과정에서 느끼는 어려움을 해결하기 위해 ChatGPT에 의지하는 경향을 서술식 답변으로 확인할 수 있었다. 그리고 표 2와 표 3에서 보이는 것처럼 ChatGPT 활용 정도 면에서는 24.4%, 활용 용도 면에서는 17.3%로 ChatGPT 활용에 부정적인 답변도 있었다. 이는 서술식 답변에서 확인한 결과 ChatGPT에 대한 학습자의 관심, ChatGPT의 이해 정도, ChatGPT의 숙련도 및 의존도, 오류가 포함된 코드, ChatGPT가 생성한 결과의 신뢰성, 팀원 간의 협업을 통한 문제 해결등이였다.
ChatGPT가 작성한 코드들은 문제 해결 과정에 활용할 수도 있지만 ChatGPT에 의해 작성된 코드를 분석함으로써 프로그램의 다양한 해결방법들을 경험할 수 있다. 이를 확인하기 위해 팀 프로젝트 진행 시 ChatGPT가 작성한 코드를 활용하여 확장할 수 있도록 유도하였다.
그 결과 표3에서 볼 수 있듯이 프로젝트 기능 확장을 위한 활용이 9.8%였다. 프로젝트 기능 확장 및 프로그램 간접 경험을 위해서는 ChatGPT가 생성한 코드를 분석하여야 한다. 추가로 학습자들이 ChatGPT가 생성한 코드를 이해하기 위해 분석한 경험이 있는지를 확인한 결과 표 4에서처럼 62.2%의 학습자들이 ChatGPT가 작성한 코드를 개별 또는 팀원과 함께 분석함으로써 프로젝트 업그레이드 경험이 있는 것을 확인하였다. 특히 팀원들과 함께 분석한 경우 코드 이해 및 수정이 수월하다는 의견이 많았다. 이는 프로그램 전체 또는 일부 작성에 대한 부담감을 해소하는 방법으로 ChatGPT의 활용 가능성과 다양한 문제해결과정을 경험할 수 있음을 의미한다. 앞으로의 프로그래밍 학습에서 ChatGPT의 활용 가능성 및 필요성에 대한 질문에서 프로그래밍 학습 부분에서는 62.2%가 긍정적인 답변이였고 프로젝트 활용에서는 66.2% 학생들이 긍정적인 답변을 제시하였다. 그 외에 서술적 답변을 통하여 학습자들은 ChatGPT를 활용 가능성을 모색하고 활용 방법에 관한 관심을 가짐으로써 다양한 분야에서 인공지능의 활용 분야에 대한 모색 및 필요성을 느끼고 있음을 확인하였다.
IV. ChatGPT를 활용한 소프트웨어 교양 교육
4-1 비전공자를 위한 소프트웨어 교육에서 ChatGPT의 활용 목적과 활용 방안
본 연구에서 제안하는 교과과정의 ChatGPT 활용 목적과 활용 방안은 다음과 같다.
첫째, 비전공자 학습자들이 프로그램을 작성하는 과정에서 느끼는 어려움을 이해하고 프로그래밍 개념을 단계적으로 학습할 수 있도록 한다. 프로그래밍 언어는 사람이 컴퓨터와 대화하기 위한 컴퓨터 중심 언어이다. 이에 비전공자 학습자에게 프로그래밍 언어는 외국어 학습 과정처럼 문법 및 어휘를 바탕으로 기술 과정을 학습해야 하는 언어로 인식할 수 있으므로 기초적인 핵심 문법의 반복 학습을 통하여 문법 체계를 먼저 이해하고 단계적으로 결합, 확장하여 일상의 문제를 프로그래밍 언어로 변환하면서 컴퓨팅적 사고력을 배양할 수 있도록 해야 한다. ChatGPT는 대화 형식의 질의응답을 제공한다. ChatGPT는 프로그램 언어의 기초적인 문법 활용에 대해 즉각적인 피드백을 제공할 뿐만 아니라 눈높이에 맞는 개인 맞춤형 학습에 ChatGPT 활용이 가능하다. 디버깅(Debugging)은 프로그램 작성 단계에서 발생하는 구문 오류와 논리 오류를 수정하는 과정이다. 따라서 ChatGPT를 활용하여 디버깅을 진행하거나 ChatGPT가 생성한 오류가 있는 문제들을 해결하는 과정에서 핵심 문법 규칙을 숙지할 수 있다.
둘째, 프로그래밍 결과에 대한 다양한 간접 경험들을 통하여 프로그램의 흐름을 파악하고 복잡한 문제로 확장 및 해결할 수 있는 역량을 키운다. 알고리즘은 주어진 문제에 대하여 해결과정을 절차적, 체계적으로 기술하는 과정이다. 주어진 문제에 대하여 프로그램 결과물은 학습자의 경험에 따라 다양한 해결과정으로 기술할 수 있다. 초보 학습자의 경우 프로그래밍 언어를 활용하여 문제를 해결하는 경험이 부족하다. 이를 극복하기 위해 시연중심모델(DMM)에서는 많은 연습문제나 예제를 노출시켜 비슷한 유형으로 문제를 해결하는 방법을 제시한다[4]. 비전공 학습자들은 주어진 문제에 대해 교수자가 기술한 프로그램 결과가 최적의 방법이라고 생각하고 새로운 유형의 문제를 접했을 때 시연했던 프로그램을 중심으로 문제를 해결하려는 성향이 있다. 따라서 동일한 문제에 대한 다양한 결과들은 학습자에게 간접 경험을 제공함으로 짧은 시간에 소프트웨어 문해력 향상에 도움을 줄 수 있을 뿐만 아니라 문법 중심적 사고에서 벗어나 작성된 코드를 분석하여 확장할 수 있는 상향식 학습 경험으로 프로그램 작성과 확장에 대한 자신감을 고취시킬 수 있다. ChatGPT는 문제에 대한 다양한 코드 생성으로 프로그램을 비교 분석하여 알고리즘의 흐름을 이해할 수 있는 체험적 경험을 제공할 수 있다.
셋째, 교수자는 실습환경 및 수강인원에 따라 실시간 피드백을 제공하기 어렵다. 또한, 학습자의 학습 수준, 전공 여부, 학습 목표, 개발된 교과과정에 따라 다양한 학습 자료를 학습자에 제공해야 하는 부담감이 있다. 이에 ChatGPT는 강의 보조 자료로써 오류 수정을 위한 오류가 있는 코드 작성, 문제 해결 과정을 표현한 순서도 또는 자연어 생성, 프로그램 흐름 이해 학습을 위한 미완성 프로그램 생성 등으로 활용할 수 있다. 따라서 ChatGPT는 교수와 상호보완적인 관계로 1:1 학습 제공자, 강의 보조자료 제공자, 조교등 다양한 보조 교수자 역할로 활용할 수 있다[8].
넷째, ChatGPT를 활용한 소프트웨어 학습 과정을 통하여 소프트웨어 리터러시와 인공지능 리터러시를 배양할 수 있는 역량을 키운다. 리터러시란 글을 읽고, 쓰고, 말하는 과정에서 정보를 이해하고 지식을 획득하는 과정이다[27]. 리터러시는 디지털 리터러시, 소프트웨어 리터러시, 인공지능 리터러시로 세분화되면서 IT 기술의 발달에 따라 그에 맞는 리터러시들을 요구하고 있다[28]. ChatGPT는 프롬프트상에 입력된 질문을 자연어처리 모델을 활용하여 이해 및 분석하고 질문에 맞는 답변을 대화형식으로 제공하는 생성형 대형언어모델 기반의 인공지능이다. 원하는 결과를 얻기 위해서는 언어모델이 이해할 수 있는 체계적이고 구조적인 명령을 프롬프트상에 입력하여야 한다[23]. 이 과정에서 학습자에게 디지털 리터러시와 인공지능 리터러시 능력을 요구하게 된다. 따라서 ChatGPT를 활용한 프로그래밍 학습은 인공지능 리터러시를 이해하고 프로그래밍 언어로 확장할 수 있는 능력을 갖추도록 할 수 있다. 또한, 인공지능이 생성한 프로그램을 비교, 분석, 평가함으로 소프트웨어를 이해하고 활용할 수 있는 소프트웨어 리터러시를 함양할 수 있다.
4-2 ChatGPT를 활용한 프로그램 교육 설계
본 논문에서는 프로그램 학습을 어려워하는 비전공자의 프로그래밍 수준을 점차 업그레이드하고 자기 주도 학습과 학습자 맞춤형 교육을 제공하기 위해 ChatGPT를 활용한 단계별 프로그램 교육 과정을 설계하였다. 교육 과정은 시연중심모델(DMM)과 개발중심모델(DDD)을 단계별 교양 과정에 맞게 개념 활용 및 변형하여 설계하였다. ChatGPT를 활용한 단계별 프로그램 교육 과정은 그림 1과 같이 크게 탐구학습 단계, 설계학습 단계, 개발 단계로 진행한다. 여기서 탐구학습 단계와 설계학습 단계는 그림 2와 같이 내부적으로 오류 수정, 문제 해결, 디버깅, 비교 및 분석 단계로 진행하며 교수자와 학습자의 ChatGPT 활용 방법은 표 6과 같다.
탐구학습 단계에서는 텍스트 기반 프로그램 언어의 기초적인 문법을 습득하는 단계로 개념학습, 오류 확인 및 수정, 문법을 활용한 기초 연습문제를 진행한다. 개념학습은 각 주차별 학습 내용에 따른 문법 개념을 학습하고 간단한 규칙 설명과 함께 실습을 진행한다. 프로그래밍 문법은 작성 규칙이 엄격하다. 따라서 프로그램 개발도구는 규칙에 어긋나는 명령문과 흐름은 오류를 발생시킨다. 오류 확인 및 수정은 교수자가 개념학습에서 설명한 문법에 대하여 의도적으로 생성한 오류 프로그램들을 학습자에게 제공하며 학습자는 문법에 대한 오류를 확인 및 수정하면서 문법 사용방법과 규칙을 이해하고 문법 체계를 학습하는 단계이다. 여기서 제공되는 오류들은 문법 규칙에 어긋나는 문법 오류 외에 문법학습 깊이에 따라 발생할 수 있는 논리 오류, 데이터 정의 및 취급 오류, 인터페이스 오류등을 포함한다[2]. 기초 연습문제는 초기 코딩 단계로 학습자들은 주어진 연습문제에 대해 코드를 작성하거나 모방 및 실행을 반복하며 문법 체계를 이해하는 과정이다. 실행과정에서 발생하는 오류들은 스스로 해결할 수도 있지만, 해결이 어려운 경우에는 ChatGPT의 도움을 받아서 해결할 수 있다. 연습문제가 완료되면 동일 문제에 대해서 ChatGPT에게 코드를 작성하게 한 후 학습자가 작성한 코드와 비교 및 분석하며 다양한 문제 해결 방법들을 간접적으로 학습한다.
설계학습 단계는 문제 중심 학습 단계로 주어진 문제를 프로그램으로 변환하는 문제 해결 과정을 이해하는 단계이다. 이 단계의 목적은 탐구학습 단계에서 학습한 명령어들을 단계적이고 복합적으로 활용하여 알고리즘을 작성하면서 전반적인 흐름을 이해하는 단계로 컴퓨팅적 사고 역량을 강화하는 데 있다. 따라서 기초 문법 복습이 가능하고 문법들을 조합하고 확장하면서 문제 해결 과정을 프로그램으로 기술할 수 있는 능력을 함양한다. 내부적으로는 미완성된 프로그램 완성과 일상생활의 문제를 활용한 워크시트가 있다. 알고리즘의 흐름은 순차, 조건, 반복 구조를 복합적으로 활용하여 해결한다. 이 과정을 학습하기 위해 교수자는 ChatGPT가 작성한 블렌디드(Blended)문제를 제시하여 프로그램을 완성케 한다. 또는 자연어나 순서도 표현방식으로 기술된 전반적인 문제해결과정을 제시하고 학습자들이 알고리즘 구조와 흐름을 이해하고 설계된 과정을 프로그램으로 변환하도록 한다. 설계학습 단계에서도 탐색학습 단계처럼 연습문제를 제공한다. 학습자들은 코드를 작성하고 오류 발생 시 스스로 오류를 수정하거나 ChatGPT 의 도움을 받아 디버깅한다. 그리고 동일한 문제를 ChatGPT에게 작성하게 한 후 분석하고 비교하여 알고리즘과 데이터의 흐름을 이해하며 다양한 문제 해결 방법들을 학습한다.
개발 단계는 프로젝트 기반 학습 단계로 팀원들과 문제를 정의하고 설계하며 해결 과정을 프로그램으로 구현하여 완성하는 종합적인 문제 해결 단계이다. 이 단계에서는 프로그램 일부를 ChatGPT에게 작성하게 한 후 분석하여 학습자가 작성한 프로그램과 결합하거나 프로젝트를 확장할 수 있다. 이로써 학습자는 소프트웨어 생성 과정을 이해하고 디버깅을 통하여 프로그램을 최적화하는 과정을 학습한다.
ChatGPT 기반의 소프트웨어 교양 교육 과정의 각 주차별 세부 내용은 표 7과 같다. 1주차는 컴퓨팅적 사고에 대한 이해, ChatGPT의 이해, ChatGPT 사용방법을 설명하여 교과과정에서 진행하는 전반적인 사항을 제공한다. 2주차~6주차는 탐색학습 단계로 각 주차별 문법 개념, 오류 확인 및 수정, 기초 연습문제 해결, 연습문제 디버깅, ChatGPT를 활용한 문제 해결, ChatGPT의 프로그램 비교 및 분석을 진행한다. 7주차~10주차는 설계학습 단계인 문제 중심학습단계이며 탐색학습 단계에서 학습한 각 문법들을 단계적으로 조합 및 확장하면서 프로그램의 흐름을 이해하는 단계이다. 각 주차별 학습 내용에 따라 블렌디드 알고리즘 완성, 순서도 및 자연어 표현방법을 활용한 프로그램 변환, 일상생활 문제 중심의 워크시트 작성, 워크시트 디버깅, ChatGPT를 활용한 동일 문제 해결, ChatGPT의 프로그램 비교 및 분석한다. 11주차~15주차는 개발 단계로 팀 프로젝트 주제 선정을 시작으로 설계, 구현, 디버깅을 진행하여 컴퓨팅적 사고의 개념을 정립하고 프로그램 학습의 학습 목표를 성취하는 부분이다.
V. 결론 및 제언
급속한 기술의 발전으로 성장한 인공지능은 소프트웨어를 기반으로 산업 및 경제 분야의 융합 실현뿐만 아니라 사회와 개인의 삶을 빠르게 변화시키고 있다. 이에 인공지능과 소통하고 협업하는 실무 현장에 진입하는 컴퓨터 비전공자 학습자들이 갖추어야 할 소양은 소프트웨어 리터러시와 인공지능 리터러시이다. 대학의 교양 교육에서는 인공지능 리터러시를 함양하기 위한 전인적 교육이 필요하며 인공지능 도구를 활용한 소프트웨어 교육으로의 변화가 모색된다. ChatGPT는 사용자가 입력한 프롬프트의 문맥을 이해하고 이미 학습한 데이터 모델을 기반으로 대화의 형태로 답변을 제공하는 인공지능 기술로써 인공지능에 대한 기술들을 모르더라도 쉽게 활용할 수 있는 장점이 있다. 이를 소프트웨어 교육과 접목한다면 비전공자들이 소프트웨어 학습에서 느끼는 문제점들을 극복할 수 있을 것이다. 이에 본 연구에서는 교양교육에서 진행하고 있는 텍스트 기반의 프로그래밍 교육에서 학습자의 ChatGPT 활용 용도와 ChatGPT의 활용 가능성을 분석하였다. 그 결과 프로그래밍 학습 측면에서 ChatGPT는 프로그램 작성, 디버깅, 문법 개념 이해를 위해 활용할 수 있음을 확인하였다. 그리고 ChatGPT의 프로그램 작성 결과를 분석 및 비교하여 주어진 문제의 해결 결과에 대한 문제점을 찾고 응용 및 확장에 활용할 수 있음을 확인하였다. 이를 바탕으로 기존의 비전공자를 위한 소프트웨어 교양 교육과정에 ChatGPT를 활용한 개선된 단계적 교과과정을 설계 및 제언하였다. 개선된 교과과정은 비전공 학습자들이 소프트웨어 교육에서 느끼는 어려움을 바탕으로 기초적인 문법들을 이해하는 탐색학습, 탐색학습에서의 학습 내용을 조합하고 확장하며 알고리즘의 흐름을 이해할 수 있는 설계학습 그리고 계획, 설계부터 구현까지 진행하면서 컴퓨팅적 사고를 함양할 수 있는 개발 단계로 나누었다. 각 단계는 학습자 맞춤형 학습과 빠른 피드백을 제공하기 위하여 ChatGPT를 활용하여 설계하였다. 이로써 비전공 학습자가 프로그래밍 학습에서 느끼는 어려움을 극복하며 학업 이해도 및 성취도를 높일 수 있을 것이며 더불어 소프트웨어 리터러시와 알고리즘 리터러시를 함양할 수 있을 것이다. 향후 연구에서는 제안하는 단계적 교과과정을 교양 교과목으로 진행한 후 설문을 통하여 문제점 및 타당성을 발견하고 개선하여 좀 더 체계적인 교육 과정을 마련하고자 한다.
References
- J. W. Choi and Y. J. Lee, “The analysis of Learners’ Difficulties in Programming Learning,” The Journal of Korean Association of Computer Education, Vol. 17, No. 5, pp. 89-98, September 2014. [https://doi.org/10.32431/kace.2014.17.5.009]
- W.-S. Moon, “Influential Error Factors of Robot Programming Learning on the Problem Solving Skill,” Journal of the Korean Association of Information Education, Vol. 12, No. 2, pp. 195-202, June 2008.
- S. Kim, “Analysis of Non-Computer Majors’ Difficulties in Computational Thinking Education,” The Journal of Korean Association of Computer Education, Vol. 18, No. 3, pp. 49-57, May 2015. [https://doi.org/10.32431/kace.2015.18.3.005]
- J. Kim, S. Han, S. Kim, S. Jung, J. Yang, E. Jang, ... and S. Kim, 2015 Education Policy Network Training on Site Suport Research: Development of SW Education Teaching and Learning Models, Korean Educational Development Institute, Seoul, CR 2015-35, December 2015.
- M. J. Oh, “Non-Major Students’ Perceptions of Programming Education Using the Scratch Programming Language,” The Journal of Korean Association of Computer Education, Vol. 20, No. 1, pp. 1-11, January 2017. [https://doi.org/10.32431/kace.2017.20.1.001]
- W. Hariri, “Unlocking the Potential of ChatGPT: A Comprehensive Exploration of Its Applications, Advantages, Limitations, and Future Directions in Natural Language Processing,” Technology, Vol. 15, No. 2, 2023. [https://doi.org/10.13140/RG.2.2.23433.11360/3]
- OpenAI. ChatGPT [Internet]. Available: https://openai.com/chatgpt, .
- C. Jeong, “A Study on the Service Integration of Traditional Chatbot and ChatGPT,” Journal of Information Technology Applications & Management, Vol. 30, No. 4, pp. 11-28, August 2023.
- T. W. Kim, The era of generative AI triggered by ChatGPT, future outlook and countermeasures, Furture Horizon, No. 55, pp. 2-9, 2023.
- D. Shin, H. Jung, and Y. Lee, “Exploring the Potential of Using ChatGPT as a Content-Based English Learning and Teaching Tool,” Journal of the Korea English Education Society, Vol. 22, No. 1, pp. 171-192, February 2023.
- H. M. Kim, “Exploring the Potential Application of a Conversational AI Chatbot in Korean Language Education -An Interaction Analysis between Advanced Learners and ChatGPT-,” The Studies of Korean Language and Literature, No. 76, pp. 261-292, May 2023. [https://doi.org/10.15711/WR.76.0.9]
- J.-H. Byeon and Y.-J. Kwon, “An Investigation of Generative AI in Educational Application: Focusing on the Usage of ChatGPT for Learning Biology,” Brain, Digital, & Learning, Vol. 13, No. 1, pp. 1-17, March 2023. [https://doi.org/10.31216/BDL.20230001]
- T. Son, “Exploring the Possibility of Using ChatGPT in Mathematics Education: Focusing on Student Product and Pre-Service Teachers’ Discourse Related to Fraction Problems,” Education of Primary School Mathematics, Vol. 26, No. 2, pp. 99-113, April 2023. [https://doi.org/10.7468/jksmec.2023.26.2.99]
- S.-H. Lee and K.-S. Song, “Exploring the Possibility of Using ChatGPT and Stable Diffusion as a Tool to Recommend Picture Materials for Teaching and Learning,” Journal of the Korea Society of Computer and Information, Vol. 28, No. 4, pp. 209-216, April 2023. [https://doi.org/10.9708/jksci.2023.28.04.209]
- S. Biswas, “Role of ChatGPT in Computer Programming,” Mesopotamian Journal of Computer Science, Vol. 2023, pp. 8-16, January 2023. [https://doi.org/10.58496/MJCSC/2023/002]
- C. Liu, X. Bao, H. Zhang, N. Zhang, H. Hu, X. Zhang, and M. Yan, “Improving ChatGPT Prompt for Code Generation,” arXiv:2305.08360, , May 2023. [https://doi.org/10.48550/arXiv.2305.08360]
- B. Yetiştiren, I. Özsoy, M. Ayerdem, and E. Tüzün, “Evaluating the Code Quality of AI-Assisted Code Generation Tools: An Empirical Study on GitHub Copilot, Amazon CodeWhisperer, and ChatGPT,” arXiv:2304.10778v2, , October 2023. [https://doi.org/10.48550/arXiv.2304.10778]
- N. M. S. Surameery and M. Y. Shakor, “Use Chat GPT to Solve Programming Bugs,” International Journal of Information Technology and Computer Engineering, Vol. 3, No. 1, pp. 17-22, 2023. [https://doi.org/10.55529/ijitc.31.17.22]
- B. Gong, S. Jo, J. Chang, S. Park, and G. Won, “Comparative Analysis of Code Generated by ChatGPT and Human Programmers,” in Proceedings of the 2023 KIIT Summer Conference, Jeju, pp. 789-792, June 2023.
- J.-Y. Seo and S.-H. Shin, “Case Study on Problem-Based Programming Classes in Software Education for Non-Computer Science Majors,” Journal of the Korea Society of Computer and Information, Vol. 25, No. 4, pp. 213-222, April 2020. [https://doi.org/10.9708/jksci.2020.25.04.213]
- H.-W. Jung, “A Study on Basic Software Education Applying a Step-by-Step Blinded Programming Practice,” Journal of Digital Convergence, Vol. 17, No. 3, pp. 25-33, March 2019. [https://doi.org/10.14400/JDC.2019.17.3.025]
- S.-W. Choi and J.-H. Nam, “The Use of AI Chatbot as An Assistant Tool for SW Education,” Journal of the Korea Institute of Information and Communication Engineering, Vol. 23, No. 12, pp. 1693-1699, December 2019. [https://doi.org/10.6109/jkiice.2019.23.12.1693]
- S. Kim, “Developing Code Generation Prompts for Programming Education with Generative AI,” The Journal of Korean Association of Computer Education, Vol. 26, No. 5, pp. 107-117, September 2023. [https://doi.org/10.32431/kace.2023.26.5.009]
- S. H. Kim and Y. J. Jang, “An Analysis of Factors Influencing High School Students’ Intention to Continue Using AI Chatbots in Programming Education,” The Journal of Korean Association of Computer Education, Vol. 26, No. 5, pp. 93-105, September 2023. [https://doi.org/10.32431/kace.2023.26.5.008]
- S. Hong and H. Han, “Analyzing Perceptions and Educational Needs of Elementary School Teachers for Using ChatGPT in Education,” The Journal of Korean Association of Computer Education, Vol. 26, No. 4, pp. 51-63, July 2023. [https://doi.org/10.32431/kace.2023.26.4.006]
- J. M. Choi, Y. J. Kim, and H. S. Son, “A Survey on the Use of ChatGPT among Computer Related Major Students,” in Proceeding of 2023 Conference on the Korea Contents Association, Gunsan, pp. 5-6, May 2023.
- Y.-S. Park and Y. Yi, “The Education Model of Liberal Arts to Improve the Artificial Intelligence Literacy Competency of Undergraduate Students,” Journal of The Korean Association of information Education, Vol. 25, No. 2, pp. 423-436, April 2021. [https://doi.org/10.14352/jkaie.2021.25.2.423]
- O. Han, “The Paradigm Shift in Software Education in the GPT Era,” in Proceeding of the 52nd Summer Conference on the Korean Association of Computer Education, Seoul, pp. 43-46, August 2023.
저자소개
2002년:숭실대학교 (공학석사)
2007년:숭실대학교 (공학박사-미디어공학)
2007년~현 재: 숭실대학교 베어드교양대학 부교수
※관심분야:인공지능 교육(Artificial Education), 컴퓨터 교육(Computer Education)