Search

ChatGPT를 활용한 프로그래밍 수업

Created
2024/11/11 02:32
Tags
#chatGPT
#AI
#푸딩쌤
선생님들, 잘 지내셨나요? 오랜만에 돌아온 푸딩쌤입니다.
저는 올해 일반계 고등학교로 발령받아 2학년 프로그래밍(PYTHON) 수업을 진행했습니다. 지금부터 제가 진행한 프로그래밍 수업 사례를 공유하고자 합니다.
1학기에는 주 3시간, 2학기 주 2시간 수업으로 진행했으며 아래 표에 제시된 내용 요소까지 진도를 나갔습니다.
구분
내용 요소
1
파이썬 개요
2
변수와 자료형
3
프로그램 구성
4
함수
5
모듈, 패키지
내용 요소
1학기 프로그래밍 수업을 하면서 제가 고민 되었던 부분을 공유하려고 합니다.

1. 시간 부족

1주일에 3시간, 2시간씩 진행되는 수업은 학생들이 프로그래밍 문법 이론을 충분히 배우고 제시된 문제 상황에 맞춰 프로그램을 개발하기에 시간이 부족하다고 생각했습니다. 특히, 수업 시간 내에 이론 학습과 실습을 모두 포함하려다 보니 학생들이 충분히 연습하고 피드백을 받을 기회가 제한적이었습니다.

2. 프로그래밍 능력 개인차

2학기에 접어들면서 학생들 간의 프로그래밍 능력 차이가 발생했습니다. 특히 프로그래밍 능력이 낮은 학생들이 수업을 따라가기 어려워 중도 포기하는 경우가 빈번하게 발생했습니다. 이러한 개인차를 줄이기 위해서는 개별 지도가 필요하지만, 현재 수업 형태로는 모든 학생에게 충분한 지원을 제공하기가 어려웠습니다.

3. 프로그래밍 문제 부족

정보 선생님들께서 공유해주신 연습 문제, 프로그래밍 교과서 예시 등을 활용하여 수업을 진행했으나 학생들은 혼자 연습할 수 있는 제시된 문제와 유사한 혹은 난이도가 비슷한 더 많은 예시를 원했습니다.
학생들의 요구를 반영하고 모든 학생의 참여를 유도하기 위해 생성형 인공지능을 활용하면 효과적일 것이라 생각했습니다. 이에 생성형 인공지능을 도구로서 효과적으로 활용할 수 있도록 수업을 설계했습니다.

<생성형 인공지능 이해 높이기 활동>

생성형 인공지능의 개념과 사용 시 부정적 사례를 조사하고 분석하고 해결 방안을 탐구 활동 실시
학생들이 생성형 인공지능의 긍정적인 요소뿐만 아니라 잠재적 위험 요소와 한계를 이해하기 위해 개념, 기능, 부정적 사례를 조사하여 올바른 활용 방법을 습득하며 실제 사용 시 발생할 수 있는 문제 상황에 대한 인식을 높여 신중하고 책임감 있는 접근 방식을 갖출 수 있도록 돕는 활동을 진행하고자 했습니다. 이 내용을 토대로 보고서를 제출받았고 프로그래밍을 위한 생성형 인공지능 사용 시 주의 사항을 스스로 수립할 수 있도록 했습니다.

<생성형 인공지능을 도구로 활용하는 프로그래밍 수업>

활용 방안 1) 생성형 인공지능을 활용한 응용문제 제작
생성형 인공지능을 활용하여 교사가 제시한 문제와 유사하거나 난이도가 비슷한 문제를 제작하는 활동은 학생들의 개별화된 학습을 지원하는 데 큰 장점이 있다고 판단했습니다.
예를 들어 아래 문제와 같은 문제를 교사가 제시했다면
<문제 1> 문자열 s의 길이가 5 이상이며, 첫 번째 문자가 대문자인지 소문자인지 판별하는 프로그램을 작성하세요.
<정답>
s = "Apple"
if len(s)>=5:
if s[0].isupper():
print(”문자열의 길이가 5 이상이며 첫 문자가 대문자입니다.")
else:
print("문자열의 길이가 5 이상이며 첫 문자가 소문자입니다.")
유사한 문제 유형을 생성할 수 있는 프롬프트를 알려주고 생성형 인공지능을 활용해 새로운 문제를 제작할 수 있도록 했습니다.
1학기 성적을 기준으로 조를 편성하여 성적이 상위 및 중위인 학생 2명과 중위 및 하위인 학생 2명으로 한 팀을 구성해 조별 활동을 진행했습니다.
이후 학생과 생성형 인공지능이 제작한 문제를 조별로 공유하고 함께 풀어보며 서로의 지식을 나누고 깊이 이해할 수 있도록 활동을 전개했습니다.
활용 방안 2) 생성형 인공지능을 활용하여 프로그램을 작성하고 작성된 코드에 주석을 추가함으로써 프로그램의 이해도를 높이는 활동 진행
노트북, PC 없이 학생과 생성형 인공지능이 작성한 코드를 출력물로 제공하고 학생들이 직접 각 라인에 주석을 추가하여 코드의 역할과 흐름을 설명하는 활동을 진행했습니다. 이 과정에서 학생들이 작성한 주석을 통해 코드의 내용을 올바르게 이해했는지 확인하고 피드백을 제공하였습니다.
활용 방안 3) 언플러그 프로그래밍 수업
저는 프로그램을 바로 개발하는 것도 중요하지만 문제의 본질을 파악하고 이를 구조화하여 효과적으로 자동화하는 과정이 더욱 중요하다고 생각했습니다.
각 조는 문제를 이해한 후 해결 방안을 논의하고 프로그램의 구조를 종이에 코드 형태로 작성하는 활동을 진행했습니다. 이후 생성형 인공지능을 활용해 자신들이 작성한 코드와 인공지능이 생성한 결과를 비교하고 분석했습니다. 인공지능이 잘 만들었는지 본인 조가 잘 만들었는지 판단하여 그 이유에 대해 조별로 선생님께 설명할 수 있도록 했습니다.
학생들은 자신의 코드에서 잘된 점과 부족한 점을 파악하고 개선해야 할 부분을 학습하는 시간을 가졌습니다.
활용 방안 2), 3)을 통해 조별 학습 속도를 개별적으로 지도할 수 있었고 각 학생의 이해도에 맞춰 맞춤형 피드백을 제공함으로써 학습 격차를 줄이는 데 효과적이었습니다.
또한 활동을 통해 생성형 인공지능이 제시한 답이 항상 정답이 아니라는 것을 깨달으면서 학생들은 생성형 인공지능을 활용하기보다는 친구들과 협력하여 문제를 해결하려는 태도를 보였습니다.

수업 후기

과제를 하거나 수업을 진행하다 보면 학생들이 생성형 인공지능을 활용하는 모습을 자주 볼 수 있었습니다. 학생들이 생성형 인공지능을 올바르게 사용하는 방안을 제시해 주고 스스로도 책임감 있게 활용할 수 있도록 교육을 진행하고 싶었고 이번 학기를 통해 이러한 목표를 상당 부분 달성할 수 있어 매우 보람된 시간이었습니다.
1학기 때보다 2학기에 성적이 오른 학생들도 있었고 모두가 조별 학습에 적극적으로 참여하는 모습을 보며 내년에도 생성형 인공지능을 활용한 수업을 좀 더 체계적으로 진행하고 싶습니다.