초등학교심화과정 제주특별자치도와함께하는코딩교육
목차 1 차시도형그리기 3 2 차시나만의문양만들기 13 3 차시제주특산물메모리게임 23 4 차시제주방언퀴즈프로그램 33 5 차시 6 차시누구의공이더많이남은걸까? 43 7 차시 8 차시바쁘다바빠! 59 9 차시 10 차시미션! 미로를탈출하라! 75
1 프로젝트명 도형그리기 - 순차구조, 반복구조알아보기 -
1 문제상황파악하기 돌이가수업이끝나고집으로돌아왔는데, 오늘마음이별로편하지않아요. 오늘숙제가많거든요. 선생님께서정삼각형, 정사각형, 정오각형, 정육각형, 정팔각형, 정십각형, 원을그려오라는숙제를냈거든요. 이런, 언제다그려야할지막막합니다. 이문제를쉽게해결할수있는방법은없을까요? 정다각형의특징을이야기해봅시다. 1 2 3 2 문제해결방법찾기 ( 언플러그드활동 ) 정다각형의동작을알아보기 정삼각형 4 제주로온코딩
정사각형 정오각형 해결방법 1 돌이는처음에오른쪽을바라보고있습니다. 2 3 가지명령중 1 가지를선택하여한칸씩채워넣어야합니다. 기호를사용해도됩니다. ( 앞으로한칸이동하기, 오른쪽으로돌기, 왼쪽으로돌기 ) 3 처음바라봤던오른쪽방향을볼수있도록명령을마무리하도록합니다. 1 차시도형그리기 5
정다각형에서얼마나회전해야하는지알아보기 정삼각형 정사각형 정오각형 방법 1 평면도형의한개의내각을구하는방법을알아봅시다. {180 ( 꼭지점수 2) } 꼭지점수예 ) 3 각형 {180 (3 2) } 3 = 60 예 ) 4 각형 {180 (4 2) } 4 = 90 2 평면도형의한개의외각 ( 프로그램에서도는각 ) 을구하는방법을찾아봅시다. 예 ) 3 각형 120, 4 각형 90, 5 각형, 식으로나타내보면, 360 6 제주로온코딩
3 스크래치프로젝트만들기 도형그리기프로젝트를작성해봅시다. - 순차프로젝트만들기 1 돌이프로젝트기본설정입니다. 펜기능을사용하므로 지우기 블록을처음에넣고, 스프라이트의위치와크기를설정합니다. < 정삼각형 > 2 그리기전에 펜내리기 블록으로그리기시작하고, 100 만큼움직이기, 오른쪽으로 120 도돌기, 1 초기다리기 ( 움직임을확인하기위해 ), 100 만큼움직이기, 오른쪽으로 120 도돌기, 1 초기다리기, 100 만큼움직이기, 오른쪽으로 120 도돌기, 1 초기다리기, 펜올리기 블록을사용합니다. 규칙적으로반복되는블록을적어보세요. 그리고, 몇번반복되나요? 반복되는블록 : 반복횟수 : 번 1 차시도형그리기 7
< 정사각형 > 3 정사각형은오른쪽으로 90 도돌기블록이사용됩니다. 규칙적으로반복되는블록을왼쪽설명에표시 ( ) 해보세요. 그리고, 몇번반복되나요? 반복횟수 : 번 < 정오각형 > 4 정오각형은오른쪽으로 72 도돌기블록이사용됩니다. 규칙적으로반복되는블록을왼쪽설명에표시 ( ) 해보세요. 그리고, 몇번반복되나요? 반복횟수 : 번 8 제주로온코딩
- 반복프로젝트만들기 1 돌이프로젝트기본설정은위와같습니다. < 정삼각형 > 1 2 그리기전에 펜내리기 블록으로그리기시작하고, 100 만큼움직이기, 오른쪽으로 120 도돌기, 1 초기다리기 ( 움직임을확인하기위해 ) 를 3 번반복하고, 펜올리기 블록을사용합니다. 1 에어떤내용이들어가야할까요? < 정사각형 > 2 3 정사각형은오른쪽으로 90도돌기블록이사용 됩니다. 2 에어떤내용이들어가야할까 요? < 정오각형 > 3 4 정오각형은오른쪽으로 72도돌기블록이사용 됩니다. 3 에어떤내용이들어가야할까 요? 1 차시도형그리기 9
4 확인해보기 도형그리기프로젝트가잘동작하나요? 오류가발생할경우, 그원인을찾고프 로그램을수정해봅시다. 발생한오류는어떤것인가요? 내가생각하는원인은무엇인가요? 해결방법은어떤것이있나요? 선생님의견 10 제주로온코딩
5 심화활동 도형을그려주는프로젝트만들기 ( 묻고기다리기, 대답블록사용 ) 6 자기평가하기 도형그리기프로젝트를통해내가배운내용에대해스스로평가해보세요. (5 : 매우그렇다 ~ 1 : 매우아니다 ) 연번 평가기준 5, 4, 3, 2, 1 1 평면도형의한외각의값을사용할수있나요? 2 순차, 반복을이용하여도형그리기프로젝트를만들었나요? 3 문제를파악하고해결하려기위해노력했나요? 1 차시도형그리기 11
2 프로젝트명 나만의문양만들기 - 반복구조알아보기 -
1 문제상황파악하기 돌이는정다각형을그리는방법을배웠습니다. 그리고친구들과도형놀이를하다가도형을여러개겹쳐그리다보니독특한문양들이많이생기는걸알았습니다. 그래서친구들끼리경쟁하기로했습니다. 그런데어쩌죠? 자신의문양이더창의적이라고다툼이일어나고말았어요. 그러자선생님께서는반친구들에게나만의문양만들기학급페스티벌을개최하고가장창의적인문양에는간단한상품과함께학급창의어린이상을주신다고했습니다. 우리도같이한번참여해볼까요? 나의문양을어떻게꾸밀지생각해봅시다. ( 어떤도형, 밀기, 겹치기, 돌리기, 뒤 집기, 색상등 ) 1 2 3 2 문제해결방법찾기 ( 언플러그드활동 ) 정다각형의동작을알아보기 60 14 제주로온코딩
해결방법 1 어떤평면도형을사용했는지적어보세요. ( 삼각형, 사각형등 ) 2 오른쪽으로돌기 ( ) 2 차시나만의문양만들기 15
3 스크래치프로젝트만들기 문양만들기프로젝트를작성해봅시다. - 문양만들기프로젝트 (1) 1 돌이프로젝트기본설정입니다. 위치, 방향, 크기를설정하는블록을사용하고, 펜기능을사용하므로 지우기 블록, 펜색깔정하기, 펜굵기정하는블록입니다. 1 2 안쪽에있는반복블록은삼각형을만드는블록입니다. 위의문양을만들기위해 360 에삼각형이 6 개들어가는반복블록을만들어야합니다. 1 과 2 에어떤내용이들어가야할 까요? 2 1 2 = 3 지금까지제작한스크립트를알맞게결합시켜봅시다. 16 제주로온코딩
- 문양만들기프로젝트 (2) 1 돌이프로젝트기본설정은위와같습니다. 2 안쪽에있는반복블록은사각형을만드는블록입니다. 위의문양을만들기위해 360 에사각형이 6 개들어가는반복블록을만들어야합니다. 3 에어떤내용이들어가야할까요? 3 3 10 = 3 지금까지제작한스크립트를알맞게결합시켜봅시다. - 문양만들기프로젝트 (3) 2 차시나만의문양만들기 17
1 돌이프로젝트기본설정은위와같습니다. 2 안쪽에있는반복블록은오각형을만드는블록입니다. 위의문양은가운데가비어있는동전형태의문양이다. 그렇기때문에일정부분은선을그리지않는부분이필요하다. 그러기위해서 4 에어떤내용이들어가야할까요? 4 3 지금까지제작한스크립트를알맞게결합시켜봅시다. 18 제주로온코딩
4 확인해보기 문양만들기프로젝트가잘동작하나요? 오류가발생할경우, 그원인을찾고프 로그램을수정해봅시다. 발생한오류는어떤것인가요? 내가생각하는원인은무엇인가요? 해결방법은어떤것이있나요? 선생님의견 2 차시나만의문양만들기 19
5 심화활동 나만의문양만들기프로젝트 어떤도형을사용할것인가요? 도형을어떤식으로배열하고싶은지간단히그려보세요. 나만의문양만들기순서를생각해보세요. 원을그리고싶은학생은 20 각형이상을그린다고생각하면원이그려진다. 단, 움직 이는길이를잘조절하여야한다. 20 제주로온코딩
6 자기평가하기 도형그리기프로젝트를통해내가배운내용에대해스스로평가해보세요. (5 : 매우그렇다 ~ 1 : 매우아니다 ) 연번 평가기준 5, 4, 3, 2, 1 1 반복구조를사용할수있나요? 2 반복구조를이용하여문양만들기프로젝트를만들었나요? 3 문제를파악하고해결하려기위해노력했나요? 2 차시나만의문양만들기 21
3 프로젝트명 제주특산물메모리게임 - 변수와조건구조를사용한메모리게임 -
1 문제상황파악하기 이야기를읽고다음물음에답하여봅시다. 돌이와소리네아버지께서는서울에사는아버지친구분에게선물을고르는중입니다. 이왕이면제주의유명한특산물을보내면좋을것같다는말씀을하셨습니다. 아버지의말씀을듣고돌이와소리는제주에어떤특산물이있는지궁금해서인터넷으로검색을해보았습니다. 생각보다제주도의특산물은종류가많았습니다. 감귤, 고사리, 옥돔, 돼지고기, 오메기떡, 은갈치등특산물이너무많아다말하기힘들정도였습니다. 돌이와소리는제주를찾는많은사람들이제주의특산물을잘알수있도록재미있는게임을만들고싶었습니다. 그러다수업시간에단어의뜻을알기위해서했던메모리게임으로만들면좋겠다는생각이들었습니다. 제주특산물메모리게임, 이름부터그럴듯한게임을만들생각에벌써기대됩니다. 1. 돌이와소리가만들려고하는것은무엇인가요? 2. 왜그것을만들려고하나요? 3. 여러분이알고있는제주의특산물에는어떤것이있는지적어보세요. 24 제주로온코딩
2 문제해결방법찾기 ( 언플러그드활동 ) 메모리게임을체험해보고메모리게임프로그램이어떻게동작할지생각해 봅시다. 1. 준비물 카드 6 장 (2 장씩한세트로총 3 개의세트 ) 2. 활동방법 (1) 카드를잘섞고내용을보이지않도록뒤집어놓는다. (2) 하나의카드를선택하여앞면이보이도록한다. (3) 또다른카드를선택하여앞면이보이도록한다. (4) 두카드가같은그림이면성공이므로카드를제거하고다시도전한다. (5) 두카드가다른그림이면실패이므로카드를뒤집고다음사람이기회를갖는다. (6) 모든카드가없어질때까지 (2)~(5) 를반복한다. 3 제주특산물메모리게임 프로젝트알고리즘만들기 메모리게임이어떻게동작할지생각해보고이것을알고리즘으로표현해봅 시다. 3 차시제주특산물메모리게임 25
시작깃발을클릭하면 1 카드수, 1 번카드, 2 번카드, 점수라는변수를만들고 0 으로정한다. 2 카드가모두뒤집힌상태에서원하는카드하나를클릭하여뒤집는다. 카드의하나만내용을볼수있다. 3 카드가하나뒤집힌상태에서또다른카드를하나클릭하여뒤집는다. 카드두개의내용을볼수있다. 4 두카드가같은카드인지확인한다. 5 두카드가같은카드이면성공이라고말하고 1 점을추가한다음두카드를사라지게한다. 카드수, 1 번카드, 2 번카드에 0 을저장해서초기화한다. 6 두카드가다른카드라면실패라고말하고두카드의뒷면이보이도록뒤집는다. 카드수, 1 번카드, 2 번카드에 0 을저장해서초기화한다. 7 모든카드가사라질때까지 2~6 을반복한다. 8 점수를말하고프로그램을종료한다. 카드수 는앞면을펼쳐본카드의수를저장하는변수입니다. 1 번카드, 2 번카드 에는첫번째, 두번째펼친카드의제목이저장됩니다. 마지막으로점수에는사용자가찾은만큼점수가저장됩니다. 변수카드수 0 1 변수 1 번카드 0 카드의값 ( 오메기떡, 한라봉또는은갈치 ) 변수카드수 1 2 변수 2 번카드 0 카드의값 ( 오메기떡, 한라봉, 또는은갈치 ) 같은카드인지확인을위해서는어떤변수를비교하면좋을까요? ( ) 와 ( ) 돌이소리는 성공 이라고말하고카드는사라지도록동시에전달하려면어떤블록을사용하면될까요? ( ) 돌이소리는 실패 라고말하고두카드를뒤집도록동시에전달하려면어떤블록을사용하면될까요? ( ) 점수변수를이용해서모든카드가사라진것을확인할수있습니다. 점수에 ( ) 이저장되면모든카드가사라집니다. 프로그램을종료를위해서는어떤블록을사용하면좋을까요?( ) 26 제주로온코딩
4 제주특산물메모리게임 프로젝트완성하기 작성한알고리즘을 제주특산물메모리게임 스크래치프로젝트로만들어봅 시다. 알고리즘과스크립트를보고 제주특산물메모리게임 을완성해봅시다. 이번프로젝트에서사용되는스프라이트는안내스프라이트와카드 6 개스프라이트 입니다. 각각의카드스프라이트는아래의그림처럼뒷면과앞면으로되어있습니다. (1) 시작깃발을클릭했을때 < 안내스프라이트 > 시작깃발을클릭했을때프로젝트에서사용할변수를 0 으로초기화해줍니다. < 카드스프라이트 > 시작깃발을클릭했을때다시게임을시작하는것이므로카드를보이게하고뒷면이보이도록모양을바꿔줍니다. 3 차시제주특산물메모리게임 27
(2) 사용자가카드를클릭했을때 < 카드스프라이트 > 카드를클릭했을때카드가뒷면인지앞면인지에따라동작을구분해야합니다. 오른쪽에서모양 # 블록이 1 이라는것은뒷면을의미합니다. 앞면은 2 입니다. ( 참이면 ) 카드가뒷면이라면카드를앞면으로뒤집으면됩니다. 이때현재앞면인카드가몇개인지가중요합니다. 카드수변수가 0 이라는것은현재앞면인카드가없다는의미이므로 ( ) 변수에카드의내용을저장합니다.( 이카드는한라봉카드라고가정 ) 카드한장을앞면으로바꿔주기때문에카드수를 1 증가시키고카드모양을앞면으로바꿉니다. 카드수변수가 1 이라는것은이미한장이앞면이라는의미입니다. 따라서 ( ) 변수의카드의내용 ( 한라봉 ) 을저장하고카드수를 1 증가, 모양을앞면으로바꿔줍니다. 중요한것은카드 2 개가앞면이므로두개의카드가같은카드인지비교해야하므로 비교하기 메시지를방송을합니다. ( 거짓이면 ) 현재카드가앞면이라는의미이기때문에카드를뒷면으로뒤집어야합니다. 단이때도카드수에따라동작이달라집니다. 카드수가 2 일때는 2 번카드를 0 으로정합니다. 카드수가 1 일때는 1 번카드를 0 으로정합니다. 두경우모두카드를뒷면으로뒤집는것이기때문에카드를 1 만큼빼주어야합니다. 1 만큼빼기위해서는 ( ) 만큼바꾸기블록을실행합니다. 28 제주로온코딩
(3) 비교하기 메시지를받았을때 < 안내스프라이트 > 비교하기 방송을받으면두카드가같은카드인지확인합니다. 변수 ( ) 와 ( ) 가같은지확인하는조건구조를만들면됩니다. 같다면 성공 을말하고점수를 1 증가시킨다음성공한카드를사라지게하기위해 정답카드사라지기 메시지를방송합니다. 다르다면 다시한번 이라고말하고카드를원상복귀하기위해 카드뒤집기 메시지를방송합니다. (4) 정답카드사라지기 메시지를받았을때 < 카드스프라이트 > 모든카드에그냥숨기기를해버리면선택한카드이외의카드도다사라져버립니다. 이카드는한라봉카드이므로 1 번카드, 2 번카드에한라봉이저장되어있을때만사라지도록조건구조를만듭니다. 참일때는카드가사라지도록숨기기블록을실행하고카드수, 1 번카드, 2 번카드변수를초기화하기위해 카드뒤집기 메시지를방송합니다. 거짓일때는그카드는사라질대상이아니기때문에빈칸으로놔둡니다. 3 차시제주특산물메모리게임 29
(5) 카드뒤집기 메시지를받았을때 < 안내스프라이트 > 다른카드를찾는작업을해야하므로카드수, 1 번카드, 2 번카드를다시 0 으로정합니다. < 카드스프라이트 > 카드찾기를다시하기위해앞면으로된카드를뒷면으로바꾸기위한블록을실행합니다. < 안내스프라이트의완성된스크립트 > < 카드스프라이트의완성된모습 > 30 제주로온코딩
3차시 제주 특산물 메모리 게임 31
5 심화활동 제주특산물을조사하고카드의내용을바꾸거나추가하여제주특산물메모리게 임을업그레이드해보세요. 6 자기평가하기 제주특산물메모리게임 프로젝트활동을통해내가배운내용에대해스스로 평가해보세요. (5 : 매우그렇다 ~ 1 : 매우아니다 ) 연번평가기준 5, 4, 3, 2, 1 1 2 3 메시지기능을이용하여여러스프라이트에게메시지를보낼수있나요? 제주특산물메모리게임의동작을알고리즘으로표현할수있나요? 제주특산물메모리게임의동작알고리즘을스크래치로프로그래밍할수있나요? 32 제주로온코딩
4 프로젝트명 제주방언퀴즈프로그램 - 리스트를이용한퀴즈프로그램 -
1 문제상황파악하기 이야기를읽고다음물음에답하여봅시다. 소리는직접만든제주방언퀴즈프로그램으로친구들과퀴즈대결을하고있었습니다. 새로운문제를만들어내기위해많은제주방원을조사하여퀴즈프로그램을수정하다가어려움을느꼈습니다. 문제가많아지면많아질수록블록이너무많아져무슨내용인지보기도힘들고오류도많이발생하는것입니다. 문제를해결하기위해소리는돌이오빠에게해결방법을물어봤습니다. 돌이오빠는스크래치수업시간에배운 리스트 를말해주었습니다. 리스트를사용하면짧은블록으로도많은퀴즈를만들어낼수있다는것입니다. 하지만리스트를어떻게사용하는것에대해서는직접해보는것이좋겠다고하며알려주지않습니다. 여러분이소리와함께리스트를이용한퀴즈프로그램을만들어줄수있을까요? 1. 소리는어떤문제를해결하려고하나요? 2. 소리의퀴즈프로그램에서는정답을저장하기위해어떤블록을사용했을까요? 3. 돌이오빠는소리에게어떤해결방법을알려주었나요? 34 제주로온코딩
2 문제해결방법찾기 ( 리스트이해하기 ) 리스트가무엇이고어떻게리스트를사용할수있는지알아봅시다. (1) 리스트 여러개의데이터를한곳에저장하는공간을리스트라고합니다. (2) 리스트를사용하는이유 소리의경우처럼비슷한형태의많은데이터 ( 문제, 정답 ) 를다루어야할때효율적으로 관리할수있습니다. (3) 변수와리스트비교하기 아래의그림처럼변수는한이름의공간에데이터를하나만저장할수있습니다. 하지 만리스트에는한이름안에여러개의데이터를저장할수있습니다. 리스트에는이름이외에도순서를나타내는숫자가있습니다. 위에서돼지는리스트 답에 1 번째, 감자는 2 번째, 강아지는 3 번째에있습니다. 이렇게리스트의이름과숫자를 이용하여데이터를추가, 삭제, 수정할수있습니다. 4 차시제주방언퀴즈프로그램 35
(4) 리스트를다룰때사용하는블록살펴보기 블록 설명 리스트에항목 ( 데이터 ) 을추가하는블록입니다. 위의블록처럼현재리스트의가장마지막다음위치에항목을추가하고아래의블록은위치를정할수있습니다. 원하는위치의항목을삭제하는블록입니다. 원하는위치의항목을바꾸는블록입니다. 리스트에저장된항목을불러오는블록입니다. 직접숫자를입력할수있고왼쪽의예처럼변수를이용하면반복구조를이용해쉽게여러항목을불러올수있습니다. 문제리스트에저장되어있는항목수가저장되는블록입니다. 문제리스트에 3 개의블록이저장되어있으면 3 을저장합니다. 36 제주로온코딩
3 제주방언퀴즈프로그램 프로젝트알고리즘만들기 퀴즈프로그램이어떻게동작할지생각해보고이것을알고리즘으로표현해 봅시다. 시작깃발을클릭하면 1 점수를 ( ) 점으로정한다. 번호를 ( ) 점으로정한다. 프로그램이시작될때점수와번호는각각몇으로정하면될까요? 2 문제와답이저장될공간 ( 리스트 ) 을비운다. 왜문제와답의리스트를삭제하는지생각해봅시다. 3 문제와답을리스트에추가한다. 문제와답을리스트에추가하기위해서는어떤블록을사용하면좋을지생각해봅시다. 4 ( ) 번째문제항목의문제내고사용자의대답을받는다. 리스트를사용한반복구조로문제를출제하기위해서 ( ) 번째문제라고표현하면좋을까요? 4 차시제주방언퀴즈프로그램 37
5 사용자의대답과답리스트의 ( ) 번째항목과비교하여정답이면정답임을말하고점수를더한다. 사용자의대답과비교할답은 ( ) 번째답항목이다 라고표현하려고합니다. ( ) 칸에무엇을넣으면좋을까요? 6 오답이면오답임을말한다. 7 번호를 ( ) 만큼증가시켜다음문제로넘어가도록한다. 리스트의항목을가르키는번호가얼마만큼증가해야다음번째문제와정답을가리킬수있을까요? 8 ( ) 번만큼 ( ) 번 ~( ) 번과정을반복한다. 리스트를사용할때몇번을반복해야할지표현하기위해서는어떤블록을사용할까요? 또위의단계에서반복해야하는부분은어디서부터어디까지일까요? 9 점수를출력한다. 38 제주로온코딩
4 제주방언퀴즈프로그램 프로젝트완성하기 작성한알고리즘을 제주방언퀴즈프로그램 스크래치프로젝트로만들어봅 시다. 알고리즘과스크립트를보고 제주방언퀴즈프로그램 을완성해봅시다. 소리 알고리즘 스크립트 전기자동차 1 점수를 ( ) 점으로정한다. 번호를 ( ) 점으로정한다. 2 문제와답이저장될공간 ( 리스트 ) 을비운다. 3 문제와답을리스트에추가한다. 4 ( ) 번째문제항목의문제내고사용자의대답을받는다. 5 사용자의대답과답리스트의 ( ) 번째항목과비교하여정답이면정답임을말하고점수를더한다. 6 오답이면오답임을말한다. 7 번호를 ( ) 만큼증가시켜다음문제로넘어가도록한다. 8 ( ) 번만큼 ( ) 번 ~( ) 번과정을반복한다. 9 점수를출력한다. 4 차시제주방언퀴즈프로그램 39
1 프로젝트에서사용할변수인점수, 번호, 답, 문제를초기화합니다. 점수에는사용자가입력한대답에따른결과번호에는현재해결할문제의번호가저장됩니다. 2 문제와답을입력합니다. 하나의연결된스크립트로작성해도되지만이해하기쉽게작성하기위하여 문제출제하기 메시지를방송하고그메시지를받으면출제하도록작성합니다. 3 퀴즈문제를출제합니다. 리스트를사용하면반복구조를사용하여스크립트의길이를줄일수있습니다. 리스트를사용하는블록과번호변수를이용하여반복회수를표현해보세요. 4 리스트에저장된문제를출제하고사용자가입력한대답을리스트에저장된답과비교합니다. 정답이면정답임을말하고점수를더하고오답이면오답임을말합니다. 40 제주로온코딩
5 번호는출제하고있는문제와답의번호를저장하는변수입니다. 다음반복이있기전번호를바꿔줘야합니다. 6 마지막으로퀴즈결과에따른점수를말하면프로젝트가완성됩니다. 당신의점수는 00 입니다. 라고출력하도록변수와연산블록을이용하여작성해보세요. 5 심화활동 여러분이직접제주방언을조사하여제주방언퀴즈프로그램을완성해봅시다. 4 차시제주방언퀴즈프로그램 41
6 자기평가하기 제주방언퀴즈프로그램 프로젝트활동을통해내가배운내용에대해스스로 평가해보세요. (5 : 매우그렇다 ~ 1 : 매우아니다 ) 연번평가기준 5, 4, 3, 2, 1 1 2 3 리스트가무엇인지알고변수와다른점을설명할수있나요? 리스트를이용한제주방언퀴즈프로그램의동작을알고리즘으로표현할수있나요? 리스트를이용한제주방언퀴즈프로그램의동작알고리즘을스크래치로프로그래밍할수있나요? 42 제주로온코딩
5~6 프로젝트명 누구의공이더많이남은걸까? - 공넘기기게임로봇만들기 -
1 문제상황파악하기 아마존창고를책임지는로봇짐꾼 키바 https://www.youtube.com/watch?v=gqpmddjmbns( 약 2 분 41 초 ) 택배왔어요 택배로봇현실되나 https://www.youtube.com/watch?v=lch7ofarilc( 약 37 초 ) 44 제주로온코딩
대한민국청소년로봇스포츠공넘기기 https://www.youtube.com/watch?v=crr06sbs6x( 약 1 분 38 초 ) 생활속에서물건을운반하는로봇사례를통해물건운반로봇이생활속에필요 한이유는무엇일까요? 5~6 차시누구의공이더많이남은걸까? 45
2 문제해결방법찾기 ( 언플러그드활동 ) 공넘기기게임을통해로봇의원리를체험해봅시다. 중앙선 게임방법 1 책상을한쪽으로밀어놓고경기장을종이테이프등을이용하여표시한다. 2 2 팀으로나누어로봇의역할을수행할학생을 1 명씩뽑는다. 3 피구공, 탱탱볼등다양한공을양쪽팀에똑같이배치한다. 4 로봇을맡은학생은시작신호에따라 1 분동안상대편진영으로공을운반한다. 5 여러명의학생들로하여금반복해보게한다. 6 공넘기기게임에필요한명령어에대해생각해보기 7 공넘기기게임과정에서힘들었던점발표해보기 46 제주로온코딩
공넘기기게임을통해공넘기기게임로봇을어떻게만들어야할지관련자료 조사및해결아이디어를찾아보고발표해봅시다. 구분 내용 해결해야할문제는? 관련자료조사 아이디어 필요한도구 공넘기기게임과정을생각하면서문제를해결하기위한방법을생각해보고, 나 의생각과친구들의발표를듣고정리하여봅시다. 구분 내용 공이있는곳까지이동하기 전체동작을작은단위로나누기 5~6 차시누구의공이더많이남은걸까? 47
이동하는프로그램 개발해야할프로그램 친구들의발표내용을듣고, 나의의견을정리하여봅시다. 이름발표내용나의의견 48 제주로온코딩
3 선택구조를이용하여알고리즘만들기 공넘기기게임로봇이움직이는방법을생각해보고, 알고리즘을만들어봅시다. 공이있는곳에도착한경우, 공을잡은경우, 중앙선에도착한경우 로봇의회전을이용할경우 5~6 차시누구의공이더많이남은걸까? 49
공넘기기게임로봇이움직이는방법을생각해보고, 순서도로나타내어봅시다. 시작 심판이게임종료를선언했는가? ( ) 종료 ( ) ( ) 아니오 방향키를눌러공이있는방향으로회전시키기 예 모터의회전을이용하여상대편진영으로공을쳐넘기기 공잡기 ( ) ( ) 아니오 공내려놓기 50 제주로온코딩
준비된보드판또는미로판이없을경우, 짝과함께공넘기기게임을할수있는 나만의경기장을아래에그려보고우드락, 양면테이프등을이용하여직접만들 어봅시다. 5~6 차시누구의공이더많이남은걸까? 51
4 비트브릭스케치로공넘기기게임로봇프로젝트만들기 알고리즘및순서도를바탕으로비트브릭스케치를작성해봅시다. (1) 공이있는방향으로로봇을회전시키거나이동시키기위한프로젝트 1 공넘기기게임로봇을방향키로움직이려고합니다. 위쪽화살표를눌렀을때 LED 가정해진색으로켜지면서로봇이앞으로이동하도록하기위해왼쪽, 오른쪽 DC 모터의방향을정하고속력을 100 으로입력합니다. 1 2 2 위쪽화살표를눌렀을때 LED 가정해진색으로바뀌면서로봇이앞으로이동하도록하는스크립트를세번복사해서연결시킨후완쪽과같이수정해봅시다. 7 3 4 5 6 3 아래방향, 왼쪽, 오른쪽화살표를각각눌렀을때 LED 가정해진색으로바뀌면서로봇이뒤로이동하거나, 왼쪽, 오른쪽으로회전하도록하는스크립트를작성하고자합니다. 그렇다면 1, 2, 3, 4, 5, 6 에어떤내용이들어가야하는지생각해봅시다. 해당하는방향으로이동하거나회전하려면 DC 모터의회전방향을각각어떻게바꿔야하는지생각해보면해결할수있습니다. 52 제주로온코딩
4 방향키를누르지않았을때는제자리에멈춰서다음명령을기다리도록하려면 7 에는어떤내용이들어가야하는지생각해봅시다. (2) 공이있는곳에도착하면공을잡도록하는프로젝트 8 9 5 로봇이공이있는곳에도착하면서보모터를이용하여공을잡는스크립트 를작성하려고합니다. 0~1023까지의저항값을가지는포텐시오미터 (1-가 변저항 ) 가동작하는값을 서보모터값 이라는변수에저장한후, 서보모터를 서보모터값 만큼움직이게하려면, 8, 9 에어떤내용이들어 가야하는지생각해봅시다. 5~6 차시누구의공이더많이남은걸까? 53
5 피지컬컴퓨팅도구 ( 비트브릭 ) 로로봇만들기 비트브릭으로공넘기기게임로봇을만들어봅시다. 1 USB 연결하기 2 ( ) 연결하기 3 ( ) 번포트 : ( ) 연결하기 4 ( ) 포트 : ( ) 연결하기 3D 비트카제작후결합하기 5 ( ) 포트 : ( ) 2 개연결하기 6 완성 54 제주로온코딩
6 확인해보기 로봇작동이정확하게이루어지는지확인하여보고오류가발생할경우, 그원인 을찾고프로그램을수정해봅시다. 발생한오류는어떤것인가요? 내가생각하는원인은무엇인가요? 해결방법은어떤것이있나요? 선생님의견 5~6 차시누구의공이더많이남은걸까? 55
7 공넘기기게임대회하기 정해진시간안에상대편진영에탁구공을가장많이넘기는팀이이기는게임을 해보고그결과를아래에기록해봅시다. 나 8 심화활동 공넘기기알고리즘을바탕으로탁구로봇, 골프로봇, 축구로봇등을프로그래밍 하고친구와즐겁게게임을해봅시다. 56 제주로온코딩
9 자기평가하기 공넘기기게임로봇만들기활동을통해내가배운내용에대해스스로평가해 보세요. (5 : 매우그렇다 ~ 1 : 매우아니다 ) 연번평가기준 5, 4, 3, 2, 1 1 2 3 로봇을활용하여물건을이동시키는방법을잘알게되었나요? 로봇을이동시켜공을잡고상대편으로넘기는알고리즘을만들수있나요? 앞으로생활속에서어떤문제를발견했을때컴퓨팅사고력으로문제를해결할수있나요? 5~6 차시누구의공이더많이남은걸까? 57
7~8 프로젝트명 바쁘다바빠! - 나만의로봇청소기만들기 -
1 문제상황파악하기 추석을맞이해서우리집에친척들이오기로하였다. 그런데, 엄마는음식준비, 아빠는차례상준비로바쁘셔서나에게청소를하라고하셨다. 하지만나는사촌들과재미있게놀려면학원숙제를미리해놓아야한다. 만약, ( ) 가있다면시간을뺏기지않고숙제를할수있을텐데. 주인공의문제상황을해결하기위하여필요한아이디어는어떤것들이있을까 요? 각자의생각을적어봅시다. 60 제주로온코딩
2 문제해결방법찾기 ( 언플러그드활동 ) 로봇청소기의움직임원리를체험해봅시다. ( 로봇청소기역할 ) ( 장애물 ) 게임방법 1 책상을한쪽으로밀어놓고정해진구역을만든다. 2 책상을군데군데배치하여장애물역할을하도록한다. 3 각팀별로 1 명을뽑아로봇청소기의역할을수행한다. ( 밀대를이용자신의앞쪽만이동하며닦을수있다.) 4 로봇을맡은학생은정해진구역에들어가청소를할준비를한다. 5 팀원들은로봇청소기를맡은학생이수행할행동을로봇청소기역할학생에게전달한다. ( 예 : 한걸음앞으로간다. 45 도오른쪽으로돈다. 멈춘다. 등 ) 6 로봇청소기를맡은학생은전달받은명령에따라청소를한다. 7 로봇청소기움직임원리체험과정에서힘들었던점발표해보기 7~8 차시바쁘다바빠! 61
로봇청소기의움직임원리체험활동을통해로봇청소기를어떻게만들어야할지 관련자료조사및해결아이디어를찾아보고발표해봅시다. 구분 내용 해결해야할문제는? 관련자료조사 아이디어 필요한도구 로봇청소기의청소과정을생각하면서문제를해결하기위한방법을생각해보고, 나의생각과친구들의발표를듣고정리하여봅시다. 구분 내용 이동하면서청소하기 전체동작을작은단위로나누기 62 제주로온코딩
이동하는프로그램 개발해야할프로그램 친구들의발표내용을듣고, 나의의견을정리하여봅시다. 이름발표내용나의의견 7~8 차시바쁘다바빠! 63
3 선택구조를이용하여알고리즘만들기 로봇청소기가움직이는방법을생각해보고, 알고리즘을만들어봅시다. 청소중장애물이거리감지센서에감지되면, 청소중장애물이감지되지않으면, 일정시간이지나면, 64 제주로온코딩
로봇청소기가움직이는방법을생각해보고, 순서도로나타내어봅시다. 시작 ( ) ( ) 시간 60 초거리감지센서값 900 양쪽모터속도 100, 앞으로이동하기 ( ) ( ) 모든모터끄고제자리에멈추기 ( ) 아니오아니오왼쪽, 오른쪽거리감지센서값 900 왼쪽거리감지센서값 오른쪽거리감지센서값 예 예 종료 ( ) ( ) ( ) 참고 : 거리감지센서값은여러분의실제작동환경에따라달라질수있으므로적 절하게조절해줄필요가있습니다. 7~8 차시바쁘다바빠! 65
준비된보드판또는미로판이없을경우, 로봇청소기를작동시킬수있는나만의 벽이있는보드판을아래에그려보고우드락, 양면테이프등을이용하여직접만 들어봅시다. ( 곳곳에장애물도표시해주면더욱좋습니다.) 66 제주로온코딩
4 비트브릭스케치로로봇청소기프로젝트만들기 알고리즘및순서도를바탕으로비트브릭스케치를작성해봅시다. (1) 로봇청소기의 IR 센서 ( 거리감지모드 ) 를이용하여벽 ( 장애물 ) 을탐지하기위한프로 젝트 1 로봇청소기의 IR 센서 ( 거리감지모드 ) 를이용하여벽 ( 장애물 ) 을탐지하려고합니다. 처음에는 IR 센서가장착된서보모터가앞쪽을향한상태로벽 ( 장애물 ) 과의거리가일정거리 ( 예. 900) 보다가까워지면일단제자리에멈추도록하는스크립트를작성하고자합니다. 그렇다면 1 에어떤내용이들어가야하는지생각해봅시다. 2 왼쪽, 오른쪽 IR 센서값을넣을 left, right 라는변수를만들고, 초기화하려면 2, 3 에어떤값을넣어야할까요? 3 A 포트에연결된서보모터가 10 만큼움직여서얻어낸값을 left 에, 90 만큼움직여서얻어낸값을 right 에저장하려면, 4, 5 에어떤내용이들어가야 하는지생각해봅시다. 4 IR 센서 ( 거리감지모드 ) 에벽 ( 장애물 ) 이탐지되지않으면 B, C 포트에연결된 DC 모터를구동시켜전진하도록하고 D 포트에연결된 DC 모터를작동시켜청소용솔을회전시키도록스크립트를작성합니다. 7~8 차시바쁘다바빠! 67
5 로봇청소기의 IR 센서 ( 거리감지모드 ) 에앞쪽에있는어떤벽 ( 장애물 ) 이탐지되었을때, 벽을피해서움직이도록로봇청소기의이동방향을결정해야합니다. 또다른벽 ( 장애물 ) 이없는방향으로로봇청소기가이동하기위한스크립트를작성하려면, 6 에어떤내용이들어가야하는지생각해봅시다. 그명령에따라로봇을구동시키는 2 개의 DC 모터의회전방향이어떻게변화되었는지생각해보면해결할수있습니다. 6 로봇청소기의왼쪽, 오른쪽에서감지된 IR센서 ( 거리감지모드 ) 값을비교해서왼쪽에어떤벽 ( 장애물 ) 이탐지되었을때, 벽을피해서움직이려면로봇청소기가어떻게회전해서움직여야하는지 7, 8 에들어갈내용을생각해봅시다. 아니면오른쪽에어떤벽 ( 장애물 ) 이탐지되었을때, 벽을피해서움직이려면로봇청소기가어떻게회전해서움직여야하는지 9, 10 에들어갈내용을생각해 봅시다. 68 제주로온코딩
7 마지막으로, 청소가다끝나면충전기위치로돌아가서스스로충전을하는스크립트를제작하려고합니다. 청소가다끝나면충전기에서밝은빛이켜지고밝기센서에서감지한값이 1200 이상 ( 상황에따라달라질수있음 ) 이면충전기위치를제대로찾은것으로간주하여충전을위하여작동을멈추도록하려면 11 에어떤내용을넣어야할지생각해봅시다. 8 지금까지제작한스크립트를알맞게결합시켜봅시다. 7~8 차시바쁘다바빠! 69
70 제주로온코딩
5 피지컬컴퓨팅도구 ( 비트브릭 ) 로로봇만들기 비트브릭으로로봇청소기를만들어봅시다. 1 USB 연결하기 2 ( ) 연결하기 3 ( ) 번포트 : ( ) 연결하기 4 ( ) 포트 : ( ) 연결하기 5 2 번포트 : 밝기센서연결하기 6 B,C,D 포트 : DC 모터 3 개연결하기 7~8 차시바쁘다바빠! 71
3D 비트카제작후결합하기 7 완성 6 확인해보기 로봇작동이정확하게이루어지는지확인하여보고오류가발생할경우, 그원인 을찾고프로그램을수정해봅시다. 발생한오류는어떤것인가요? 내가생각하는원인은무엇인가요? 해결방법은어떤것이있나요? 72 제주로온코딩
선생님의견 7 심화활동 로봇청소기알고리즘을바탕으로미로탈출알고리즘을구상하여봅시다. 8 자기평가하기 로봇청소기만들기활동을통해내가배운내용에대해스스로평가해보세요. (5 : 매우그렇다 ~ 1 : 매우아니다 ) 연번 평가기준 5, 4, 3, 2, 1 1 로봇청소기개발을위한설계를할수있나요? 2 3 센서를활용하여자동으로청소하는로봇과그알고리즘을설계할수있나요? 문제를분해하고다양한상황을고려하여컴퓨팅사고과정으로해결하는태도를갖게되었나요? 7~8 차시바쁘다바빠! 73
9~10 프로젝트명 미션! 미로를탈출하라! - 미로탈출로봇만들기 -
1 문제상황파악하기 자율주행자동차영상보기 https://www.youtube.com/watch?v=v1lp1fymsno&feature=youtu. be( 약 1 분 23 초 ) https://www.youtube.com/watch?v=-j5blul_spc( 약 3 분 32 초 ) 76 제주로온코딩
자동차가자동으로거리를인식해서운전하면어떤점이편리할까요? 자율주행기술이가져올사회적변화에대해생각해봅시다. 자율주행기술에필요한센서의역할에대해생각해봅시다. 9~10 차시미션! 미로를탈출하라! 77
2 문제해결방법찾기 ( 언플러그드활동 ) 미로찾기로봇의움직임원리를체험해봅시다. 출발 도착 게임방법 1 교실에있는책상을미로형태로배치한다.( 또는학생들이서로팔을벌려손을맞잡고미로를구성하게할수도있음 ) 2 1 명을뽑아미로탈출로봇의역할을수행한다. 3 로봇을맡은학생은미로출발점에서책상보다낮게앉아서출발할준비를한다. 4 로봇을맡은학생은출발신호에따라미로에서스스로길을찾는다. 5 여러명의학생들로하여금반복해보게한다. 6 미로탈출에필요한명령어에대해생각해보기 7 미로탈출과정에서힘들었던점발표해보기 78 제주로온코딩
미로탈출로봇을어떻게만들어야할지관련자료조사및해결아이디어를찾아 보고발표해봅시다. 구분 내용 해결해야할문제는? 관련자료조사 아이디어 필요한도구 미로탈출과정을생각하면서문제를해결하기위한방법을생각해보고, 나의생 각과친구들의발표를듣고정리하여봅시다. 구분 내용 전체동작을작은단위로나누기 9~10 차시미션! 미로를탈출하라! 79
개발해야할프로그램 친구들의발표내용을듣고, 나의의견을정리하여봅시다. 이름발표내용나의의견 80 제주로온코딩
3 선택구조를이용하여알고리즘만들기 미로를탈출하기위해움직이는방법을생각해보고, 알고리즘을만들어봅시다. 이동중거리감지센서로왼쪽, 앞쪽, 오른쪽에장애물이감지된경우, 왼쪽에만또는오른쪽에만또는왼쪽과오른쪽에만장애물이감지된경우, 왼쪽과앞쪽에만장애물이감지된경우, 앞쪽과오른쪽에만장애물이감지된경우, 9~10 차시미션! 미로를탈출하라! 81
앞쪽에만장애물이감지된경우 왼쪽, 앞쪽, 오른쪽에장애물이감지되지않은경우, 82 제주로온코딩
미로를탈출하기위해움직이는방법을생각해보고, 순서도로나타내어봅시다. 시작 전진하기 거리감지센서왼쪽값, 앞쪽값, 오른쪽값 아니오 거리감지센서값 200 예 ( ) 예 후진하기 아니오 거리감지센서왼쪽값또는오른쪽값또는왼쪽, 오른쪽값 200 예 ( ) 아니오 ( ) 예 우회전하기 아니오 거리감지센서오른쪽, 앞쪽값 200 예 ( ) 아니오 ( ) 거리감지센서앞쪽값 200 ( ) 거리감지센서왼쪽값 오른쪽값 ( ) 종료 참고 : 거리감지센서값은여러분의실제작동환경에따라달라질수있으므로적 절하게조절해줄필요가있습니다. 9~10 차시미션! 미로를탈출하라! 83
준비된보드판또는미로판이없을경우, 나만의미로를아래에그려보고우드락, 양면테이프등을이용하여직접만들어봅시다. 84 제주로온코딩
4 비트브릭스케치로미로탈출로봇프로젝트만들기 알고리즘및순서도를바탕으로비트브릭스케치를작성해봅시다. (1) 미로탈출로봇의 IR 센서 ( 거리감지모드 ) 를이용하여벽 ( 장애물 ) 을탐지하기위한 프로젝트 9~10 차시미션! 미로를탈출하라! 85
1 미로탈출로봇이벽을감지해내는 IR 센서 ( 거리감지모드 ) 값은상황에따라다를수있으므로사전테스트를통해 IR 센서기준값 이라는변수에적당한값을입력하면됩니다. 변수를활용하면상황에따라센서값을바꿔야할때에도일일이바꿔줄필요가없이변수값만바꿔주면됩니다. 그렇다면 1, 2, 3 에공통적으로어떤내용이들어가야하는지생각해봅시다. 3 개의 IR 센서값이주어진조건에해당하지않는경우즉, 어느방향으로도장애물이감지ㅚ지않은경우에는미로를탈출한것으로보고모터를멈추게됩니다. 2 이동중거리감지센서로왼쪽, 앞쪽, 오른쪽에장애물이감지된경우, 왼쪽이나오른쪽에통로가감지될때까지후진하도록하려면 4, 5, 6 에어떤내용이들어가야할까요? 86 제주로온코딩
3 왼쪽에만또는오른쪽에만또는왼쪽과오른쪽에만장애물이감지된경우, 앞으로이동하도록스크립트를작성해봅시다. 4 왼쪽과앞쪽에만장애물이감지된경우, 앞쪽 IR 센서에지나갈수있는길이탐지될때까지오른쪽으로회전한후이동하도록하려면 7, 8, 9 에어떤내용이들어가야할까요? 9~10 차시미션! 미로를탈출하라! 87
5 앞쪽과오른쪽에만장애물이감지된경우, 앞쪽 IR 센서에지나갈수있는길이탐지될때까지왼쪽으로회전한후이동하도록하려면 10, 11 에어떤내용이들어가야할까요? 88 제주로온코딩
6 앞쪽에만장애물이감지된경우, 왼쪽과오른쪽 IR 센서값을비교하여값이큰쪽 ( 길이있는쪽 ) 으로이동하도록스크립트를작성하려면, 12 에어떤내용이들어가야하는지생각해봅시다. 7 지금까지제작한스크립트를알맞게결합시켜봅시다. 9~10 차시미션! 미로를탈출하라! 89
5 피지컬컴퓨팅도구 ( 비트브릭 ) 로로봇만들기 비트브릭으로미로탈출로봇을만들어봅시다. 1 USB 연결하기 2 ( ) 연결하기 3 ( ) 번포트 : ( ) 연결하기 4 ( ) 포트 : ( ) 연결하기 5 2 번포트 : 밝기센서연결하기 6 B,C,D 포트 : DC 모터 3 개연결하기 90 제주로온코딩
3D 비트카제작후결합하기 7 완성 6 확인해보기 로봇작동이정확하게이루어지는지확인하여보고오류가발생할경우, 그원인 을찾고프로그램을수정해봅시다. 발생한오류는어떤것인가요? 내가생각하는원인은무엇인가요? 해결방법은어떤것이있나요? 9~10 차시미션! 미로를탈출하라! 91
선생님의견 7 미로탈출대회하기 미로탈출대회를해보고그결과를아래에기록해봅시다. 나 8 심화활동 다양한모양의미로를만들어미로를탈출해보고오류가있을경우수정해봅 시다. 92 제주로온코딩
9 자기평가하기 미로탈출로봇만들기활동을통해내가배운내용에대해스스로평가해보세 요. (5 : 매우그렇다 ~ 1 : 매우아니다 ) 연번평가기준 5, 4, 3, 2, 1 1 2 3 로봇의거리센서를이용하여자동주행시스템을이해할수있나요? 순차, 선택, 반복등의블록명령어를활용하여프로그램을만들수있나요? 앞으로생활속에서어떤문제를발견했을때컴퓨팅사고력으로문제를해결할수있나요? 9~10 차시미션! 미로를탈출하라! 93