동작의 코딩
언플러그드 코딩: 유사 코드를 사용하여 댄스 동작을 위한 프로그램을 작성하세요.
개요
- 하이브리드 학습을 위한 언플러그드 방식의 코딩 수업입니다. 이 수업은 레고® 에듀케이션 스파이크™ 프라임 세트, 레고 브릭 또는 소프트웨어를 필요로 하지 않습니다.
- 이번 수업은 학생들이 댄스 동작을 수행하는 방법에 관한 유사 코드를 만들고, 파트너와 유사 코드를 공유하는 방식으로 진행됩니다.
이번 수업의 특징:
- 라이프 핵 학습단원의 첫 출발을 위한 입문 목적의 수업으로 적합합니다.
- 브레이크 댄스 수업에 전후하여 유사 코드를 만드는 방법을 소개하거나 보강할 수 있습니다.
- 코치 수업을 하기에 앞서, 확장 학습 용도로 학습단원 말미에 첨부되어 있는 개방형 프로젝트의 수행을 위한 기초를 다질 수 있습니다.
- 시각적 수업 프레젠테이션 자료가 본 수업 계획의 추가 리소스 섹션을 통해 제공됩니다. 이 프레젠테이션을 이용해 수업 진행 속도를 조절하고 5E의 각 요소를 학생들에게 설명해주세요.
코딩 개념
- 알고리즘: 과제 수행을 위한 단계별 지침 세트를 의미합니다.
- 버그: 코딩 오류를 의미합니다. 오류를 해결하는 프로세스는 디버깅이라고 합니다.
- 분해: 코드를 더 작은 부분 또는 더 작은 문제로 나누는 것을 의미합니다.
- 유사 코드: 컴퓨터에 코딩하기 전에 알고리즘의 단계를 설명하기 위한 일종의 서면 계획입니다. 유사 코드는 프로그래머가 문제(버그)를 식별 내지 예측하고 코딩 단계의 분해를 위한 계획을 세우는 데 도움이 됩니다.
착수
(10분)
코딩에 대한 학생들의 배경 지식을 타진하는 차원에서 간략히 토의를 진행하세요.
- 이러한 토의는 교사와 학생이 함께 코드와 코딩의 정의를 내리고 개념을 공유하는 데 도움이 됩니다.
질문 예시:
- 코드가 뭔가요? (샘플 응답: 과제의 수행을 위해 기계나 로봇에게 뭔가를 알려주기 위해 사용하는 모종의 수단 또는 컴퓨터를 이용해 게임을 프로그래밍하는 등의 재미있고 창의적인 활동을 위한 수단)
- 코드를 지칭하는 다른 단어를 들어본 적이 있나요? (코딩에 익숙한 일부 학생들에게서 “알고리즘, 유사 코드, 버그” 등의 단어가 언급될 수 있습니다. 이러한 개념을 인지하고 있는 학생들에게 자신이 알고 있는 바를 공유하게 하세요.)
- 코드가 시각적으로 어떻게 보이나요? (샘플 응답: 블록, 텍스트, 숫자)
- 코드가 일종의 지침 세트라는 것을 설명해주세요.
수업 프레젠테이션의 첫 번째 착수 페이지를 화면에 띄우세요.
- 손뼉치기 게임의 예가 이 페이지에 제시되어 있습니다.
다음과 같은 질문을 통해 대화를 이어가세요.
- 이미지의 상황이 무엇을 나타내나요? (샘플 응답: 손뼉치기 게임을 하고 있는 중입니다.)
- 어떤 종류의 손뼉치기 게임을 해보았나요? (한두 명의 학생에게 자신의 경험을 공유하게 하세요.)
- 게임을 하는 방법을 타인에게 어떻게 설명할 건가요? (한두 명의 학생에게 생각하는 바를 공유하게 하세요.)
- 이상적인 지침 세트는 어떤 모습일까요? (학생들에게 이상적인 지침 세트의 기준을 정해보라고 하세요. 예: “명확함, 체계적임, 올바른 순서”)
- 게임을 하는 방법에 관한 지침을 제시하는 것이 다름아니라 알고리즘을 만드는 연습이라는 점을 학생들에게 말해주세요. 또한 과제의 수행을 위한 단계별 지침 세트가 바로 일종의 알고리즘이라는 것을 설명해주세요.
수업 프레젠테이션의 두 번째 착수 페이지를 화면에 띄우세요.
- 지침 세트 또는 “코드”의 예가 이 페이지에 제시되어 있습니다. 안무가는 시각적 표기법을 사용하여 댄스 동작의 단계를 문서화하고, 코치는 스케치와 단어를 사용하여 스포츠 동작을 기록하며, 음악가는 음표가 담긴 악보를 사용하여 무엇을 어떻게 연주해야 할지를 표시합니다.
이러한 질문을 이용해 토의를 계속 진행하면서 학생들이 컴퓨터와 무관한 현실 세계의 “코드”와 수업 후반부에 작성하게 될 유사 코드를 연결할 수 있도록 도움을 주세요.
- 안무가의 무용기보에서 어떤 것들이 눈에 띄나요? (샘플 응답: 네 개의 네모칸 안에 동작의 순서가 표시되어 있고, 화살표는 이동 방법을 나타내며, 1-4단계가 반복됩니다.)
- 코치의 스케치에서 어떤 것들이 눈에 띄나요? (샘플 응답: 선수들이 X 표시와 동그라미로 표시되어 있고, 움직임을 나타내는 화살표가 그려져 있습니다.)
- 악보에서 어떤 것들이 눈에 띄나요? (샘플 응답: 이 노래는 “반짝반짝 작은별”이며, 원 모양이 음표를 나타냅니다.)
- 이러한 지침/알고리즘의 공통점이 뭔가요? (학생들에게 좀 전에 만든 기준을 보완하여 이상적인 지침 세트를 만들어보라고 하세요.)
- 이러한 서면 지침이 안무가, 코치, 음악가에게 어떻게 도움이 되나요? (계획을 세우고 잠재적 오류를 발견하는 데 이러한 지침이 도움이 될 만한 상황을 학생들에게 찾아보라고 하세요.)
수업 프레젠테이션의 세 번째 착수 페이지를 화면에 띄우세요.
- 라이프 핵 학습단원의 브레이크 댄스 수업에 사용되는 스파이크 프라임 코드의 예가 이 페이지에 제시되어 있으며, 이 프로그래밍 스택이 스파이크 프라임 브레이크 댄서를 제어합니다.
이 수업 계획 페이지 상단의 비디오를 재생하고 학생들에게 브레이크 댄서 로봇이 작동하는 장면을 보여준 후, 다음과 같은 요지를 중심으로 토의를 이어가세요.
- 이 프로그래밍 스택이 브레이크 댄서 로봇에 사용됩니다.
- 이 코드가 로봇에게 무얼 하라고 알려주나요? (단계별 지침이 아래에 유사 코드로 쓰여 있습니다. 수업의 흥미를 돋구는 차원에서 학생들에게 로봇의 움직임을 따라해보게 하세요.)
- 이 댄스 동작을 무엇이라고 부르면 좋을까요? (학생들에게 일단 “그냥 재미삼아” 댄스 동작에 이름을 붙여보게 하고, 나중에 만들게 될 댄스 동작 유사 코드에도 이름을 붙이게 될 것이라고 말해주세요.)
- 이 코드를 일종의 알고리즘으로 종이에 문서화하려면 어떻게 해야 할까요? (한두 명의 학생에게 단어나 그림을 사용하여 코드를 문서화하는 방법의 본보기를 공유하게 하세요.)
- 학생들이 방금 자신의 언어로 코드를 설명한 것이 다름아니라 알고리즘을 만들고 유사 코드를 작성하는 연습에 해당한다는 사실을 말해주세요.
샘플 유사 코드 솔루션
이 프로그래밍 스택을 말로 설명하기 위한 다양한 아이디어를 학생들에게 공유하게 하는 것도 좋은 방법이며, 일례로 다음과 같은 설명이 제시될 수 있을 것입니다.
- 프로그램이 Go!를 수신합니다.
- 모터 D와 F가 표시된 방향으로 1회전합니다.
- 모터가 1초간 대기합니다.
- 모터가 이 과정을 10번 반복합니다.
하이브리드 학습 팁 - 착수 단계
동기식
- 예정된 수업 시간 중에 학급 전체가 참여하는 가상 토의를 진행하세요. 교사가 말하는 시간을 최소한도로 줄이고, 학생들에게 스스로 대답하거나 질문을 할 것을 장려하세요. 온라인 투표 도구 또는 채팅 기능을 활용하여 모두가 참여할 수 있는 환경을 조성하세요.
비동기식
- 수업 프레젠테이션의 착수 페이지를 화면에 띄우고, 학생들에게 개인적으로 직접 답을 하게 할 것인지 아니면 학급 토의 게시판을 통해 집단적으로 답을 하게 할 것인지를 정하세요. 온라인 토의 게시판은 모든 학생의 동시 참석이 불가한 상황에서도 급우간 참여를 장려할 수 있다는 점에서 꽤 유용한 도구가 될 수 있습니다.
탐구
(15분)
학생들에게 수업 프레젠테이션의 탐구 페이지를 이번 과제 수행의 길잡이로 활용할 것을 말해주세요.
그 다음, 아래와 같은 단계를 통해 학생들을 지도해주세요.
1단계: 학생들에게 남이 따라할 수 있을 만한 간단한 댄스 동작을 생각해보라고 하세요.
2단계: 학생들에게 댄스 동작을 수행하는 데 필요한 단계를 적어보게 하고, 이것이 바로 유사 코드라는 점을 설명해주세요.
3단계: 학생들을 둘씩 짝지워주고, 파트너 1에게 자신의 유사 코드를 파트너 2와 공유하게 하세요. 이어 파트너 2에게 자신이 들은 그대로 파트너 1의 유사 코드에 따라 조립을 하게 하세요. 그 다음, 서로 역할을 바꾸세요.
이 활동은 학급 단위의 역할 놀이 형식으로도 수행할 수 있습니다. 모든 학생에게 댄스 동작을 위한 유사 코드를 만들게 한 다음, 한 명씩 번갈아 유사 코드를 공유하는 가운데 나머지 학생들이 동작을 실행해보게 하세요.
하이브리드 학습 팁 - 탐구 단계
이번 시간을 일종의 사회활동 삼아 학생들에게 공동체 활동을 즐기게 해주세요.
동기식
- 학생들이 온라인으로 참석하는 경우, 모두가 하나의 방에 모여 함께 활동을 하는 가운데 한 명의 학생이 자신의 유사 코드를 학급 전체에 공유하는 방법을 사용할 수 있습니다. 아니면 학생들에게 과제방에서 소규모 그룹 단위로 활동을 하고 각각의 그룹별로 파트너와 유사 코드를 공유하게 하세요.
비동기식
- 학생들에게 가족의 도움을 얻어 가정내 활동을 위한 지정 공간을 마련하게 하세요. 최적의 활동 공간이 조성되도록 조명이 밝고 어수선한 잡동사니가 없으며 평평한 곳이 적당하겠죠. 학생마다 가정내 상황이 다를 것이라는 점을 유념하세요.
설명
(10분)
- 학생들이 코딩 과제를 완료하는 대로 자신의 경험을 파트너와 공유하게 하세요.
- 수업 프레젠테이션의 설명 페이지에 학생들의 피드백 주고받기에 도움이 될 만한 대화 문구가 예시되어 있습니다.
- 학생들에게 피드백을 함에 있어 눈 맞춤과 부드러운 어조에 주의하고 구체적인 예제에 초점을 맞춰야 한다는 것을 상기시켜주세요. 아울러 학생들에게 피드백에 기초하여 결과물을 개선할 방법을 검토해볼 것을 장려하세요.
아래에 제시된 피드백 주기 문구 예시를 참조하세요.
- ...에 대해 정말 감명을 받았다
- ...에 대해 더 알고 싶다
- 나도 ...와 같은 생각이다
- 내 생각은 ...와 좀 다르다
- ...을 제안하고 싶다
아래에 제시된 피드백 받기 문구 예시를 참조하세요.
- 어느 지침이 명확했는가?
- 무엇을 개선할 수 있을까?
- 어떤 버그를 고칠 수 있을까?
피드백 주고받기를 마치는 대로 학생들에게 이 활동이 어떤 점에서 프로그래밍과 비슷한지 설명해보라고 하세요.
질문 예시:
- 이 활동이 어떤 점에서 프로그래밍과 비슷한가요? (샘플 응답: 다른 사람이 따라야 할 지침을 글로 쓴다는 것이 마치 컴퓨터가 따라야 할 코드를 작성하는 것과 비슷합니다.)
- 왜 유사 코드를 만드는 것일까요? (샘플 응답: 코드를 컴퓨터에 입력하기 전에 코드 작성 계획을 세우는 데 도움이 되며, 결과적으로 잠재적인 버그를 예상할 수 있습니다.)
- 유사 코드를 작성할 때 어떤 부분에 주의를 기울여야 할까요? (샘플 응답: 세부 요소의 중요성, 모든 단계의 순서가 올바른지 여부.)
하이브리드 학습 팁 - 설명 단계
동기식
- 학생들이 온라인으로 참석하는 경우, 수업 프레젠테이션 설명 페이지의 피드백 대화 문구를 검토하고, 과제방에서 소규모 그룹 단위로 피드백을 주고받게 하세요.
- 과제방을 방문하여 각 그룹별로 특정한 피드백을 공유하게 하는 방법을 통해 학생들의 이해도를 점검하세요.
- 학생들의 질문에 답을 하고, 필수 개념을 보다 정확히 이해할 수 있도록 잘못 알고 있는 부분을 직접 바로잡아주세요.
비동기식
- 피드백 사항을 그룹 전체에 다시 말해주거나 그룹 채팅창에 댓글을 게시하는 방식을 통해 학생들에게 자신이 받은 피드백을 점검해보게 하세요.
다듬기
(5분)
- 학생들에게 자신의 유사 코드를 개선하거나 다른 동작(예: 아침 일과, 스포츠 경기, 조리법)을 코딩할 방법을 브레인스토밍하고, 이 활동을 다시 해보게 하세요.
질문 예시:
- 유사 코드를 어떻게 개선할 수 있을까요?
- 이 활동을 어떤 식으로 다시 해보고 싶나요?
- 유사 코드를 작성해볼 만한 다른 활동으로 어떤 것들이 있을까요?
시간이 허락한다면, 수업 프레젠테이션의 다듬기 페이지를 화면에 띄우고, 레고 에듀케이션 스파이크 앱의 프로그래밍 블록을 보여주세요.
그 다음, 아래와 같은 요지를 중심으로 토의를 이어가세요.
- 이러한 프로그래밍 블록의 용도가 무엇인가요? (샘플 응답: 동일한 동작은 10번 반복하되, 하나의 동작이 일어난 후 다음 동작이 일어나는 경우 동작을 시작하기 전에 1초간 대기)
- 학생들에게 자신의 댄스 동작에 들어 있는 반복, 대기, if-then 명령의 예를 보여달라고 하세요.
하이브리드 학습 팁 - 다듬기 단계
학생들에게 자신의 활동 결과를 보여주고 다른 학생들의 결과를 볼 수 있도록 기회를 만들어주세요.
동기식
- 예정된 대로 온라인 공유 세션을 열고, 학생들에게 자신의 발명품을 수정할 방법을 공유하게 하세요.
비동기식
- 학생들의 작품 공유를 위한 가상 갤러리 환경을 조성하고, 각자 창작품의 사진과 비디오를 게시한 후에 서로의 작품을 확인하게 하세요.
평가
(5분)
- 학생 개개인별로 자신의 유사 코드에 단계별 지침(즉, 알고리즘)이 어떻게 표시되는지, 그리고 유사 코드의 어느 부분에서 문제를 찾아내고 수정했는지를 예시하게 하세요.
학생들에게 자신의 성과를 자체 평가하게 하세요. 아래에 제시된 방법을 사용해도 좋고, 자신만의 자체 평가 활동을 새로 만들어도 상관없어요.
- 얼마간의 도움을 받아 유사 코드를 작성하고 프로그램을 디버깅할 수 있다면 한 손을 드세요.
- 유사 코드를 작성하고 프로그램을 디버깅하는 방법을 설명할 수 있다면 두 손을 드세요.
- 유사 코드를 작성하고 프로그램을 디버깅하는 방법을 타인에게 가르칠 수 있다면 손을 흔드세요.
하이브리 드 학습 팁 - 평가 단계
평가를 위한 방법은 매우 다양하며, 글쓰기 과제, 실시간 또는 녹음 형태의 구두 프레젠테이션, 학생들의 이해도를 보여주는 그림 등이 사용될 수 있습니다.
동기식
- 예정된 수업 시간 중에 학급 전체가 참여하는 가상 토의를 진행하세요.
비동기식
- 학생들에게 글쓰기 과제물, 구두 프레젠테이션, 학생들의 이해도를 가늠할 수 있을 만한 그림 등을 게시하는 방식으로 자신의 활동 결과물을 검토하게 하세요.
교사 지원
학생 과제:
- 단계별 유사 코드 지침 세트를 만들고 그대로 따라해보세요.
- 유사 코드의 문제를 분해하고 식별하고 수정하세요.
- 수업 프레젠테이션(추가 리소스 참조)
- 종이(학생 당 2장)
- 쓰기/그리기 도구(펜, 연필, 마커)