수업 정보
학년: 8~12(13세 이상 학생만 수업에 참여할 수 있음)
강좌 시간: 1시간
사용 툴: 포크리
수업/교육 환경: 포트나이트를 구동할 수 있으며 인터넷이 연결되어 있는 장치를 1인당 1개씩 사용합니다. 컴퓨터실, 이동식 노트북 거치대가 있는 환경이 이상적입니다.
작성자 연락처
작성자: Steven Isaacs, Brian Dickman
Email: [email protected] | [email protected]
Twitter: @mr_isaacs | @cleverlike
LinkedIn: www.linkedin.com/in/steve-isaacs | www.linkedin.com/in/cleverlike
수업/교육 환경 설명
본 수업은 컴퓨터 공학 교육 주간 중 아워 오브 코드를 위해 디자인되었습니다.
단일 수업으로 이용해도 좋고, 다른 활동과 조합하여 대규모 프로젝트를 만들 수도 있습니다.
작성자 Steve Isaacs는 에픽게임즈 교육 프로그램 매니저입니다. 중등 교육자와 학생들이 교실에서 언리얼 엔진, 포크리, 트윈모션 등을 활용하도록 돕는 역할을 합니다. Steve는 에픽과 협력 전 목적 또는 선택을 기반으로 한 교육 환경으로서 게임 디자인과 개발을 가르쳐, 학생들이 콘텐츠와 프로젝트 옵션 면에서 학생이 자신의 관심사에 따라 여러 가지 접근 방식으로 수업 결과에 도달할 수 있는 기회를 제공했습니다.
작성자 Brian Dickman은 컴퓨터 공학 전공자로, 게임 개발 전문 스튜디오를 운영하며 인기 동영상 게임 내에서 오락 및 교육을 위한 콘텐츠를 제작하고 있습니다.
강좌 개요
동영상 게임에서 점수가 어떻게 처리되는지 생각해 본 적이 있나요?
팩맨을 해 본 적이 있다면 최고 점수를 얻기 위해 노력해 봤을 겁니다. 점을 모으면 점수를 얻고, 과일을 모으면 보너스 점수를 얻습니다. 몬스터가 파란색으로 변하면 먹으면서 지나갈 때마다 점수가 증가하기 때문에 최대한 많이 먹으려고 노력하게 됩니다. 게임 중에는 득점 메카니즘을 핵심으로 하는 게임이 많습니다.
게임에서 점수는 변수로 처리합니다. 변수는 게임 시작 시 지정되고, 점수에 영향을 주는 액션에 따라 게임 중에 변합니다.
이번 활동에서 학생들은 변수를 이용해 득점 시스템을 만들게 됩니다. 프로그래밍에서 변수가 사용되는 방식은 이 외에도 많습니다.
목표 결과
학생들의 학습 성과는 무엇일까요?
필수 질문/중요 아이디어
학생들이 단순히 문법을 단독적인 기술로서 배우는 것이 아니라 의미 있는 활동의 일부로 컴퓨터 공학 콘셉트를 익힐 수 있는가?
포크리 활동을 통해 함수와 같은 컴퓨터 공학 콘셉트를 학습하면 코딩 환경에서 콘셉트를 이해하는 데 도움이 되는가?
학생들이 게임 메카닉을 통해 컴퓨터 공학 개념을 배울 수 있는가?
게임이라는 환경에서 컴퓨터 공학의 콘셉트를 소개하면 학생들의 학습 의지를 높이는 데 도움이 되는가?
학습 활동
변수 소개
프로그래밍에서 변수는 특정 조건이나 프로그램에 전달된 정보에 따라 변할 수 있는 값입니다. 일반적으로 프로그램은 컴퓨터에게 할 일을 지시하는 명령문과 프로그램이 실행 중에 사용하는 데이터로 이루어져 있습니다. 데이터는 변하지 않는 상수(고정된 값)와 변수(실제 값은 프로그램을 사용자가 제공할 것이므로 처음 시작 시 0이나 기타 기본값으로 지정)로 나뉩니다. 보통 상수와 변수는 특정 데이터 유형으로 정의됩니다. 각각의 데이터 유형은 데이터의 형태를 규정하고 제한합니다. 데이터 유형에는 10진수로 표시하는 정수, 보통 길이가 제한되어 있는 텍스트 문자열 등이 있습니다.
– 출처 WhatIs.com
예를 들어 득점 시스템의 경우 처음 시작 시 점수를 0으로 설정합니다. 그리고 코인을 모을 때마다 점수가 10씩 증가합니다. 플레이어가 100점 이상을 모으면 승리하며 게임이 종료됩니다. 그렇지 않으면 플레이어가 100점 이상을 모을 때까지 게임이 계속됩니다.
수도코드는 코드로 만들고자 하는 아이디어를 나타내기 위해 코드 작성을 시뮬레이션하는 행위입니다. 수도코드는 일반적인 구조를 보여줄 뿐, 실제 문법을 따를 필요는 없습니다. 이 수업에서는 종종 수도코드를 활용하여 개념을 설명할 것입니다. 수도코드로 표현하자면 다음과 같은 형태입니다.
변수 선언/설정 변수 점수=0 골드 코인 수집 시 10점 보상 루프 시작 플레이어 코인 확인 플레이어가 골드 코인을 가지고 있는가? 참일 경우 점수 = 점수 +10 루프 반복 플레이어 점수가 100일 때까지 루프 루프 시작 플레이어 코인 확인 플레이어가 골드 코인을 가지고 있는가? 참일 경우 플레이어 점수에 10점을 더하고 코인 제거 플레이어 점수가 100 이상인가 참일 경우 플레이어 승리 게임 종료 점수가 100 미만일 경우 루프 반복 플레이어 점수가 100 이상일 때까지 프로그램의 나머지 부분 계속 실행
코딩 측면에서 변수를 설명하는 여러 가지 동영상이 있습니다.
변수는 모든 코딩 언어에서 사용할 수 있고, 포크리와 같은 환경에서는 게임 전반에 걸쳐 값이 변경될 수 있는 시나리오를 작성할 수 있습니다.
활동
학생들은 포크리에서 보물 사냥을 만듭니다. 플레이어는 섬에서 보물(코인)을 찾습니다. 플레이어가 일정 수의 코인을 모으거나 시간이 만료되면 게임이 종료됩니다. 보물 사냥은 변수와 점수로 모은 코인 개수에 따라 값/점수를 추적합니다.
단계별 활동 과정은 교사 안내를 참조하세요.
학생은 학생 안내를 보고 작업해야 합니다.
확장 활동
시간이 있다면 학생들은 다음과 같은 목표에 도전합니다.
점수 값이 다른 새로운 아이템을 추가합니다.
팀 및 인벤토리 장치를 이용하여 플레이어 전력질주 속도를 증가시킵니다.
싱글 플레이어가 시간이 만료되기 전에 목표를 완료하도록 게임을 조정합니다.
점수 관리 장치를 사용해 특별 아이템을 획득하면 플레이어 점수를 0으로 초기화합니다.
단계별 활동 과정은 교사 안내를 참조하세요.
외부 자료
일반 매핑
1A-AP-09 숫자와 기타 기호를 사용하여 정보를 표시함으로서 프로그램이 데이터를 저장하고 조작하는 방식을 모델링합니다.
1B-AP-09 변수를 사용하여 데이터를 저장하고 수정하는 프로그램을 만듭니다.
1B-AP-10 시퀀스, 이벤트, 루프, 조건문이 있는 프로그램을 만듭니다.
1B-AP-12 기존 프로그램을 수정, 재구성, 자기 작품에 일부 통합하여 새로운 프로그램을 만들거나 고급 기능을 추가합니다.
1B-AP-15 프로그램 또는 알고리즘을 테스트하고 디버그(오류를 찾고 수정)하여 의도대로 작동하게 합니다.
2-AP-1 여러 가지 데이터 유형을 나타내는 명확한 이름을 가진 변수를 만들고, 그 값에 작업을 수행합니다.
2-AP-10 흐름도나 수도코드를 이용해 알고리즘으로 복잡한 문제를 해결합니다.
2-AP-13 문제와 하위 문제를 여러 부분으로 나누어 프로그램을 디자인, 구현, 검토합니다.
2-AP-17 여러 가지 실험 사례를 이용해 프로그램을 체계적으로 테스트하고 개선합니다.
3A-AP-13 학생의 사전 지식과 개인적 관심사를 활용하여 컴퓨터와 관련된 문제를 해결하는 알고리즘 프로토타입을 만듭니다.
3A-AP-16 실용적인 목적, 개인적 표현 수단, 사회적 문제 해결을 위해 이벤트로 지시를 시작하는 컴퓨터로 인공물을 디자인하고 반복적으로 개발합니다.
3A-AP-17 절차, 모듈, 목표 등의 구성물로 체계적인 분석을 통해 문제를 더 작은 요소로 분해합니다.
3A-AP-22 협업 도구를 사용해 팀 역할로 작업하며 컴퓨터 인공물을 디자인하고 개발합니다.
학제적 및 21세기적 연계
본 수업은 코딩/컴퓨터 공학 관련 분야를 다룹니다.
21세기적 연계
비판적 사고
창의력
협동
커뮤니케이션
기술적 소양
유연성
리더십
이니셔티브
사회적 스킬
수정과 조정
학생의 필요, IEP, 504 등에 맞춰 수정과 조정을 제공합니다.
학생은 팀으로 작업하여 협동식 프로그래밍 접근법을 이용할 수 있습니다.
학생들이 분해/수정할 수 있는 샘플 맵을 제공해도 좋습니다.
필요시 적응형 컨트롤러/게임 컨트롤러를 제공합니다.