엔트리교육연구소의 지원을 받아 Code.org의 학생용 튜터리얼 전체 과정을 분석했습니다. 튜터리얼은 총 4개 코스, 74스테이지, 680여개의 단계로 구성되어 있습니다. 지난 여름방학 때 작업을 했는데 보고서로 정리하는 데 생각보다 시간이 많이 걸렸네요.. 분석 결과에 따른 교육 과정 제안은 별도의 보고서로 작성해서 조만간에 공지하겠습니다. 초등학생을 위한 소프트웨어 교육 과정을 만드는 데 기초 자료로 활용되었으면 합니다.
2015. 11. 5
1. 수탁연구 : 2015-02
Code.org 분석
“프로그래밍 언어는 제3외국어이다.
모든 학생들이 프로그래밍을 배울 필요는 없지만
배울 수 있는 기회는 반드시 주어져야 한다.”
과제책임자 : 정영식(전주교육대학교)
공동연구원 : 서진화(탄벌초등학교)
안형진(전주교육대학교)
안신영(전주교육대학교)
경규일(엔트리교육연구소)
전주교육대학교 컴퓨터교육과
2. - ii -
본 연구는 엔트리교육연구소의 ‘소프트웨어 교육 활성화를 위한 엔
트리 교육과정 개발 방안 연구’에 관한 연구비로 수행된 것으로서, 본
연구에서 제시된 정책 대안이나 의견 등은 엔트리교육연구소의 공식
의견이 아닌 본 연구진의 개인 견해임을 밝혀둡니다.
3. - iii -
차 례
I. 제 1 코스 Code.org 분석 ······················································································1
1. 스테이지1: 즐거운 맵(방향키 배열) ············································································1
2. 스테이지2: 움직여 움직여(공통적인 언어 이해하기) ··············································2
3. 스테이지 3: 퍼즐 맞추기 (드래그와 드롭 연습하기) ··············································4
4. 스테이지 4: 미로퍼즐 (순차) ························································································8
5. 스테이지5: 미로퍼즐 (디버깅) ····················································································16
6. 실시간 알고리즘: 씨앗 심기 ·······················································································23
7. 스테이지7: 꿀벌(순차) ··································································································25
8. 스테이지8: 예술가(순차) ······························································································33
9. 스테이지9: 건물 기초 만들기 ···················································································40
10. 스테이지10: 예술가(모양) ··························································································42
11. 말하는 꿀벌 ··················································································································47
12. 스테이지12: 반복적으로 하기 ···················································································54
13. 스테이지13: 미로 퍼즐(반복) ····················································································55
14. 스테이지14: 꿀벌(반복) ······························································································62
15. 스테이지15: 빅 이벤트 ·······························································································69
17. 스테이지17: 안전하게 자리잡기 ···············································································74
18. 스테이지18: 예술가(반복) ··························································································76
II. 제2코스 Code.org 분석 ·························································································81
1. 스테이지1: 모눈종이 프로그래밍 ···············································································81
2. 스테이지2: 실시간 알고리즘, 종이 비행기‘ ·························································83
3. 스테이지3: 미로퍼즐, 순차 ·························································································85
4. 스테이지4: 예술가, 순차 ·····························································································92
5. 스테이지5: 반복시키기 ·································································································98
6. 스테이지6: 미로퍼즐, 반복 ·························································································99
4. - iv -
7. 스테이지7: 예술가, 반복 ···························································································107
8. 스테이지8: 꿀벌, 반복 ·······························································································116
9. 스테이지9: 릴레이 프로그래밍 ·················································································124
10. 스테이지10: 꿀벌, 디버깅 ·······················································································126
11. 스테이지11: 예술가, 디버깅 ···················································································132
12. 스테이지12: 조건 ······································································································139
13. 스테이지13: 꿀벌, 조건선택 ···················································································140
14. 스테이지14: 2진 팔찌 ······························································································150
15. 스테이지15: 큰 이벤트 ····························································································152
16. 스테이지16: 플래피 버드 ························································································153
17. 스테이지17: PLAY LAB, 스토리 만들기 ······························································159
19. 스테이지19: 예술가, 중첩반복 ···············································································168
III. 제 3코스 code.org 분석 ····················································································175
1. 스테이지1: 컴퓨터 과학적 사고 ···············································································175
2. 스테이지2: Maze ·········································································································177
3. 스테이지3: 예술가 ·······································································································185
4. 스테이지4: 기능성 색유리 ·························································································193
5. 스테이지5: 예술가(함수) ····························································································195
6. 스테이지6: 꿀벌(함수) ································································································203
7. 스테이지7: 꿀벌(조건선택) ························································································210
8. 스테이지8: 미로 퍼즐(조건 선택) ············································································218
9. 스테이지9: 노래 만들기 ·····························································································225
10. 스테이지10: 주사위 경주 ························································································227
11. 스테이지11: 예술가(중첩반복) ················································································229
12. 스테이지12: 농부(~인동안 반복) ············································································236
13. 스테이지13: 꿀벌(중첩 반복) ··················································································242
14. 스테이지14: 꿀벌(디버깅) ························································································249
15. 스테이지15: 바운스 ··································································································256
16. 스테이지16: Play Lab(스토리 만들기) ··································································261
18. 스테이지18: 인터넷 ··································································································268
19. 스테이지19: 클라우드소싱 ······················································································270
5. - v -
20. 스테이지20: 디지털 시민의식 ···············································································272
21. 스테이지21: 예술가(패턴) ························································································273
IV. 제4코스(베타) Code.org 분석 ··········································································281
1. 스테이지1: 탱그램 ·······································································································281
2. 스테이지2: 미로와 꿀벌 ·····························································································282
3. 스테이지3: 예술가 ·······································································································289
4. 스테이지4: 변수들 묶기 ·····························································································297
5. 스테이지5: Madlibs(매들립) ·······················································································298
6. 스테이지6: 예술가, 변수 ···························································································299
7. 스테이지7: 플레이 랩, 변수 ·····················································································310
8. 스테이지8: 재미있는 반복 ·························································································315
9. 스테이지9: 꿀벌, 반복 ·······························································································316
10. 스테이지10: 예술가, 반복 ·······················································································322
11. 스테이지11: 플레이 랩, 반복 ·················································································329
12. 스테이지12: 예술가, 함수 ·······················································································332
13. 스테이지13: 매개변수를 사용한 노래 만들기 ·····················································341
14. 스테이지14: 예술가, 매개변수를 사용하는 함수 ···············································342
15. 스테이지15: 플레이 랩, 매개변수를 사용하는 함수 ·········································355
16. 스테이지16: 꿀벌, 매개변수를 사용하는 함수 ···················································362
6. - 1 -
I. 제 1 코스 Code.org 분석1)
1. 스테이지1: 즐거운 맵(방향키 배열)
◦ 개요 : 컴퓨터과학의 기초인 알고리즘의 기본적 개념과 관계를 이해시
킨다.
◦ 학습 목표
- 캐릭터를 맵 내에서 움직이게 하기 위한 단계를 작성한다.
- 예정된 목표에 도달하기 위해 방향키들을 배열한다.
- 주어진 단계의 목록을 보고 캐릭터가 어느 곳에 도착할지 예상한다.
◦ 활동
- 1/2단계 : 실제로 종이를 잘라 방향키 배열하기
주요 화면 1 주요 화면 2 설명
Ÿ 주어진 종이에 그려진 화살표를 잘라
캐릭터에 도달할 수 있도록 배열해보는
활동이다. 여러 명의 의견을 모아 결정
한다.
Ÿ 비어있는 칸을 그려주어 앞으로의 활동
을 대비한다.
주요 개념
알고리즘: 명령을 수행하기 위하여 따라야 할 단계의 목록
- 2/2단계: 온라인으로 옮겨와 방향키 배열하기
보기 화면 문제와 선택지 답
분석
Ÿ 언플러그드 활동과 마찬가지로 화살표를 배열하는 활동이다.
Ÿ 플러브를 보물로 보내기 위한 방향키를 배열하도록 한다.
1) https://studio.code.org
7. - 2 -
2. 스테이지2: 움직여 움직여(공통적인 언어 이해하기)
◦ 개요 : 주어진 명령을 실행하기 위해서는 공통적인 언어가 필요함을
인지하게 한다.
◦ 학습 목표
- 과제를 수행하기 위한 프로그램을 생성해야 하는 상황을 인지한다.
- 시작부터 끝까지 캐릭터의 움직임을 예측한다.
- 움직임을 상징적인 명령으로 전환시킨다.
- 알고리즘을 프로그램에 연관시킨다.
◦ 활동
- 1/2단계 : 몸짓 언어(공통된 언어)를 통한 명령 이해하기
주요 화면 1 주요 화면 2 설명
Ÿ controller을 수행할 인원과 walking
machine을 수행할 인원을 나눈다.
Ÿ walking machine의 시작위치는 나침도
가 그려진 종이이다.
Ÿ controller는 walking machine에게 주요
화면 2에 주어진 몸 부호를 이용하여
이동해야할 방향을 알려준다.
Ÿ 지시한 방향대로 이동하다가 목표한 위
치에 도달하면 controller는 ‘stop’ 몸
부호를 보여준다.
Ÿ 뒤집어서 웃는 얼굴의 캐릭터가 보이면
성공한 것이다.
Ÿ 아이들이 주어진 명령을 수행하는 데에
있어서 몸 부호라는 공통적인 언어를
통하여 해결하도록 함.
주요 개념
프로그램: 기계에 의하여 실행될 수 있는 무엇인가로 암호화 된 알고리즘
8. - 3 -
- 2/2단계: 화살표(공통된 언어)를 이용한 명령 이해하기
보기 화면 문제와 선택지 답
분석
Ÿ 플러브를 꽃에 보낼 수 있는 프로그램을 화살표라는 공통적인 언어를 통하여 해결하도록 함.
Ÿ 스테이지 1에서 한 번을 움직여서 문제를 해결했다면, 스테이지 2에서는 두 번을 움직이도록 함.
Ÿ 스테이지 2의 목표는 공통적인 언어가 필요함을 인식시키는 것인데 그 전 스테이지와 언어가 다
르지 않아서(화살표) 아이들이 인식할 수 있을지 의문임.
9. - 4 -
주요 화면 1 주요 화면 2 설명
Ÿ 스테이지 3은 드래그와 드롭을 연습하
는 스테이지로 웃는 얼굴의 캐릭터를
맞는 위치에 끌어 놓으면 해결된다.
주요 화면 1 주요 화면 2 설명
Ÿ 처음 단계에서 하나의 그림을 그대로
지정된 위치에 드래그와 드롭을 이용하
여 옮겨놓았다면, 2단계에서는 분할된
그림을 반쪽의 퍼즐에 드래그와 드롭을
이용하여 맞춰 넣으면 된다.
주요 화면 1 주요 화면 2 설명
Ÿ 2단계에서는 퍼즐을 아래에 옮겨놓았다
면 3단계에서는 퍼즐을 위에 옮겨놓으
면 된다.
3. 스테이지 3: 퍼즐 맞추기 (드래그와 드롭 연습하기)
◦ 소개: 드래그와 드롭에 대하여 알도록 하여 나중 스테이지의 블록 알
고리즘의 제작을 돕는다.
◦ 학습목표:
- 드래그를 통하여 퍼즐을 맞춘다.
- 퍼즐에서 더 나아가 블록 알고리즘의 형태를 인지하도록 한다.
- 블록 알고리즘의 사용 방법을 알도록 한다.
◦ 활동
- 1/12단계: 하나의 그림 드래그와 드롭하기
- 2/12단계: 반쪽의 그림 드래그와 드롭하기(아래 그림)
- 3/12단계: 반쪽의 그림 드래그와 드롭하기(위 그림)
10. - 5 -
- 4/12단계: 세 개로 나누어진 그림 드래그와 드롭하기
주요 화면 1 주요 화면 2 설명
Ÿ 전 단계들보다 약간 심화되어 3개의 퍼
즐을 드래그와 드롭을 이용하여 맞는
자리에 옮겨놓으면 된다.
Ÿ 이 때부터 블록의 모양이 나중에 수행
하게 될 게임에서의 블록 알고리즘을
따라가게 된다.
- 5/12단계 : 세 개로 나누어진 그림 드래그와 드롭하기(순서를 뒤바꿔
놓음)
주요 화면 1 주요 화면 2 설명
Ÿ 전 단계에서는 그림을 순서 그대로 배
열하여 보여주었다면 이 단계에서는 순
서를 뒤바꾸어 놓았다.
- 6/12단계: 세 개로 나누어진 그림 드래그와 드롭하기(순서 뒤바뀜)
주요 화면 1 주요 화면 2 설명
Ÿ 이 단계는 전 단계와 같은 방식으로 문
제를 해결한다.
- 7/12단계: 세 개로 나누어진 그림 드래그와 드롭하기(순서 뒤바뀜)
주요 화면 1 주요 화면 2 설명
Ÿ 이 단계도 마찬가지로 세 개의 블록을
드래그와 드롭을 이용하여 문제를 해결
하면 된다.
Ÿ 5~7 단계를 거쳐서 같은 문제를 여러
가지 그림으로 바꿔 놓아 연습할 수 있
도록 하였다.
11. - 6 -
- 8/12단계: 붙어있는 세 개의 그림 드래그와 드롭하기(순서 뒤바뀜)
주요 화면 1 주요 화면 2 설명
Ÿ 전 단계들과 같이 드래그와 드롭을 이
용하여 그림을 완성한다.
Ÿ 그림이 서로 붙어있고 맨 위에 있는 조
각을 떼어내는 과정에서 단순히 맨 위
의 조각을 떼어내면 떨어지지 않고 아
래부터 차근차근 떼어내야 떨어지도록
설정해 놓았다. 앞으로의 활동에 있어서
이용할 블록 알고리즘을 사용한 것이다.
- 9/12단계: 붙어있는 세 개의 그림 드래그와 드롭하기(순서 뒤바뀜)
주요 화면 1 주요 화면 2 설명
Ÿ 이 단계는 앞의 단계와 같은 과정을 통
하여 해결할 수 있다.
Ÿ 이 단계를 통하여 학생들이 블록 알고
리즘에 대하여 이해할 수 있게 된다.
- 10/12단계: 블록 알고리즘 블록 드래그 앤 드롭하기(1개만 옮김)
주요 화면 1 주요 화면 2 설명
Ÿ 그림으로 이루어졌던 블록을 실제 블록
알고리즘 모양으로 바꾸어 놓아 직접적
으로 블록 알고리즘을 체험할 수 있도
록 함.
Ÿ 주요화면 2에서 아이들은 초록 블록을
청록색 블록 아래에 올려놓게 되면 자
주색 블록이 초록색 블록 또한 감싸게
된다는 것을 인지할 수 있을 것이다.
- 11/12단계: 블록 알고리즘 블록 드래그와 드롭하기(3개 옮김)
주요 화면 1 주요 화면 2 설명
Ÿ 앞 단계에서의 활동을 여러 번 반복하
여 연습할 수 있도록 하였다.
Ÿ 이 단계를 통하여 아이들은 블록 알고
리즘에 대하여 더 알 수 있을 것이다.
12. - 7 -
- 12/12단계(평가): 붙어있는 세 개의 그림 드래그와 드롭하기(순서 뒤
바뀜)
주요 화면 1 주요 화면 2 설명
Ÿ 마지막 12단계는 평가 단계이다.
Ÿ 앞에서 한 번 맞춰보았던 퍼즐을 블록
알고리즘대로 맞춰보도록 하여 알고리
즘과 퍼즐을 연관시켜 알고리즘에 대한
이해를 더욱 도와 앞으로 할 활동을 대
비시켰다.
13. - 8 -
4. 스테이지 4: 미로퍼즐 (순차)
◦ 동영상
주요 화면 1 설명
Ÿ 미로퍼즐 해결 방법에 대하여 설명한다.
Ÿ 도구상자에서 블록을 드래그 해 작업화면에 드롭하면 된다고
설명한다.
Ÿ 하나의 블록 아래에 올려놓을 것을 강조한다.
주요 화면 2 설명
Ÿ 미로퍼즐을 다 해결했다고 생각할 때 Run을 누르면 된다고 설
명한다.
◦ 활동
- 1/15단계: 왼쪽으로 이동하기(방향 지시 있음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [왼쪽]을 2번 반복하여 목표지점까지 이동
moveWest();
moveWest();
14. - 9 -
- 2/15단계: 오른쪽으로 이동하기(방향 지시 있음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽]을 2번 반복하여 목표지점까지 이동
moveEast();
moveEast();
- 3/15단계: 아래쪽으로 이동하기(방향 지시 있음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [아래쪽]을 2번 반복하여 목표지점까지 이동
moveSouth();
moveSouth();
15. - 10 -
- 4/15단계: 위쪽으로 이동하기(방향 지시 있음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [위쪽]을 2번 반복하여 목표 지점으로 이동
moveNorth();
moveNorth();
- 5/15단계: 오른쪽으로 이동하기(방향 지시 없음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽]을 3번 반복하여 목표지점까지 이동
moveEast();
moveEast();
moveEast();
16. - 11 -
- 6/15 단계: 왼쪽과 아래쪽으로 이동하기(상하 좌우 도입, 방향 지시
없음)
실행 전 블록 입력 전 실행 후
분석 스크립트
Ÿ [왼쪽] 1번과 [아래쪽] 2번을 이용하여 목표지점까지 이동
Ÿ 하나의 방향이 아니라 두 개의 방향을 순차적으로 이용할 수
있도록 함.(한 방향으로 갔다가 또 다른 방향으로 가라고 힌트
를 줌)
moveWest();
moveSouth();
moveSouth();
- 7/15 단계: 오른쪽과 위쪽으로 이동하기(상하 좌우 사용, 방향 지시
없음, 함정 만들어 놓음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 1번, [왼쪽] 1번을 이용하여 목표지점까지 이동
Ÿ 답으로 가는 루트 외에 다른 루트 또한 포함시켜 헷갈릴 수 있
는 요소를 제공하였다.
moveEast();
moveNorth();
17. - 12 -
- 8/15 단계: 두 개의 방향의 블록 섞어 놓음
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 1번 이동한 뒤 [왼쪽] 1번 이동하고 또 다시 [오른쪽]
1번 더 이동하여 목표한 지점까지 이동
Ÿ 방향을 순차적으로 배열하여 문제를 해결하도록 해 알고리즘
을 만드는 것을 이해 할 수 있게 한다.
moveEast();
moveNorth();
moveEast();
- 9/15 단계: 두 개의 방향 섞어 놓음
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [왼쪽] 으로 1번 움직이고 [아래쪽]으로 1번 움직인 다음 다시
[왼쪽]으로 1번 이동하여 목표지점까지 이동
Ÿ 순차배열을 연습할 수 있도록 한다.
moveWest();
moveSouth();
moveWest();
18. - 13 -
- 10/15 단계: 세 방향의 블록 섞어 놓음
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [위쪽]으로 1번 이동한 후 [오른쪽]으로 3번 이동하고, 그 후 [아
래쪽]으로 1번 이동하여 목표한 지점까지 이동
Ÿ 세 방향으로 순차적으로 이동하는 것을 연습하도록 한다.
moveNorth();
moveEast();
moveEast();
moveEast();
moveSouth();
- 11/15 단계: 세 방향의 블록 섞어 놓음
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [왼쪽] 2번 이동한 후 [아래쪽] 2번 이동한다. 그 후 [오른쪽] 2
번 이동한 후에 다시 [아래쪽] 1번 이동하여 목표지점까지 이동
한다.
Ÿ 복잡한 순차배열을 해보도록 하여 알고리즘을 이해하도록 하고
블록을 배열할 때 캐릭터가 어디에 도달할지 알도록 함.
moveWest();
moveWest();
moveSouth();
moveSouth();
moveEast();
moveEast();
moveSouth();
19. - 14 -
- 12/15 단계: 두 방향의 블록 사용하기(평가)
실행 전 블록 입력 전 사용 블록
분석 스크립트
Ÿ 12단계부터는 평가하는 문항으로 이루어져 있다.
Ÿ [오른쪽]으로 1번 이동 후 [아래쪽]으로 2번 이동하도록 순차적
으로 배열하여 문제를 해결한다.
moveEast();
moveSouth();
moveSouth();
- 13/15 단계: 세 방향의 블록 사용하기(평가)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [아래쪽] 1번, [왼쪽] 2번 이동한 다음 [위쪽] 1번 이동한 후에
다시 [왼쪽]으로 1번 이동하여 목표지점까지 이동한다.
Ÿ 순차적 배열을 이해하여 문제를 해결한다.
moveSouth();
moveWest();
moveWest();
moveNorth();
moveWest();
20. - 15 -
보기 화면 문제와 선택지 답
분석
Ÿ 왼쪽, 아래쪽이라고 쓰여져 있던 언어를 w와 s로 대체했다.
Ÿ 알고리즘을 제대로 이해하고 있는지 확인한다.
- 14/15 단계: 두 방향의 블록 사용하기(평가)
- 15/15 단계: 한 방향이나 두 방향의 블록 사용하기 (평가)
문제와 선택지 답
분석
Ÿ 블록 짝 맞추기 활동을 이용하여 순차배열에 대해 평가한다.
Ÿ 각 미로 퍼즐로부터 각각의 블록 알고리즘을 작성해본 후 선택지와 맞춰보거나, 각 알고리즘이 의미
하는 위치 변화를 머릿속으로 그려 해결한다.
21. - 16 -
5. 스테이지5: 미로퍼즐 (디버깅)
◦ 동영상
주요 화면 1 설명
Ÿ 디버깅에 대한 기본적인 이해를 돕기 위해 설명한다.
Ÿ 디버깅이란 오류를 발견하여 수정하는 것이며 디버깅의 가장
쉬운 방법은 행동을 차근차근 점검하는 것이라고 설명한다.
Ÿ 디버깅의 예시를 보여준다.
주요 화면 2 설명
Ÿ 디버깅을 미로퍼즐에 적용시키는 방법을 알려준다.
◦ 활동
- 1/12 단계: 블록 추가하기 (1개)
실행 전 오류 수정 전 오류 수정 후
분석 스크립트
Ÿ [오른쪽]으로 2번 이동하는 기존의 오류를 수정하여 [오른쪽] 3
번 이동하여 목표지점까지 이동
Ÿ 알고리즘을 해석하여 오류를 파악할 수 있도록 한다.
moveEast();
moveEast();
moveEast();
22. - 17 -
- 2/12 단계: 블록 중간에 추가하기 (1개)
실행 전 오류 수정 전 오류 수정 후
분석 스크립트
Ÿ 기존의 [왼쪽] 1번 이동, [위쪽] 2번 이동의 오류를 수정하여 [위
쪽] 1번을 추가
Ÿ 알고리즘을 파악하여 오류를 수정한다.
moveWest();
moveNorth();
moveNorth();
moveNorth();
- 3/12 단계: 중간의 오류 블록 제거하기(2개)
실행 전 오류 수정 전 오류 수정 후
분석 스크립트
Ÿ 기존의 [오른쪽] 3번 , [위쪽] 1번 이동에서 [오른쪽] 2번을 제거
Ÿ 알고리즘을 파악하여 오류를 확인하고 오류 블록을 제거한다.
moveEast();
moveNorth();
23. - 18 -
- 4/12단계: 블록 순서 바꾸기
실행 전 오류 수정 전 오류 수정 후
분석 스크립트
Ÿ 기존의 [왼쪽] 2번 이동 후 [아래쪽] 1번을 수정하여 [왼쪽] 1번,
[아래쪽] 1번 이동 후 [왼쪽] 1번 이동
Ÿ 알고리즘을 파악하여 오류를 확인하고 블록의 순서를 바꾼다.
moveWest();
moveSouth();
moveWest();
- 5/12단계: 좀 더 복잡한 알고리즘의 중간의 오류 블록 제거하기(1개)
실행 전 오류 수정 전 오류 수정 후
분석 스크립트
Ÿ 기존의 [오른쪽] 2번 , [아래쪽] 3번 이동 후 [오른쪽] 2번 이동
에서 [아래쪽] 1번을 제거
Ÿ 알고리즘을 파악하여 오류를 확인하여 블록을 제거한다.
moveEast();
moveEast();
moveSouth();
moveSouth();
moveEast();
moveEast();
24. - 19 -
- 6/12단계: 좀 더 복잡한 알고리즘의 중간 오류 블록 제거하기(1개)
실행 전 오류 수정 전 오류 수정 후
분석 스크립트
Ÿ 기존의 [오른쪽] 1번 , [위쪽] 1번, [오른쪽] 3번 이동 후 [아래
쪽] 1번 이동에서 [오른쪽] 1번을 제거
Ÿ 알고리즘을 파악하여 오류를 확인하고 오류 블록을 제거한다.
moveEast();
moveNorth();
moveEast();
moveEast();
moveSouth();
- 7/12단계: 좀 더 복잡한 알고리즘의 오류 블록 제거하기(3개 제거)
실행 전 오류 수정 전 오류 수정 후
분석 스크립트
Ÿ 기존의 [왼쪽] 2번, [아래쪽] 2번, [오른쪽] 3번 이동 후 [아래
쪽] 1번 이동에서 [왼쪽] 1번과 [오른쪽] 2번 제거
Ÿ 알고리즘을 파악하여 오류를 확인하여 블록을 제거한다.
Ÿ 여러 개의 블록을 제거해야 하므로 조금 더 심화된 과정이다.
moveWest();
moveSouth();
moveSouth();
moveEast();
moveSouth();
25. - 20 -
- 8/12단계: 블록 추가하기(2개)
실행 전 오류 수정 전 오류 수정 후
분석 스크립트
Ÿ 기존의 [아래쪽] 2번, [왼쪽] 1번 이동 후 [위쪽] 1번 이동에 [왼
쪽] 1번과 [위쪽] 1번 추가하기
Ÿ 알고리즘을 파악하여 오류를 확인하고 필요한 블록을 추가한다.
Ÿ 여러 개의 블록을 추가해야하기 때문에 좀 더 심화된 과정이다.
moveSouth();
moveSouth();
moveWest();
moveWest();
moveNorth();
moveNorth();
- 9/12단계: 블록 제거하고 추가하기(2개 제거 후 2개 추가)
실행 전 오류 수정 전 오류 수정 후
분석 스크립트
Ÿ 기존의 [왼쪽] 2번, [아래쪽] 2번에서 [아래쪽] 2번 제거하고, [왼
쪽] 1번, [위쪽] 1번 추가
Ÿ 전 단계들보다 오류 블록이 많다.
Ÿ 또 하나의 길만이 아니라 여러 길을 선택할 수 있도록 공간을
열어 놓았다.
moveWest();
moveWest();
moveWest();
moveNorth();
26. - 21 -
- 10/12단계: 블록 제거하고 추가하기(2개 제거하고 2개 추가)
실행 전 오류 수정 전 오류 수정 후
분석 스크립트
Ÿ 기존의 [왼쪽] 2번, [위쪽] 3번, [오른쪽] 1번, [아래쪽] 2번 이동
에서 [위쪽] 1번을 제거하고 [오른쪽] 2번을 추가하고 [아래쪽]
1번을 제거
Ÿ 전 단계와 마찬가지로 제거하기와 추가하기를 동시에 하여 보
다 심화된 과정이다.
moveWest();
moveNorth();
moveNorth();
moveEast();
moveEast();
moveEast();
moveSouth();
- 11/12단계: 블록 제거하기(1개)(평가)
실행 전 오류 수정 전 오류 수정 후
분석 스크립트
Ÿ 기존의 [왼쪽] 1번, [위쪽] 1번 이동 후 [왼쪽] 2번, [위쪽] 1번
이동에서 나중의 [왼쪽] 1번을 제거
Ÿ 알고리즘을 파악하여 오류를 확인하고 제거할 수 있는 지를 평
가한다.
moveWest();
moveNorth();
moveWest();
moveNorth();
-
27. - 22 -
- 12/12단계: 미완성된 알고리즘 완성하기(평가)
보기 화면 문제와 선택지 답
분석
Ÿ 적절한 알고리즘을 구성할 수 있는지를 평가하는 단계이다.
Ÿ 알고리즘을 이해하여 새의 위치 변화를 파악하여 마지막 알고리즘을 결정한다.
28. - 23 -
6. 실시간 알고리즘: 씨앗 심기
◦ 개요: 학생들이 현실 세계 상황을 온라인 상의 알고리즘으로 옮길 수
있는 기술들을 얻을 수 있도록 한다. 또한 반대로 온라인 상의 알고리
즘을 현실 상황과 연관 시킬 수 있도록 한다.
◦ 학습목표
- 학생들의 하루를 구성하는 다양한 활동들을 이름 짓는다.
- 큰 활동을 일련의 작은 사건들로 나눈다.
- 잇따라 일어나는 사건들을 학생들의 논리적인 순서대로 정리한다.
◦ 활동
- 1/3단계: ‘씨앗 심기’의 알고리즘 만들기
주요 화면 1 주요 화면 2 설명
Ÿ 나눠준 종이에서 씨앗을 심기위한 단계
들을 잘라낸 후 9개의 항목 중 적절한
6개 항목을 골라 순서대로 정렬하여 서
로 비교해 본 후 완성된 알고리즘을 씨
앗을 심는 데에 이용한다.
Ÿ 현실 세계의 상황인 씨앗심기를 알고리
즘을 이용하여 계획하도록 하여 현실
상황과 알고리즘 사이의 호환을 돕는다.
주요 개념
알고리즘: 명령을 수행하기 위하여 따라야 할 단계의 목록
- 2/3 단계: ‘이 닦기’의 미완성된 알고리즘 완성하기(처음 제거)
보기 화면 문제와 선택지 답
분석
Ÿ 이를 닦는 하나의 큰 활동을 여러 작은 사건들로 나누어 논리적인 순서대로 완성하도록 한다.
Ÿ 학생들은 이를 닦는 활동의 알고리즘을 완성하면서 현실 상황과 알고리즘을 더욱 잘 연관시키게
된다.
29. - 24 -
- 3/3단계: 씨앗 심기의 미완성된 알고리즘 완성하기(중간 제거)
보기 화면 문제와 선택지 답
분석
Ÿ 씨앗 심기라는 하나의 활동을 화분을 흙으로 채우기 등의 작은 사건들로 나누어 논리적인 순서대
로 완성하도록 한다.
Ÿ 씨앗 심기 활동의 알고리즘을 완성하면서 온라인 상에서 알고리즘을 제작할 수 있는 능력을 기른
다.
30. - 25 -
7. 스테이지7: 꿀벌(순차)
◦ 동영상
주요 화면 1 설명
Ÿ 꿀벌 퍼즐에 대한 이해를 돕기 위하여 설명한다.
Ÿ 목표는 꿀벌이 꽃에 날아가 꽃꿀을 얻어 벌집으로 날아가 꿀을
만들 수 있도록 하는 것이라고 설명한다.
주요 화면 2 설명
Ÿ 꽃에서 얻을 수 있는 꽃꿀의 수는 아래에 작게 쓰여 있으며 그
숫자만큼 꽃꿀을 얻어야 한다고 말한다. 또 벌집에서 얻을 수
있는 꿀도 마찬가지라고 설명한다.
Ÿ 최대로 얻을 수 있는 꿀을 다 얻으면 다음 단계로 넘어간다고
Ÿ 설명한다.
◦ 활동
- 1/15단계: 꽃꿀 1개를 얻어 꿀을 1개 만들기
실행 전 블록 추가 전 블록 추가 후
분석 스크립트
Ÿ [오른쪽]으로 1번 이동하여 꽃꿀을 하나 얻고 또 [오른쪽] 으로
2번 이동하여 꿀을 하나 만든다.
Ÿ 꿀벌이 꿀을 얻게 하는 블록의 사용(순차문)을 이해하도록 한
다.
moveEast();
getNectar();
moveEast();
moveEast();
makeHoney();
31. - 26 -
- 2/15단계: 꽃꿀 1개를 얻어 꿀을 1개 만들기(두 방향 이동)
실행 전 블록 추가 전 블록 추가 후
분석 스크립트
Ÿ [아래쪽] 2번 이동하여 꽃꿀을 얻고 [오른쪽] 2번 이동하여 꿀을
하나 만든다.
Ÿ 이동과 꽃꿀을 얻거나 꿀을 만드는 활동의 순서를 알고 그에
따라 알고리즘을 만들 수 있도록 한다.
Ÿ 전 단계보다 위치의 이동이 다양하다.
moveSouth();
moveSouth();
getNectar();
moveEast();
moveEast();
makeHoney();
- 3/15단계: 꽃꿀을 1개를 얻어 꿀을 1개 만들기(두 방향 교차사용)
실행 전 블록 추가 전 블록 추가 후
분석 스크립트
Ÿ [왼쪽] 1번, [위쪽] 2번 이동 후 꽃꿀을 얻고, [왼쪽] 1번, [위쪽]
1번 이동 후 꿀을 1개 만든다.
Ÿ 전 단계와 마찬가지로 꽃꿀을 하나 얻어 꿀을 만드는 과정의
순차적 진행을 이해하여 순차문을 만들도록 한다.
moveWest();
moveNorth();
getNectar();
moveWest();
moveNorth();
makeHoney();
32. - 27 -
- 4/15단계: 꽃꿀을 2개 얻어 꿀을 2개 만들기(세 방향 이동)
실행 전 블록 추가 전 블록 추가 후
분석 스크립트
Ÿ [위쪽] 1번, [오른쪽] 1번 이동하여 꽃꿀을 2개 얻고, [오른쪽] 1
번 , [아래쪽] 1번 이동하여 꿀을 2개 만든다.
Ÿ 꽃꿀의 개수를 바꾸어 꽃꿀을 얻는 블록과 꿀을 만드는 블록을
2개씩 배열하도록 하여 한 단계 발전시켰다.
moveNorth();
moveEast();
getNectar();
getNectar();
moveEast();
moveSouth();
makeHoney();
makeHoney();
- 5/15단계: 꽃꿀을 3개 얻어 꿀을 3개 만들기(두 방향 이동, 꽃 2개로
나뉨)
실행 전 블록 추가 전 블록 추가 후
분석 스크립트
Ÿ [아래쪽] 1번 이동하여 꽃꿀을 2개 얻고 [오른쪽] 1번 이동하여
꽃꿀을 1개 얻고 [오른쪽] 1번, [아래쪽] 1번 이동하여 꿀을 2개
만든다.
Ÿ 꽃꿀을 2개 얻고 이동하여 1개를 얻게 하여 순차문의 사용을
발전시켰다.
moveSouth();
getNectar();
getNectar();
moveEast();
getNectar();
moveEast();
moveSouth();
makeHoney();
makeHoney();
makeHoney();
33. - 28 -
- 6/15단계: 꽃꿀을 2개 얻어 꿀을 2개 만들기(두 방향 이동, 꿀 2개로
나뉨)
실행 전 블록 추가 전 블록 추가 후
분석 스크립트
Ÿ [왼쪽] 1번 이동하여 꽃꿀을 2개 얻고 [왼쪽]으로 이동하여 꿀을
1개 만들고 [위쪽]으로 이동하여 꿀을 1개 만든다.
Ÿ 꿀을 1개 만든 후에 이동하여 꿀을 다시 만들게 하여 순차문의
사용을 발전시켰다.
moveWest();
getNectar();
getNectar();
moveWest();
makeHoney();
moveNorth();
moveNorth();
makeHoney();
- 7/15단계: 꽃꿀을 3개 얻어 꿀을 2개 만들기(두 방향 이동, 꽃 3개로
나뉨)
실행 전 블록 추가 전 블록 추가 후
분석 스크립트
Ÿ [아래쪽] 1번이동하여 꽃꿀을 1개 얻고, [왼쪽] 1번 이동하여 꽃
꿀을 1개 얻고, 또 [왼쪽] 1번 이동하여 꽃꿀을 얻은 후 [아래
쪽] 1번 이동하여 꿀을 2개 만든다.
Ÿ 꽃꿀을 3번으로 나누어 얻게 하여 순차문의 사용을 자유자재로
할 수 있도록 돕는다.
moveSouth();
getNectar();
moveWest();
getNectar();
moveWest();
getNectar();
moveSouth();
makeHoney();
makeHoney();
34. - 29 -
- 8/15단계: 꽃꿀을 2개 얻어 꿀을 2개 만들기(두 방향 이동, 이동 가능
범위 확장, 꽃 2개로 나뉨)
실행 전 블록 추가 전 블록 추가 후
분석 스크립트
Ÿ [위쪽] 1번 이동하여 꽃꿀을 1개 얻고, [위쪽] 1번 이동하여 꽃
꿀을 1개 얻고 [오른쪽] 2번 이동하여 꿀을 2개 만든다.
Ÿ 꿀벌이 이동할 수 있는 범위를 확장시켜 자유로운 사고를 돕는
다. 그 중에서도 가장 효율적인 길을 생각해보는 기회도 갖는
다.
moveNorth();
getNectar();
moveNorth();
getNectar();
moveEast();
moveEast();
makeHoney();
makeHoney();
- 9/15단계: 꽃꿀을 3개 얻어 꿀을 1개 만들기(두 방향 이동, 꽃 2개로
나뉨)
실행 전 블록 추가 전 블록 추가 후
분석 스크립트
Ÿ [아래쪽] 1번 이동하여 꽃꿀을 2개 얻고, 왼쪽 2번 이동하여 꽃
꿀을 1개 얻고 [아래쪽] 1번 이동하여 꿀을 1개 얻는다.
Ÿ 꽃꿀을 얻고 이동한 후에 다시 꽃꿀을 얻게 하여 순차문의 연
습을 돕는다.
moveSouth();
getNectar();
getNectar();
moveWest();
moveWest();
getNectar();
moveSouth();
makeHoney();
35. - 30 -
- 10/15단계: 꽃꿀을 3개 얻어 꿀을 2개 만들기(두 방향 이동, 꽃 2개,
벌집 2개로 나뉨)
실행 전 블록 추가 전 블록 추가 후
분석 스크립트
Ÿ [왼쪽] 1번 이동하여 꽃꿀을 2개 얻고 [왼쪽] 1번 이동하여 꽃꿀
을 1개 얻고 [아래쪽] 1번 이동하여 꿀을 만들고, 다시 [아래쪽]
으로 1번 이동하여 꿀을 만든다.
Ÿ 꽃꿀을 얻는 과정과 꿀을 만드는 과정을 나누어 만들게 하여
순차문의 연습을 돕는다.
moveWest();
getNectar();
getNectar();
moveWest();
getNectar();
moveSouth();
makeHoney();
moveSouth();
makeHoney();
- 11/15단계: 꽃꿀을 3개 얻어 꿀을 1개 만들기(이동 범위 확장, 꽃 2개
로 나뉨, 세 방향 이동)
실행 전 블록 추가 전 블록 추가 후
분석 스크립트
Ÿ [아래쪽] 1번 이동하여 꽃꿀을 1개 얻고, [아래쪽] 1번, [오른쪽]
1번을 이동하여 꽃꿀을 2개 얻고 [오른쪽] 1번, [위쪽] 1번을 이
동하여 꿀을 만든다.
Ÿ 꿀벌이 이동할 수 있는 길을 더 만들어 최선의 알고리즘을 생
각할 수 있도록 돕고, 꽃꿀을 얻는 과정을 나누어 순차문의 연
습을 돕는다.
moveSouth();
getNectar();
moveSouth();
moveEast();
getNectar();
getNectar();
moveEast();
moveNorth();
makeHoney();
36. - 31 -
- 12/15단계: 꽃꿀을 1개 얻어 꿀을 1개 만들기(두 방향 이동)(평가)
실행 전 블록 추가 전 블록 추가 후
분석 스크립트
Ÿ [왼쪽] 1번 이동하여 꽃꿀을 얻고 [위쪽] 3번 이동하여 꿀을 1개
만든다.
Ÿ 1개의 꽃꿀을 얻고 2개의 꿀을 만들도록 하여 지금까지 연습한
순차문을 제대로 사용하고 있는지 확인한다.
moveWest();
getNectar();
moveNorth();
moveNorth();
moveNorth();
makeHoney();
- 13/15단계: 꽃꿀을 2개 얻어 꿀을 2개 만들기(두 방향 이동, 꽃 2개로
나뉨)(평가)
실행 전 블록 추가 전 블록 추가 후
분석 스크립트
Ÿ [아래쪽] 1번 이동하여 꽃꿀을 1개 얻고, [아래쪽] 1번 이동하여
꽃꿀을 1개 얻고, [왼쪽] 2번 이동하여 꿀을 2개 만든다.
Ÿ 2개의 꽃꿀과 2개의 꿀을 얻는 과정의 블록 알고리즘을 만들
수 있는지 확인한다.
moveSouth();
getNectar();
moveSouth();
getNectar();
moveWest();
moveWest();
makeHoney();
makeHoney();
37. - 32 -
- 14/15단계: 꽃꿀의 개수 더하기
보기 화면 문제와 선택지 답
분석
Ÿ 꽃꿀의 개수를 맞추는 문항이다.
Ÿ 초등학교 1학년 학생들을 대상으로 하는 코스이기 때문에 학생들이 총 꽃꿀의 개수를 아는지 확
인한다.
Ÿ 학생들은 순차문에서 연습할 때 1개의 꽃꿀을 얻고 다시 1개의 꽃꿀을 얻었던 것을 떠올리며 문
제를 해결하게 된다.
- 15/15단계: 꽃꿀의 개수 더하기
보기 화면 문제와 선택지 답
분석
Ÿ 전단계와 마찬가지로 꽃꿀의 개수를 맞추는 문항이다.
Ÿ 학생들은 2개의 꽃꿀을 얻고 다시 2개의 꽃꿀을 얻었던 것을 떠올리며 문제를 해결한다.
38. - 33 -
8. 스테이지8: 예술가(순차)
◦ 동영상
주요 화면 1 설명
Ÿ 예술가 퍼즐의 거리 이동 블록에 대하여 설명한다.
Ÿ 적절한 선을 그리기 위하여 적절한 방향의 거리 이동 블록을
선택하라고 설명한다.
주요 화면 2 설명
Ÿ 예술가 퍼즐의 거리 점프 블록에 대하여 설명한다.
Ÿ 거리 점프 블록을 사용하면 예술가가 이동하지만 선을 그리지
않는다고 설명한다.
Ÿ 다른 선을 그리기 위하여 점프하고 싶을 때 사용하라고 설명한
다.
◦ 활동
- 1/12단계: 오른쪽 블록 1번 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 1번 사용
Ÿ 거리 이동 블록의 기능을 이해한다.
moveRight(50);
39. - 34 -
- 2/12단계: 오른쪽 블록 2개 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 2번 사용
Ÿ 거리 이동 블록을 이용하여 순차문을 만들어낸다.
moveRight(50);
moveRight(50);
- 3/12단계: 두 방향의 블록 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 2번, [위쪽] 2번 사용
Ÿ 서로 다른 방향의 거리 이동 블록을 사용하여 목표 지점에 도
달한다.
moveRight(50);
moveRight(50);
moveUp(50);
moveUp(50);
40. - 35 -
- 4/12단계: 세 방향의 블록 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 1번 , [위쪽] 1번 이동 후 [오른쪽] 1번 이동 후 [아래
쪽] 1번 이동
Ÿ 3개의 서로 다른 방향 블록을 이용하여 목표 지점으로 도달하
기 위한 블록 알고리즘을 만들어낸다.
moveRight(50);
moveUp(50);
moveRight(50);
moveDown(50);
- 5/12단계: 한 방향의 블록 사용하기(꽃의 줄기 그리기)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [위쪽] 2번 사용
Ÿ 블록 알고리즘(순차문)을 이용하여 꽃의 줄기를 그려보도록 한
다.
Ÿ 단순히 선이 아니라 그림이 될 수 있음을 이해한다.
moveUp(50);
moveUp(50);
41. - 36 -
- 6/12단계: 한 방향의 블록과 점프 이동 블록 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 2번 이동 후, [점프 오른쪽] 1번 이동 후 다시 [오른쪽]
2번 이동
Ÿ 점프 이동 블록을 포함한 순차문을 만들도록 한다.
moveRight(50);
moveRight(50);
jumpRight(50);
moveRight(50);
moveRight(50);
- 7/12단계: 한 방향의 블록과 점프 이동 블록 사용하기(여러 번 사용)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 1번 [점프 오른쪽] 1번 이동 후 다시 [오른쪽] 1번 ,[점
프 오른쪽] 1번 이동 후 다시 [오른쪽] 이동 후 다시 [점프 오른
쪽] 이동 후 [오른쪽] 1번 이동
Ÿ 여러 개의 점프 이동 블록과 거리 이동 블록을 이용하여 적절
한 순차문을 만들어낸다.
moveRight(50);
jumpRight(50);
moveRight(50);
jumpRight(50);
moveRight(50);
jumpRight(50);
moveRight(50);
42. - 37 -
- 8/12단계: 두 방향의 거리 이동 블록과 두 방향의 점프 이동 블록 사
용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 1번, [점프 오른쪽] 1번 이동 후 [오른쪽] 1번, [점프 오
른쪽] 1번 이동 후 [위쪽] 1번, [점프 위쪽] 1번 이동 후 [위쪽]
이동
Ÿ 서로 다른 방향의 거리 이동 블록과 점프 이동 블록을 이용하
여 순차문을 만들어낸다.
moveRight(50);
jumpRight(50);
moveRight(50);
jumpRight(50);
moveUp(50);
jumpUp(50);
moveUp(50);
- 9/12단계: 두 방향의 블록 사용하기(평가)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 2번 이동 후 [위쪽] 1번 이동
Ÿ 서로 다른 방향의 거리 이동 블록을 이용하여 적절한 순차문을
만들어 낼 수 있는지 평가한다.
moveRight(50);
moveRight(50);
moveUp(50);
43. - 38 -
- 10/12단계: 한 방향의 블록과 점프 이동 블록 사용하기(평가)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [왼쪽] 1번, [점프 왼쪽] 1번 이동 후 [왼쪽] 1번, [점프 왼쪽] 1
번 이동 후 [왼쪽] 1번 이동
Ÿ 점프 이동 블록과 거리 이동 블록을 적절히 사용한 순차문을
만들어 낼 수 있는지 평가한다.
moveLeft(50);
jumpLeft(50);
moveLeft(50);
jumpLeft(50);
moveLeft(50);
- 11/12단계: 두 방향의 블록 사용하기(평가)
보기 화면 문제와 선택지 답
분석
Ÿ [오른쪽] 1번 이동 후 [아래쪽] 2번 이동
Ÿ 보기 화면에 맞는 알고리즘을 구성해보거나 선택지의 알고리즘을 머릿속으로 그려보아 적절한 답
을 선택한다.
Ÿ 서로 다른 방향의 거리 이동 블록을 적절히 사용한 순차문을 만들어 낼 수 있는지 평가한다.
44. - 39 -
- 12/12단계: 네 방향의 블록 사용하기(평가)
보기 화면 문제와 선택지 답
분석
Ÿ [위쪽] 1번, [오른쪽] 1번 이동 후 [아래쪽] 1번, [왼쪽] 1번 이동
Ÿ 전 단계와 마찬가지로 보기 화면에 맞는 알고리즘을 구성해보거나 선택지의 알고리즘을 머릿속으
로 그려보아 적절한 답을 선택한다.
Ÿ 여러 개의 서로 다른 방향의 거리 이동 블록을 적절히 사용한 순차문을 만들어 낼 수 있는지 평
가한다.
45. - 40 -
9. 스테이지9: 건물 기초 만들기
◦ 개요: 새롭고 풀리지 않은 문제를 풀기 위해서는 실패가 따르고 실패
는 끝이 아니라 성공하기 위한 힌트가 된다는 것을 인지시킨다.
◦ 학습목표
- 구조적인 공학 문제를 해결하기 위한 단계들의 윤곽을 그린다.
- 구조 만들기에서의 잠재적인 문제들에 대해서 예측하고 논의한다.
- 팀의 계획에 기초하여 구조를 만든다.
- 문제를 해결할 때까지 계획과 구조를 수정한다.
◦ 활동
- 1/2단계: 실패로부터 힌트 얻기
주요 화면 1 주요 화면 2 설명
Ÿ 제공된 물건들을 사용하여 종이컵의 높
이 보다 높고 책의 무게를 10초 동안
견뎌낼 수 있는 타워를 세운다.
Ÿ 타워를 만들어 보는 동안 학생들이 실
패를 경험할 때 그 실패를 바탕으로 인
내심을 가지고 수정하도록 지도한다.
주요 개념
인내심: 어떤 것이 매우 어렵더라도 계속 다시 시도하는 것
46. - 41 -
- 2/2단계: 예술가 알고리즘을 만들며 실패에서 힌트 얻기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [위쪽] 1번, [오른쪽] 1번, [위쪽] 1번, [오른쪽] 1번, [위쪽] 1번,
[오른쪽] 1번 이동 후 [아래쪽] 1번, [오른쪽] 1번, [아래쪽] 1번
이동 후 [오른쪽] 1번, [아래쪽] 1번 이동
Ÿ 문제를 해결하기 위하여 블록 알고리즘을 만드는 중에 실패를
경험하게 되고 그 실패에서 힌트를 얻어 문제를 해결하게 된다.
moveUp(50);
moveRight(50);
moveUp(50);
moveRight(50);
moveUp(50);
moveRight(50);
moveDown(50);
moveRight(50);
moveDown(50);
moveRight(50);
moveDown(50);
47. - 42 -
10. 스테이지10: 예술가(모양)
◦ 활동
- 1/10단계: 네 방향의 이동 블록을 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 2번, [아래쪽]2번 이동 후 [왼쪽] 2번 , [위쪽] 2번 이동
Ÿ 여러 방향의 거리 이동 블록을 이용하여 순차문을 만들어 삼각
형 아래에 정사각형을 만든다.
Ÿ 이 단계는 아래쪽 거리 이동 블록을 먼저 사용해도 답이 될 수
있다. 따라서 같은 단계더라도 여러 해결책이 있음을 인지시킬
수 있다.
moveRight(50);
moveRight(50);
moveDown(50);
moveDown(50);
moveLeft(50);
moveLeft(50);
moveUp(50);
moveUp(50);
- 2/10단계: 점프 이동 블록과 네 방향의 이동 블록 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [점프 왼쪽] 1번, [왼쪽] 2번, [아래쪽] 2번, [오른쪽] 2번 이동
후 [위쪽] 2번 이동
Ÿ 점프 이동 블록을 포함한 순차문을 통하여 정사각형을 만든다.
jumpLeft(50);
moveLeft(50);
moveLeft(50);
moveDown(50);
moveDown(50);
moveRight(50);
moveRight(50);
moveUp(50);
moveUp(50);
48. - 43 -
- 3/10단계: 네 방향의 이동 블록 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 2번, [위쪽] 2번 이동 후 [왼쪽] 2번 이동 후 [아래쪽] 2
번 이동
Ÿ 거리 이동 블록을 이용한 알고리즘을 통하여 하나의 정사각형
위에 다른 정사각형을 만든다.
moveRight(50);
moveRight(50);
moveUp(50);
moveUp(50);
moveLeft(50);
moveLeft(50);
moveDown(50);
moveDown(50);
- 4/10단계: 네 방향의 이동블록 사용하여 직사각형 그리기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 2번, [위쪽] 1번, [왼쪽] 2번 이동 후 [아래쪽] 1번 이동
Ÿ 서로 다른 방향의 거리 이동 블록을 통한 순차문을 통하여 다
리를 완성하기 위한 직사각형을 만든다.
moveRight(50);
moveRight(50);
moveUp(50);
moveLeft(50);
moveLeft(50);
moveDown(50);
49. - 44 -
- 5/10단계: 네 방향의 이동 블록 사용하여 직사각형 그리기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [위쪽] 2번, [왼쪽] 1번 이동 후 [아래쪽] 2번 이동 후 [오른쪽] 1
번 이동
Ÿ 서로 다른 거리 이동 블록을 적절히 구성하여 직사각형의 다리
기둥을 만든다.
moveUp(50);
moveUp(50);
moveLeft(50);
moveDown(50);
moveDown(50);
moveRight(50);
- 6/10단계: 네 방향의 이동 블록을 사용하여 정사각형 두 개를 그리기
(한 곳 두 번 지나가도 되는 것 이해하기)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 2번, [아래쪽] 1번 이동 후 [왼쪽] 1번, [위쪽] 1번, [아
래쪽] 1번, [왼쪽] 1번 이동 후 [위쪽] 1번 이동
Ÿ 여러 개의 거리 이동 블록을 이용하여 적절한 순차문을 만들어
두 개의 정사각형으로 구성된 직사각형을 만든다.
moveRight(50);
moveRight(50);
moveDown(50);
moveLeft(50);
moveUp(50);
moveDown(50);
moveLeft(50);
moveUp(50);
50. - 45 -
- 7/10단계: 네 방향의 이동 블록 사용하여 조금 더 긴 직사각형 그리기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 3번, [아래쪽] 1번 이동 후 [왼쪽] 3번, [위쪽] 1번 이동
Ÿ 서로 다른 방향의 거리 이동 블록을 사용하여 순차문을 만들어
직사각형 모양의 맨 위 서랍을 만든다.
moveRight(50);
moveRight(50);
moveRight(50);
moveDown(50);
moveLeft(50);
moveLeft(50);
moveLeft(50);
moveUp(50);
- 8/10단계: 네 방향의 이동블록과 점프 이동 블록 사용하기(평가)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [점프 오른쪽] 1번, [오른쪽] 1번, [위쪽] 1번 이동 후 [왼쪽] 1번
, [아래쪽] 1번 이동
Ÿ 점프 이동 블록과 거리 이동 블록을 사용한 적절한 순차문을
통하여 정사각형 옆에 다른 정사각형을 만들 수 있는지를 평가
한다.
jumpRight(50);
moveRight(50);
moveUp(50);
moveLeft(50);
moveDown(50);
- 9/10단계: 동일한 형태 맞추기(평가)
51. - 46 -
문제와 선택지 답
분석
Ÿ 짝 맞추기 활동을 이용하여 모양에 따른 알고리즘에 대하여 이해하도록 한다.
Ÿ 같은 형태는 같은 알고리즘을 가짐을 이해한다.
- 10/10단계: 자유롭게 그리기(거리 이동 블록과 점프 이동 블록과 색
설정 블록 사용 가능)
사용할 수 있는 블록
분석
Ÿ 앞 단계에서 배운 내용을 사용하여 자신의 맘대로 그림을 그리도록 하여 프로그램에 흥미를 느
끼도록 하는 동시에 알고리즘에 대한 이해 또한 돕는다.
Ÿ 자신만의 알고리즘을 만들도록 하여 앞으로 더 나아가 프로그램을 만드는 데에 도움을 준다.
11. 말하는 꿀벌
52. - 47 -
◦ 동영상
주요 화면 1 설명
Ÿ 말하는 꿀벌 레벨에 대하여 설명한다.
Ÿ 벌을 움직이게 하기 위하여 퍼즐 조각을 이용하라고 말한다.
Ÿ 움직이면서 글자를 모아서 퍼즐 아래에 있는 단어를 만든다고
설명한다.
주요 화면 2 설명
Ÿ 벌이 움직이면서 글자를 모아서 퍼즐 아래에 있는 단어를 만든
다고 설명한다.
Ÿ 틀린 길로 갈 경우 원하지 않은 단어를 만들게 될 수 있다고
설명한다.
◦ 활동
- 1/12단계: 오른쪽으로 이동시키기(한 방향)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 4번 이동
Ÿ 오른쪽으로 이동하는 거리 이동 블록을 사용하여 알고리즘을
만들어 목표로 한 단어를 만든다.
moveEast();
moveEast();
moveEast();
moveEast();
53. - 48 -
- 2/12단계: 아래쪽으로 이동시키기(한 방향)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [아래쪽] 5번 이동
Ÿ 아래쪽으로 이동하는 거리 이동 블록을 사용하여 알고리즘을
만들어 목표로 한 단어를 만든다.
moveSouth();
moveSouth();
moveSouth();
moveSouth();
moveSouth();
- 3/12단계: 왼쪽으로 이동시키기(한 방향)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [왼쪽] 4번 이동
Ÿ 왼쪽으로 이동하는 거리 이동 블록을 사용하여 알고리즘을 만
들어 문제를 해결한다.
moveWest();
moveWest();
moveWest();
moveWest();
54. - 49 -
- 4/12단계: 위쪽으로 이동시키기 (한 방향)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [위쪽] 5번 이동
Ÿ 위쪽으로 이동하는 거리 이동 블록을 사용하여 알고리즘을 만
들어 단어를 만든다.
moveNorth();
moveNorth();
moveNorth();
moveNorth();
moveNorth();
- 5/12단계: 오른쪽으로 이동한 후에 아래쪽으로 이동하기(두 방향)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 3번 이동 후 [아래쪽] 1번 이동
Ÿ 전 단계보다 발전해 오른쪽으로 이동했다가 아래쪽으로 이동하
는 알고리즘을 만들어 문제를 해결한다.
moveEast();
moveEast();
moveEast();
moveSouth();
55. - 50 -
- 6/12단계: 두 방향 이동시키기(방향이 주어지지 않음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 2번, [위쪽] 1번 이동 후 [오른쪽] 1번 이동
Ÿ 전 단계와 다르게 팝업창에서 이동 방향에 대한 정보가 주어지
지 않는다.
Ÿ 주어진 단어를 만들기 위해 이동할 방향을 머릿속으로 그려내
어 알고리즘을 완성한다.
moveEast();
moveEast();
moveNorth();
moveEast();
- 7/12단계: 두 방향 이동시키기(방향이 주어지지 않음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 2번, [아래쪽] 2번 이동 후 [오른쪽] 1번 이동
Ÿ 전 단계와 마찬가지로 방향에 대한 정보가 주어지지 않았다.
Ÿ 단어를 만들기 위하여 적절한 거리 이동 블록을 사용하여 알고
리즘을 만든다.
moveEast();
moveEast();
moveSouth();
moveSouth();
moveEast();
56. - 51 -
- 8/12단계: 두 방향 이동시키기(방향이 주어지지 않음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [아래쪽] 2번, [오른쪽] 1번 이동 후 [아래쪽] 1번, [오른쪽] 1번
이동
Ÿ 마찬가지로 방향이 주어지지 않았기 때문에 단어를 만들기 위
해 이동해야할 방향을 생각하여 블록 알고리즘을 완성한다.
moveSouth();
moveSouth();
moveEast();
moveSouth();
moveEast();
- 9/12단계: 두 방향 이동시키기(방향이 주어지지 않음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 1번, [위쪽] 1번, [오른쪽] 1번 이동 후 [위쪽] 2번 이동
Ÿ 마찬가지로 방향이 주어지지 않을 때 문제를 해결하기 위한 알
고리즘을 만들 수 있도록 연습시킨다.
moveEast();
moveNorth();
moveEast();
moveNorth();
moveNorth();
57. - 52 -
- 10/12단계: 두 방향 이동시키기(방향주어지지 않음)-평가
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 2번, [아래쪽] 3번 이동
Ÿ 이동 방향이 주어지지 않았을 때 주어진 단어를 완성시키기 위
하여 이동해야 할 적절한 방향을 설정할 수 있는지 평가한다.
moveEast();
moveEast();
moveSouth();
moveSouth();
moveSouth();
- 11/12단계: 두 방향으로 이동시키기(평가)
보기 화면 문제와 선택지 답
분석
Ÿ ‘MOVE’라는 단어를 완성할 수 있는 적절한 알고리즘을 고르는 문제이다.
Ÿ 이동 방향이 주어지지 않았기 때문에 어떤 방향으로 이동해야 적절한 알고리즘을 구성할 수 있는
지 아는지를 평가한다.
Ÿ 학생들은 머릿속으로 꿀벌이 이동해야하는 방향을 그려보아 문제를 해결한다.
58. - 53 -
- 12/12단계: 알고리즘 파악하여 단어 찾기(평가)
보기 화면 문제와 선택지 답
분석
Ÿ 주어진 알고리즘을 통하여 완성될 단어를 찾는 문항이다.
Ÿ 블록 알고리즘을 통하여 이동했을 때 이동할 방향을 예상할 수 있는지를 평가한다.
Ÿ 학생들은 블록 알고리즘대로 순차적으로 꿀벌을 이동시켜 문제를 해결한다.
59. - 54 -
12. 스테이지12: 반복적으로 하기
◦ 개요: 여러 번의 행동을 하나의 루프로 바꾸는 연습을 한다.
◦ 학습목표
- 강사에 의해 접한 행동들을 반복한다.
- 사진으로 된 프로그램을 실제 행동으로 옮긴다.
- 여러 번의 행동을 하나의 루프로 바꾼다.
◦ 활동
- 1/2단계: 춤에서 반복되는 동작 파악하고 효율성 인지하기
주요 화면 1 주요 화면 2 설명
Ÿ 일정한 반복패턴을 가진 춤이 그려진
종이를 나눠준다.
Ÿ 그 춤을 보여주고 따라하게 하며 무엇
이 반복되는지 파악하도록 지도한다.
Ÿ 학생들은 루프를 파악했을 때 더 효율
적으로 춤을 출 수 있음을 인지하게 된
다.
주요 개념
루프: 어떤 것을 계속 반복하는 행동
- 2/2단계: 루프 사용하기(평가)
보기 화면 문제와 선택지 답
분석
Ÿ 반복되는 블록을 파악하여 반복구조를 만들 수 있는지를 평가한다.
Ÿ 반복되는 행동을 하나의 루프로 바꿀 수 있음을 이해한다.
Ÿ [위쪽]으로 3번 이동하고 [꽃꿀얻기] 가 4번 반복되므로 이를 파악하여 문제를 해결한다.
60. - 55 -
13. 스테이지13: 미로 퍼즐(반복)
◦ 활동
- 1/14단계: 순차문 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 5번 이동
Ÿ 루프를 사용하기 전에 일정한 행동이 반복되고 있는 순차문을
이해한다.
moveEast();
moveEast();
moveEast();
moveEast();
moveEast();
- 2/14단계: 루프 사용하기(툴 박스에 미리 반복될 횟수 지정됨)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [5번 반복] 1번, [오른쪽] 1번 사용
Ÿ 반복 횟수가 미리 지정되어 있어 이동해야할 방향을 파악
하여 지정하면 문제가 해결된다.
for (var count = 0; count < 5; count++) {
moveEast();
}
61. - 56 -
- 3/14단계: 루프 사용하기(반복 횟수 지정되지 않음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [3번 반복] 1번, [위쪽] 1번 사용
Ÿ 반복될 횟수가 지정되지 않아 몇 번 반복되어야 정확한
알고리즘이 만들어지는지 또한 파악하여야 한다.
for (var count = 0; count < 3; count++) {
moveNorth();
}
- 4/14단계: 두 개의 루프 사용하기(반복 횟수 작업 영역에 미리 지정)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [3번 반복] 1번, [아래쪽] 1번, [4번 반복] 1번, [오른쪽]
1번 사용
Ÿ 루프를 2개 사용하는 것을 연습한다.
Ÿ 반복 횟수가 지정되어 있기 때문에 정확한 방향을 파
악하여 알고리즘을 완성한다.
for (var count = 0; count < 3; count++) {
moveSouth();
}
for (var count2 = 0; count2 < 4; count2++) {
moveEast();
}
62. - 57 -
- 5/14단계: 한 개의 거리 이동 블록과 두 개의 루프 함께 사용하기(반
복 횟수 지정 되지 않음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [왼쪽] 2번 , [3번 반복] 1번, [위쪽] 1번, [3번 반복] 1
번 사용
Ÿ 하나의 거리 이동 블록과 두 개의 루프를 사용한 알
고리즘이다.
Ÿ 반복 횟수와 이동 방향을 결정하여 알고리즘을 완성
한다.
moveWest();
for (var count = 0; count < 3; count++) {
moveNorth();
}
for (var count2 = 0; count2 < 3; count2++) {
moveWest();
}
- 6/14단계: 세 개의 루프 사용하기(반복 횟수 지정 되지 않음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [4번 반복] 2번, [아래쪽] 1번, [3번 반복] 1번, [오른쪽]
1번 사용
Ÿ 3개의 루프를 사용하는 것을 연습한다.
Ÿ 이동 방향과 반복 횟수를 결정하여 알고리즘을 완성
한다.
for (var count = 0; count < 4; count++) {
moveSouth();
}
for (var count2 = 0; count2 < 3; count2++) {
moveEast();
}
for (var count3 = 0; count3 < 4; count3++) {
moveNorth();
}
63. - 58 -
- 7/14단계: 2개의 거리 이동 블록과 2개의 루프 사용하기(반복 횟수 지
정 되지 않음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [2번 반복] 1번, [5번 반복] 1번, [오른쪽] 1번, [왼쪽] 1
번, [위쪽] 1번, [아래쪽] 1번 사용
Ÿ 서로 다른 방향의 두 개의 거리 이동 블록과 루프 두
개를 사용한다.
Ÿ 이동방향과 반복 횟수를 결정하고 루프와 두 개의 거
리 이동 블록의 순차적인 이동을 고려하여 알고리즘
을 완성한다.
moveEast();
for (var count = 0; count < 2; count++) {
moveNorth();
}
for (var count2 = 0; count2 < 5; count2++) {
moveWest();
}
moveSouth();
- 8/14단계: 하나의 루프 안에 두 개의 거리 이동 블록 포함시키기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [3번 반복] 1번, [오른쪽] 1번, [위쪽] 1번 사용
Ÿ 하나의 루프 안에 두 개의 거리 이동 블록을 포함시킨
구조를 연습한다.
Ÿ 반복 횟수와 반복될 거리 이동을 파악하여 알고리즘을
완성한다.
for (var count = 0; count < 3; count++) {
moveEast();
moveNorth();
}
64. - 59 -
- 9/14단계: 하나의 루프 안에 두 개의 거리 이동 블록 포함시키기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [3번 반복] 1번, [위쪽] 1번, [오른쪽] 1번 사용
Ÿ 전 단계와 마찬가지로 하나의 루프 안에 두 개의 서로
다른 방향의 거리 이동 블록이 포함되어 있다.
Ÿ 반복 횟수와 반복될 거리 이동을 파악하여 알고리즘을
완성한다.
for (var count = 0; count < 3; count++) {
moveNorth();
moveEast();
}
- 10/14단계: 하나의 블록 안에 두 개의 거리 이동 블록 포함시키기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [5번 반복] 1번, [오른쪽] 1번, [아래쪽] 1번 사용
Ÿ 전 단계와 마찬가지로 하나의 루프 안에 두 개의 거리
이동 블록이 포함된 구조이다.
Ÿ 마찬가지로 반복 횟수와 반복될 거리 이동을 파악하여
문제를 해결한다.
for (var count = 0; count < 5; count++) {
moveEast();
moveSouth();
}
65. - 60 -
- 11/14단계: 하나의 거리 이동 블록과 루프 함께 사용하기(반복 횟수
지정 되지 않음)(평가)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [위쪽] 1번, [5번 반복] 1번, [왼쪽] 1번 사용
Ÿ 거리 이동 블록과 하나의 루프를 사용한 반복구조
를 만들 수 있는지 평가한다.
Ÿ 반복될 횟수가 정해지지 않아 반복 횟수를 결정하
고 거리 이동블록과의 순차적 관계를 이해하여 알
고리즘을 완성한다.
moveNorth();
for (var count = 0; count < 5; count++) {
moveWest();
}
- 12/14단계: 두 개의 루프 사용하기(반복 횟수 지정 되지 않음)(평가)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [3번 반복] 1번, [4번 반복] 1번, [오른쪽] 1번,
[아래쪽] 1번 사용
Ÿ 두 개의 루프로 이루어진 반복구조를 만들 수
있는지 평가한다.
Ÿ 반복 횟수를 결정하고 거리 이동 블록의 방향
을 정하여 알고리즘을 완성한다.
for (var count = 0; count < 3; count++) {
moveEast();
}
for (var count2 = 0; count2 < 4; count2++) {
moveSouth();
}
66. - 61 -
- 13/14단계: 순차문을 하나의 루프로 만들기(평가)
보기 화면 문제와 선택지 답
분석
Ÿ 여러 번 반복되는 알고리즘을 보고 루프를 만들 수 있는지 확인하는 문항이다.
Ÿ [위쪽]으로 3번 이동하는 것을 파악하여 하나의 루프로 만든다.
- 14/14단계: 순차문을 두 개의 블록이 포함된 하나의 루프로 만들기(평
가)
보기 화면 문제와 선택지 답
분석
Ÿ 여러 번 반복되는 알고리즘을 보고 루프를 만들 수 있는지 확인하는 문항이다.
Ÿ [아래쪽] 1번, [오른쪽] 1번이 3번 반복되는 것을 파악하여 하나의 루프를 만든다.
67. - 62 -
14. 스테이지14: 꿀벌(반복)
◦ 활동
- 1/13단계: 순차문 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 5번, [꽃꿀 얻기] 1번, [꿀 만들기] 1번, [위쪽] 1번 사
용
Ÿ 루프를 사용을 연습하기 전에 꿀을 만들기 위한 순차문을 이해
시킨다.
moveEast();
moveEast();
moveEast();
moveEast();
moveEast();
getNectar();
moveNorth();
makeHoney();
◦ 동영상
주요 화면 1 설명
Ÿ 벌집에서 꿀을 얻을 때 같은 활동을 반복한다는 것을 설명한
다.
주요 화면 2 설명
Ÿ 이번 스테이지에서는 꽃꿀을 얻거나 꿀을 만들 때 루프를 사용
하여 만들어서 해결해야한다고 설명한다.
68. - 63 -
- 2/13단계: 루프를 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [5번 반복] 1번, [오른쪽] 1번, [꽃꿀 얻기] 1번, [꿀
만들기] 1번, [위쪽] 1번
Ÿ 루프를 사용하여 꿀벌을 이동시킨다.
for (var count = 0; count < 5; count++) {
moveEast();
}
getNectar();
moveNorth();
makeHoney();
- 3/13단계: 세 개의 루프를 사용하기(루프 안에 다양한 블록 사용)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [2번 반복] 1번, [3번 반복] 2번, [왼쪽] 2번, [꽃꿀
얻기] 1번, [꿀 만들기] 1번 사용
Ÿ 거리 이동 블록이 포함된 루프와 꽃꿀 얻기 블록
이 포함된 루프와 꿀 만들기 블록이 포함된 루프
를 통하여 알고리즘을 완성한다.
for (var count = 0; count < 2; count++) {
moveWest();
}
for (var count2 = 0; count2 < 3; count2++) {
getNectar();
}
moveWest();
for (var count3 = 0; count3 < 3; count3++) {
makeHoney();
}
69. - 64 -
- 4/13단계: 3개의 루프 사용하기(루프 안에 두 개의 블록 사용)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [3번 반복] 3번, [왼쪽] 1번, [아래쪽] 1번, [오른
쪽] 1번, [꽃꿀 얻기] 1번, [꿀 만들기] 1번 사용
Ÿ 전 단계에서 발전하여 하나의 루프안에 두 개의
블록을 포함시킨다.
for (var count = 0; count < 3; count++) {
moveWest();
}
for (var count2 = 0; count2 < 3; count2++) {
moveSouth();
getNectar();
}
moveEast();
for (var count3 = 0; count3 < 3; count3++) {
makeHoney();
}
- 5/13단계: 2개의 루프 사용하기(루프 안에 세 개의 블록 사용)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [2번 반복] 1번, [4번 반복] 1번, [오른쪽] 2번, [꽃
꿀 얻기] 2번, [꿀 만들기] 1번 사용
Ÿ 하나의 루프 안에 3개의 블록을 포함시킨다. 이
경우 꽃꿀 얻기 블록이 루프 안에서 반복 사용되
므로 이를 루프로 바꿀 수도 있다.
for (var count = 0; count < 2; count++) {
moveEast();
getNectar();
getNectar();
}
moveEast();
for (var count2 = 0; count2 < 4; count2++) {
makeHoney();
}
70. - 65 -
- 6/13단계: 루프 안에 4개의 블록 사용
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [2번 반복] 1번, [오른쪽] 2번, [꽃꿀 얻기] 1번, [꿀
만들기] 1번 사용
Ÿ 하나의 루프 안에 4개의 블록이 포함되어 있다. 반
복되는 블록이 무엇인지 적절히 파악하여 알고리즘
을 만든다.
for (var count = 0; count < 2; count++) {
moveEast();
getNectar();
moveEast();
makeHoney();
}
- 7/13단계: 두 개의 루프 사용하고 하나의 루프 안에 4개의 블록 사용
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [3번 반복] 2번, [2번 반복] 1번, [왼쪽] 1번, [아
래쪽] 1번, [꽃꿀 얻기] 1번, [꿀 만들기] 1번 사
용
Ÿ 하나의 루프 안에 4개의 블록이 포함되어있는
알고리즘이다. 루프와 순차문을 적절히 이해하여
해결해야 한다. 이 단계 또한 반복되는 구간을
잘 파악하여 문제를 해결한다.
for (var count = 0; count < 3; count++) {
moveWest();
moveWest();
getNectar();
moveSouth();
}
moveSouth();
for (var count2 = 0; count2 < 3; count2++) {
makeHoney();
}
71. - 66 -
- 8/13단계: 3개의 루프 사용하고 하나의 루프 안에 4개의 블록 사용
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [2번 반복] 2번, [4번 반복] 1번, [6번 반복] 1
번, [아래쪽] 1번, [오른쪽] 2번, [꽃꿀 얻기] 2
번, [꿀 만들기] 1번 사용
Ÿ 전 단계보다 복잡한 반복구조이다. 반복되는
횟수를 다양하게 설정해 놓았기 때문에 반복
횟수를 잘 파악하여 입력하여야 한다. 또 반복
되는 구간을 적절히 파악하여 문제를 해결한
다.
for (var count = 0; count < 2; count++) {
moveSouth();
moveSouth();
getNectar();
moveEast();
}
for (var count2 = 0; count2 < 4; count2++) {
getNectar();
}
moveEast();
for (var count3 = 0; count3 < 6; count3++) {
makeHoney();
}
- 9/13단계: 2개의 루프 사용하고 각각의 루프 안에 2개의 블록 사용(이
동 가능 범위 확장)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [5번 반복] 2번, [왼쪽] 1번, [꽃꿀 얻기] 1번, [위
쪽] 1번, [꿀 만들기] 1번 사용
Ÿ 꿀벌이 이동할 수 있는 공간을 넓혀 주었다. 이
중 가장 효율적인 이동 방법을 생각하려는 노력
을 하게 된다.
Ÿ 반복되는 블록을 적절히 파악하여 알고리즘을 만
든다.
for (var count = 0; count < 5; count++) {
moveWest();
getNectar();
}
for (var count2 = 0; count2 < 5; count2++) {
moveNorth();
makeHoney();
}
72. - 67 -
- 10/13단계: 4개의 루프 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [2번 반복] 2번, [10번 반복] 2번, [위쪽] 2번,
[꽃꿀 얻기] 1번, [꿀 만들기] 1번 사용
Ÿ 숫자가 클 경우에 루프를 만드는 것이 효율
적임을 이해하게 된다.
Ÿ 반복되는 블록을 적절히 파악하여 문제를 해
결한다.
moveNorth();
for (var count = 0; count < 10; count++) {
getNectar();
}
moveNorth();
for (var count2 = 0; count2 < 10; count2++) {
getNectar();
}
moveNorth();
for (var count3 = 0; count3 < 10; count3++) {
makeHoney();
}
moveNorth();
for (var count4 = 0; count4 < 10; count4++) {
makeHoney();
}
- 11/13단계: 하나의 루프 안에 4개의 블록 포함하기(평가)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [3번 반복] 1번, [위쪽] 2번, [꽃꿀 얻기] 1번, [꿀
만들기] 1번 사용
Ÿ 반복되는 구간을 적절히 파악하여 루프를 만들어
낼 수 있는지 평가한다.
for (var count = 0; count < 3; count++) {
moveNorth();
getNectar();
moveNorth();
makeHoney();
}
73. - 68 -
- 12/13단계: 두 개의 루프 사용하고 하나의 루프 안에 세 개의 블록 사
용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [3번 반복] 2번, [아래쪽] 2번, [왼쪽] 1번, [꽃꿀 얻
기] 1번, [꿀 만들기] 1번 사용
Ÿ 반복되는 구간을 잘 파악하여 두 개의 루프를 이
용한 반복구조를 만들 수 있는지 평가한다.
for (var count = 0; count < 3; count++) {
moveSouth();
moveWest();
getNectar();
}
moveSouth();
for (var count2 = 0; count2 < 3; count2++) {
makeHoney();
}
- 13/13단계: 루프와 순차문 짝 맞추기(평가)
문제와 선택지 답
분석
Ÿ 순차문과 루프의 짝을 맞출 수 있는지 평가하는 문항이다.
Ÿ 학생들은 하나의 루프를 풀어 순차문을 만들어 선택지를 고르거나 순차문을 루프로 묶어서 답을 찾
을 수 있다.
74. - 69 -
15. 스테이지15: 빅 이벤트
◦ 개요: 프로그램의 다양하게 만들어주는 “이벤트”의 개념을 이해시킨
다.
◦ 학습 목표
- 학생들은 강사가 요구하는 것을 반복한다.
- 요구를 시행하기 위하여 강사의 행동을 신호로 인식한다.
- 미리 계획된 행동과 이벤트 기반의 행동을 구별할 수 있도록 한다.
◦ 활동
- 1/2단계: 버튼을 눌러 반응하게 하여 이벤트의 개념 이해시키기
주요 화면 1 주요 화면 2 설명
Ÿ 각 버튼마다 해야 하는 행동을 지정해
놓고 버튼을 누르면 아이들이 반응하도
록 한다.
Ÿ 연속적으로 다른 버튼을 누르며 반응
하도록 하고 ‘숫자 10까지 세기’ 등
과 같이 미리 예정된 행동들을 하고 있
는 중에 버튼을 누르게 한다.
Ÿ 이 과정들을 통하여 ‘이벤트’의 개념
에 대하여 알게 되고, 미리 계획된 행동
과 이벤트 기반의 행동의 차이를 인식
하도록 한다.
주요 개념
이벤트: 어떤 것이 일어나도록 하는 행동
- 2/2단계: 블록에 따라 맞는 행동을 맞추어 이벤트 기반 행동 연습하
기
보기 화면 문제와 선택지 답
분석
Ÿ 버튼마다 다른 댄스를 지정해 놓아 이벤트를 통하여 프로그램을 다양하게 만들 수 있다는 것을 인식시킨
다.
Ÿ 연속적으로 다른 버튼을 눌러 이벤트 기반 행동을 연습시킨다.
75. - 70 -
16. 스테이지16: Play Lab(스토리 만들기)
◦ 동영상
주요 화면 1 설명
Ÿ play lab을 통하여 이야기를 만드는 방법을 설명한다.
Ÿ 이동하기 블록을 통하여 캐릭터를 마음대로 이동시킬 수 있고,
말하기 블록을 통하여 우리가 입력하는 모든 말을 하도록 만들
수 있다고 설명한다.
주요 화면 2 설명
Ÿ 화면 속의 블록을 이용하여 두 캐릭터를 연결시킬 수 있다고
설명한다.
Ÿ 이 블록에 다른 블록을 추가하여 두 캐릭터가 만날 때 다른 동
작들을 실행하도록 만들 수 있다고 설명한다.
◦ 활동
- 1/6단계: say 블록 사용하기
실행 전 블록 입력 전 분석
Ÿ 자신이 만든 알고리즘을 통하여
원하는 말을 하도록 시킬 수 있
음을 이해한다.
Ÿ 프로그래밍에 대한 이해를 돕는
다.
분석 블록 입력 후
76. - 71 -
- 2/6단계: 두 개의 블록 연결시키기
실행 전 블록 입력 전 분석
Ÿ 강아지 캐릭터 말하기 동작 블록
에 고양이 캐릭터 말하기 동작
블록을 연결하여 강아지가 말한
후 고양이가 말하도록 설정한다.
Ÿ 블록 알고리즘을 통하여 두 캐릭
터를 연결시킬 수 있음을 이해한
다.
분석 블록 입력 후
- 3/6단계: move 블록 사용하기
실행 전 블록 입력 전 분석
Ÿ 강아지 캐릭터를 고양이 캐릭터
쪽인 오른쪽으로 이동시킨다.
Ÿ 자신이 만든 알고리즘을 통하여
캐릭터를 원하는 방향으로 이동
시킬 수 있음을 이해한다.
분석 블록 입력 후
77. - 72 -
- 4/6단계: “~할 때”블록 사용하기
실행 전 블록 입력 전 분석
Ÿ 강아지 캐릭터를 이동시켜 고양
이 캐릭터와 만나게 될 때 고양
이 캐릭터가 말을 할 수 있도록
설정한다.
Ÿ 두 캐릭터가 만날 때 실행될 알
고리즘을 설정할 수 있다는 것을
이해한다.
분석 블록 입력 후
- 5/6단계: 표정 설정하기
실행 전 블록 입력 전 분석
Ÿ 문어가 행복한 표정을 나타내도
록 설정한다.
Ÿ 블록 알고리즘을 통하여 감정 변
화 또한 표현할 수 있음을 이해
한다.
실행 후 블록 입력 후
78. - 73 -
- 6/6단계: 자신만의 이야기 만들어보기(강아지와 고양이기 돌아다니면
서 말하도록 하기)
사용 가능 블록 분석
Ÿ 마지막 단계에서는 전 단계에서
볼 수 없었던 [스피드] 블록과
[보이게 하기] 블록과 [소리 설
정] 블록과 [삭제하기] 블록이 추
가 되었다.
Ÿ 여러 블록들을 사용하여 자신만
의 이야기를 만들어본다.
Ÿ 이 단계를 통하여 전 단계까지
배워왔던 알고리즘을 연습하며
자신만의 프로그램을 만들기 위
한 연습을 하게 된다.
79. - 74 -
17. 스테이지17: 안전하게 자리잡기
◦ 개요: 많은 웹 사이트들이 사적인 정보들을 요구하는데 이에 어떻게
대처해야 하기 위하여 따라야 하는 룰에 대해서 알게 한다.
◦ 학습 목표
- 온라인에서의 안전은 실제 삶에서의 안전과 유사하다는 것을 인지한
다.
- 방문해도 되는 사이트들을 인지하는 방법을 배운다.
- 사적인 정보들의 종류에 대해서 안다.
- 자신의 사적인 정보를 보호하기 위하여 효과적인 사용자명을 만드는
방법을 배운다.
◦ 활동
- 1/2단계: 공유하지 말아야 할 정보 인식하기
주요 화면 1 주요 화면 2 설명
Ÿ 아이들에게 주요화면 1,2와 같이 한 사
이트의 가입 페이지를 보여주고 수업을
시작한다.
Ÿ 학생들에게 사적인 정보에 대한 예를
들어보도록 하고 알려준 후 왜 정보를
사적으로 유지하는 것이 중요한지를 알
려준다.
Ÿ 그리고 다시 가입 페이지를 보여주어
자신의 사적인 정보를 담아야 하는지
물어본다.
Ÿ 그 후 실제로 사적인 정보를 담지 않은
사용자명을 만들도록 해본다.
주요 개념
사용자명: 웹 사이트에서 무엇을 보고, 무엇을 하기 위하여 구성하는 이름. 스크린 이름이라고도 함.
80. - 75 -
- 2/2단계: 공유하지 말아야 할 정보 인지하기(평가)
문제와 선택지 답
분석
Ÿ 온라인으로 공유하지 말아야 할 사적인 정보에 대해서 인지하게 한다.
Ÿ 나이, 생일 등의 사적인 정보에 대하여 정확하게 인지하고 안전한 사용자명을 만들 수 있도록 한다.
81. - 76 -
18. 스테이지18: 예술가(반복)
◦ 활동
- 1/10단계: 순차문 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 4번 사용
Ÿ 루프 사용을 연습하기 전에 순차문에 대하여 이해시킨다.
moveRight(50);
moveRight(50);
moveRight(50);
moveRight(50);
- 2/10단계: 루프를 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [4번 반복] 1번, [오른쪽] 1번 사용
Ÿ 전 단계에서의 [오른쪽] 4번 사용을 하나의 루프
를 통하여 표현한다.
Ÿ 반복될 횟수가 지정되어있다.
for (var count = 0; count < 4; count++) {
moveRight(50);
}
82. - 77 -
- 3/10단계: 루프 안에 점프 이동 블록 사용하기(반복 횟수 지정하기)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [6번 반복] 1번, [오른쪽] 1번, [왼쪽] 1번, [점프 아
래쪽] 1번 사용
Ÿ 미리 반복될 블록에 대한 힌트를 작업 영역에 보
여준 뒤 이를 몇 번 반복해야할지 횟수를 생각해
보게 하여 루프 사용을 연습하게 한다.
for (var count = 0; count < 6; count++) {
moveRight(50);
moveLeft(50);
jumpDown(50);
}
- 4/10단계: 루프 안에 네 개의 블록 사용하기(반복 횟수 지정하기)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [3번 반복] 1번, [오른쪽] 2번, [위쪽] 1번, [아래쪽] 1
번 사용
Ÿ 전 단계와 마찬가지로 미리 반복될 블록에 대한 힌
트를 작업영역에 준 뒤 몇 번 반복될 것인지 반복
횟수를 설정하도록 한다.
Ÿ 반복 횟수 설정에 대한 연습 과정이다.
for (var count = 0; count < 3; count++) {
moveRight(50);
moveUp(50);
moveRight(50);
moveDown(50);
}
83. - 78 -
- 5/10단계: 루프 안에 2개의 블록 사용하기(반복될 블록 넣기)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [4번 반복] 1번, [왼쪽] 1번, [아래쪽] 1번 사용
Ÿ 전 단계까지는 반복횟수를 연습하게 하였다면 이번
단계에서는 루프 안에 들어갈 블록이 무엇인지를 결
정하는 연습을 하게 된다.
Ÿ 4번이라는 횟수에 맞추어 반복될 블록을 결정한다.
for (var count = 0; count < 4; count++) {
moveLeft(50);
moveDown(50);
}
- 6/10단계: 두 개(올라가는 루프와 내려가는 루프)의 루프를 이용하여
그리기(반복될 블록 넣기)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [3번 반복] 2번, [오른쪽] 2번, [위쪽] 1번, [아래
쪽] 1번 사용
Ÿ 전 단계까지는 하나의 루프만을 이용했으나 이
단계는 올라가는 루프와 내려가는 루프 2개를 이
용하여 그리도록 한다.
Ÿ 반복되는 횟수가 주어져 있으므로 반복되는 블록
을 잘 파악하여 집어넣어 문제를 해결한다.
for (var count = 0; count < 3; count++) {
moveUp(50);
moveRight(50);
}
for (var count2 = 0; count2 < 3; count2++) {
moveRight(50);
moveDown(50);
}
84. - 79 -
- 7/10단계: 두 개의 루프를 이용하여 그리기(반복될 블록 지정하기, 점
프 이동 블록 사용)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [3번 반복] 2번, [오른쪽] 1번, [아래쪽] 1번, [점프
오른쪽] 1번, [점프 아래쪽] 1번 사용
Ÿ 전 단계와 달리 두 개의 루프 안에 각각 두 개의
블록이 들어가게 되고 점프 이동 블록 또한 추가
되었다.
Ÿ 반복횟수가 지정되어있으므로 캐릭터의 이동을 예
상하여 반복되는 블록이 무엇인지 잘 파악하여 해
결한다.
for (var count = 0; count < 3; count++) {
moveRight(50);
jumpRight(50);
}
for (var count2 = 0; count2 < 3; count2++) {
moveDown(50);
jumpDown(50);
}
- 8/10단계: 루프 안에 3개의 블록 사용하기(미리 블록 주어지지 않음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [3번 반복] 1번, [위쪽] 1번, [오른쪽] 2번 사용
Ÿ 5단계에서 나왔던 계단과는 달리 계단 한 칸의 길
이가 좀 더 길다.
Ÿ 이 단계에서는 반복 횟수를 지정하는 것과 거리
이동 블록을 지정하는 것을 동시에 연습하게 된다.
for (var count = 0; count < 3; count++) {
moveUp(50);
moveRight(50);
moveRight(50);
}
85. - 80 -
- 9/10단계: 루프 안에 두 개의 블록 사용하기(미리 블록 주어지지 않
음)(평가)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [4번 반복] 1번, [오른쪽] 1번, [아래쪽] 1번 사용
Ÿ 반복 횟수와 루프 안의 거리 이동 블록을 적절히
설정할 수 있는지를 평가한다.
for (var count = 0; count < 4; count++) {
moveRight(50);
moveDown(50);
}
- 10/10단계: 자유롭게 그리기
사용할 수 있는 블록
분석
Ÿ 전의 자유롭게 그리기와 달리 반복 블록이 추가되었다.
Ÿ 앞에 배운 루프를 사용하여 자신의 마음대로 그림을 그리도록 하여 프로그램에 흥미를 느끼도록 한
다.
Ÿ 자신만의 알고리즘을 만들도록 하여 앞으로 더 나아가 프로그램을 만드는 데에 도움을 준다.
86. - 81 -
II. 제2코스 Code.org 분석
1. 스테이지1: 모눈종이 프로그래밍
◦ 개요 : 모눈종이에 그림을 그리는 순서 프로그래밍을 통해 학생들이
프로그래밍의 기본적인 개념과 의미를 이해할 수 있다.
◦ 학습 목표
- 실제 문제를 프로그램으로 전환시키는 것의 어려움을 이해한다.
- 직관적으로는 명확해 보이지만 컴퓨터는 잘못 해석할 수 있음을 배
운다.
- 암호와 기호를 통해 개념들에 대한 의사소통 과정을 연습한다.
◦ 활동
- 1/3단계 : 언플러그드 활동(글로 표현된 명령을 기호로 표현해보기)
주요 화면 1 주요 화면 2 설명
Ÿ 4*4의 모눈종이에서 내가 작성한 알고
리즘을 보고 친구가 격자의 빈칸에 색
칠할 수 있도록 한다.
Ÿ 알고리즘의 각 명령을 화살표로 대치하
여 쉽게 색칠할 수 있도록 한다.
Ÿ 이 때, 화살표 기호가 알고리즘의 ‘암
호’이고, 각각의 명령들은 알고리즘 조
각들이다.
주요 개념
알고리즘 : 과제를 마치기 위해 따라야 하는 단계들의 모음
프로그램 : 기계에 의해 운영되기 위해 암호화된 알고리즘
87. - 82 -
- 2/3단계 : 모눈종이의 격자그림에 알맞은 기호 알고리즘 선택하기
보기 화면 문제와 선택지 답
분석
Ÿ 처음 빈칸 색칠, 오른쪽으로 두 칸 이동 후 색칠, 아래로 두 칸 이동 후 색칠, 왼쪽으로 두 칸 이
동 후 색칠
Ÿ 학생들이 명령들을 화살표로 대치한 것을 이해하고, 알고리즘과 프로그래밍의 개념을 알게 한다.
- 3/3단계 : 각 격자무늬에 알맞은 기호 알고리즘 맞추기
문제와 선택지 답
분석
Ÿ 각 격자무늬 이미지로부터 각각의 알고리즘을 작성해본 후 선택지와 맞춰보거나, 각 알고리즘 선
택지로부터 격자무늬를 색칠해본 후 맞춰보는 방법 중 선택하여 학생들이 알고리즘에 대한 이해
를 확장시키도록 한다.
88. - 83 -
2. 스테이지2: 실시간 알고리즘, 종이 비행기‘
◦ 개요 : 알고리즘의 개념을 종이 비행기 만들기와 같은 일상생활 속의
활동들과 연관시켜 일상생활 속의 상황을 알고리즘으로 전환시킬 수
있게 한다.
◦ 학습 목표
- 일상생활 속에서 일어나는 다양한 활동들을 명명한다.
- 큰 활동들을 일련의 작은 사건들로 분해한다.
- 순차적인 사건들을 논리적인 명령 구조로 배열한다.
◦ 활동
- 1/3단계 : 언플러그드 활동(생활 속의 알고리즘 작성하기)
주요 화면 1 주요 화면 2 설명
Ÿ 종이 비행기를 접는 과정을 설명서로
만들어 본다.
Ÿ 설명서의 각 지시들에 따라 종이 비행
기를 직접 만들어본다.
Ÿ 이 때, 종이 비행기를 만드는 과정의 각
지시들이 논리적으로 배열되어있음을
알게 한다.
주요 개념
89. - 84 -
- 2/3 단계 : 제시된 그림을 보고 알맞은 문장 알고리즘 선택하기
보기 화면 문제와 선택지 답
분석
Ÿ 사각형에서 시작, 사각형의 오른쪽에 삼각형 그리기, 사각형 아래에 평행사변형 그리기, 평행사변
형 오른쪽에 삼각형 그리기
Ÿ 선택지가 한글과 영어, 이어진 문장과 나열된 문장 등으로 다양하게 구성되었다.
Ÿ 학생들이 지시를 따라가며 순서대로 모양을 그릴 수 있도록 한다.
- 3/3 단계 : 제시된 문장 알고리즘을 보고 만들 수 없는 그림 선택하기
보기 화면 문제와 선택지 답
분석
Ÿ 각 선택지의 삼각형, 사각형의 크기와 모양에 관계없이 나타내는 도형의 이름만 추상화시킨다.
Ÿ 추상화된 각 도형의 위치를 비교해보며 알고리즘으로 전환시켜 본다.
90. - 85 -
3. 스테이지3: 미로퍼즐, 순차
◦ 동영상
주요 화면 1 설명
Ÿ 미로퍼즐의 기본적인 이해를 돕기 위해 설명한다.
Ÿ 캐릭터가 돼지를 향해 이동해가는 모습을 나타낸다.
주요 화면 2 설명
Ÿ 미로퍼즐 활동의 화면 구성에 대해 세 부분(실행화면, 도구
상자, 작업화면)으로 나누어 하나하나 설명한다.
◦ 활동
- 1/11단계 : 앞으로 두 번 이동하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [앞으로 이동] 2번 사용
Ÿ 방향 이동 블록(순차문)의 사용을 이해한다.
moveForward();
moveForward();
91. - 86 -
- 2/11단계 : 앞으로 세 번 이동하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [앞으로 이동] 3번 사용
Ÿ 방향 이동 블록(순차문)의 사용을 이해한다.
moveForward();
moveForward();
moveForward();
- 3/11단계 : 앞으로 이동과 오른쪽으로 회전하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [앞으로 이동] 3번 사용, [오른쪽으로 회전] 1번 사용
Ÿ 방향 이동 블록과 방향 회전 블록(순차문)의 사용을 이해한
다.
moveForward();
moveForward();
turnRight();
moveForward();
92. - 87 -
- 4/11단계 : 앞으로 이동과 왼쪽, 오른쪽으로 회전하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [앞으로 이동] 3번 사용, [왼쪽으로 회전] 1번 사용, [오른쪽
으로 회전] 1번 사용
Ÿ 방향 이동 블록과 방향 회전 블록(순차문)의 사용을 이해한
다.
moveForward();
turnLeft();
moveForward();
turnRight();
moveForward();
- 5/11단계 : 앞으로 이동과 오른쪽 한 번, 왼쪽 두 번 회전하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [앞으로 이동] 5번 사용, [오른쪽으로 회전] 1번 사용, [왼쪽
으로 회전] 2번 사용
Ÿ 방향 이동 블록과 방향 회전 블록(순차문)의 반복 사용을 이
해한다.
turnRight();
moveForward();
turnLeft();
moveForward();
moveForward();
moveForward();
turnLeft();
moveForward();
93. - 88 -
- 6/11단계 : 앞으로 이동과 세 번 회전하여 오른쪽으로 가기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [앞으로 이동] 8번 사용, [왼쪽으로 회전] 1번 사용, [오른쪽
으로 회전] 2번 사용
Ÿ 방향 이동 블록과 방향 회전 블록(순차문)의 반복 사용을 이
해한다.
moveForward();
moveForward();
turnLeft();
moveForward();
moveForward();
turnRight();
moveForward();
moveForward();
turnRight();
moveForward();
moveForward();
- 7/11단계 : 앞으로 이동과 두 번 회전하여 밑으로 가기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [앞으로 이동] 7번 사용, [오른쪽으로 회전] 1번 사용, [왼쪽
으로 회전] 1번 사용
Ÿ 방향 이동 블록과 방향 회전 블록(순차문)의 사용을 이해한
다.
moveForward();
moveForward();
turnRight();
moveForward();
moveForward();
moveForward();
turnLeft();
moveForward();
moveForward();
94. - 89 -
- 8/11단계 : 앞으로 이동과 세 번 회전하여 밑으로 가기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [앞으로 이동] 7번 사용, [오른쪽으로 회전] 2번 사용, [왼쪽
으로 회전] 1번 사용
Ÿ 방향 이동 블록과 방향 회전 블록(순차문)의 반복 사용을 이
해한다.
moveForward();
moveForward();
moveForward();
turnRight();
moveForward();
turnLeft();
moveForward();
moveForward();
turnRight();
moveForward();
95. - 90 -
- 9/11단계 : 앞으로 이동과 여러 번 회전하여 왼쪽으로 가기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [앞으로 이동] 12번 사용, [오른쪽으로 회전] 4번 사용, [왼쪽
으로 회전] 2번 사용
Ÿ 방향 이동 블록과 방향 회전 블록(순차문)의 반복 사용을 이
해한다.
moveForward();
turnRight();
moveForward();
turnLeft();
moveForward();
moveForward();
turnLeft();
moveForward();
moveForward();
turnRight();
moveForward();
moveForward();
turnRight();
moveForward();
moveForward();
moveForward();
turnRight();
moveForward();
96. - 91 -
- 10/11단계 : 평가(화면의 도착점에 도달하기 위한 알고리즘 선택하기)
보기 화면 문제와 선택지 답
분석
Ÿ 보기 화면의 캐릭터가 이동해야하는 과정을 블록 순서도로 작성해보고 선택지와 비교하여 본다.
- 11/11단계 : 평가(각 화면에 알맞은 알고리즘 맞추기)
문제와 선택지 답
분석
Ÿ 각 화면에서 캐릭터가 이동해야 하는 과정을 블록 순서도로 작성해본 후, 세 가지 보기 블록 순
서도와 비교해본다.