34
연구 자료 : 2016-01 Code.org 단계별 분석 과제책임자 : 정영식(전주교육대학교) 공동연구원 : 서진화(탄 벌 초 등 학 교 ) 안형진(전주교육대학교) 안신영(전주교육대학교) 전주교육대학교 컴퓨터교육과

Code.org 단계별 분석

Embed Size (px)

Citation preview

Page 1: Code.org 단계별 분석

연구 자료 : 2016-01

Code.org 단계별 분석

과제책임자 : 정영식(전주교육대학교)

공동연구원 : 서진화(탄 벌 초 등 학 교 )

안형진(전주교육대학교)

안신영(전주교육대학교)

전주교육대학교 컴퓨터교육과

Page 2: Code.org 단계별 분석

- ii -

본 연구에서 사용된 용어는 연구진이 임의적으로 만든 것이므로 실

제 Code.org의 내용을 충실하게 설명하지 못한 경우도 있으므로, 참고

할 때 유의하시길 바랍니다. 아울러, 본 자료는 초등학교 소프트웨어

교육 관련 교육과정을 연구하는 데 사용되기를 희망합니다.

Page 3: Code.org 단계별 분석

- iii -

차 례

Ⅰ. 코스 1 ···················································································································· 1가. 방향키 배열(S1) ·········································································································· 1

나. 공통적인 언어로 기호화(S2) ···················································································· 1

다. 드래그 앤 드롭 연습(S3) ·························································································· 1

라. 순차문(S4,S7,S8,S10,S11) ··························································································· 1

마. 디버깅(S5) ···················································································································· 4

바. 생활 속의 알고리즘(S6) ···························································································· 4

사. 프로그래밍 자세(인내심) 학습(S9) ·········································································· 5

아. 반복문(S12,S13,S14,S18) ···························································································· 5

자. 이벤트(S15) ·················································································································· 6

차. 이야기 만들기(S16) ···································································································· 7

카. 개인정보 보호(S17) ···································································································· 7

Ⅱ. 코스 2 ···················································································································· 8가. 기호화 및 프로그래밍(S1) ························································································ 8

나. 생활 속의 알고리즘(S2) ···························································································· 8

다. 순차문(S3,S4) ··············································································································· 8

라. 반복문(S5,S6,S7,S8) ···································································································· 9

마. 디버깅(S9,S10,S11) ··································································································· 11

바. 조건문(S12,S13) ········································································································ 12

사. 2진법(S14) ················································································································· 12

아. 이벤트(S15)=코스1과 동일 ····················································································· 12

자. 게임 만들기(S16) ······································································································ 12

차. 이야기 만들기(S17) ·································································································· 13

카. 개인정보 보호(S18) ·································································································· 13

타. 중첩 반복문(예술가,S19) ························································································· 13

Ⅲ. 코스 3 ·················································································································· 15가. 컴퓨터과학적 사고(S1) ···························································································· 15

나. 순차문과 반복구조(S2:미로퍼즐) ··········································································· 15

다. 순차문과 반복구조(S3:예술가) ··············································································· 15

라. 함수문(S4,S5,S6,S9) ·································································································· 16

마. 조건문(S7,S8) ············································································································· 17

바. 생활 속의 알고리즘(S10) ························································································ 18

사. 중첩 반복 및 While 반복문(S11,S12,S13) ··························································· 18

아. 디버깅(S14) ················································································································ 20

Page 4: Code.org 단계별 분석

- iv -

자. 게임 만들기(S15,S17) ······························································································ 20

차. 이야기 만들기(S16) ·································································································· 21

카. 인터넷(S18) ················································································································ 21

타. 클라우드소싱(S19) ···································································································· 21

파. 정보 보호(S20) ·········································································································· 21

하. 반복구조와 패턴(S21) ······························································································ 21

Ⅳ. 코스 4 ·················································································································· 23가. 생활 속의 알고리즘(S1) ·························································································· 23

나. 순차문, 반복구조, 조건문(S2,S3) ··········································································· 23

다. 추상화와 변수(S4,S5,S6,S7) ···················································································· 24

라. For 반복문(S8,S9,S10,S11) ······················································································ 25

마. 함수문(예술가, S12) ································································································· 26

바. 매개변수와 함수(S13,S14,S15,S16) ······································································· 27

사. 2진법(S17,S18) ·········································································································· 29

Page 5: Code.org 단계별 분석

- 1 -

Ⅰ. 코스 1

가. 방향키 배열(S1)

1) 화살표 종이 배열하기(UN)

2) 온라인 상에서 올바른 화살표 방향을 선택[선다형]

나. 공통적인 언어로 기호화(S2)

1) 수행 명령을 몸짓 언어(상징적 기호)로 표현 및 이해(UN)

2) 온라인 상에서 공통 언어인 화살표로 올바르게 배열한 것을 선택[선다형]

다. 드래그 앤 드롭 연습(S3)

1) 그림 전체를 드래그 앤 드롭하기

2) 두 조각을 드래그 앤 드롭하여 퍼즐 맞추기

가) 아래 조각 맞추기

나) 위 조각 맞추기

3) 붙어있지 않은 세 조각을 드래그 앤 드롭하여 퍼즐 맞추기

가) 조각 순서 그대로 배열

나) 조각 순서를 바꾸어 배열

4) 붙어있는 세 조각을 드래그 앤 드롭하여 퍼즐 맞추기

가) 붙어있는 조각들을 분리하여 순서를 바꿔 배열

5) 블록 알고리즘에서 블록을 드래그 앤 드롭하기

가) 블록 하나를 옮겨 알고리즘 완성

나) 블록 세개를 옮겨 알고리즘 완성

6) 평가 : 붙어있는 세 조각을 드래그 앤 드롭하여 퍼즐 맞추기

가) 붙어있는 조각들을 분리하여 순서를 바꿔 배열

라. 순차문(S4,S7,S8,S10,S11)

1) 미로퍼즐(엥그리버드, S4)

가) [동영상] 미로 퍼즐의 해결 방법 설명

나) 한 방향으로 이동

(1) 왼쪽 두 칸(방향 지시 있음)

(2) 오른쪽 두 칸(방향 지시 있음)

(3) 아래쪽 두 칸(방향 지시 있음)

(4) 위쪽 두 칸(방향 지시 있음)

Page 6: Code.org 단계별 분석

- 2 -

(5) 오른쪽 세 칸(방향 지시 없음)

다) 두 방향으로 이동

(1) 왼쪽과 아래쪽(방향 지시 없음)

(2) 오른쪽과 위쪽(방향 지시 없음)

(3) 두 방향이 섞여있음(방향 지시 없음)

라) 세 방향으로 이동

(1) 블록 다섯 개 사용(섞여 있지 않음)

(2) 블록 일곱 개 사용(섞여 있음)

마) 평가

(1) 두 방향으로 이동

(가) 오른쪽과 아래쪽

(2) 세 방향으로 이동

(가) 블록 다섯 개 사용(섞여 있음)

(3) 두 방향의 블록을 사용하여 올바르게 이동한 것을 선택[선다형]

(4) 한 방향 또는 두 방향의 블록 사용하여 올바르게 이동한 것을 맞추기[맞추기]

2) 꿀벌(S7)

가) [동영상] 꿀벌 미로 퍼즐의 해결 방법 설명

나) 꽃꿀 1개 얻어 꿀 1개 만들기

(1) 한 방향 이동{T1}

(2) 두 방향 이동

(가) 아래쪽 2번 이동 후 오른쪽 2번 이동{T2}

(나) 왼쪽 이동 후 위쪽 이동을 2번 반복{T3}

다) 꽃꿀 2개 얻어 꿀 2개 만들기

(1) 세 방향 이동{T4}

(2) 꿀 만들기를 두 개로 분리{T6}

(3) 이동 범위가 확장되었을 때 꽃꿀 얻기를 두 개로 분리{T8}

라) 꽃꿀 3개 얻어 꿀 3개 만들기

(1) 꽃꿀 얻기를 두 개로 분리{T5}

마) 꽃꿀 3개 얻어 꿀 2개 만들기

(1) 꽃꿀 얻기를 세 개로 분리{T7}

(2) 꽃꿀 얻기와 꿀 만들기를 각각 두 개로 분리{T10}

바) 꽃꿀 3개 얻어 꿀 1개 만들기

(1) 꽃꿀 얻기를 두 개로 분리{T9}

(2) 이동 범위가 확장되었을 때 꽃꿀 얻기를 두 개로 분리{T11}

사) 평가

(1) 꽃꿀 1개 얻어 꿀 1개 만들기

(가) 두 방향 이동

(2) 꽃꿀 2개 얻어 꿀 2개 만들기

Page 7: Code.org 단계별 분석

- 3 -

(가) 꽃꿀 얻기를 두 개로 분리

(3) 꽃꿀의 개수 더하기[선다형]

3) 예술가

가) [동영상] 예술가 프로그램의 구성 요소들에 대해 설명

나) 간단한 선 그리기(S8)

(1) 한 방향 이동

(가) 블록 1개 사용{T1}

(나) 블록 2개 사용{T2,T5}

(2) 두 방향 이동{T3}

(3) 세 방향 이동{T4}

(4) 한 방향 점프

(가) 1번 점프{T6}

(나) 3번 점프{T7}

(5) 두 방향 점프{T8}

(6) 평가

(가) 두 방향 이동

(나) 한 방향 점프

(다) 올바른 두 방향 이동 블록 선택[선다형]

(라) 올바른 네 방향 이동 블록 선택[선다형]

다) 모양(사각형) 그리기(S10)

(1) 정사각형 그리기

(가) 위쪽부터 그리기{T1}

(나) 점프하여 위쪽부터 그리기{T2}

(다) 밑쪽부터 그리기{T3}

(2) 직사각형 그리기{T4,T5}

(3) 정사각형 2개로 직사각형 그리기{T6}

(4) 가로가 긴 직사각형 그리기{T7}

(5) 평가

(가) 점프하여 정사각형 밑쪽부터 그리기

(나) 여러 가지 모양들 중 동일한 모양 맞추기[맞추기]

(다) 여러 가지 방향블록들을 사용하여 자유롭게 그리기[자유 시간]

4) 글자맞추기(S11)

가) [동영상] 말하는 꿀벌(글자맞추기)를 하는 방법 설명

나) 한 방향 이동

(1) 오른쪽으로 이동(방향 지시 있음)

(2) 아래쪽으로 이동(방향 지시 있음)

(3) 왼쪽으로 이동(방향 지시 있음)

(4) 위쪽으로 이동(방향 지시 있음)

다) 두 방향 이동

Page 8: Code.org 단계별 분석

- 4 -

(1) 섞여 있지 않음(방향 지시 있음)

(2) 섞여 있음(방향 지시 없음)

라) 평가

(1) 두 방향 이동(방향 지시 없음)

(2) 올바른 두 방향 이동 알고리즘 선택[선다형]

(3) 주어진 알고리즘을 보고 찾을 수 있는 글자 선택[선다형]

마. 디버깅(S5)

1) [동영상] 체조를 예시로 디버깅에 대한 개념 설명

2) 미로퍼즐(엥그리버드)

가) 블록 추가하기

(1) 1개 추가

(가) 끝에 추가{T1}

(나) 중간에 추가{T2}

(2) 2개 추가

(가) 중간에 추가{T8}

나) 블록 제거하기

(1) 2개 제거

(가) 중간에 제거{T3}

(2) (복잡한 알고리즘에서)1개 제거

(가) 중간에 제거{T5,T6}

(3) (복잡한 알고리즘에서)3개 제거

(가) 중간에 제거{T7}

다) 블록 순서 변경하기{T4}

라) 블록 수정하기

(1) 2개 제거, 2개 추가{T9,T10}

마) 평가

(1) 블록 1개 제거하기

(2) 올바른 방향블록을 선택하여 추가하기[선다형]

바. 생활 속의 알고리즘(S6)

1) 씨앗심기의 과정을 단계별로 나누어 알고리즘으로 만들기(UN)

2) 이 닦기의 과정을 단계별로 나눈 알고리즘에서 첫 단계 선택하기[선다형]

3) 씨앗심기의 과정을 단계별로 나눈 알고리즘에서 중간 단계 선택하기[선다형]

Page 9: Code.org 단계별 분석

- 5 -

사. 프로그래밍 자세(인내심) 학습(S9)

1) 타워 쌓기 과정에서의 인내심 학습(UN)

2) 예술가 프로그래밍에 인내심 적용[알고리즘 작성]

아. 반복문(S12,S13,S14,S18)

1) 루프에 대한 이해(S12)

가) 워크시트에 주어진 춤을 보고 반복 동작을 루프로 묶어 효율성 인지(UN)

나) 주어진 순차문을 루프를 사용하여 간단히 하기

2) 미로퍼즐(앵그리 버드)(S13)

가) 순차문 만들기

나) 루프 한 개 사용하기

(1) 툴 박스에 반복 횟수 미리 지정(T2)

(2) 툴 박스에 반복 횟수 미리 지정되지 않음(T3)

(3) 작업 영역에 반복 횟수 미리 지정되지 않음-루프 안에 두 개의 거리 이동 블록 사용하기

(T8,T9,T10)

다) 루프 두 개 사용하기

(1) 작업 영역에 반복 횟수 미리 지정(T4)

(2) 작업 영역에 반복 횟수 미리 지정되지 않음(한 개의 거리 이동 블록도 사용)(T5)

(3) 작업 영역에 반복 횟수 미리 지정되지 않음(두 개의 거리 이동 블록도 사용)(T7)

라) 루프 세 개 사용하기

(1) 작업영역에 반복 횟수 지정되지 않음(T6)

마) 평가

(1) 루프 한 개 사용하기

(가) 작업 영역에 반복 횟수 미리 지정되지 않음(한 개의 거리 이동 블록도 사용)

(2) 루프 두 개 사용하기

(가) 작업 영역에 반복 횟수 미리 지정되지 않음

(3) 순차문을 하나의 루프로 만들기(반복 횟수 선택하는 것 아님)[선다형]

(가) 루프 안에 한 개의 블록

(나) 루프 안에 두 개의 블록

3) 꿀벌(S14)

가) 순차문 만들기(T1)

나) [동영상] 벌집에서 꽃꿀을 얻거나 꿀을 만드는 과정에서 반복되는 과정들을 반복문으로 설

다) 루프 한 개 사용하기

(1) 루프 안에 한 개의 블록(T2)

(2) 루프 안에 네 개의 블록(T6)

라) 루프 세 개 사용하기(루프 안에 다양한 블록 사용)(T3)

Page 10: Code.org 단계별 분석

- 6 -

(1) 루프 안에 한 개의 블록(T3)

(2) 루프 안에 두 개의 블록(T4)

(3) 루프 안에 네 개의 블록(T8)

마) 루프 두 개 사용하기

(1) 루프 안에 세 개의 블록(T5)

(2) 루프 안에 네 개의 블록(T7)

(3) 루프 안에 각 두 개의 블록(이동할 수 있는 공간 확장)(T9)

바) 루프 네 개 사용하기

사) 평가

(1) 루프 한 개 사용하기

(가) 루프 안에 네 개의 블록

(2) 루프 두 개 사용하기

(가) 루프 안에 세 개의 블록

(3) 루프와 순차문 알고리즘 짝 맞추기[맞추기]

4) 예술가(S18)

가) 순차문 만들기(T1)

나) 루프 한 개 사용하기

(1) 루프 안에 거리 이동 블록 사용하기

(가) 루프 안에 블록 한 개(작업 영역에 반복될 블록과 횟수 주어지지 않음)(T2)

(나) 루프 안에 블록 네 개(작업 영역에 반복될 블록 주어짐)(T4)

(다) 루프 안에 블록 두 개(작업 영역에 반복될 횟수 주어짐)(T5)

(라) 루프 안에 블록 세 개(작업 영역에 반복될 블록과 횟수 주어지지 않음)(T8)

(2) 루프 안에 거리 이동 블록과 점프 이동 블록 사용하기

(가) 작업 영역에 반복될 블록 주어짐(T3)

다) 루프 두 개 사용하기

(1) 루프 안에 거리 이동 블록 사용하기

(가) 루프 안에 블록 각 두 개(작업 영역에 반복될 횟수 주어짐)(T6)

(2) 루프 안에 거리 이동 블록과 점프 이동 블록 사용하기

(가) 루프 안에 블록 각 두 개(작업 영역에 반복될 횟수 주어짐)(T7)

라) 평가

(1) 루프 한 개 사용하기

(가) 루프 안에 거리 이동 블록 사용하기

① 루프 안에 블록 두 개(작업 영역에 반복될 블록과 횟수 주어지지 않음)

(2) 툴 박스에 추가된 루프 블록을 사용하여 자유롭게 그리기[자유롭게 그리기]

자. 이벤트(S15)

1) 주어진 종이에 그려진 버튼을 누르면 아이들이 그 버튼에 지정된 행동을 하게 함으로써

이벤트 개념 이해시키기(UN)

Page 11: Code.org 단계별 분석

- 7 -

2) 블록에 따라 지정된 행동을 올바르게 나타낸 그림을 맞추도록 하여 이벤트 기반 행동

연습시키기[맞추기]

차. 이야기 만들기(S16)

1) [동영상] Play Lab에서 이야기를 만드는 방법 설명

2) 캐릭터가 말하도록 하는 블록 사용하기

3) 두 개의 블록 연결시키기

4) 캐릭터가 움직이도록 하는 블록 사용하기

5) '~할 때' 블록 사용하기

6) 캐릭터의 표정 설정하는 블록 사용하기

7) 전 단계들에서 볼 수 없던 블록들을 사용하여 자신만의 이야기 만들기

카. 개인정보 보호(S17)

1) 학생들에게 공유하지 말아야 할 정보를 알려주고 사적인 정보가 담기지 않은 사용자이

름 만들도록 하기[UN]

2) 공유하지 않아야 할 정보 선택하기[선다형]

Page 12: Code.org 단계별 분석

- 8 -

Ⅱ. 코스 2

가. 기호화 및 프로그래밍(S1)

1) 문장으로 표현된 명령을 기호 프로그램으로 표현 및 이해(UN)

2) 온라인 상에서 올바르게 기호 프로그램으로 나타낸 것을 선택[선다형]

3) 온라인 상에서 각 격자무늬에 알맞은 기호 프로그램을 맞추기[맞추기]

나. 생활 속의 알고리즘(S2)

1) 종이 비행기를 만드는 과정을 단계별로 나누어 알고리즘으로 작성하기(UN)

2) 제시된 그림을 보고 알맞은 문장 알고리즘을 선택[선다형]

3) 제시된 문장 알고리즘을 보고 만들 수 없는 그림 선택[선다형]

다. 순차문(S3,S4)

1) 미로퍼즐(엥그리버드, S3)

가) [동영상] 미로 퍼즐의 기본적인 방법과 화면 구성에 대해 설명

나) 앞으로 이동하기

앞으로 이동 : 이전의 위아래, 오른쪽, 아래쪽 이동과 달리 캐릭터가 바라보고 있는 방향이 중요

(1) 앞으로 두 번 이동하기(T1)

(2) 앞으로 세 번 이동하기(T2)

다) 회전하기

(1) 회전하기 블록 한 번 사용(T3)

(2) 회전하기 블록 두 번 사용(T4-T7)

(3) 회전하기 블록 세 번 사용(T5-T6-T8)

(4) 회전하기 블록 여러 번 사용(T9)

(5) 평가

(가) 도착점에 도달하기 위한 알고리즘 선택(회전하기 블록 두 번 사용)[선다형]

(나) 각 화면의 도착점에 도달하기 위한 알고리즘 맞추기(회전하기 블록 1개, 2개, 3개 사용)[맞

추기]

2) 예술가(S4)

가) 거리이동블록 : 이동할 거리를 직접 입력 가능한 블록

나) 거리점프블록 : 점프할 거리를 직접 입력 가능한 블록

다) 각도선택블록 : 제시된 각도들 중 회전할 각도를 선택할 수 있는 블록

라) 각도입력블록 : 회전할 각도를 직접 입력가능한 블록

마) 주어진 거리이동블록과 각도선택블록으로 정사각형 절반 그리기

바) 주어진 각도선택블록과 거리이동블록으로 정사각형 나머지 그리기

Page 13: Code.org 단계별 분석

- 9 -

사) 각도선택블록과 거리이동블록으로 직사각형 나머지 그리기(힌트로 길이 제시)

아) 주어진 거리이동블록과 거리점프블록, 각도선택블록으로 그리기

자) 주어진 거리이동블록과 각도선택블록으로 정사각형 그리기

차) 거리이동블록과 각도선택블록으로 정삼각형 그리기(각도 제시 없음)

카) 각도선택블록과 거리이동블록으로 정사각형 그리기(각도 제시 없음, 45° 회전)

타) 거리이동블록과 각도선택블록으로 작은 정사각형 두 개 그리기(힌트로 길이 제시)

파) 거리이동블록과 각도선택블록으로 큰 정사각형 두 개 그리기(힌트로 길이 제시)

하) [자유 시간]

거) 평가

(1) 거리이동블록과 각도선택블록으로 정사각형 절반 그리기(힌트로 길이 제시)

(2) 각 다각형을 그리기 위한 알고리즘 맞추기[맞추기]

라. 반복문(S5,S6,S7,S8)

1) 반복구조 설명(S5)

가) 일상생활에서 반복구조를 사용하는 예시(UN)

나) 제시된 알고리즘을 반복문을 사용한 알고리즘으로 바르게 바꾼 것을 선택[선다형]

2) 미로퍼즐(엥그리버드와 유령, S6)

가) 앞으로 다섯 번 이동

(1) 반복문 사용X(T1)

(2) 반복문 사용(T2,T3)

나) [동영상] 반복문(루프)의 개념과 반복블록 사용 방법 설명

다) 앞으로 이동과 방향 회전

(1) 반복문 한 번 사용(T5)

(2) 반복문 두 번 사용(T4)

라) 반복문 안에 앞으로 이동과 방향 회전 포함

(1) 방향회전 한 번 포함(T6,T8)

(2) 방향회전 두 번 포함(T7-T10,T11)

마) 반복문 여러 번 사용(중첩 가능, T9)

바) 평가

(1) 반복문 안에 방향회전 한 번 포함

(2) 이동해야 할 경로에 알맞은 반복문 알고리즘 선택[선다형]

(3) 반복문이 포함된 알고리즘들 중 화면의 경로에 알맞은 것끼리 맞추기[맞추기]

3) 예술가(S7)

가) 정사각형 그리기

(1) 반복문 사용X(T1)

(2) 반복문 사용(T2)

나) [동영상] 예술가 프로그램에서 실제로 반복블록을 사용하는 방법 제시

Page 14: Code.org 단계별 분석

- 10 -

다) 주어진 알고리즘에 반복문 추가하기

(1) 선 8개 그리기(T3)

(2) 오른쪽으로 1°씩 회전하며 원을 그리기(T6)

라) 원 내부를 색칠하기 위한 알고리즘의 반복횟수 설정하기(T4)

마) 반복문 사용하여 정팔각형 그리기 위한 알고리즘 작성하기(T5)

바) V자 그리기(응용)

(1) 거리이동블록과 각도선택블록으로 V자 그리기(팝업창에 이동 거리 힌트 제시)(T7)

(2) V자 8번 반복하여 그리기(T8)

(3) V자 24번 반복하여 그리기(각도 선택 블록 사용)(T9)

사) 마름모 그리기(응용)

(1) 반복문 사용하여 마름모 그리기(팝업창에 이동 거리 힌트 제시)(T10)

(2) 마름모 3번 반복하여 그리기(T11)

(3) 마름모 10번 반복하여 그리기(각도 선택 블록 사용)(T12)

아) [자유 시간]

자) 평가

(1) 여러 다각형을 그리기 위한 적절한 반복문 알고리즘 맞추기[맞추기]

(2) 제시된 알고리즘으로 그릴 수 있는 그림 선택하기[선다형]

(3) 반복문을 사용한 알고리즘을 보고 그릴 수 있는 그림 선택하기[선다형]

4) 꿀벌(S8)

앞으로 이동 : 이전의 위아래, 오른쪽, 아래쪽 이동과 달리 캐릭터가 바라보고 있는 방향이 중요

가) '앞으로 이동 후 꽃꿀 1개 얻기'를 2번 반복

(1) 반복문 사용X(T1)

(2) 반복문 사용(T2)

나) [동영상] 꿀벌 프로그램에서 실제로 반복블록을 사용하여 문제를 해결하는 모습 제시

다) 반복문을 사용하여 꽃꿀 4개 얻기(T3)

라) 반복문을 사용하여 꽃꿀 4개를 얻고 꿀 4개를 만들기(T4)

마) 방향 회전 블록이 포함된 알고리즘에 반복문 추가하기(T5)

바) 방향 회전 블록이 포함된 알고리즘에 반복문 추가한 후 꿀을 3개 만들기 위한 반복문 추가

하기(T6)

사) 반복문 알고리즘 작성하기

(1) 꽃꿀 1개 얻기(방향 회전 블록 포함)(T7-T11)

(2) 꽃꿀 1개 얻고 꿀 1개 만들기(T8)

(3) 꽃꿀 2개 얻고 꿀 2개 만들기(T9)

(4) 꽃꿀 1개 얻고 꿀 1개 만들기(방향 회전 블록 포함)(T10-T12)

아) 평가

(1) 반복문을 사용하여 꽃꿀 2개 얻기

(2) 꽃꿀을 1개씩 3번 얻기 위한 올바른 알고리즘 선택하기[선다형]

Page 15: Code.org 단계별 분석

- 11 -

마. 디버깅(S9,S10,S11)

5) 릴레이 프로그래밍(S9)

가) 친구들의 프로그램에서 오류 발견 및 수정하기(UN)

나) 격자무늬를 프로그램으로 작성해보고 오류 발견하기[선다형]

6) 꿀벌(디버깅,S10)

가) [동영상] 디버깅의 개념을 프로그램에 적용시키기 위해 'Step'이라는 버튼을 사용하여 한 단

계씩 문제해결 과정을 볼 수 있다는 것을 설명

나) 반복 횟수 수정하기(T1,T5)

(1) 앞으로 이동 1개 추가하고 반복 횟수 1번 수정하기(T6)

(2) 앞으로 이동 1개 추가하고 반복 횟수 2번 수정하기(T7)

(3) 꿀 만들기를 꽃꿀 얻기로 수정하고 반복 횟수 1번 수정하기(T9)

다) 블록 제거하기

(1) 앞으로 이동 블록 1개 제거하기(T2)

(2) 앞으로 이동 블록 2개 제거하기(T8)

라) 회전 방향 수정하기

(1) 회전 방향 1번 수정하기(T3)

(2) 꽃꿀 얻기 1개 추가하고 회전 방향 수정하기(T4)

마) 꿀 만들기 블록 순서 이동하기(T10)

바) 평가

(1) 반복횟수 수정과 회전 방향 수정하기

7) 예술가(디버깅,S11)

가) [동영상] 주어진 시퀀스를 실행해보며 오류를 발견하고 수정하는 방법을 설명

나) 이동 거리 수정하기(T1)

다) 회전각도 2번 수정과 이동 거리 1번 수정하기(T2)

라) 힌트(팝업창)를 보고 회전 각도를 파악하여 수정하기(T3,T8)

마) 거리 이동 블록 1개 제거하기(T4)

바) 거리 이동 블록을 거리 점프 블록으로 변경하고 이동 거리 수정하기(T5)

사) 거리 점프 블록 추가와 앞으로 이동을 뒤로 이동으로 변경, 회전각도 수정하기(T6)

아) 중첩 반복문의 반복 횟수 수정하기(T7)

자) 힌트(팝업창)를 보고 이동 거리를 파악하여 수정하기(T9)

차) 반복 횟수 파악하여 수정하기(T10)

카) 평가

(1) 힌트(팝업창)을 보고 이동 거리 수정하기

(2) 원을 그리기 위한 알고리즘에서 오류 부분 발견하기

어두운 부분에 오류 부분을 하이라이트 하여 표시

Page 16: Code.org 단계별 분석

- 12 -

바. 조건문(S12,S13)

8) 조건(S12)

가) 카드 게임을 조건문이 사용되는 예시로 설명하기(UN)

나) 제시된 조건문 프로그램에 따른 올바른 결과값 선택하기[선다형]

9) 꿀벌(조건선택,S13)

가) 반복문을 2번 사용하여 꽃꿀 얻는 알고리즘 작성하기(T1)

나) 반복문을 5번 사용하여 꽃꿀 얻고 꿀 만드는 알고리즘 작성하기(T2)

다) [동영상] 조건문 블록의 구성에 대해 설명

라) 조건문 사용

(1) 주어진 조건문에 꽃꿀 얻기 블록 추가 하기(T3)

(2) 조건문 사용하여 꽃꿀이 1개일 때 꽃꿀을 얻는 알고리즘 작성하기(T4)

(3) 꽃꿀 얻는 조건문 2번 사용하여 알고리즘 작성하기(T5)

(4) 꽃꿀의 개수가 정해져있을 때와 정해져 있지 않을 때를 구분하여 조건문 사용해 알고리즘 작성하

기(T6)

(가) 반복문 사용 추가(T7)

(5) 반복문과 조건문 여러번 사용하여 꽃꿀 얻는 알고리즘 작성하기(T8)

(가) 꽃꿀 얻고 꿀 만들기(T11)

(6) 반복문 안에 조건문을 포함시켜 알고리즘 작성하기(T9)

(가) 단순 반복문 하나 추가(T10)

(나) 방향 회전 블록 추가(T12)

마) 평가

(1) 꽃꿀의 개수가 정해져있을 때와 정해져 있지 않을 때를 구분하여 조건문 사용해 알고리즘 작성하

기 + 반복문 안에 조건문을 포함시켜 알고리즘 작성하기(단순 반복문 하나 추가)

(2) 꽃꿀의 개수 비교하기[선다형]

(3) 반복문과 조건문을 사용한 알고리즘들 중 화면의 꽃꿀을 얻기 위한 올바른 것 선택하기[선다형]

사. 2진법(S14)

10) 일상생활의 예들을 2진법 체계로 설명하기(UN)

11) 제시된 그림을 보고 각 문자를 올바르게 2진법 표기로 바꾼 것끼리 맞추기[맞추기]

12) 화살표와 색칠하기가 각각 2진법의 두 가지 선택 조건임을 알고 격자무늬를 프로그램

으로 작성하기[선다형]

아. 이벤트(S15)=코스1과 동일

자. 게임 만들기(S16)

13) [동영상] 이벤트 핸들러 블록 내부에 있는 프로그래밍 코드로 인해 플래피 버드 프로

Page 17: Code.org 단계별 분석

- 13 -

그램의 기능들을 구현할 수 있음을 설명

14) 초기 설정하기(클릭할 때 펄럭이며 소리 출력)

15) 게임 종료 설정하기

16) 캐릭터 스피드 설정하기

17) 캐릭터 소리 출력과 점수 획득 설정하기

18) 캐릭터 소리 출력 추가와 게임 종료 설정하기

19) 캐릭터 초기 설정 후 점수 획득 확인하기

20) 캐릭터 소리 출력과 랜덤 배경 설정하기

21) 캐릭터 랜덤 설정과 랜덤 배경 설정하기

22) 물체에 부딪칠 때 점수가 0이 되도록 설정하기

23) [자유롭게 게임 만들기]

차. 이야기 만들기(S17)

24) [동영상] Play Lab에서 방향키와 블록들을 조작하여 다양한 효과를 낼 수 있음을 설명

25) 실행했을 때 캐릭터가 문장을 말하도록 설정하기

26) 실행했을 때 캐릭터1과 캐릭터2가 대화 주고 받게 설정하기

27) 실행했을 때 캐릭터1이 오른쪽으로 이동하여 캐릭터2를 만나게 설정하기

28) 캐릭터1이 오른쪽으로 (100이상) 이동할 때 캐릭터2에 닿으면 말을 하도록 설정하기

29) 캐릭터를 클릭했을 때 말을 하도록 설정하기

30) 각 방향키를 눌렀을 때 그 방향으로 움직이도록 설정하기

31) 캐릭터2가 위아래로 무한반복 움직이도록 설정하기

32) 캐릭터1이 위아래로 무한반복 움직이는 캐릭터2에 닿았을 때 소리를 내며 말하도록 설

정하기

33) 캐릭터1이 캐릭터2를 피해 캐릭터3에 닿았을 때 점수가 올라가도록 설정하기

34) 배경을 랜덤으로 설정하고 캐릭터1이 랜덤한 속도로 움직이도록 설정하기

35) [자신만의 이야기 만들기]

카. 개인정보 보호(S18)

36) 'Follow the digital trail' 을 읽고 디지털 흔적에 대한 개념 알기(UN)

37) 디지털 흔적을 가장 많이 남긴 동물 선택하기[선다형]

타. 중첩 반복문(예술가,S19)

38) 반복문을 세 번 실행하는 중첩 반복문 만들기(T1)

Page 18: Code.org 단계별 분석

- 14 -

39) 반복문을 여섯 번 실행하는 중첩 반복문 만들기(T2)

40) 주어진 알고리즘에 각도 입력 블록 추가하고 루프로 묶기(T3,T4,T9,T11)

41) 주어진 알고리즘에 거리 점프 블록 추가하고 루프로 묶기(T5,T6,T8)

42) 주어진 알고리즘에 거리 점프 블록과 각도 입력 블록 추가하고 루프로 묶기(T7)

43) 주어진 알고리즘 루프로 묶기(복잡한 그림)(T10,T12)

44) [자유 시간]

Page 19: Code.org 단계별 분석

- 15 -

Ⅲ. 코스 3

가. 컴퓨터과학적 사고(S1)

1) 공통점에 동그라미 표시하고, 차이점에는 줄을 그어 패턴 맞추기와 추상화를 연습하고

알고리즘을 만들어 보도록 하기(UN)

2) 분석, 패턴 맞추기, 추상화하여 알고리즘 만들기[선다형]

3) 패턴 맞추기와 추상화 하기[선다형]

나. 순차문과 반복구조(S2:미로퍼즐)

1) 순차문 사용하기

가) 앞으로 이동 블록 사용하기(T1)

나) 앞으로 이동 블록과 방향 회전 블록 사용하기(T2-T3)

2) [동영상] 미로퍼즐 프로그램의 기본적인 방법과 반복블록 사용 제시

3) 루프 사용하기(반복 횟수 직접 입력하기)

가) 루프 한 개 사용하기

(1) 루프 안에 블록 한 개(T4)

(2) 루프 안에 블록 세 개(루프 안에 방향 회전 블록 사용)(T6)

다) 루프 두 개 사용하기(T5)

라) 루프 세 개 사용하기(T7)

마) 루프 다섯 개 사용하기(T8)

4) '~할 때까지 반복' 블록 사용하기

가) Until 루프 안에 앞으로 이동 블록 사용하기(T9)

나) Until 루프 안에 앞으로 이동 블록과 방향 회전 블록 사용하기

(1) Until 루프 안에 세 개의 블록(T10)

(2) Until 루프 안에 네 개의 블록(T11,T12)

5) 평가

가) '~할 때까지 반복' 블록 사용하기

(1) Until 루프 안에 앞으로 이동 블록과 방향 회전 블록 사용하기

(가) Until 루프 안에 네 개의 블록

나) 순차문, 반복 구조 등 미로에 맞는 알고리즘 맞추기[맞추기]

다) 미로에 알맞는 알고리즘 선택하기(루프 두 개 사용하기)[선다형]

다. 순차문과 반복구조(S3:예술가)

1) 순차문 만들기

가) 각도 미리 툴 박스에 지정되어 있음(S1)

나) 작업 영역과 툴 박스에 힌트 주어지지 않음(팝업창에 회전할 각도와 이동할 거리에 대한 힌

Page 20: Code.org 단계별 분석

- 16 -

트 줌)(S7-S8)

2) 루프 사용하기

가) 작업영역에 반복될 블록 주어지고 루프 사용하여 반복될 횟수 지정하기

(1) 반복될 블록에 루프 없음(S2-S4-S5)

(2) 반복될 블록에 루프 있음(거리 이동 블록도 추가해야함)(S10)

나) 작업 영역에 힌트 주어지지 않음(각도 툴 박스에 지정되어 있음)(S3)

(1) 둘레의 길이를 통해 이동할 거리 유추

다) 작업 영역에 반복될 블록도 주어지고 반복될 횟수도 지정되어 있고 회전 방향과 각도 정하

기(S6)

라) 작업영역과 툴 박스에 힌트 주어지지 않음(팝업창에 이동할 거리에 대한 힌트가 주어짐)(S9)

마) 루프 안에 점프 이동 블록 사용하기(팝업창에 길이 주어짐)(S11)

3) 평가

가) 루프 사용하기

(1) 작업영역과 툴 박스에 힌트 주어지지 않음(팝업창에 길이와 각도에 대한 힌트 주어짐)

나) 주어진 조건에 맞는 알고리즘 선택하기(순차문)[선다형]

다) 대칭인 모양 선택하기[선다형]

라) [자유롭게 그리기]

라. 함수문(S4,S5,S6,S9)

1) 함수 이해하기(S4)

가) 생활 속의 활동을 함수화하고 함수로 프로그램을 구성할 수 있음을 이해하기(UN)

나) 서로 다른 함수 구성으로 동일한 프로그램 만들기

다) 함수로 구성한 프로그램이 의미하는 단어 맞추기

2) 예술가(함수)(S5)

가) 루프 사용하기(T1)

나) [동영상] 함수문을 작성하고 원하는 때 호출하여 프로그램을 쉽게 작성할 수 있음을 제시

다) 주어진 함수를 사용하여 알고리즘 만들기

(3) 순차문 만들기(T2)

(4) 루프 안에 함수 사용하기(T4-T6-T7)

(5) 주어진 함수 사용하여 자유롭게 그림 그리기(T8)

(6) 두 개의 함수 사용하여 알고리즘 만들기(T9)

라) 함수 수정하여 알고리즘 만들기(T3)

마) 함수 수정하기(T5)

바) 평가

(1) 주어진 함수를 사용하여 알고리즘 만들기[선다형]

(가) 순차문 만들기

Page 21: Code.org 단계별 분석

- 17 -

3) 꿀벌(함수)(S6)

가) 루프 사용하기(T1)

나) [동영상] 함수를 농구 기술에 비유하여 그 효과와 사용방법을 제시

다) 주어진 함수 사용하여 알고리즘 만들기

(1) 순차문 만들기(T2)

(2) 루프 안에 함수 사용하기(T3-T4)

라) 함수 수정하기(T5)

마) 함수 수정하여 알고리즘 만들기(T6)

바) 함수 구성하기(T7-T8)

사) 함수를 구성하고 알고리즘 만들기(T9)

아) 평가

(1) 주어진 함수 사용하여 알고리즘 만들기

(가) 순차문 만들기

(2) 함수를 구성하고 알고리즘 만들기

4) 노래에서 함수를 이해하고 함수의 효율성 인지하기(S9)

가) 노래에서 코러스 찾는 활동을 통해 함수 이해하기(UN)

나) 노래에서 코러스 부분 찾아내기

마. 조건문(S7,S8)

1) 꿀벌(조건선택)(S7)

가) [동영상] 꽃꿀의 개수를 알 수 없을 때 조건문을 사용하여 꽃꿀을 얻을 수 있다고 설명

나) if 블록 사용하기

(1) 루프와 if블록 사용하기(T1)

(2) 루프 안에 if블록 사용하기(T2,T3)

다) if~else 블록 사용하기

(1) 순차문 만들기(T4)

(2) 루프 안에 if~else블록 사용하기(T5)

라) if~else 블록 안에 if~else블록 사용하기

(1) 미리 else블록 안에 if블록 추가되어 있음(T6)

(2) if/else블록 안에 if~else블록 사용된 함수를 구성하고 블록 알고리즘 만들기(꽃꿀 얻기)(T7)

(3) if~else 블록 안에 if~else블록 사용된 함수 구성하기(꽃꿀 얻기와 꿀 만들기)(T8)

마) 평가

(1) if~else 블록 안에 if~else블록 사용하기

(가) if~else블록 안에 if~else블록이 사용되는 미완성된 함수 완성하기

(2) 갯수가 정해지지 않은 꽃꿀 얻는 알고리즘 선택하기(if~else 블록 안에 if~else 블록이 사용됨)[선

다형]

2) 미로 퍼즐(조건선택)(S8)

Page 22: Code.org 단계별 분석

- 18 -

가) Until 루프 사용하기(T1-T2)

나) [동영상] if 블록에 대해 설명

다) Until 루프 안에 if 블록 사용하기

(1) 이미 주어진 알고리즘에 왼쪽 방향 회전 블록만 추가하기(T3)

(2) 직접 알고리즘 만들기(T4,T5,T6,T7)

라) Until 루프 안에 if~else 블록 사용하기

(1) 주어진 알고리즘에 앞으로 이동 블록과 왼쪽 방향 회전 블록만 추가하기(T8)

(2) 직접 알고리즘 만들기(T9,T10)

마) Until 루프 안의 if~else 블록 안에 if~else 블록 사용하기

(1) 미리 주어진 알고리즘에 앞으로 이동 블록과 왼쪽 방향 회전 블록과 오른쪽 방향 회전 블록만 추

가하기(T10)

바) 평가

(1) Until 루프 안에 if~else 블록 사용하기

(가) 직접 알고리즘 만들기

(2) 미로 퍼즐에 알맞은 알고리즘 선택하기(Until루프 안에 if블록 사용하기)[선다형]

바. 생활 속의 알고리즘(S10)

1) 주사위 게임의 작은 단계들을 명명하여 알고리즘 만들기(UN)

2) 주사위 게임에서의 단계들을 논리적인 순서로 배열하기

3) 알고리즘으로 만들기 적절한 대상 선택하기(현실과 온라인 상의 호환)[선다형]

사. 중첩 반복 및 While 반복문(S11,S12,S13)

1) 예술가(중첩반복,S11)

바) 주어진 알고리즘 루프에 넣기

(1) 팝업창에 반복될 횟수 힌트 주어짐(T1-T2)

(가) [동영상] 중첩 반복문의 개념과 블록 사용방법을 설명

(2) 반복 횟수 힌트 없음(T6)

사) 주어진 알고리즘에 각도 변경 블록 추가하여 루프에 넣기

(1) 반복 횟수와 각도 힌트 없음(T3)

(2) 반복 횟수와 각도 힌트 있음(팝업창)(T7-T9-T10)

아) 주어진 알고리즘에 거리 이동 블록 추가하여 루프에 넣기

(1) 반복 횟수와 거리 힌트 없음(T4)

(2) 반복 횟수와 거리 힌트 있음(팝업창)(T8)

자) 주어진 알고리즘에 각도 변경 블록과 거리 이동 블록 추가하여 루프에 넣기

(1) 반복 횟수와 거리와 각도 힌트 없음(T5)

차) 평가

(1) 주어진 알고리즘에 각도 변경 블록 추가하여 루프에 넣기

Page 23: Code.org 단계별 분석

- 19 -

(가) 반복 횟수와 각도 힌트 없음

(2) 주어진 그림에 알맞은 알고리즘 선택하기(중첩반복)[선다형]

2) 농부(~인동안 반복,S12)

카) 순차문 만들기(T1)

타) 루프 사용하기(T2)

파) While 루프 사용하기

(1) [동영상] 세차 과정을 예시로 while loop에 대해 설명

(2) 흙더미와 구덩이의 수가 주어짐(T3)

(3) 메워야 하는 수가 주어지지 않은 구덩이 메우기

(가) 한 개의 구덩이 메우기(T4)

(나) 두 개의 구덩이 메우기(루프 안에 while 루프 사용하기)(T5)

(4) 치워야 하는 수가 주어지지 않은 흙더미 치우기

(가) 한 개의 흙더미 치우기(T6)

(나) 세 개의 흙더미 치우기(루프 안에 while 루프 사용하기)(T7)

(5) 메워야 하는 수가 주어지지 않은 구덩이와 치워야 하는 수가 주어지지 않은 흙더미 치우기(While

루프 두 개 사용하기)(T8)

(6) 평가

(가) 반복 횟수 주어지지 않은 흙더미와 구덩이 & 반복 횟수 주어진 흙더미와 구덩이 치우기(루

프 안에 While 루프 두 개 사용하기)

3) 꿀벌(중첩 반복,S13)

가) 루프 사용하기

나) [동영상] 중첩 반복문을 꿀벌 프로그램에서 사용하는 방법 제시

다) 중첩 반복 사용하기

(7) 루프 안에 한 개의 루프

(가) 알고리즘 만들기(T2)

(나) 주어진 알고리즘에 루프를 사용하여 반복 횟수 지정하기(T3)

(다) 두 개의 루프가 있고 그 중 하나의 루프 안에 하나의 루프(T5)

(8) 루프 안에 두 개의 루프(T4)

(9) 루프와 while 루프 사용하기

(가) 알고리즘 만들기(T6)

(나) 주어진 알고리즘에 루프를 사용하여 반복 횟수 지정하기(T7)

(다) 중첩된 루프 안에 while 루프 한 개(T8-T10)

(라) 루프 안에 while 루프 한 개(T9)

라) 평가

(1) 중첩 반복 사용하기

(가) 루프와 while 루프 사용하기

① 루프 안에 while 루프 한 개

(나) 루프 안에 두 개의 루프

(다) 주어진 미로에 알맞은 알고리즘 선택하기(하나의 루프 안에 while 루프 한개와 루프 한 개)

Page 24: Code.org 단계별 분석

- 20 -

아. 디버깅(S14)

1) [동영상] 디버깅의 개념을 프로그램에 적용시키기 위해 'Step'이라는 버튼을 사용하여

한 단계씩 문제해결 과정을 볼 수 있다는 것을 설명(코스2와 동일)

2) 블록 하나 제거 후 추가하기(T1)

3) 블록 제거하기(T2)

4) 반복 횟수 수정하기(T3-T11)

5) 회전 방향 수정하기(T4)

6) if문 조건 수정하기(T5)

7) while 루프 조건 수정하기(T6)

8) 함수 수정하기

가) 블록 하나 제거하기(T7)

나) while 루프의 조건 수정하기(T9)

45) 주어진 함수 파악하여 알고리즘 수정하기(T8)

46) 반복 횟수 수정하고 블록 하나 추가하기(T10)

47) 평가

가) 반복 횟수와 루프의 개수와 반복되는 블록 수정하기

나) 주어진 함수 알고리즘을 만족하는 함수를 선택하기[선다형]

자. 게임 만들기(S15,S17)

1) 바운스(S15)

가) 방향키 연결하기

(1) 한 방향(왼쪽)

(2) 두 방향(왼쪽, 오른쪽)

(3) 한 방향(위쪽)

(4) 네 방향(왼쪽, 오른쪽, 위쪽, 아래쪽)

나) 라켓에 공이 부딪히면 넘기도록 블록 연결하기

다) 공이 벽에 부딪히면 공이 넘어가도록 블록 연결하기

라) 방향키와 공 넘기는 블록 함께 연결하기

마) 점수 올라가도록 블록 연결하기

바) 스피드 수정하고 배경 바꾸고 새 공 만드는 블록 추가하기

사) 앞에서 배운 것을 이용하여 [자신만의 게임 만들어 공유하기]

2) Play Lab(S17)

가) [동영상] 'when arrow'와 'move actor' 블록을 추가하여 사용하는 방법 설명

나) 클릭하면 말하도록 블록 연결하기

다) 방향 키 연결하기

Page 25: Code.org 단계별 분석

- 21 -

라) 무한반복 블록 안에 블록 추가하기

마) 캐릭터들이 만날 때 블록을 실행시키도록 하는 블록과 말하는 블록 연결하기

바) 캐릭터들이 만날 때 실행되도록 하는 블록에 점수 올리는 블록 연결하기

사) 화면 배경과 캐릭터의 이동 스피드 바꾸기

아) [자신만의 게임 만들어 공유하기]

차. 이야기 만들기(S16)

1) 캐릭터가 말하도록 하는 블록 사용하기

2) 두 개의 블록 연결하기

3) 캐릭터가 이동하도록 하는 블록 사용하기

4) 두 캐릭터가 만날 때 특정 동작 수행하도록 하기

5) 캐릭터 표정 설정하는 블록 사용하기

6) [자신만의 스토리 만들어 공유하기]

카. 인터넷(S18)

1) 인터넷을 통하여 메시지를 보내는 과정을 이해하고 그 과정을 행동으로 표현해보기(UN)

2) URL과 IP주소의 상호 호환성을 이해하고 주어진 URL의 IP주소 선택하기[선다형]

3) URL과 IP주소의 상호 호환성을 이해하고 주어진 IP주소의 URL 선택하기[선다형]

타. 클라우드소싱(S19)

1) 함께 협동하여 활동해보아 클라우드소싱 개념 이해하고 클라우드소싱 연습하기(UN)

2) 클라우드 소싱을 이해하고 잘 표현하는 그림 선택하기[선다형]

3) 클라우드소싱 연습하기 좋은 대상 선택하기[선다형]

파. 정보 보호(S20)

1) 바람직한 디지털 시민의 특징 알고 직접 연극해보기(UN)

2) 인터넷 통해 공유하기 적당한 정보 선택하기[선다형]

하. 반복구조와 패턴(S21)

여기부터 각도 보기 중에 선택하는 것이아니라 직접 입력해야함

1) 루프 안에 들어갈 블록 지정하기

가) 반복횟수 작업영역에 고정(팝업창에 이동 거리 힌트)(T1)

나) 반복 횟수 작업영역에 있으나 고정은 안 되어있음(팝업창에 각도와 이동 거리 힌트)(T4)

Page 26: Code.org 단계별 분석

- 22 -

2) 주어진 알고리즘에 블록 추가하여 루프 안에 넣기

가) 이동 거리 블록(T2)

나) 각도 변경 블록(T5)

다) 점프 이동 블록(T9-T10)

3) 주어진 알고리즘에 툴 박스에 있는 보기 중에 적절한 블록 모음 선택하여 넣기(T3-T14)

4) 주어진 알고리즘 루프 안에 넣기(반복 횟수 지정하기)

가) 주어진 알고리즘 루프 한 개(T6)

나) 주어진 알고리즘 루프 두 개(T10)

다) 주어진 알고리즘 루프 없음(원 그리기,T12)

5) 알고리즘 수정하기(하나의 블록 수정 사항 알려주고 뒤에 블록 수정하도록 하기)(T7)

6) 루프 이용하여 알고리즘 만들기(각도와 이동 거리 힌트 있음)(T8)

7) 원래의 알고리즘에 루프 하나 더 추가하여 루프로 묶기(T13)

8) [자유롭게 그리기]

Page 27: Code.org 단계별 분석

- 23 -

Ⅳ. 코스 4

가. 생활 속의 알고리즘(S1)

1) 탱그램(퍼즐)으로 이미지를 만드는 과정을 알고리즘으로 설명하기(UN)

나. 순차문, 반복구조, 조건문(S2,S3)

1) 미로와 꿀벌(S2)

가) 순차문

(5) [동영상] 꿀벌 미로 퍼즐의 해결 방법 설명(코스1과 동일)

(6) 앞으로 이동 블록 사용하기(T1)

(7) 앞으로 이동 블록과 방향 회전 블록 사용하기(T2-T3)

나) 반복구조

(8) [동영상] 반복문(루프)의 개념과 반복블록 사용 방법 설명(코스2와 동일)

(9) 반복문 1번 사용하기

(가) 방향 회전 블록 사용X(T4)

(나) 반복문 안에 방향 회전 블록 사용(T6)

(10) 반복문 2번 사용하기(반복문 사이에 방향 회전 블록)(T5)

다) 조건문

(11) [동영상] 꽃꿀이나 꿀의 개수를 모르는 상황에서 조건문 블록을 사용하여 문제를 해결하는 방법

설명

(12) if 블록 사용하기

(가) 반복문과 조건문 한 번씩 사용(T7)

(나) 반복문과 조건문 두 번씩 사용(T8)

(13) [동영상] if~else 블록에 대해 설명

(14) if~else 블록 사용하기

(가) if~else블록 1번 사용(T9)

(나) if~else블록을 중첩하여 사용해 꽃꿀의 개수가 1,2,3개일 때 꽃꿀을 얻는 알고리즘 완성하기

(T10)

2) 예술가(S3)

가) [동영상] 순차문과 반복문을 사용하여 다양한 모양의 그림을 그리는 방법 제시

나) 반복문을 사용하여 정사각형 그리기

(15) 이동 거리 힌트(팝업창)보고 알고리즘 작성하기(T1)

(16) 주어진 알고리즘 루프로 묶기(정사각형 내부에 그림 있음)(T2)

다) 주어진 알고리즘 루프로 묶기

(17) 8개의 선(T3)

(18) 10개의 삼각형(T7)

(19) 12개의 삼각형(T8)

Page 28: Code.org 단계별 분석

- 24 -

라) 원의 내부를 색칠하기 위하여 반복문의 반복 횟수 설정하기(T4)

마) 삼각형을 세 개 그리기 위하여 주어진 반복문 알고리즘에 거리 점프 블록을 추가하여 루프

로 묶기(T5)

바) 중첩 반복문을 동영상으로 배우기 전에 학생들이 중첩반복문의 사용의 필요성을 자연스럽게

인식하고 사용하게 한다.

사) [동영상] 중첩 반복문의 개념과 블록 사용방법을 설명(코스3과 동일)

아) 중첩 반복문의 반복횟수와 각도 선택 블록의 각도 설정하기(T6)

자) 10개의 평행사변형을 그리기 위하여 각도 선택 블록 추가하여 루프로 묶기(T9)

차) 제시된 프로그램(반복문 두개 포함) 실행하여 그려진 그림 확인하고 원하는 그림 그리기[인

쇄 및 공유 가능](T10)

카) 블록에 변화가 있음(이동 블록, 점프 블록, 회전 블록에 입력값을 설정할 수 있는 입력 블

록이 넣고 뺄 수 있는 상태가 되었다[이후의 변수 활용한 알고리즘 작성에 대비])

타) 앞으로 점프 후 중첩 반복문을 사용하여 알고리즘 작성하기(T11)

파) 두 개의 반복문을 포함하는 중첩 반복문 만들기(T12)

하) [자유 시간]

다. 추상화와 변수(S4,S5,S6,S7)

1) 변수들 묶기(S4)

가) 영어 문장들을 예시로 변수의 개념 설명하기(UN)

2) 매들립(S5)

가) 영어 이야기를 예시로 추상화 설명하기(UN)

3) 예술가(변수,S6)

가) 정삼각형(응용)

(20) 반복문을 사용하여 정삼각형 그리기(변수사용X)(T1)

(21) [동영상] 변수의 개념과 기능 설명

(22) 반복문의 길이 변수의 입력값 설정하기(T2)

(23) 정삼각형 세 개를 그리기 위한 중첩 반복문에 사용된 길이 변수의 입력값 설정하기(T3)

나) 정육각형 6개를 그리기 위한 알고리즘에서 한 변의 길이가 주어지지 않았을 때 길이 변수의

입력값 설정하기(T4)

다) 입력값이 주어졌을 때 변수 블록 사용하기

(24) 변수 블록 1개 사용(T5)

(25) 변수 블록 2개 사용(T6)

(26) [동영상] 변수 'height'를 예시로 컴퓨터의 변수를 이용한 수학적 문제해결 과정을 설명

(27) 수학문(변수 블록) 사용

(가) 'width x 2'의 형태(T7)

(나) '360/sides'의 형태(T8)

Page 29: Code.org 단계별 분석

- 25 -

라) 변수의 입력값 수정하기(T9)

(28) +거리이동 블록 수정하기(T12)

(29) 중첩 반복문에 사용된 변수의 입력값 수정하기(T13)

마) 변수를 사용한 프로그램을 실행시켜 확인 후 원하는 그림 그리기[인쇄 및 공유 가능](T10)

바) 변수의 입력값을 설정하는 블록 추가하고 변수 블록 사용하기(T11)

사) 변수가 두 개일 때

(30) 변수 입력값 설정 블록 수정하고 다른 변수 입력값 설정 블록 추가하기(T14)

(31) 한 변수의 입력값 설정 블록이 다른 변수가 포함된 수학문으로 만들고 포함되는 변수 입력값 수

정하기(T15)

(32) 변수가 두 개 포함되어 있는 다중중첩 반복문을 사용한 프로그램 실행시켜 확인 후 원하는 그림

그리기[인쇄 및 공유 가능](T16)

(33) 변수가 두 개 포함되어 있는 다중중첩 반복문을 사용한 알고리즘 작성하기(T17)

다) [자유시간]

4) Play Lab(변수,S7)

가) 제시된 프로그램을 실행해보며 이해하고 방향키 조작하기

(1) 속도 설정 블록 이해(T1)

(2) 위쪽 방향키를 눌렀을 때 위로 갔다가 아래로 오는 것을 이해(T3)

나) [동영상] 게임을 만들 수 있는 다양한 변수들을 소개

다) 두 캐릭터의 속도 동일하게 변경하기(T2)

라) 위쪽 방향키를 눌렀을 때 올바른 변수값만큼 위로 갔다가 내려오도록 변수값 수정하기(T4)

마) 초기 점수가 설정된 프로그램을 실행해보며 이해하기(T5)

바) 변수를 사용해 점수 설정하기(T6)

사) 점수 변수와 수학문을 사용하여 점수가 누적되도록 만들기(T7)

아) [자유롭게 게임 만들기](T8)

라. For 반복문(S8,S9,S10,S11)

1) 재미있는 반복(S8)

가) For 반복문의 초기값, 완료값, 사이값 설명(UN)

2) 꿀벌(반복,S9)

가) 앞으로 한 칸 이동 후 꽃꿀 얻기를 다섯 번 반복(T1)

나) 앞으로 한 칸 이동 후 꽃꿀 한 개~다섯 개 얻는 프로그램에서 꽃꿀 다섯 번 얻기를 추가

(T2)

다) For 반복문 사용

(1) [동영상] For 반복문의 초기값, 완료값, 사이값에 대한 개념 설명

(2) For 반복문이 사용된 알고리즘 실행해보며 이해하기(T3)

(3) For 반복문의 완료값 설정하기

(4) 5로 설정(T4)

Page 30: Code.org 단계별 분석

- 26 -

(5) 6으로 설정(T5)

(6) For 반복문의 초기값과 완료값을 설정하고 사이값 수정하기(T6)

(7) For 반복문의 사이값 설정하기(T7)

(8) +변수를 사용하여 알고리즘 완성하기(T8)

(9) For 반복문의 초기값, 완료값, 사이값을 설정하고 변수를 사용하여 알고리즘 완성하기(T9)

(10) For 반복문과 변수를 사용하여 알고리즘 작성하기(T10)

3) 예술가(반복, S10)

가) 삼각형 확장해가며 그리기

(1) 반복문을 사용하여 알고리즘 작성(T1)

(2) For 반복문이 사용된 알고리즘 실행해보며 이해하기(T2)

(3) For 반복문의 초기값, 완료값, 사이값 수정하기(T3)

나) For 반복문으로 값이 설정된 변수 블록 사용하기

(1) 사각형 확장해가며 그리기(T4)

(2) 원 확장해가며 그리기(T5)

다) 미로 모양 그리기

(1) For 반복문 안에 반복문을 추가하여 알고리즘 완성하기(T6)

(2) For 반복문으로 값이 설정된 변수 블록을 사용하고 회전각도 설정하기(T7,T9)

(3) For 반복문의 초기값, 완료값, 사이값 설정하기(T8)

라) For 반복문의 초기값, 완료값, 사이값 설정하고 그 변수블록 사용하기(T10)

마) For 반복문과 변수를 사용하여 알고리즘 완성하기(T11)

(1) For 반복문과 변수를 사용하여 알고리즘 작성하기(T12)

4) Play Lab(반복, S11)

가) For 반복문으로 값이 설정된 변수 블록 사용하기

나) For 반복문의 사이값 설정하고 변수가 포함된 블록 추가하기

다) For 반복문과 변수를 사용하여 숫자 말하게 만들기

라) For 반복문으로 값이 설정된 변수를 수학문으로 만들어 1부터 10까지 제곱수 말하게 만들

마) 변수블록이 포함된 수학문을 수정하여 1부터 10까지 세제곱수 말하게 만들기

바) [자유 시간]

마. 함수문(예술가, S12)

1) 정사각형 1개 그리기

가) 반복문 사용하여 알고리즘 작성하기(T1)

나) 함수문이 사용된 알고리즘 실행해보며 이해하기(T3)

다) [동영상] 함수문의 효과와 블록의 구성 및 사용방법 설명

라) 함수문 수정하기에서 함수의 기능 작성하기(T5)

마) '사각형 그리기' 함수 알고리즘 수정하기(T7)

Page 31: Code.org 단계별 분석

- 27 -

바) '사각형 그리기' 함수 알고리즘 작성하기(T10)

2) 정사각형 3개 그리기

가) 중첩 반복문 사용하여 알고리즘 작성하기(T2)

나) 각도입력블록이 활용된 알고리즘을 실행해보며 이해하기(T4)

다) 함수문 수정하기에서 함수의 기능 작성하기(T6)

3) 정삼각형 1개 그리기

가) 함수 알고리즘에서 반복문의 반복횟수 수정하기(T8)

4) 정삼각형 1개와 정사각형 1개 그리기

가) 설정되어있는 '삼각형 그리기'와 '사각형 그리기' 함수 블록을 사용하여 프로그램 작성하기

(T9)

5) 정사각형으로 이루어진 열 그리기(응용)

가) 중첩 반복문을 포함하는 함수 알고리즘을 실행해보며 이해하기(T11)

나) 설정되어있는 함수 알고리즘 블록과 반복문을 사용하여 프로그램 작성하기

(3) 이동거리와 회전각도 설정되어 있음(T12)

(4) 이동거리와 회전각도 힌트(팝업창)로 제시(T13)

다) 함수 알고리즘의 반복횟수 수정과 함수 알고리즘 블록을 사용하여 프로그램 작성하기(T14)

6) [자유 시간]

바. 매개변수와 함수(S13,S14,S15,S16)

1) 매개변수를 사용한 노래 만들기(S13)

가) 노래 가사 중 코러스를 매개변수에 비유하여 설명(UN)

2) 예술가(S14)

가) 정사각형 그리기

(1) 함수문 사용(T1)

(2) [동영상] 함수문에서 매개변수를 추가하여 사용할 수 있다는 것을 제시

(3) For 반복문을 추가하고 매개변수 블록을 넣어 사각형 3개를 그리기 위한 프로그램 완성하기(T9)

나) 정삼각형 그리기(응용)

(1) [동영상] 함수문을 직접 생성하고 작성하는 방법 설명

(2) '삼각형 그리기' 함수 알고리즘 작성하기(T2)

(3) 설정되어있는 '삼각형 그리기' 함수 알고리즘을 사용하여 같은 크기의 삼각형 3개를 그리는 프로

그램 작성하기(T3)

(4) 매개변수의 사용

(가) 힌트를 보고 매개변수의 입력값을 각각 설정하기

① 점점 작아지는 3개의 삼각형 그리기(T4)

② 점점 커지는 3개의 삼각형 그리기(T7)

(나) For 반복문과 함수문을 사용하여 프로그램 완성하기(T8)

Page 32: Code.org 단계별 분석

- 28 -

다) 정오각형 그리기

(5) 힌트를 보고 매개변수의 입력값 설정하기(T5)

(6) 매개변수를 넣어 함수 알고리즘 완성하기(T10)

라) 정삼각형, 정사각형, 정오각형 그리기

(7) 힌트를 보고 매개변수의 입력값을 각각 설정하기(T6)

마) 매개변수 2개(length와 sides) 사용

(8) 매개변수의 입력값을 설정하고 이를 함수 알고리즘의 반복횟수로 설정하기(T11)

(9) 설정되어있는 '삼각형 그리기', '사각형 그리기', '오각형 그리기' 함수문을 사용하여 세 도형이 한

변을 공유하도록 그리는 프로그램 작성하기(T12)

(가) For 반복문을 사용하여 삼각형, 사각형, 오각형, 육각형이 한 변을 공유하도록 그리는 프로그

램 작성하기(T13)

(10) 매개변수 sides를 수학문에 넣어 함수 알고리즘을 완성하고 매개변수 length의 입력값을 각각

설정하기

(가) 삼각형, 사각형, 육각형 그리기(T14)

(나) 삼각형, 사각형, 육각형 모양 미로 그리기(For 반복문 포함)(T15)

(11) For 반복문과 매개변수를 포함하는 함수문을 사용하여 프로그램 작성하기(T16)

바) [자유 시간]

3) Play Lab(S15)

가) 위쪽 방향키를 눌렀을 때 실행할 조건문 작성하기

나) 위쪽과 아래쪽 방향키를 눌렀을 때 실행할 조건문을 매개변수를 사용해 작성하기

다) 제시된 프로그램을 실행해보며 매개변수 actor과 height의 기능 이해하기

라) 캐릭터가 주어진 거리만큼 위아래로 움직이는 함수 알고리즘 작성하기

마) 캐릭터 매개변수 actor의 입력값을 각각 설정하기

바) 함수 알고리즘에 매개변수 actor을 넣어 완성하고 그 입력값을 각각 설정하기

사) 함수 알고리즘에 속도 매개변수 speed를 넣어 완성하고 그 입력값을 각각 설정하기

아) 제시된 프로그램을 실행해보며 캐릭터별로 속도가 다르게 움직이는 방법 이해하기

자) 조작하는 캐릭터(스프라이터)가 다른 캐릭터에 닿았을 때 처음 위치로 돌아가게 만들기

차) 점수 매개변수 point를 수학문에 넣어 점수가 누적되도록 만들기

카) 누적된 점수가 10점이 넘었을 때 레벨이 상승되도록 만들기

타) [자유롭게 게임 만들기]

4) 꿀벌(S16)

가) 설정되어있는 '꽃꿀 3개 얻기' 함수문을 이용하여 프로그램 작성하기(T1)

나) '꽃꿀 3개 얻기' 함수 알고리즘에서 회전방향 수정하기(T2)

다) 매개변수 사용

(1) 함수 알고리즘 내의 조건문에서 방향에 따라 어떤 방향회전블록을 사용해야하는지 결정하기(T3)

(2) 반복문과 '꽃꿀 3개 얻기' 함수문을 사용하여 프로그램 작성하기(T4)

(3) '꽃꿀 5개 얻기' 함수 알고리즘을 직접 작성해보고 이를 사용하여 전체 프로그램 작성하기(T5)

Page 33: Code.org 단계별 분석

- 29 -

(4) 꽃꿀의 개수만큼 '꽃꿀 획득'을 반복하기 위해 새로운 매개변수 추가하기(T6)

(5) 설정되어있는 '꽃꿀 얻기' 함수 알고리즘을 여러 번 사용하여 프로그램 작성하기(T7)

(6) 꽃꿀의 개수 설정 매개변수와 꿀의 개수 설정 매개변수를 사용하여 프로그램 작성하기(T8)

사. 2진법(S17,S18)

1) 흑과 백 등 2가지 선택조건에서 2진법의 개념 끌어내기(UN)

Page 34: Code.org 단계별 분석

- 30 -

연구자료 2016-01

Code.org 단계별 분석

발 행 2016년 9월 21일발행인 전주교육대학교 정영식

발행처 전주교육대학교 컴퓨터교육과

주 소 전북 전주시 완산구 동서학로 50. 전주교육대학교 교사교육센터 컴퓨터교육과

보고서 내용의 무단 복제를 금함. <비매품>