SlideShare une entreprise Scribd logo
1  sur  376
Télécharger pour lire hors ligne
수탁연구 : 2015-02
Code.org 분석
“프로그래밍 언어는 제3외국어이다.
모든 학생들이 프로그래밍을 배울 필요는 없지만
배울 수 있는 기회는 반드시 주어져야 한다.”
과제책임자 : 정영식(전주교육대학교)
공동연구원 : 서진화(탄벌초등학교)
안형진(전주교육대학교)
안신영(전주교육대학교)
경규일(엔트리교육연구소)
전주교육대학교 컴퓨터교육과
- ii -
본 연구는 엔트리교육연구소의 ‘소프트웨어 교육 활성화를 위한 엔
트리 교육과정 개발 방안 연구’에 관한 연구비로 수행된 것으로서, 본
연구에서 제시된 정책 대안이나 의견 등은 엔트리교육연구소의 공식
의견이 아닌 본 연구진의 개인 견해임을 밝혀둡니다.
- 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
- 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
- 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
- 1 -
I. 제 1 코스 Code.org 분석1)
1. 스테이지1: 즐거운 맵(방향키 배열)
◦ 개요 : 컴퓨터과학의 기초인 알고리즘의 기본적 개념과 관계를 이해시
킨다.
◦ 학습 목표
- 캐릭터를 맵 내에서 움직이게 하기 위한 단계를 작성한다.
- 예정된 목표에 도달하기 위해 방향키들을 배열한다.
- 주어진 단계의 목록을 보고 캐릭터가 어느 곳에 도착할지 예상한다.
◦ 활동
- 1/2단계 : 실제로 종이를 잘라 방향키 배열하기
주요 화면 1 주요 화면 2 설명
Ÿ 주어진 종이에 그려진 화살표를 잘라
캐릭터에 도달할 수 있도록 배열해보는
활동이다. 여러 명의 의견을 모아 결정
한다.
Ÿ 비어있는 칸을 그려주어 앞으로의 활동
을 대비한다.
주요 개념
알고리즘: 명령을 수행하기 위하여 따라야 할 단계의 목록
- 2/2단계: 온라인으로 옮겨와 방향키 배열하기
보기 화면 문제와 선택지 답
분석
Ÿ 언플러그드 활동과 마찬가지로 화살표를 배열하는 활동이다.
Ÿ 플러브를 보물로 보내기 위한 방향키를 배열하도록 한다.
1) https://studio.code.org
- 2 -
2. 스테이지2: 움직여 움직여(공통적인 언어 이해하기)
◦ 개요 : 주어진 명령을 실행하기 위해서는 공통적인 언어가 필요함을
인지하게 한다.
◦ 학습 목표
- 과제를 수행하기 위한 프로그램을 생성해야 하는 상황을 인지한다.
- 시작부터 끝까지 캐릭터의 움직임을 예측한다.
- 움직임을 상징적인 명령으로 전환시킨다.
- 알고리즘을 프로그램에 연관시킨다.
◦ 활동
- 1/2단계 : 몸짓 언어(공통된 언어)를 통한 명령 이해하기
주요 화면 1 주요 화면 2 설명
Ÿ controller을 수행할 인원과 walking
machine을 수행할 인원을 나눈다.
Ÿ walking machine의 시작위치는 나침도
가 그려진 종이이다.
Ÿ controller는 walking machine에게 주요
화면 2에 주어진 몸 부호를 이용하여
이동해야할 방향을 알려준다.
Ÿ 지시한 방향대로 이동하다가 목표한 위
치에 도달하면 controller는 ‘stop’ 몸
부호를 보여준다.
Ÿ 뒤집어서 웃는 얼굴의 캐릭터가 보이면
성공한 것이다.
Ÿ 아이들이 주어진 명령을 수행하는 데에
있어서 몸 부호라는 공통적인 언어를
통하여 해결하도록 함.
주요 개념
프로그램: 기계에 의하여 실행될 수 있는 무엇인가로 암호화 된 알고리즘
- 3 -
- 2/2단계: 화살표(공통된 언어)를 이용한 명령 이해하기
보기 화면 문제와 선택지 답
분석
Ÿ 플러브를 꽃에 보낼 수 있는 프로그램을 화살표라는 공통적인 언어를 통하여 해결하도록 함.
Ÿ 스테이지 1에서 한 번을 움직여서 문제를 해결했다면, 스테이지 2에서는 두 번을 움직이도록 함.
Ÿ 스테이지 2의 목표는 공통적인 언어가 필요함을 인식시키는 것인데 그 전 스테이지와 언어가 다
르지 않아서(화살표) 아이들이 인식할 수 있을지 의문임.
- 4 -
주요 화면 1 주요 화면 2 설명
Ÿ 스테이지 3은 드래그와 드롭을 연습하
는 스테이지로 웃는 얼굴의 캐릭터를
맞는 위치에 끌어 놓으면 해결된다.
주요 화면 1 주요 화면 2 설명
Ÿ 처음 단계에서 하나의 그림을 그대로
지정된 위치에 드래그와 드롭을 이용하
여 옮겨놓았다면, 2단계에서는 분할된
그림을 반쪽의 퍼즐에 드래그와 드롭을
이용하여 맞춰 넣으면 된다.
주요 화면 1 주요 화면 2 설명
Ÿ 2단계에서는 퍼즐을 아래에 옮겨놓았다
면 3단계에서는 퍼즐을 위에 옮겨놓으
면 된다.
3. 스테이지 3: 퍼즐 맞추기 (드래그와 드롭 연습하기)
◦ 소개: 드래그와 드롭에 대하여 알도록 하여 나중 스테이지의 블록 알
고리즘의 제작을 돕는다.
◦ 학습목표:
- 드래그를 통하여 퍼즐을 맞춘다.
- 퍼즐에서 더 나아가 블록 알고리즘의 형태를 인지하도록 한다.
- 블록 알고리즘의 사용 방법을 알도록 한다.
◦ 활동
- 1/12단계: 하나의 그림 드래그와 드롭하기
- 2/12단계: 반쪽의 그림 드래그와 드롭하기(아래 그림)
- 3/12단계: 반쪽의 그림 드래그와 드롭하기(위 그림)
- 5 -
- 4/12단계: 세 개로 나누어진 그림 드래그와 드롭하기
주요 화면 1 주요 화면 2 설명
Ÿ 전 단계들보다 약간 심화되어 3개의 퍼
즐을 드래그와 드롭을 이용하여 맞는
자리에 옮겨놓으면 된다.
Ÿ 이 때부터 블록의 모양이 나중에 수행
하게 될 게임에서의 블록 알고리즘을
따라가게 된다.
- 5/12단계 : 세 개로 나누어진 그림 드래그와 드롭하기(순서를 뒤바꿔
놓음)
주요 화면 1 주요 화면 2 설명
Ÿ 전 단계에서는 그림을 순서 그대로 배
열하여 보여주었다면 이 단계에서는 순
서를 뒤바꾸어 놓았다.
- 6/12단계: 세 개로 나누어진 그림 드래그와 드롭하기(순서 뒤바뀜)
주요 화면 1 주요 화면 2 설명
Ÿ 이 단계는 전 단계와 같은 방식으로 문
제를 해결한다.
- 7/12단계: 세 개로 나누어진 그림 드래그와 드롭하기(순서 뒤바뀜)
주요 화면 1 주요 화면 2 설명
Ÿ 이 단계도 마찬가지로 세 개의 블록을
드래그와 드롭을 이용하여 문제를 해결
하면 된다.
Ÿ 5~7 단계를 거쳐서 같은 문제를 여러
가지 그림으로 바꿔 놓아 연습할 수 있
도록 하였다.
- 6 -
- 8/12단계: 붙어있는 세 개의 그림 드래그와 드롭하기(순서 뒤바뀜)
주요 화면 1 주요 화면 2 설명
Ÿ 전 단계들과 같이 드래그와 드롭을 이
용하여 그림을 완성한다.
Ÿ 그림이 서로 붙어있고 맨 위에 있는 조
각을 떼어내는 과정에서 단순히 맨 위
의 조각을 떼어내면 떨어지지 않고 아
래부터 차근차근 떼어내야 떨어지도록
설정해 놓았다. 앞으로의 활동에 있어서
이용할 블록 알고리즘을 사용한 것이다.
- 9/12단계: 붙어있는 세 개의 그림 드래그와 드롭하기(순서 뒤바뀜)
주요 화면 1 주요 화면 2 설명
Ÿ 이 단계는 앞의 단계와 같은 과정을 통
하여 해결할 수 있다.
Ÿ 이 단계를 통하여 학생들이 블록 알고
리즘에 대하여 이해할 수 있게 된다.
- 10/12단계: 블록 알고리즘 블록 드래그 앤 드롭하기(1개만 옮김)
주요 화면 1 주요 화면 2 설명
Ÿ 그림으로 이루어졌던 블록을 실제 블록
알고리즘 모양으로 바꾸어 놓아 직접적
으로 블록 알고리즘을 체험할 수 있도
록 함.
Ÿ 주요화면 2에서 아이들은 초록 블록을
청록색 블록 아래에 올려놓게 되면 자
주색 블록이 초록색 블록 또한 감싸게
된다는 것을 인지할 수 있을 것이다.
- 11/12단계: 블록 알고리즘 블록 드래그와 드롭하기(3개 옮김)
주요 화면 1 주요 화면 2 설명
Ÿ 앞 단계에서의 활동을 여러 번 반복하
여 연습할 수 있도록 하였다.
Ÿ 이 단계를 통하여 아이들은 블록 알고
리즘에 대하여 더 알 수 있을 것이다.
- 7 -
- 12/12단계(평가): 붙어있는 세 개의 그림 드래그와 드롭하기(순서 뒤
바뀜)
주요 화면 1 주요 화면 2 설명
Ÿ 마지막 12단계는 평가 단계이다.
Ÿ 앞에서 한 번 맞춰보았던 퍼즐을 블록
알고리즘대로 맞춰보도록 하여 알고리
즘과 퍼즐을 연관시켜 알고리즘에 대한
이해를 더욱 도와 앞으로 할 활동을 대
비시켰다.
- 8 -
4. 스테이지 4: 미로퍼즐 (순차)
◦ 동영상
주요 화면 1 설명
Ÿ 미로퍼즐 해결 방법에 대하여 설명한다.
Ÿ 도구상자에서 블록을 드래그 해 작업화면에 드롭하면 된다고
설명한다.
Ÿ 하나의 블록 아래에 올려놓을 것을 강조한다.
주요 화면 2 설명
Ÿ 미로퍼즐을 다 해결했다고 생각할 때 Run을 누르면 된다고 설
명한다.
◦ 활동
- 1/15단계: 왼쪽으로 이동하기(방향 지시 있음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [왼쪽]을 2번 반복하여 목표지점까지 이동
moveWest();
moveWest();
- 9 -
- 2/15단계: 오른쪽으로 이동하기(방향 지시 있음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽]을 2번 반복하여 목표지점까지 이동
moveEast();
moveEast();
- 3/15단계: 아래쪽으로 이동하기(방향 지시 있음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [아래쪽]을 2번 반복하여 목표지점까지 이동
moveSouth();
moveSouth();
- 10 -
- 4/15단계: 위쪽으로 이동하기(방향 지시 있음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [위쪽]을 2번 반복하여 목표 지점으로 이동
moveNorth();
moveNorth();
- 5/15단계: 오른쪽으로 이동하기(방향 지시 없음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽]을 3번 반복하여 목표지점까지 이동
moveEast();
moveEast();
moveEast();
- 11 -
- 6/15 단계: 왼쪽과 아래쪽으로 이동하기(상하 좌우 도입, 방향 지시
없음)
실행 전 블록 입력 전 실행 후
분석 스크립트
Ÿ [왼쪽] 1번과 [아래쪽] 2번을 이용하여 목표지점까지 이동
Ÿ 하나의 방향이 아니라 두 개의 방향을 순차적으로 이용할 수
있도록 함.(한 방향으로 갔다가 또 다른 방향으로 가라고 힌트
를 줌)
moveWest();
moveSouth();
moveSouth();
- 7/15 단계: 오른쪽과 위쪽으로 이동하기(상하 좌우 사용, 방향 지시
없음, 함정 만들어 놓음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 1번, [왼쪽] 1번을 이용하여 목표지점까지 이동
Ÿ 답으로 가는 루트 외에 다른 루트 또한 포함시켜 헷갈릴 수 있
는 요소를 제공하였다.
moveEast();
moveNorth();
- 12 -
- 8/15 단계: 두 개의 방향의 블록 섞어 놓음
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 1번 이동한 뒤 [왼쪽] 1번 이동하고 또 다시 [오른쪽]
1번 더 이동하여 목표한 지점까지 이동
Ÿ 방향을 순차적으로 배열하여 문제를 해결하도록 해 알고리즘
을 만드는 것을 이해 할 수 있게 한다.
moveEast();
moveNorth();
moveEast();
- 9/15 단계: 두 개의 방향 섞어 놓음
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [왼쪽] 으로 1번 움직이고 [아래쪽]으로 1번 움직인 다음 다시
[왼쪽]으로 1번 이동하여 목표지점까지 이동
Ÿ 순차배열을 연습할 수 있도록 한다.
moveWest();
moveSouth();
moveWest();
- 13 -
- 10/15 단계: 세 방향의 블록 섞어 놓음
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [위쪽]으로 1번 이동한 후 [오른쪽]으로 3번 이동하고, 그 후 [아
래쪽]으로 1번 이동하여 목표한 지점까지 이동
Ÿ 세 방향으로 순차적으로 이동하는 것을 연습하도록 한다.
moveNorth();
moveEast();
moveEast();
moveEast();
moveSouth();
- 11/15 단계: 세 방향의 블록 섞어 놓음
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [왼쪽] 2번 이동한 후 [아래쪽] 2번 이동한다. 그 후 [오른쪽] 2
번 이동한 후에 다시 [아래쪽] 1번 이동하여 목표지점까지 이동
한다.
Ÿ 복잡한 순차배열을 해보도록 하여 알고리즘을 이해하도록 하고
블록을 배열할 때 캐릭터가 어디에 도달할지 알도록 함.
moveWest();
moveWest();
moveSouth();
moveSouth();
moveEast();
moveEast();
moveSouth();
- 14 -
- 12/15 단계: 두 방향의 블록 사용하기(평가)
실행 전 블록 입력 전 사용 블록
분석 스크립트
Ÿ 12단계부터는 평가하는 문항으로 이루어져 있다.
Ÿ [오른쪽]으로 1번 이동 후 [아래쪽]으로 2번 이동하도록 순차적
으로 배열하여 문제를 해결한다.
moveEast();
moveSouth();
moveSouth();
- 13/15 단계: 세 방향의 블록 사용하기(평가)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [아래쪽] 1번, [왼쪽] 2번 이동한 다음 [위쪽] 1번 이동한 후에
다시 [왼쪽]으로 1번 이동하여 목표지점까지 이동한다.
Ÿ 순차적 배열을 이해하여 문제를 해결한다.
moveSouth();
moveWest();
moveWest();
moveNorth();
moveWest();
- 15 -
보기 화면 문제와 선택지 답
분석
Ÿ 왼쪽, 아래쪽이라고 쓰여져 있던 언어를 w와 s로 대체했다.
Ÿ 알고리즘을 제대로 이해하고 있는지 확인한다.
- 14/15 단계: 두 방향의 블록 사용하기(평가)
- 15/15 단계: 한 방향이나 두 방향의 블록 사용하기 (평가)
문제와 선택지 답
분석
Ÿ 블록 짝 맞추기 활동을 이용하여 순차배열에 대해 평가한다.
Ÿ 각 미로 퍼즐로부터 각각의 블록 알고리즘을 작성해본 후 선택지와 맞춰보거나, 각 알고리즘이 의미
하는 위치 변화를 머릿속으로 그려 해결한다.
- 16 -
5. 스테이지5: 미로퍼즐 (디버깅)
◦ 동영상
주요 화면 1 설명
Ÿ 디버깅에 대한 기본적인 이해를 돕기 위해 설명한다.
Ÿ 디버깅이란 오류를 발견하여 수정하는 것이며 디버깅의 가장
쉬운 방법은 행동을 차근차근 점검하는 것이라고 설명한다.
Ÿ 디버깅의 예시를 보여준다.
주요 화면 2 설명
Ÿ 디버깅을 미로퍼즐에 적용시키는 방법을 알려준다.
◦ 활동
- 1/12 단계: 블록 추가하기 (1개)
실행 전 오류 수정 전 오류 수정 후
분석 스크립트
Ÿ [오른쪽]으로 2번 이동하는 기존의 오류를 수정하여 [오른쪽] 3
번 이동하여 목표지점까지 이동
Ÿ 알고리즘을 해석하여 오류를 파악할 수 있도록 한다.
moveEast();
moveEast();
moveEast();
- 17 -
- 2/12 단계: 블록 중간에 추가하기 (1개)
실행 전 오류 수정 전 오류 수정 후
분석 스크립트
Ÿ 기존의 [왼쪽] 1번 이동, [위쪽] 2번 이동의 오류를 수정하여 [위
쪽] 1번을 추가
Ÿ 알고리즘을 파악하여 오류를 수정한다.
moveWest();
moveNorth();
moveNorth();
moveNorth();
- 3/12 단계: 중간의 오류 블록 제거하기(2개)
실행 전 오류 수정 전 오류 수정 후
분석 스크립트
Ÿ 기존의 [오른쪽] 3번 , [위쪽] 1번 이동에서 [오른쪽] 2번을 제거
Ÿ 알고리즘을 파악하여 오류를 확인하고 오류 블록을 제거한다.
moveEast();
moveNorth();
- 18 -
- 4/12단계: 블록 순서 바꾸기
실행 전 오류 수정 전 오류 수정 후
분석 스크립트
Ÿ 기존의 [왼쪽] 2번 이동 후 [아래쪽] 1번을 수정하여 [왼쪽] 1번,
[아래쪽] 1번 이동 후 [왼쪽] 1번 이동
Ÿ 알고리즘을 파악하여 오류를 확인하고 블록의 순서를 바꾼다.
moveWest();
moveSouth();
moveWest();
- 5/12단계: 좀 더 복잡한 알고리즘의 중간의 오류 블록 제거하기(1개)
실행 전 오류 수정 전 오류 수정 후
분석 스크립트
Ÿ 기존의 [오른쪽] 2번 , [아래쪽] 3번 이동 후 [오른쪽] 2번 이동
에서 [아래쪽] 1번을 제거
Ÿ 알고리즘을 파악하여 오류를 확인하여 블록을 제거한다.
moveEast();
moveEast();
moveSouth();
moveSouth();
moveEast();
moveEast();
- 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();
- 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();
- 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();
-
- 22 -
- 12/12단계: 미완성된 알고리즘 완성하기(평가)
보기 화면 문제와 선택지 답
분석
Ÿ 적절한 알고리즘을 구성할 수 있는지를 평가하는 단계이다.
Ÿ 알고리즘을 이해하여 새의 위치 변화를 파악하여 마지막 알고리즘을 결정한다.
- 23 -
6. 실시간 알고리즘: 씨앗 심기
◦ 개요: 학생들이 현실 세계 상황을 온라인 상의 알고리즘으로 옮길 수
있는 기술들을 얻을 수 있도록 한다. 또한 반대로 온라인 상의 알고리
즘을 현실 상황과 연관 시킬 수 있도록 한다.
◦ 학습목표
- 학생들의 하루를 구성하는 다양한 활동들을 이름 짓는다.
- 큰 활동을 일련의 작은 사건들로 나눈다.
- 잇따라 일어나는 사건들을 학생들의 논리적인 순서대로 정리한다.
◦ 활동
- 1/3단계: ‘씨앗 심기’의 알고리즘 만들기
주요 화면 1 주요 화면 2 설명
Ÿ 나눠준 종이에서 씨앗을 심기위한 단계
들을 잘라낸 후 9개의 항목 중 적절한
6개 항목을 골라 순서대로 정렬하여 서
로 비교해 본 후 완성된 알고리즘을 씨
앗을 심는 데에 이용한다.
Ÿ 현실 세계의 상황인 씨앗심기를 알고리
즘을 이용하여 계획하도록 하여 현실
상황과 알고리즘 사이의 호환을 돕는다.
주요 개념
알고리즘: 명령을 수행하기 위하여 따라야 할 단계의 목록
- 2/3 단계: ‘이 닦기’의 미완성된 알고리즘 완성하기(처음 제거)
보기 화면 문제와 선택지 답
분석
Ÿ 이를 닦는 하나의 큰 활동을 여러 작은 사건들로 나누어 논리적인 순서대로 완성하도록 한다.
Ÿ 학생들은 이를 닦는 활동의 알고리즘을 완성하면서 현실 상황과 알고리즘을 더욱 잘 연관시키게
된다.
- 24 -
- 3/3단계: 씨앗 심기의 미완성된 알고리즘 완성하기(중간 제거)
보기 화면 문제와 선택지 답
분석
Ÿ 씨앗 심기라는 하나의 활동을 화분을 흙으로 채우기 등의 작은 사건들로 나누어 논리적인 순서대
로 완성하도록 한다.
Ÿ 씨앗 심기 활동의 알고리즘을 완성하면서 온라인 상에서 알고리즘을 제작할 수 있는 능력을 기른
다.
- 25 -
7. 스테이지7: 꿀벌(순차)
◦ 동영상
주요 화면 1 설명
Ÿ 꿀벌 퍼즐에 대한 이해를 돕기 위하여 설명한다.
Ÿ 목표는 꿀벌이 꽃에 날아가 꽃꿀을 얻어 벌집으로 날아가 꿀을
만들 수 있도록 하는 것이라고 설명한다.
주요 화면 2 설명
Ÿ 꽃에서 얻을 수 있는 꽃꿀의 수는 아래에 작게 쓰여 있으며 그
숫자만큼 꽃꿀을 얻어야 한다고 말한다. 또 벌집에서 얻을 수
있는 꿀도 마찬가지라고 설명한다.
Ÿ 최대로 얻을 수 있는 꿀을 다 얻으면 다음 단계로 넘어간다고
Ÿ 설명한다.
◦ 활동
- 1/15단계: 꽃꿀 1개를 얻어 꿀을 1개 만들기
실행 전 블록 추가 전 블록 추가 후
분석 스크립트
Ÿ [오른쪽]으로 1번 이동하여 꽃꿀을 하나 얻고 또 [오른쪽] 으로
2번 이동하여 꿀을 하나 만든다.
Ÿ 꿀벌이 꿀을 얻게 하는 블록의 사용(순차문)을 이해하도록 한
다.
moveEast();
getNectar();
moveEast();
moveEast();
makeHoney();
- 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();
- 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();
- 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();
- 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();
- 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();
- 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();
- 32 -
- 14/15단계: 꽃꿀의 개수 더하기
보기 화면 문제와 선택지 답
분석
Ÿ 꽃꿀의 개수를 맞추는 문항이다.
Ÿ 초등학교 1학년 학생들을 대상으로 하는 코스이기 때문에 학생들이 총 꽃꿀의 개수를 아는지 확
인한다.
Ÿ 학생들은 순차문에서 연습할 때 1개의 꽃꿀을 얻고 다시 1개의 꽃꿀을 얻었던 것을 떠올리며 문
제를 해결하게 된다.
- 15/15단계: 꽃꿀의 개수 더하기
보기 화면 문제와 선택지 답
분석
Ÿ 전단계와 마찬가지로 꽃꿀의 개수를 맞추는 문항이다.
Ÿ 학생들은 2개의 꽃꿀을 얻고 다시 2개의 꽃꿀을 얻었던 것을 떠올리며 문제를 해결한다.
- 33 -
8. 스테이지8: 예술가(순차)
◦ 동영상
주요 화면 1 설명
Ÿ 예술가 퍼즐의 거리 이동 블록에 대하여 설명한다.
Ÿ 적절한 선을 그리기 위하여 적절한 방향의 거리 이동 블록을
선택하라고 설명한다.
주요 화면 2 설명
Ÿ 예술가 퍼즐의 거리 점프 블록에 대하여 설명한다.
Ÿ 거리 점프 블록을 사용하면 예술가가 이동하지만 선을 그리지
않는다고 설명한다.
Ÿ 다른 선을 그리기 위하여 점프하고 싶을 때 사용하라고 설명한
다.
◦ 활동
- 1/12단계: 오른쪽 블록 1번 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 1번 사용
Ÿ 거리 이동 블록의 기능을 이해한다.
moveRight(50);
- 34 -
- 2/12단계: 오른쪽 블록 2개 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 2번 사용
Ÿ 거리 이동 블록을 이용하여 순차문을 만들어낸다.
moveRight(50);
moveRight(50);
- 3/12단계: 두 방향의 블록 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 2번, [위쪽] 2번 사용
Ÿ 서로 다른 방향의 거리 이동 블록을 사용하여 목표 지점에 도
달한다.
moveRight(50);
moveRight(50);
moveUp(50);
moveUp(50);
- 35 -
- 4/12단계: 세 방향의 블록 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 1번 , [위쪽] 1번 이동 후 [오른쪽] 1번 이동 후 [아래
쪽] 1번 이동
Ÿ 3개의 서로 다른 방향 블록을 이용하여 목표 지점으로 도달하
기 위한 블록 알고리즘을 만들어낸다.
moveRight(50);
moveUp(50);
moveRight(50);
moveDown(50);
- 5/12단계: 한 방향의 블록 사용하기(꽃의 줄기 그리기)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [위쪽] 2번 사용
Ÿ 블록 알고리즘(순차문)을 이용하여 꽃의 줄기를 그려보도록 한
다.
Ÿ 단순히 선이 아니라 그림이 될 수 있음을 이해한다.
moveUp(50);
moveUp(50);
- 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);
- 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);
- 38 -
- 10/12단계: 한 방향의 블록과 점프 이동 블록 사용하기(평가)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [왼쪽] 1번, [점프 왼쪽] 1번 이동 후 [왼쪽] 1번, [점프 왼쪽] 1
번 이동 후 [왼쪽] 1번 이동
Ÿ 점프 이동 블록과 거리 이동 블록을 적절히 사용한 순차문을
만들어 낼 수 있는지 평가한다.
moveLeft(50);
jumpLeft(50);
moveLeft(50);
jumpLeft(50);
moveLeft(50);
- 11/12단계: 두 방향의 블록 사용하기(평가)
보기 화면 문제와 선택지 답
분석
Ÿ [오른쪽] 1번 이동 후 [아래쪽] 2번 이동
Ÿ 보기 화면에 맞는 알고리즘을 구성해보거나 선택지의 알고리즘을 머릿속으로 그려보아 적절한 답
을 선택한다.
Ÿ 서로 다른 방향의 거리 이동 블록을 적절히 사용한 순차문을 만들어 낼 수 있는지 평가한다.
- 39 -
- 12/12단계: 네 방향의 블록 사용하기(평가)
보기 화면 문제와 선택지 답
분석
Ÿ [위쪽] 1번, [오른쪽] 1번 이동 후 [아래쪽] 1번, [왼쪽] 1번 이동
Ÿ 전 단계와 마찬가지로 보기 화면에 맞는 알고리즘을 구성해보거나 선택지의 알고리즘을 머릿속으
로 그려보아 적절한 답을 선택한다.
Ÿ 여러 개의 서로 다른 방향의 거리 이동 블록을 적절히 사용한 순차문을 만들어 낼 수 있는지 평
가한다.
- 40 -
9. 스테이지9: 건물 기초 만들기
◦ 개요: 새롭고 풀리지 않은 문제를 풀기 위해서는 실패가 따르고 실패
는 끝이 아니라 성공하기 위한 힌트가 된다는 것을 인지시킨다.
◦ 학습목표
- 구조적인 공학 문제를 해결하기 위한 단계들의 윤곽을 그린다.
- 구조 만들기에서의 잠재적인 문제들에 대해서 예측하고 논의한다.
- 팀의 계획에 기초하여 구조를 만든다.
- 문제를 해결할 때까지 계획과 구조를 수정한다.
◦ 활동
- 1/2단계: 실패로부터 힌트 얻기
주요 화면 1 주요 화면 2 설명
Ÿ 제공된 물건들을 사용하여 종이컵의 높
이 보다 높고 책의 무게를 10초 동안
견뎌낼 수 있는 타워를 세운다.
Ÿ 타워를 만들어 보는 동안 학생들이 실
패를 경험할 때 그 실패를 바탕으로 인
내심을 가지고 수정하도록 지도한다.
주요 개념
인내심: 어떤 것이 매우 어렵더라도 계속 다시 시도하는 것
- 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);
- 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);
- 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);
- 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);
- 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단계: 동일한 형태 맞추기(평가)
- 46 -
문제와 선택지 답
분석
Ÿ 짝 맞추기 활동을 이용하여 모양에 따른 알고리즘에 대하여 이해하도록 한다.
Ÿ 같은 형태는 같은 알고리즘을 가짐을 이해한다.
- 10/10단계: 자유롭게 그리기(거리 이동 블록과 점프 이동 블록과 색
설정 블록 사용 가능)
사용할 수 있는 블록
분석
Ÿ 앞 단계에서 배운 내용을 사용하여 자신의 맘대로 그림을 그리도록 하여 프로그램에 흥미를 느
끼도록 하는 동시에 알고리즘에 대한 이해 또한 돕는다.
Ÿ 자신만의 알고리즘을 만들도록 하여 앞으로 더 나아가 프로그램을 만드는 데에 도움을 준다.
11. 말하는 꿀벌
- 47 -
◦ 동영상
주요 화면 1 설명
Ÿ 말하는 꿀벌 레벨에 대하여 설명한다.
Ÿ 벌을 움직이게 하기 위하여 퍼즐 조각을 이용하라고 말한다.
Ÿ 움직이면서 글자를 모아서 퍼즐 아래에 있는 단어를 만든다고
설명한다.
주요 화면 2 설명
Ÿ 벌이 움직이면서 글자를 모아서 퍼즐 아래에 있는 단어를 만든
다고 설명한다.
Ÿ 틀린 길로 갈 경우 원하지 않은 단어를 만들게 될 수 있다고
설명한다.
◦ 활동
- 1/12단계: 오른쪽으로 이동시키기(한 방향)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 4번 이동
Ÿ 오른쪽으로 이동하는 거리 이동 블록을 사용하여 알고리즘을
만들어 목표로 한 단어를 만든다.
moveEast();
moveEast();
moveEast();
moveEast();
- 48 -
- 2/12단계: 아래쪽으로 이동시키기(한 방향)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [아래쪽] 5번 이동
Ÿ 아래쪽으로 이동하는 거리 이동 블록을 사용하여 알고리즘을
만들어 목표로 한 단어를 만든다.
moveSouth();
moveSouth();
moveSouth();
moveSouth();
moveSouth();
- 3/12단계: 왼쪽으로 이동시키기(한 방향)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [왼쪽] 4번 이동
Ÿ 왼쪽으로 이동하는 거리 이동 블록을 사용하여 알고리즘을 만
들어 문제를 해결한다.
moveWest();
moveWest();
moveWest();
moveWest();
- 49 -
- 4/12단계: 위쪽으로 이동시키기 (한 방향)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [위쪽] 5번 이동
Ÿ 위쪽으로 이동하는 거리 이동 블록을 사용하여 알고리즘을 만
들어 단어를 만든다.
moveNorth();
moveNorth();
moveNorth();
moveNorth();
moveNorth();
- 5/12단계: 오른쪽으로 이동한 후에 아래쪽으로 이동하기(두 방향)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 3번 이동 후 [아래쪽] 1번 이동
Ÿ 전 단계보다 발전해 오른쪽으로 이동했다가 아래쪽으로 이동하
는 알고리즘을 만들어 문제를 해결한다.
moveEast();
moveEast();
moveEast();
moveSouth();
- 50 -
- 6/12단계: 두 방향 이동시키기(방향이 주어지지 않음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 2번, [위쪽] 1번 이동 후 [오른쪽] 1번 이동
Ÿ 전 단계와 다르게 팝업창에서 이동 방향에 대한 정보가 주어지
지 않는다.
Ÿ 주어진 단어를 만들기 위해 이동할 방향을 머릿속으로 그려내
어 알고리즘을 완성한다.
moveEast();
moveEast();
moveNorth();
moveEast();
- 7/12단계: 두 방향 이동시키기(방향이 주어지지 않음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 2번, [아래쪽] 2번 이동 후 [오른쪽] 1번 이동
Ÿ 전 단계와 마찬가지로 방향에 대한 정보가 주어지지 않았다.
Ÿ 단어를 만들기 위하여 적절한 거리 이동 블록을 사용하여 알고
리즘을 만든다.
moveEast();
moveEast();
moveSouth();
moveSouth();
moveEast();
- 51 -
- 8/12단계: 두 방향 이동시키기(방향이 주어지지 않음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [아래쪽] 2번, [오른쪽] 1번 이동 후 [아래쪽] 1번, [오른쪽] 1번
이동
Ÿ 마찬가지로 방향이 주어지지 않았기 때문에 단어를 만들기 위
해 이동해야할 방향을 생각하여 블록 알고리즘을 완성한다.
moveSouth();
moveSouth();
moveEast();
moveSouth();
moveEast();
- 9/12단계: 두 방향 이동시키기(방향이 주어지지 않음)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 1번, [위쪽] 1번, [오른쪽] 1번 이동 후 [위쪽] 2번 이동
Ÿ 마찬가지로 방향이 주어지지 않을 때 문제를 해결하기 위한 알
고리즘을 만들 수 있도록 연습시킨다.
moveEast();
moveNorth();
moveEast();
moveNorth();
moveNorth();
- 52 -
- 10/12단계: 두 방향 이동시키기(방향주어지지 않음)-평가
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 2번, [아래쪽] 3번 이동
Ÿ 이동 방향이 주어지지 않았을 때 주어진 단어를 완성시키기 위
하여 이동해야 할 적절한 방향을 설정할 수 있는지 평가한다.
moveEast();
moveEast();
moveSouth();
moveSouth();
moveSouth();
- 11/12단계: 두 방향으로 이동시키기(평가)
보기 화면 문제와 선택지 답
분석
Ÿ ‘MOVE’라는 단어를 완성할 수 있는 적절한 알고리즘을 고르는 문제이다.
Ÿ 이동 방향이 주어지지 않았기 때문에 어떤 방향으로 이동해야 적절한 알고리즘을 구성할 수 있는
지 아는지를 평가한다.
Ÿ 학생들은 머릿속으로 꿀벌이 이동해야하는 방향을 그려보아 문제를 해결한다.
- 53 -
- 12/12단계: 알고리즘 파악하여 단어 찾기(평가)
보기 화면 문제와 선택지 답
분석
Ÿ 주어진 알고리즘을 통하여 완성될 단어를 찾는 문항이다.
Ÿ 블록 알고리즘을 통하여 이동했을 때 이동할 방향을 예상할 수 있는지를 평가한다.
Ÿ 학생들은 블록 알고리즘대로 순차적으로 꿀벌을 이동시켜 문제를 해결한다.
- 54 -
12. 스테이지12: 반복적으로 하기
◦ 개요: 여러 번의 행동을 하나의 루프로 바꾸는 연습을 한다.
◦ 학습목표
- 강사에 의해 접한 행동들을 반복한다.
- 사진으로 된 프로그램을 실제 행동으로 옮긴다.
- 여러 번의 행동을 하나의 루프로 바꾼다.
◦ 활동
- 1/2단계: 춤에서 반복되는 동작 파악하고 효율성 인지하기
주요 화면 1 주요 화면 2 설명
Ÿ 일정한 반복패턴을 가진 춤이 그려진
종이를 나눠준다.
Ÿ 그 춤을 보여주고 따라하게 하며 무엇
이 반복되는지 파악하도록 지도한다.
Ÿ 학생들은 루프를 파악했을 때 더 효율
적으로 춤을 출 수 있음을 인지하게 된
다.
주요 개념
루프: 어떤 것을 계속 반복하는 행동
- 2/2단계: 루프 사용하기(평가)
보기 화면 문제와 선택지 답
분석
Ÿ 반복되는 블록을 파악하여 반복구조를 만들 수 있는지를 평가한다.
Ÿ 반복되는 행동을 하나의 루프로 바꿀 수 있음을 이해한다.
Ÿ [위쪽]으로 3번 이동하고 [꽃꿀얻기] 가 4번 반복되므로 이를 파악하여 문제를 해결한다.
- 55 -
13. 스테이지13: 미로 퍼즐(반복)
◦ 활동
- 1/14단계: 순차문 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 5번 이동
Ÿ 루프를 사용하기 전에 일정한 행동이 반복되고 있는 순차문을
이해한다.
moveEast();
moveEast();
moveEast();
moveEast();
moveEast();
- 2/14단계: 루프 사용하기(툴 박스에 미리 반복될 횟수 지정됨)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [5번 반복] 1번, [오른쪽] 1번 사용
Ÿ 반복 횟수가 미리 지정되어 있어 이동해야할 방향을 파악
하여 지정하면 문제가 해결된다.
for (var count = 0; count < 5; count++) {
moveEast();
}
- 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();
}
- 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();
}
- 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();
}
- 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();
}
- 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();
}
- 61 -
- 13/14단계: 순차문을 하나의 루프로 만들기(평가)
보기 화면 문제와 선택지 답
분석
Ÿ 여러 번 반복되는 알고리즘을 보고 루프를 만들 수 있는지 확인하는 문항이다.
Ÿ [위쪽]으로 3번 이동하는 것을 파악하여 하나의 루프로 만든다.
- 14/14단계: 순차문을 두 개의 블록이 포함된 하나의 루프로 만들기(평
가)
보기 화면 문제와 선택지 답
분석
Ÿ 여러 번 반복되는 알고리즘을 보고 루프를 만들 수 있는지 확인하는 문항이다.
Ÿ [아래쪽] 1번, [오른쪽] 1번이 3번 반복되는 것을 파악하여 하나의 루프를 만든다.
- 62 -
14. 스테이지14: 꿀벌(반복)
◦ 활동
- 1/13단계: 순차문 사용하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [오른쪽] 5번, [꽃꿀 얻기] 1번, [꿀 만들기] 1번, [위쪽] 1번 사
용
Ÿ 루프를 사용을 연습하기 전에 꿀을 만들기 위한 순차문을 이해
시킨다.
moveEast();
moveEast();
moveEast();
moveEast();
moveEast();
getNectar();
moveNorth();
makeHoney();
◦ 동영상
주요 화면 1 설명
Ÿ 벌집에서 꿀을 얻을 때 같은 활동을 반복한다는 것을 설명한
다.
주요 화면 2 설명
Ÿ 이번 스테이지에서는 꽃꿀을 얻거나 꿀을 만들 때 루프를 사용
하여 만들어서 해결해야한다고 설명한다.
- 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();
}
- 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();
}
- 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();
}
- 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();
}
- 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();
}
- 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단계: 루프와 순차문 짝 맞추기(평가)
문제와 선택지 답
분석
Ÿ 순차문과 루프의 짝을 맞출 수 있는지 평가하는 문항이다.
Ÿ 학생들은 하나의 루프를 풀어 순차문을 만들어 선택지를 고르거나 순차문을 루프로 묶어서 답을 찾
을 수 있다.
- 69 -
15. 스테이지15: 빅 이벤트
◦ 개요: 프로그램의 다양하게 만들어주는 “이벤트”의 개념을 이해시킨
다.
◦ 학습 목표
- 학생들은 강사가 요구하는 것을 반복한다.
- 요구를 시행하기 위하여 강사의 행동을 신호로 인식한다.
- 미리 계획된 행동과 이벤트 기반의 행동을 구별할 수 있도록 한다.
◦ 활동
- 1/2단계: 버튼을 눌러 반응하게 하여 이벤트의 개념 이해시키기
주요 화면 1 주요 화면 2 설명
Ÿ 각 버튼마다 해야 하는 행동을 지정해
놓고 버튼을 누르면 아이들이 반응하도
록 한다.
Ÿ 연속적으로 다른 버튼을 누르며 반응
하도록 하고 ‘숫자 10까지 세기’ 등
과 같이 미리 예정된 행동들을 하고 있
는 중에 버튼을 누르게 한다.
Ÿ 이 과정들을 통하여 ‘이벤트’의 개념
에 대하여 알게 되고, 미리 계획된 행동
과 이벤트 기반의 행동의 차이를 인식
하도록 한다.
주요 개념
이벤트: 어떤 것이 일어나도록 하는 행동
- 2/2단계: 블록에 따라 맞는 행동을 맞추어 이벤트 기반 행동 연습하
기
보기 화면 문제와 선택지 답
분석
Ÿ 버튼마다 다른 댄스를 지정해 놓아 이벤트를 통하여 프로그램을 다양하게 만들 수 있다는 것을 인식시킨
다.
Ÿ 연속적으로 다른 버튼을 눌러 이벤트 기반 행동을 연습시킨다.
- 70 -
16. 스테이지16: Play Lab(스토리 만들기)
◦ 동영상
주요 화면 1 설명
Ÿ play lab을 통하여 이야기를 만드는 방법을 설명한다.
Ÿ 이동하기 블록을 통하여 캐릭터를 마음대로 이동시킬 수 있고,
말하기 블록을 통하여 우리가 입력하는 모든 말을 하도록 만들
수 있다고 설명한다.
주요 화면 2 설명
Ÿ 화면 속의 블록을 이용하여 두 캐릭터를 연결시킬 수 있다고
설명한다.
Ÿ 이 블록에 다른 블록을 추가하여 두 캐릭터가 만날 때 다른 동
작들을 실행하도록 만들 수 있다고 설명한다.
◦ 활동
- 1/6단계: say 블록 사용하기
실행 전 블록 입력 전 분석
Ÿ 자신이 만든 알고리즘을 통하여
원하는 말을 하도록 시킬 수 있
음을 이해한다.
Ÿ 프로그래밍에 대한 이해를 돕는
다.
분석 블록 입력 후
- 71 -
- 2/6단계: 두 개의 블록 연결시키기
실행 전 블록 입력 전 분석
Ÿ 강아지 캐릭터 말하기 동작 블록
에 고양이 캐릭터 말하기 동작
블록을 연결하여 강아지가 말한
후 고양이가 말하도록 설정한다.
Ÿ 블록 알고리즘을 통하여 두 캐릭
터를 연결시킬 수 있음을 이해한
다.
분석 블록 입력 후
- 3/6단계: move 블록 사용하기
실행 전 블록 입력 전 분석
Ÿ 강아지 캐릭터를 고양이 캐릭터
쪽인 오른쪽으로 이동시킨다.
Ÿ 자신이 만든 알고리즘을 통하여
캐릭터를 원하는 방향으로 이동
시킬 수 있음을 이해한다.
분석 블록 입력 후
- 72 -
- 4/6단계: “~할 때”블록 사용하기
실행 전 블록 입력 전 분석
Ÿ 강아지 캐릭터를 이동시켜 고양
이 캐릭터와 만나게 될 때 고양
이 캐릭터가 말을 할 수 있도록
설정한다.
Ÿ 두 캐릭터가 만날 때 실행될 알
고리즘을 설정할 수 있다는 것을
이해한다.
분석 블록 입력 후
- 5/6단계: 표정 설정하기
실행 전 블록 입력 전 분석
Ÿ 문어가 행복한 표정을 나타내도
록 설정한다.
Ÿ 블록 알고리즘을 통하여 감정 변
화 또한 표현할 수 있음을 이해
한다.
실행 후 블록 입력 후
- 73 -
- 6/6단계: 자신만의 이야기 만들어보기(강아지와 고양이기 돌아다니면
서 말하도록 하기)
사용 가능 블록 분석
Ÿ 마지막 단계에서는 전 단계에서
볼 수 없었던 [스피드] 블록과
[보이게 하기] 블록과 [소리 설
정] 블록과 [삭제하기] 블록이 추
가 되었다.
Ÿ 여러 블록들을 사용하여 자신만
의 이야기를 만들어본다.
Ÿ 이 단계를 통하여 전 단계까지
배워왔던 알고리즘을 연습하며
자신만의 프로그램을 만들기 위
한 연습을 하게 된다.
- 74 -
17. 스테이지17: 안전하게 자리잡기
◦ 개요: 많은 웹 사이트들이 사적인 정보들을 요구하는데 이에 어떻게
대처해야 하기 위하여 따라야 하는 룰에 대해서 알게 한다.
◦ 학습 목표
- 온라인에서의 안전은 실제 삶에서의 안전과 유사하다는 것을 인지한
다.
- 방문해도 되는 사이트들을 인지하는 방법을 배운다.
- 사적인 정보들의 종류에 대해서 안다.
- 자신의 사적인 정보를 보호하기 위하여 효과적인 사용자명을 만드는
방법을 배운다.
◦ 활동
- 1/2단계: 공유하지 말아야 할 정보 인식하기
주요 화면 1 주요 화면 2 설명
Ÿ 아이들에게 주요화면 1,2와 같이 한 사
이트의 가입 페이지를 보여주고 수업을
시작한다.
Ÿ 학생들에게 사적인 정보에 대한 예를
들어보도록 하고 알려준 후 왜 정보를
사적으로 유지하는 것이 중요한지를 알
려준다.
Ÿ 그리고 다시 가입 페이지를 보여주어
자신의 사적인 정보를 담아야 하는지
물어본다.
Ÿ 그 후 실제로 사적인 정보를 담지 않은
사용자명을 만들도록 해본다.
주요 개념
사용자명: 웹 사이트에서 무엇을 보고, 무엇을 하기 위하여 구성하는 이름. 스크린 이름이라고도 함.
- 75 -
- 2/2단계: 공유하지 말아야 할 정보 인지하기(평가)
문제와 선택지 답
분석
Ÿ 온라인으로 공유하지 말아야 할 사적인 정보에 대해서 인지하게 한다.
Ÿ 나이, 생일 등의 사적인 정보에 대하여 정확하게 인지하고 안전한 사용자명을 만들 수 있도록 한다.
- 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);
}
- 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);
}
- 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);
}
- 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);
}
- 80 -
- 9/10단계: 루프 안에 두 개의 블록 사용하기(미리 블록 주어지지 않
음)(평가)
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [4번 반복] 1번, [오른쪽] 1번, [아래쪽] 1번 사용
Ÿ 반복 횟수와 루프 안의 거리 이동 블록을 적절히
설정할 수 있는지를 평가한다.
for (var count = 0; count < 4; count++) {
moveRight(50);
moveDown(50);
}
- 10/10단계: 자유롭게 그리기
사용할 수 있는 블록
분석
Ÿ 전의 자유롭게 그리기와 달리 반복 블록이 추가되었다.
Ÿ 앞에 배운 루프를 사용하여 자신의 마음대로 그림을 그리도록 하여 프로그램에 흥미를 느끼도록 한
다.
Ÿ 자신만의 알고리즘을 만들도록 하여 앞으로 더 나아가 프로그램을 만드는 데에 도움을 준다.
- 81 -
II. 제2코스 Code.org 분석
1. 스테이지1: 모눈종이 프로그래밍
◦ 개요 : 모눈종이에 그림을 그리는 순서 프로그래밍을 통해 학생들이
프로그래밍의 기본적인 개념과 의미를 이해할 수 있다.
◦ 학습 목표
- 실제 문제를 프로그램으로 전환시키는 것의 어려움을 이해한다.
- 직관적으로는 명확해 보이지만 컴퓨터는 잘못 해석할 수 있음을 배
운다.
- 암호와 기호를 통해 개념들에 대한 의사소통 과정을 연습한다.
◦ 활동
- 1/3단계 : 언플러그드 활동(글로 표현된 명령을 기호로 표현해보기)
주요 화면 1 주요 화면 2 설명
Ÿ 4*4의 모눈종이에서 내가 작성한 알고
리즘을 보고 친구가 격자의 빈칸에 색
칠할 수 있도록 한다.
Ÿ 알고리즘의 각 명령을 화살표로 대치하
여 쉽게 색칠할 수 있도록 한다.
Ÿ 이 때, 화살표 기호가 알고리즘의 ‘암
호’이고, 각각의 명령들은 알고리즘 조
각들이다.
주요 개념
알고리즘 : 과제를 마치기 위해 따라야 하는 단계들의 모음
프로그램 : 기계에 의해 운영되기 위해 암호화된 알고리즘
- 82 -
- 2/3단계 : 모눈종이의 격자그림에 알맞은 기호 알고리즘 선택하기
보기 화면 문제와 선택지 답
분석
Ÿ 처음 빈칸 색칠, 오른쪽으로 두 칸 이동 후 색칠, 아래로 두 칸 이동 후 색칠, 왼쪽으로 두 칸 이
동 후 색칠
Ÿ 학생들이 명령들을 화살표로 대치한 것을 이해하고, 알고리즘과 프로그래밍의 개념을 알게 한다.
- 3/3단계 : 각 격자무늬에 알맞은 기호 알고리즘 맞추기
문제와 선택지 답
분석
Ÿ 각 격자무늬 이미지로부터 각각의 알고리즘을 작성해본 후 선택지와 맞춰보거나, 각 알고리즘 선
택지로부터 격자무늬를 색칠해본 후 맞춰보는 방법 중 선택하여 학생들이 알고리즘에 대한 이해
를 확장시키도록 한다.
- 83 -
2. 스테이지2: 실시간 알고리즘, 종이 비행기‘
◦ 개요 : 알고리즘의 개념을 종이 비행기 만들기와 같은 일상생활 속의
활동들과 연관시켜 일상생활 속의 상황을 알고리즘으로 전환시킬 수
있게 한다.
◦ 학습 목표
- 일상생활 속에서 일어나는 다양한 활동들을 명명한다.
- 큰 활동들을 일련의 작은 사건들로 분해한다.
- 순차적인 사건들을 논리적인 명령 구조로 배열한다.
◦ 활동
- 1/3단계 : 언플러그드 활동(생활 속의 알고리즘 작성하기)
주요 화면 1 주요 화면 2 설명
Ÿ 종이 비행기를 접는 과정을 설명서로
만들어 본다.
Ÿ 설명서의 각 지시들에 따라 종이 비행
기를 직접 만들어본다.
Ÿ 이 때, 종이 비행기를 만드는 과정의 각
지시들이 논리적으로 배열되어있음을
알게 한다.
주요 개념
- 84 -
- 2/3 단계 : 제시된 그림을 보고 알맞은 문장 알고리즘 선택하기
보기 화면 문제와 선택지 답
분석
Ÿ 사각형에서 시작, 사각형의 오른쪽에 삼각형 그리기, 사각형 아래에 평행사변형 그리기, 평행사변
형 오른쪽에 삼각형 그리기
Ÿ 선택지가 한글과 영어, 이어진 문장과 나열된 문장 등으로 다양하게 구성되었다.
Ÿ 학생들이 지시를 따라가며 순서대로 모양을 그릴 수 있도록 한다.
- 3/3 단계 : 제시된 문장 알고리즘을 보고 만들 수 없는 그림 선택하기
보기 화면 문제와 선택지 답
분석
Ÿ 각 선택지의 삼각형, 사각형의 크기와 모양에 관계없이 나타내는 도형의 이름만 추상화시킨다.
Ÿ 추상화된 각 도형의 위치를 비교해보며 알고리즘으로 전환시켜 본다.
- 85 -
3. 스테이지3: 미로퍼즐, 순차
◦ 동영상
주요 화면 1 설명
Ÿ 미로퍼즐의 기본적인 이해를 돕기 위해 설명한다.
Ÿ 캐릭터가 돼지를 향해 이동해가는 모습을 나타낸다.
주요 화면 2 설명
Ÿ 미로퍼즐 활동의 화면 구성에 대해 세 부분(실행화면, 도구
상자, 작업화면)으로 나누어 하나하나 설명한다.
◦ 활동
- 1/11단계 : 앞으로 두 번 이동하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [앞으로 이동] 2번 사용
Ÿ 방향 이동 블록(순차문)의 사용을 이해한다.
moveForward();
moveForward();
- 86 -
- 2/11단계 : 앞으로 세 번 이동하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [앞으로 이동] 3번 사용
Ÿ 방향 이동 블록(순차문)의 사용을 이해한다.
moveForward();
moveForward();
moveForward();
- 3/11단계 : 앞으로 이동과 오른쪽으로 회전하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [앞으로 이동] 3번 사용, [오른쪽으로 회전] 1번 사용
Ÿ 방향 이동 블록과 방향 회전 블록(순차문)의 사용을 이해한
다.
moveForward();
moveForward();
turnRight();
moveForward();
- 87 -
- 4/11단계 : 앞으로 이동과 왼쪽, 오른쪽으로 회전하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [앞으로 이동] 3번 사용, [왼쪽으로 회전] 1번 사용, [오른쪽
으로 회전] 1번 사용
Ÿ 방향 이동 블록과 방향 회전 블록(순차문)의 사용을 이해한
다.
moveForward();
turnLeft();
moveForward();
turnRight();
moveForward();
- 5/11단계 : 앞으로 이동과 오른쪽 한 번, 왼쪽 두 번 회전하기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [앞으로 이동] 5번 사용, [오른쪽으로 회전] 1번 사용, [왼쪽
으로 회전] 2번 사용
Ÿ 방향 이동 블록과 방향 회전 블록(순차문)의 반복 사용을 이
해한다.
turnRight();
moveForward();
turnLeft();
moveForward();
moveForward();
moveForward();
turnLeft();
moveForward();
- 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();
- 89 -
- 8/11단계 : 앞으로 이동과 세 번 회전하여 밑으로 가기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [앞으로 이동] 7번 사용, [오른쪽으로 회전] 2번 사용, [왼쪽
으로 회전] 1번 사용
Ÿ 방향 이동 블록과 방향 회전 블록(순차문)의 반복 사용을 이
해한다.
moveForward();
moveForward();
moveForward();
turnRight();
moveForward();
turnLeft();
moveForward();
moveForward();
turnRight();
moveForward();
- 90 -
- 9/11단계 : 앞으로 이동과 여러 번 회전하여 왼쪽으로 가기
실행 전 블록 입력 전 블록 입력 후
분석 스크립트
Ÿ [앞으로 이동] 12번 사용, [오른쪽으로 회전] 4번 사용, [왼쪽
으로 회전] 2번 사용
Ÿ 방향 이동 블록과 방향 회전 블록(순차문)의 반복 사용을 이
해한다.
moveForward();
turnRight();
moveForward();
turnLeft();
moveForward();
moveForward();
turnLeft();
moveForward();
moveForward();
turnRight();
moveForward();
moveForward();
turnRight();
moveForward();
moveForward();
moveForward();
turnRight();
moveForward();
- 91 -
- 10/11단계 : 평가(화면의 도착점에 도달하기 위한 알고리즘 선택하기)
보기 화면 문제와 선택지 답
분석
Ÿ 보기 화면의 캐릭터가 이동해야하는 과정을 블록 순서도로 작성해보고 선택지와 비교하여 본다.
- 11/11단계 : 평가(각 화면에 알맞은 알고리즘 맞추기)
문제와 선택지 답
분석
Ÿ 각 화면에서 캐릭터가 이동해야 하는 과정을 블록 순서도로 작성해본 후, 세 가지 보기 블록 순
서도와 비교해본다.
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석
Code.org분석

Contenu connexe

Similaire à Code.org분석

(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요? (2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요? 내훈 정
 
The roadtocodecraft
The roadtocodecraftThe roadtocodecraft
The roadtocodecraftbbongcsu
 
미래예측 기획 역량 고도화를 위한 기획연구 (임현)
미래예측 기획 역량 고도화를 위한 기획연구 (임현)미래예측 기획 역량 고도화를 위한 기획연구 (임현)
미래예측 기획 역량 고도화를 위한 기획연구 (임현)atelier t*h
 
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션Daniel Juyung Seo
 

Similaire à Code.org분석 (6)

Deep learning overview
Deep learning overviewDeep learning overview
Deep learning overview
 
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요? (2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
 
The roadtocodecraft
The roadtocodecraftThe roadtocodecraft
The roadtocodecraft
 
Shiny Module
Shiny ModuleShiny Module
Shiny Module
 
미래예측 기획 역량 고도화를 위한 기획연구 (임현)
미래예측 기획 역량 고도화를 위한 기획연구 (임현)미래예측 기획 역량 고도화를 위한 기획연구 (임현)
미래예측 기획 역량 고도화를 위한 기획연구 (임현)
 
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션
 

Plus de YoungSik Jeong

정책사랑방 Ict활용교육.수업혁신의 날개를 달다
정책사랑방 Ict활용교육.수업혁신의 날개를 달다정책사랑방 Ict활용교육.수업혁신의 날개를 달다
정책사랑방 Ict활용교육.수업혁신의 날개를 달다YoungSik Jeong
 
운영체제의 개념과 활용
운영체제의 개념과 활용운영체제의 개념과 활용
운영체제의 개념과 활용YoungSik Jeong
 
청탁금지법 질의응답사례 모음(학교 및 학교법인 대상 )
청탁금지법 질의응답사례 모음(학교 및 학교법인 대상 )청탁금지법 질의응답사례 모음(학교 및 학교법인 대상 )
청탁금지법 질의응답사례 모음(학교 및 학교법인 대상 )YoungSik Jeong
 
[팸플릿]2016 한국정보교육학회 하계 학술대회
[팸플릿]2016 한국정보교육학회 하계 학술대회[팸플릿]2016 한국정보교육학회 하계 학술대회
[팸플릿]2016 한국정보교육학회 하계 학술대회YoungSik Jeong
 
서비스경제 발전전략
서비스경제 발전전략서비스경제 발전전략
서비스경제 발전전략YoungSik Jeong
 
2015년 초·중·고 사교육비조사 결과
2015년 초·중·고 사교육비조사 결과2015년 초·중·고 사교육비조사 결과
2015년 초·중·고 사교육비조사 결과YoungSik Jeong
 
붙임1. 2016년 소프트웨어(sw)교육 선도학교 운영 계획
붙임1. 2016년 소프트웨어(sw)교육 선도학교 운영 계획붙임1. 2016년 소프트웨어(sw)교육 선도학교 운영 계획
붙임1. 2016년 소프트웨어(sw)교육 선도학교 운영 계획YoungSik Jeong
 
소프트웨어교육론 전체
소프트웨어교육론 전체소프트웨어교육론 전체
소프트웨어교육론 전체YoungSik Jeong
 
구글 인사드 Hq 간단 분석
구글 인사드 Hq 간단 분석구글 인사드 Hq 간단 분석
구글 인사드 Hq 간단 분석YoungSik Jeong
 

Plus de YoungSik Jeong (9)

정책사랑방 Ict활용교육.수업혁신의 날개를 달다
정책사랑방 Ict활용교육.수업혁신의 날개를 달다정책사랑방 Ict활용교육.수업혁신의 날개를 달다
정책사랑방 Ict활용교육.수업혁신의 날개를 달다
 
운영체제의 개념과 활용
운영체제의 개념과 활용운영체제의 개념과 활용
운영체제의 개념과 활용
 
청탁금지법 질의응답사례 모음(학교 및 학교법인 대상 )
청탁금지법 질의응답사례 모음(학교 및 학교법인 대상 )청탁금지법 질의응답사례 모음(학교 및 학교법인 대상 )
청탁금지법 질의응답사례 모음(학교 및 학교법인 대상 )
 
[팸플릿]2016 한국정보교육학회 하계 학술대회
[팸플릿]2016 한국정보교육학회 하계 학술대회[팸플릿]2016 한국정보교육학회 하계 학술대회
[팸플릿]2016 한국정보교육학회 하계 학술대회
 
서비스경제 발전전략
서비스경제 발전전략서비스경제 발전전략
서비스경제 발전전략
 
2015년 초·중·고 사교육비조사 결과
2015년 초·중·고 사교육비조사 결과2015년 초·중·고 사교육비조사 결과
2015년 초·중·고 사교육비조사 결과
 
붙임1. 2016년 소프트웨어(sw)교육 선도학교 운영 계획
붙임1. 2016년 소프트웨어(sw)교육 선도학교 운영 계획붙임1. 2016년 소프트웨어(sw)교육 선도학교 운영 계획
붙임1. 2016년 소프트웨어(sw)교육 선도학교 운영 계획
 
소프트웨어교육론 전체
소프트웨어교육론 전체소프트웨어교육론 전체
소프트웨어교육론 전체
 
구글 인사드 Hq 간단 분석
구글 인사드 Hq 간단 분석구글 인사드 Hq 간단 분석
구글 인사드 Hq 간단 분석
 

Code.org분석

  • 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단계 : 평가(각 화면에 알맞은 알고리즘 맞추기) 문제와 선택지 답 분석 Ÿ 각 화면에서 캐릭터가 이동해야 하는 과정을 블록 순서도로 작성해본 후, 세 가지 보기 블록 순 서도와 비교해본다.