week-6-day-3-report주차 week-6-day-3-report일차 일일보고서
[6주차 3일] 오늘의 수업 이야기
Section titled “[6주차 3일] 오늘의 수업 이야기”날짜: 2025년 07월 24일
오늘의 주제
Section titled “오늘의 주제”포커 게임 만들기 - 카드 덱 구현과 테스트를 통한 검증
수업 진행 기록
Section titled “수업 진행 기록”오늘은 학생들과 함께 포커 게임 프로젝트를 본격적으로 시작했다. 먼저 실제 카드 게임에서 카드 덱이 어떤 역할을 하는지 이야기를 나누며 수업을 시작했다.
“여러분이 포커를 칠 때 가장 먼저 하는 일이 뭔가요?”라고 물으니 한 학생이 “카드를 섞어요!”라고 대답했다. 맞다. 그래서 오늘은 52장의 카드를 만들고, 섞고, 나눠주는 기능을 만들어보기로 했다.
프로그래밍의 재미있는 점은 현실 세계의 행동을 그대로 컴퓨터 언어로 옮길 수 있다는 것이다. “카드를 뽑는다”는 행위를 프로그램에서도 똑같이 “뽑는다(draw)“라고 표현할 수 있다. 학생들은 이런 직관적인 표현 방식에 흥미를 보였다.
특히 오늘 강조한 것은 테스트의 중요성이었다. 우리가 만든 카드 덱이 정말로 52장이 맞는지, 중복된 카드는 없는지, 제대로 섞이는지를 확인하는 테스트를 먼저 작성하고 나서 실제 기능을 구현했다. 처음에는 “왜 굳이 테스트를 먼저 만들어요?”라고 묻던 학생들이, 나중에는 “테스트가 통과되니까 제대로 만든 것 같아서 안심되네요”라고 말하는 변화가 인상적이었다.
학생 상담 노트
Section titled “학생 상담 노트”- 한 학생이 “카드를 뽑을 때 왜 맨 위에서부터 뽑나요? 중간에서 뽑으면 안 되나요?”라고 질문했다. 현실의 카드 게임 규칙을 설명하고, 프로그래밍에서도 일관성 있는 규칙을 지키는 것이 중요하다고 답했다.
- 데이터 구조에 대해 어려워하는 학생이 있어 카드 덱을 “카드를 담는 상자”로 비유해서 설명했더니 이해가 빨랐다.
- 테스트 작성을 귀찮아하던 학생에게 “게임을 만들고 나서 친구들과 플레이할 때 버그가 있으면 어떨까요?”라고 물으니 테스트의 필요성을 공감하기 시작했다.
교육자 성찰
Section titled “교육자 성찰”오늘 수업의 핵심은 ‘현실과 코드의 연결’이었다. 학생들이 일상에서 경험하는 카드 게임을 프로그래밍으로 구현하면서 추상적인 개념들이 구체화되는 것을 볼 수 있었다.
특히 효과적이었던 부분은 실제 카드를 가져와서 덱에서 카드를 뽑는 동작을 보여주고, 그것을 코드로 어떻게 표현하는지 비교한 것이었다. 학생들의 눈이 반짝이며 “아, 정말 똑같네요!”라고 말할 때 보람을 느꼈다.
다만 일부 학생들이 아직 리스트와 배열의 차이를 완전히 이해하지 못한 것 같아 다음 시간에 보충 설명이 필요할 것 같다. 시각적인 자료를 더 준비해서 이해를 도와야겠다.
- 내일은 포커 게임의 핸드(손패) 구현 예정
- 포커 족보표를 크게 인쇄해서 교실에 붙여두기
- 카드 게임 실물을 활용한 수업이 효과적이었으니 계속 활용하기
- 테스트의 중요성을 게임 버그 사례로 설명하는 자료 준비