연필로 만들고 손으로 실행해보는 모눈종이 프로그래밍

모눈종이 프로그래밍은 프로그래밍 언어를 이용하여 실제 코딩을 하는 과정에서 익히게 되는 개념들을 컴퓨터 없이도 해보면서 학습할 수 있음을 보여주는 좋은 예이다. 혼자서도 해 볼 수 있는 퀴즈형 활동이기도 하고, 2인이 팀을 이루어 짝활동을 할 수도 있다. 준비물은 활동지와 연필, 지우개면 끝이다.

맵의 이해와 3가지 기본 명령어

가로와 세로가 모두 5칸인 공간이 있다. 위의 맵은 이 공간을 하늘에서 본 모양이다. 이 공간을 움직이며 해당 칸을 페인트로 칠하는 ‘페인트칠 로봇’이 있다. 화살표의 앞쪽이 로봇이 바라보는 방향이다. 이 로봇에게 어떠한 동작을 수행할 수 있도록 하는 명령은 3가지이다.

  • : 현재 바라보는 방향으로 앞으로 한 칸 전진하라.

  • : 제자리에서 오른쪽으로 90도 회전하라.

  • : 로봇이 위치한 한 칸을 모두 색칠하라.

퀴즈1

퀴즈1의 초기상태의 로봇에게 명령을 주어 목적상태로 만드려면 어떤 일련의 코드들(=프로그램)이 필요한가?
앞서 우리는 이 로봇이 단 3가지의 명령만으로 움직일 수 있음을 말했다.

퀴즈1의 초기상태에서 목적상태로 만드는 프로그램은 수없이 많을 수 있을 것이다.
하지만 많은 명령어(=코드)들을 로봇의 메모리 안에 다 넣을 수 없다고 가정한다면, 최대한 코드의 수를 적게하는 것을 하나의 미션으로 설정해보자.

그렇다면 어떤 프로그램 가장 최적의 프로그램일까?

해답: 앞 앞 회 앞 앞 칠

프로그래밍 언어의 업그레이드

앞서의 퀴즈의 해답이 ‘앞 앞 회 앞 앞 칠’이었다. 이러한 프로그래밍 언어 구조를 조금 업그레이드해보자. ‘앞 앞’을 ‘(앞)2’로 표현할 수 있다고 해보자.  이러한 구조는 다음과 같이 긴 코드들을 압축할 수 있는 장점이 있다.

  • (앞칠)2 = 앞 칠 앞 칠

  • ((앞)2회)3 = 앞 앞 회 앞 앞 회 앞 앞 회

  • (회(앞칠)2)3 = 회 앞 칠 앞 칠 회 앞 칠 앞 칠 회 앞 칠 앞 칠

이러한 압축 기능은 사람에게는 코드의 가독성을 높여주고 로봇에게는 메모리를 줄여주는 장점이 있다. 이제 이러한 구조를 이용하여 다음 퀴즈를 풀어보자.

퀴즈2

퀴즈2의 초기상태의 로봇이 목적상태를 만들기 위한 프로그램을 작성해보자.

해답: (앞칠)3회(앞칠)2

퀴즈3

퀴즈3의 초기상태의 로봇이 목적상태를 만들기 위한 프로그램을 작성해보자.

해답: ((앞칠)4회)4

퀴즈4

퀴즈4의 초기상태의 로봇이 목적상태를 만들기 위한 프로그램을 작성해보자.

해답: (앞칠(앞)2칠앞회)4
        (앞칠앞앞칠앞회)4

퀴즈5

퀴즈5의 초기상태의 로봇이 목적상태를 만들기 위한 프로그램을 작성해보자.

해답: ((앞칠)4회)2 ((앞칠)2회)2 (앞칠회)2

활동지를 출력하여 사용하세요.

[활동지]모눈종이프로그래밍.PDF

활동을 안내하는 PPT 자료입니다.

모눈종이프로그래밍안내.PPT