중학교심화과정 제주특별자치도와함께하는코딩교육
목차 1 차시쉽게계산할수있어요 3 2 차시내가만든문제한번풀어봐 15 3 차시내몸은내가지킨다 23 4 차시안전지킴이 31 5 차시 6 차시배려와소통의공동체문화를찾아서 39 7 차시 8 차시누가이길까? 53 9 차시 10 차시우리집은내가지킨다! 65 2 제주로온코딩
1 프로젝트명 쉽게계산할수있어요 - 길이단위변환기앱, 체질량지수계산앱만들기 -
1 문제상황파악하기 요즘현대인들의가장큰문제중의하나가비만이라고해요. 비만은심장질환, 당뇨, 고지혈증등을유발하여우리의몸을크게상하게만들수있다고해요. 특히인스턴트음식과정크푸드에익숙해진학생들의비만율이점점심각해지고있다고하니우리들도관리가필요할것같아요. 그럼나의비만을예방할수있는계산앱을만들어볼까요? 길이단위변환기와체질량지수앱에는어떤컴포넌트와기능들이사용될까요? 1 2 3 4 제주로온코딩
2 길이단위변환기앱만들기 앱의화면을설계하여봅시다. 1 [ 팔레트 ] [ 레이아웃 ] - [ 수평배치 ] 을뷰어에가져다놓습니다. 2 수평배치이름을입력영역으로변경합니다. 3 입력영역안에 [ 버튼 ] 2개와 [ 텍스트상자 ] 1개를가져다놓고, 이름을알맞게변경합니다. 4 [ 팔레트 ] [ 레이아웃 ] - [ 수평배치 ] 을뷰어에가져다놓습니다. 5 수평배치이름을계산영역으로변경합니다. 6 [ 텍스트상자 ] 1개와 [ 레이블 ] 1개를가지고와서, 이름을알맞게변경합니다. 1 차시쉽게계산할수있어요 5
블록프로그래밍해봅시다. 1 2 1 결과값을저장할변수 결과 를만들고 0을저장하는블록입니다. 2 cm버튼을클릭했을때길이상자텍스트가비어있지않으면결과값에 1 (0.393701) 을저장합니다. 결과값을결과상자에출력하고단위텍스트를 inch로바꾸는블록입니다. 3 inch버튼을클릭했을때길이상자텍스트가비어있지않으면결과값에 ( 길이상 자텍스트 ) (2.54) 을저장합니다. 결과값을결과상자에출력하고단위텍스 트를 inch로바꾸는블록입니다. 2 에어떤블록을넣어야할까요? 3 확인해보기 라이브테스팅또는앱설치하기로잘동작하는지확인해봅시다. 길이단위변환기 앱이잘동작하나요? 오류가발생할경우, 그원인을찾고프로 그램을수정해봅시다. 발생한오류는어떤것인가요? 6 제주로온코딩
내가생각하는원인은무엇인가요? 해결방법은어떤것이있나요? 선생님의견 4 체질량지수계산앱만들기 앱의화면을설계하여봅시다. 1 차시쉽게계산할수있어요 7
1 [ 팔레트 ] [ 레이아웃 ] - [ 수평배치 ] 을뷰어에가져다놓습니다. 2 수평배치이름을신체치수영역으로변경합니다. 3 신체치수영역안에 [ 레이블 ] 2개와 [ 텍스트상자 ] 2개를가져다놓고, 이름을알맞게변경합니다. 4 [ 팔레트 ] [ 레이아웃 ] - [ 수평배치 ] 을뷰어에가져다놓습니다. 5 수평배치이름을버튼영역으로변경합니다. 6 버튼영역안에 [ 버튼 ] 2개를만들고이름을알맞게변경합니다. 7 [ 팔레트 ] [ 레이아웃 ] - [ 수평배치 ] 을뷰어에가져다놓습니다. 8 수평배치이름을판별영역으로변경합니다. 9 판별영역안에 [ 레이블 ] 2개와 [ 텍스트상자 ] 2개를가져다놓고, 이름을알맞게변경합니다. 블록프로그래밍해봅시다. 3 8 제주로온코딩
1 계산하기버튼을클릭했을때동작하는블록입니다. 3 에어떤블록을들어가야할까요? - 체질량지수를계산 ( 체질량지수 = 몸무게 (kg) 키2(m2)) - 체질량지수를 BMI박스에표시 - 결과박스에비만도판정 체질량지수 18.5 미만일때 저체중, 18.5이상 ~23미만일때 정상 23이상 ~25 미만일때 과체중, 25이상 ~30미만일때 경도비만 30이상 ~35 미만일때 중등도비만, 35이상일때- 고도비만 2 초기화버튼을클릭했을때동작하는블록입니다. - 신장박스, 체중박스, BMI 박스, 결과박스내용을빈공간으로만듭니다. - 체중박스키보드를숨기는블록입니다. 5 확인해보기 라이브테스팅또는앱설치하기로잘동작하는지확인해봅시다. 체질량지수계산 앱이잘동작하나요? 오류가발생할경우, 그원인을찾고프로 그램을수정해봅시다. 발생한오류는어떤것인가요? 내가생각하는원인은무엇인가요? 1 차시쉽게계산할수있어요 9
해결방법은어떤것이있나요? 선생님의견 6 자기평가하기 계산앱만들기를통해내가배운내용에대해스스로평가해보세요. (5 : 매우그 렇다 ~ 1 : 매우아니다 ) 연번 평가기준 5, 4, 3, 2, 1 1 변수사용하는방법을알고적절히사용하고있나요? 2 변수를이용하여다양한계산하는앱을만들수있나요? 3 문제를파악하고해결하려기위해노력했나요? 참고자료 1. 앱인벤터기본기능익히기 1) 앱인벤터활용전준비사항 1 구글 (google.com) 계정필요 2 구글크롬브라우저 (Google chrome) 설치권장 - 사파리 (Safari), 파이어폭스 (FireFox) 등도가능 - 익스플로러 (Explorer) 사용불가능 10 제주로온코딩
2) 앱인벤터실행하기 1 앱인벤터사이트접속 (http://appinventor.mit.edu/explore/) 2 구글아이디로접속 3 언어변경하기 English 한국어 4 프로젝트 새프로젝트시작하기 3) 라이브테스팅 1 AI 컴패니언 : 컴퓨터와스마트폰이같은 Wifi로연결되었을때 - Google Play Store에서 <MIT AI2 Companion> 앱을폰에설치 - 컴퓨터와폰에서같은 Wifi로접속 - 앱인벤터화면상단의 [ 화면 ] 메뉴를클릭하고, [AI컴패니언] 선택 - 폰에서 <MIT AI2 Companion> 앱을실행하고, [scan QR code] 선택한후컴퓨터화면에나타난 QR 코드를스캔 2 에뮬레이터 : 컴퓨터화면에서테스트 - http://appinventor.mit.edu/explore/ai2/windows.html 사이트에서파일을다운로드하고설치 - 바탕화면에생성된 [aistarter] 파일실행 - 앱인벤터화면상단의 [ 화면 ] 메뉴를클릭하고, [ 에뮬레이터 ] 선택 1 차시쉽게계산할수있어요 11
3 USB: USB로연결하여스마트폰에서실행 - http://appinventor.mit.edu/explore/ai2/windows.html 사이트에서파일을다운로드하고설치 - Google Play Store에서 <MIT AI2 Companion> 앱을폰에설치 - 바탕화면에생성된 [aistarter] 파일실행 - 개발자옵션켜기 설정 휴대폰정보 빌드번호 (7번누르기 ) - 컴퓨터와스마트폰연결하기 4) 앱인벤터앱설치하기 1 앱 (.apk용 QR 코드제공 ) - 클릭후생성된 QR코드를 QR코드리더기로읽으면다운로드됨. - 설치하고실행 2 앱 (.apk용내컴퓨터에저장하기 ) - USB로연결하기등을이용하여스마트폰으로저장하여실행 5) 앱화면설계 컴포넌트디자이너 ( 디자이너 ) 1 팔레트 뷰어에배치할수있는컴포넌트목록을보여줌. 2 뷰어 컴포넌트를배치하여앱의화면설계. 앱화면을간단하게보여줌. 3 컴포넌트 프로젝트에서사용하고있는컴포넌트를보여줌. 4 미디어 프로젝트에포함된그림이나소리와같은미디어파일을보여줌. 5 속성 컴포넌트의속성을보여줌. 12 제주로온코딩
6) 앱동작지정 블록에디터 ( 블록 ) 1 블록 뷰어에배치할수있는블록목록을보여줌. 2 뷰어 뷰어에배치된블록들에따라앱이실행됨. 3 미디어 프로젝트에포함된그림이나소리와같은미디어파일을보여줌. 1 차시쉽게계산할수있어요 13
2 프로젝트명 내가만든문제한번풀어봐 - 장소선택앱, 퀴즈앱만들기 -
1 문제상황파악하기 다음사회시간에제주에관련된쪽지시험을본다고합니다. 그래서친구와제주퀴즈를만들어서서로풀어보기로했습니다. 지난프로그래밍시간에배웠던변수를사용하여프로젝트를만들어보려고했더니여러가지문제가생겨나서쉽지가않았습니다. 분명히이런앱을사용해본적은있는데, 어떻게만들면좋을까요? 여러분들도같이고민해봅시다. 장소선택앱과퀴즈앱에는어떤컴포넌트와기능들이사용될까요? 1 2 3 16 제주로온코딩
2 장소선택앱만들기 앱의화면을설계하여봅시다. 1 [ 버튼 ] 1 개, [ 레이블 ] 1 개, 음성 _ 변환을뷰어에가져다놓습니다. 2 [ 버튼 ] 과 [ 레이블 ] 의이름을알맞게변경합니다. 블록프로그래밍해봅시다. 1 2 차시내가만든문제한번풀어봐 17
1 장소리스트를만들고리스트에제주의관광지명소를 5곳을저장하는블록입니다. 1 에어떤내용이들어가야할까요? 2 선택한값을저장할변수 선택 을만들고, 빈값으로초기화하는블록입니다. 3 장소선택버튼을클릭했을때장소리스트에서임의의값을선택하여 선택 변수에저장하고그값을음성변환과레이블에출력하는블록입니다. 3 확인해보기 라이브테스팅또는앱설치하기로잘동작하는지확인해봅시다. 장소선택 앱이잘동작하나요? 오류가발생할경우, 그원인을찾고프로그램을수정해봅시다. 발생한오류는어떤것인가요? 내가생각하는원인은무엇인가요? 해결방법은어떤것이있나요? 선생님의견 18 제주로온코딩
4 퀴즈앱만들기 앱의화면을설계하여봅시다. 1 [ 버튼 ] 1개, [ 레이블 ] 1개를뷰어에가져다놓고, 이름을알맞게변경합니다. 2 [ 팔레트 ] [ 레이아웃 ] - [ 수평배치 ] 을뷰어에가져다놓습니다. 3 수평배치이름을답변영역으로변경합니다. 4 답변영역안에 [ 테이블박스 ] 1개와 [ 버튼 ] 1개를가져다놓고, 이름을알맞게변경합니다. 5 음성변환을 1개뷰어에가져다놓습니다. 2 차시내가만든문제한번풀어봐 19
블록프로그래밍을해봅시다. 2 1 문제리스트를만들고리스트에제주에관련된문제 3가지를저장하는블록입니다. 2 답변리스트를만들고리스트에제주에관련된문제에관련된답변 3가지를저장하는블록입니다. 3 퀴즈버튼을클릭했을때리스트가비어있지않으면 1부터리스트의크기만큼의값중에서임의로한개의숫자를선택해서그선택문제를출력하는블록입니다. 4 확인버튼을클릭했을때문제순서에있는답변과답변박스의답변이같으면 맞았습니다. 다르면 틀렸습니다. 를출력하는블록입니다._ 2 에어떤내용이들어가야할까요? 20 제주로온코딩
5 확인해보기 라이브테스팅또는앱설치하기로잘동작하는지확인해봅시다. 퀴즈 앱이잘동작하나요? 오류가발생할경우, 그원인을찾고프로그램을수정 해봅시다. 해결방법은어떤것이있나요? 내가생각하는원인은무엇인가요? 해결방법은어떤것이있나요? 선생님의견 2 차시내가만든문제한번풀어봐 21
6 자기평가하기 장소선택앱과퀴즈앱만들기를통해내가배운내용에대해스스로평가해보 세요. (5 : 매우그렇다 ~ 1 : 매우아니다 ) 연번 평가기준 5, 4, 3, 2, 1 1 리스트사용하는방법을알고적절히사용하고있나요? 2 리스트를이용하여다양한선택앱을만들수있나요? 3 문제를파악하고해결하려기위해노력했나요? 22 제주로온코딩
3 프로젝트명 내몸은내가지킨다 - 주사위게임앱, 만보계앱만들기 - 3 차시내몸은내가지킨다 23
1 문제상황파악하기 요즘체중이많이불어나는것같아요. 그래서인터넷에운동법을찾아보니밀레니얼세대들의운동법이라는기사가올라와있었어요. 기사를읽어보니우리몸에가장효율적인운동법중에하나로러닝을추천하는내용이었어요. 그래서러닝에도전하기로했어요. 그래서나의운동정도를체크할수있는앱이있으면좋겠다는생각이들어앱을만들어보려고합니다. 어떻게하면만들수있을까요? 주사위게임, 만보계앱에는어떤컴포넌트와기능들이사용될까요? 1 2 3 24 제주로온코딩
2 주사위게임앱만들기 앱의화면을설계하여봅시다. 1 [ 팔레트 ] [ 레이아웃 ] - [ 수평배치 ] 을뷰어에가져다놓습니다. 2 수평배치이름을주사위영역으로변경합니다. 3 선택영역 1 안에 [ 이미지 ] 2 개를가져다놓습니다. 4 [ 레이블 ], [ 가속도센서 ] 를뷰어에가져다놓습니다. 5 미디어에주사위 1~6 까지그림을업로드합니다. 빈레이블은사이사이의공간으로미적효과를내기위하여사용하였으므로필수적으로사용하지않아도됩니다. 3 차시내몸은내가지킨다 25
블록프로그래밍해봅시다. 1 2 1 1~6까지임의의수를저장할변수 a, b 를만들고 0을저장하는블록입니다. 2 가속도센서가흔들릴때변수에임의의정수를저장하고그임의의정수에해당하는주사위모양을보여줍니다. 그리고, 두변수를더하여결과레이블에주사위덧셈값을출력하는블록입니다. 1 과 2 에어떤내용이들어가야할까요? 3 확인해보기 라이브테스팅또는앱설치하기로잘동작하는지확인해봅시다. 주사위게임 앱이잘동작하나요? 오류가발생할경우, 그원인을찾고프로그램 을수정해봅시다. 발생한오류는어떤것인가요? 26 제주로온코딩
내가생각하는원인은무엇인가요? 해결방법은어떤것이있나요? 선생님의견 4 만보계앱만들기 앱의화면을설계하여봅시다. 3 차시내몸은내가지킨다 27
1 [ 레이블 ] 2 개, [ 버튼 ] 1 개, 가속도센서 1 개, TinyDB 1 개를뷰어에가져다놓고, 이름을알맞게변경합니다. 블록프로그래밍을해봅시다. 3 1 기록 과 최고기록 을저장할변수를만들고 0을저장하는블록입니다. 2 Screen1 초기화되었을때 [ 카운터레이블텍스트 ] 값이 0으로바뀌고최고기록 TinyDB에저장되어있는값을저장하지만, 찾는값이없으면 0을저장하는블록입니다. 3 최고기록을업데이트하는함수입니다. 최고기록을 TinyDB에저장해가며업데이트하는블록입니다. 28 제주로온코딩
4 가속도센서가흔들릴때 [ 카운터레이블텍스트 ] 값을 1씩증가시키는블록입니다. 3 에어떤내용이들어가야할까요? 5 새로고침버튼을클릭할때 [ 카운터레이블텍스트 ] 를 기록 변수에저장하고 기록 변수값이 최고기록 변수보다커지면최고기록업데이트함수를호출하는블록입니다. 5 확인해보기 라이브테스팅또는앱설치하기로잘동작하는지확인해봅시다. 만보계 앱이잘동작하나요? 오류가발생할경우, 그원인을찾고프로그램을수 정해봅시다. 발생한오류는어떤것인가요? 내가생각하는원인은무엇인가요? 해결방법은어떤것이있나요? 3 차시내몸은내가지킨다 29
선생님의견 6 자기평가하기 주사위게임앱과만보계앱만들기를통해내가배운내용에대해스스로평가해 보세요. (5 : 매우그렇다 ~ 1 : 매우아니다 ) 연번 평가기준 5, 4, 3, 2, 1 1 가속도센서를이해하고적절히사용하고있나요? 2 가속도센서를이용하여다양한가속도센서앱을만들수있나요? 3 문제를파악하고해결하려기위해노력했나요?
4 프로젝트명 안전지킴이 - 비상전화앱, 비상문자앱만들기 -
1 문제상황파악하기 학원을마치고집으로향하는길에누군가뒤에서쫓아오는듯한느낌이들었어요. 순간적으로엄마나아빠에게전화하고싶었지만너무긴장한나머지전화번호기억나질않아요. 이럴때쉽게가까운사람이나나를보호해줄곳으로연락할수있는앱이있으면좋을것같아요. 앱인벤터로만들어볼수있을까요? 비상전화 & 비상문자앱에는어떤컴포넌트와기능들이사용될까요? 1 2 3 32 제주로온코딩
2 비상전화앱만들기 앱의화면을설계하여봅시다. 1 [ 버튼 ] 5 개를뷰어에가져다놓고이름을변경합니다. 2 [ 팔레트 ] - [ 소셜 ] - [ 전화 ] 를뷰어에가져다놓습니다. 블록프로그래밍해봅시다. 1 1 4 차시안전지킴이 33
1 1 1 1 각각의버튼을클릭하면지정된전화번호전화를거는블록입니다. 1 에 어떤내용이들어가야할까요? 3 확인해보기 라이브테스팅또는앱설치하기로잘동작하는지확인해봅시다. 비상전화 앱이잘동작하나요? 오류가발생할경우, 그원인을찾고프로그램을 수정해봅시다. 발생한오류는어떤것인가요? 내가생각하는원인은무엇인가요? 34 제주로온코딩
해결방법은어떤것이있나요? 선생님의견 4 비상문자앱만들기 앱의화면을설계하여봅시다. 4 차시안전지킴이 35
1 [ 팔레트 ] [ 레이아웃 ] - [ 수평배치 ] 을뷰어에가져다놓습니다. 2 수평배치이름을 SOS영역으로변경합니다. 3 SOS영역 [ 버튼 ] 1개를가져다놓고이름을변경합니다. 4 [ 레이블 ] 2개를뷰어에가져다놓고이름을변경합니다. 5 [ 팔레트 ] - [ 소셜 ] - [ 문자메시지 ] 를뷰어에가져다놓습니다. 블록프로그래밍해봅시다. 2 1 전화번호리스트에전화번호를입력합니다. 2 번호레이블텍스트에전화번호항목을출력하는함수블록입니다. 3 Screen1 초기화되면번호출력함수를호출하는블록입니다. 2 에어떤내 용이들어가야할까요? 4 SOS버튼을누르면항목리스트에있는전화번호로메시지를보내는블록입니다. 36 제주로온코딩
5 확인해보기 라이브테스팅또는앱설치하기로잘동작하는지확인해봅시다. 비상문자 앱이잘동작하나요? 오류가발생할경우, 그원인을찾고프로그램을 수정해봅시다. 발생한오류는어떤것인가요? 내가생각하는원인은무엇인가요? 해결방법은어떤것이있나요? 선생님의견 4 차시안전지킴이 37
6 자기평가하기 비상전화앱과비상문자앱만들기를통해내가배운내용에대해스스로평가해 보세요. (5 : 매우그렇다 ~ 1 : 매우아니다 ) 연번 평가기준 5, 4, 3, 2, 1 1 소셜의전화와문자기능을이해하고적절히사용하고있나요? 2 소셜의전화와문자기능을활용하여긴급상황앱을만들수있나요? 3 문제를파악하고해결하기위해노력했나요? 38 제주로온코딩
5~6 프로젝트명 배려와소통의공동체문화를찾아서 - 제주정낭만들기 -
1 문제상황파악하기 제주특별자치도청홈페이지 / 분야별정보바로가기 / 문화 역사 http://www.jeju.go.kr/culture/folklore/samda/stone/towndol.htm Korean National Parks-Jeongnang https://www.youtube.com/watch?v=oqkjom2vo6o 걸쳐져있는정낭수에따른의미에대해조사해봅시다. 2 문제해결방법탐색하기 제주정낭제작에필요한피지컬컴퓨팅도구를제어할수있는교육용프로그래 밍언어의설치및사용법을알아봅시다. 1 비트브릭스케치설치하기 40 제주로온코딩
2 메인보드 5~6 차시배려와소통의공동체문화를찾아서 41
3 센서모듈 4 출력모듈 42 제주로온코딩
5 모듈, 결합체 5~6 차시배려와소통의공동체문화를찾아서 43
6 비트브릭스케치사용법알아보기 ( 실습 - 따라해보기 ) 제주정낭을어떻게만들어야할지관련자료조사및해결아이디어를찾아보 고발표해봅시다. 구분 내용 해결해야할문제는? 관련자료조사 아이디어 필요한도구 44 제주로온코딩
정낭의움직임원리를생각하면서문제를해결하기위한방법을생각해보고, 나의생각과친구들의발표를듣고정리하여봅시다. 구분 내용 전체동작을작은단위로나누기 개발해야할프로그램 친구들의발표내용을듣고, 나의의견을정리하여봅시다. 이름발표내용나의의견 5~6 차시배려와소통의공동체문화를찾아서 45
3 선택구조를이용하여알고리즘만들기 제주정낭의의미를생각해보고, 알고리즘을만들어봅시다. 집주인이정낭을세팅하기 좀멀리갈때, 저녁때쯤돌아올때, 금방돌아올때, 집에있을때, 정낭앞에사람이감지되면 정낭 3개 : 정낭 2개 : 정낭 1개 : 정낭 0개 : 제주정낭을움직이는방법을생각해보고, 순서도로나타내어봅시다. 시작 스페이스키클릭 예 종료 집주인의입력값 (1, 2, 3) 아니오아니오 ( ) ( ) ( ) 아니오 예예예 정낭 1 개올리기 정낭 2 개올리기 정낭 3 개올리기 아니오 누가찾아왔나요? 누가찾아왔나요? ( ) 예 ( ) 금방돌아올거예요 ( ) 좀멀리갔습니다 ( ) 46 제주로온코딩
준비된준비물을이용하여제작할제주정낭에대한설계도를아래에그려봅시다. 5~6 차시배려와소통의공동체문화를찾아서 47
4 비트브릭스케치로제주정낭프로젝트만들기 알고리즘및순서도를바탕으로비트브릭스케치를작성해봅시다. 1 2 3 4 1 집주인이집에있거나외출할때언제돌아오는지를알려주는제주정낭에필요한스크립트를제작하려고합니다. 먼저, 집주인이올려놓을정낭숫자에해당하는숫자를키보드에서누르면그값을저장하는변수를초기화하고, 각정낭을움직이는서보모터값을초기화하기위하여 1, 2, 3, 4 에공통적으로들어갈내용이무엇인지생각해봅시다. 5 6 2 스크립트를살펴보면서키보드입력값과 A 변수에저장될값이얼마인지 5, 6 에알맞은내용을생각해봅시다. 48 제주로온코딩
8 7 3 다른사람이집에찾아왔을때즉, 정낭앞에사람이감지되면집주인의부재여부를목소리로도알려주는스크립트를제작하려고합니다. 다른사람이일정거리에 ( 거리감지센서모드일때 IR센서값 200정도 ) 접근하면움직임을감지할수있도록하려면 7 에어떤내용이들어가야할까요? 9 4 움직임이감지되었을때변수값에대해알맞은소리를낼수있도록하려면 8, 9, 10, 11 에공통적으로들어갈내용은무엇인지생각해봅시다. 10 11 5 집주인이외출에서돌아왔을때스페이스키를누르면정낭의작동을멈추게하는프로젝트입니다. 5~6 차시배려와소통의공동체문화를찾아서 49
5 피지컬컴퓨팅도구 ( 비트브릭 ) 로제주정낭만들기 비트브릭으로제주정낭을만들어봅시다. 1 USB 연결하기 2 ( ) 연결하기 3 ( ) 번포트 : ( ) 연결하기 4 ( ) 포트 : ( ) 3 개연결하기 50 제주로온코딩
5 완성된프로젝트 6 작동장면 ( 정낭 1 개 ) 7 작동장면 ( 정낭 2 개 ) 8 작동장면 ( 정낭 3 개 ) 6 확인해보기 정낭작동이정확하게이루어지는지확인하여보고오류가발생할경우, 그원 인을찾고프로그램을수정해봅시다. 발생한오류는어떤것인가요? 5~6 차시배려와소통의공동체문화를찾아서 51
내가생각하는원인은무엇인가요? 해결방법은어떤것이있나요? 선생님의견 7 심화활동 정낭프로젝트를제품으로만들어전원주택이나여러관광지에활용할수있 도록집주인의부재여부를알려주는소리를다양한외국어로녹음하여프로젝트를수정하여봅시다. 8 자기평가하기 공넘기기게임로봇만들기활동을통해내가배운내용에대해스스로평가 해보세요. (5 : 매우그렇다 ~ 1 : 매우아니다 ) 연번 평가기준 5, 4, 3, 2, 1 1 스크래치에기반한비트브릭스케치사용법을잘알게되었나요? 2 센서를활용하여제주정낭의알고리즘을만들수있나요? 3 앞으로생활속에서어떤문제를발견했을때다양한상황을고려하여컴퓨팅사고력으로문제를해결할수있나요? 52 제주로온코딩
7~8 프로젝트명 누가이길까? - 축구로봇만들기 -
1 문제상황파악하기 FIRA Malaysia 2016 - Robosot Soccer - "Robosas Titan vs RIG PPD https://www.youtube.com/watch?v=qitd2qoglog( 약 4 분 30 초 ) 세계로봇축구대회 1. 탄생배경 1997년, 한국과학기술원 (KAIST) 을비롯, 세계 10여개국 20여개대학연구진들은세계로봇축구연맹을조직하였음. FIRA(Federation of International Robot-soccer Association) 라는공식명칭을사용하고있는세계로봇축구연맹은매년 FIRA Robot World Cup이라는이름으로세계로봇축구대회를개최하고있음. 먼저 FIRA가탄생하게된계기에는 1995년 KAIST의김종환 ( 전자공학과 ) 교수가로봇축구를창안한것에서시작됨. 그리고 1996년 11월 KAIST에서 MiroSot(Micro-Robot World Cup Soccer Tournament) 이라는경기를개최했음. MiroSot 조직위원회는로봇축구대회를국제적인과학기술월드컵으로발전시키고자 1997년 6월 KAIST서열린제2회국제대회의결승전에앞서세계 33개국 1백명의로봇학자들모인가운데 FIRA( 세계로봇축구연맹 ) 창립식을갖고로봇축구세계화의정식기구로서출발하였음. 이후 FIRA Robot World Cup이란이름으로 ' 세계로봇축구대회 ' 가매년열리고있음. 54 제주로온코딩
2. 대회방식매년 4개대륙 (North America, South America, Europe, Asia-Pacific) 의예선전을거쳐세계대회가개최되고있으며, 해마다세계 7-10개국에서수십여개의팀이참가, 토너먼트형식으로전후반전각각 5분씩진행됨. < 출처 : http://if-blog.tistory.com/452?srchid=br1http://if-blog. tistory.com/452> 세계로봇축구대회 FIRA Malaysia 2016 - Robosot Soccer 동영상을보고축 구로봇제작에필요한알고리즘에대해이야기해봅시다. 2 문제해결방법탐색하기 ( 언플러그드활동 ) 로봇축구게임을통해축구로봇의동작원리를체험해봅시다. 중앙선 7~8 차시누가이길까? 55
게임방법 1 책상을한쪽으로밀어놓고경기장을종이테이프등을이용하여표시한다. 2 2 팀으로나누어로봇의역할을수행할학생을 2 명씩뽑는다. 3 로봇을맡은학생은동작에대한명령어 ( 전진, 후진, 좌회전, 우회전, 패스, 슛등 ) 가다른학생들을통해전달되어야만움직일수있다. 4 로봇을맡은학생은시작신호에따라 1 분동안상대편골대에골을넣는것을목표로한다. 5 여러명의학생들로하여금반복해보게한다. 6 로봇축구에필요한명령어에대해생각해보기 축구로봇을어떻게만들어야할지관련자료조사및해결아이디어를찾아보 고발표해봅시다. 구분 내용 해결해야할문제는? 관련자료조사 아이디어 필요한도구 로봇축구게임체험을통해알게된움직임원리를생각하면서문제를해결하기 위한방법을생각해보고, 나의생각과친구들의발표를듣고정리하여봅시다. 구분 내용 전체동작을작은단위로나누기 56 제주로온코딩
개발해야할프로그램 친구들의발표내용을듣고, 나의의견을정리하여봅시다. 이름발표내용나의의견 3 선택구조를이용하여알고리즘만들기 축구로봇의움직임원리를생각해보고알고리즘을만들어봅시다. 경기가시작되면 7~8 차시누가이길까? 57
공을잡은경우 축구로봇의움직임원리를생각해보고, 순서도로나타내어봅시다. 시작 심판이게임종료를선언했는가? ( ) 종료 ( ) 로봇앞에공이있는가? ( ) 방향키를눌러공이있는방향으로회전시키기 ( ) 예 ( ) 슛팅하기 아니오 ( ) 공을몰고가기 58 제주로온코딩
준비된보드판또는미로판이없을경우, 로봇축구게임을할수있는나만의경 기장을아래에그려보고우드락, 양면테이프등을이용하여직접만들어봅시다. 7~8 차시누가이길까? 59
4 비트브릭스케치로축구로봇프로젝트만들기 알고리즘및순서도를바탕으로비트브릭스케치를작성해봅시다. 1 키보드의방향키를이용하여축구로봇의이동방향을제어하는스크립트를작성하려고합니다. 위쪽화살표를클릭하면전진하도록하는스크립트 를참고하여 1, 2, 3, 4, 5, 6 에알맞은내용이무엇인지생각해봅시다. 1 2 3 4 5 6 60 제주로온코딩
2 스페이스키를누르면슛팅이나패스를할수있도록하는스크립트를작성하려면 7 에알맞은내용은무엇인지생각해봅시다. 7 5 피지컬컴퓨팅도구 ( 비트브릭 ) 로축구로봇만들기 비트브릭으로축구로봇을만들어봅시다. 1 USB 연결하기 2 ( ) 연결하기 7~8 차시누가이길까? 61
3D 비트카제작후결합하기 3 ( ) 번포트 : ( ) 연결하기 4 ( ) 번포트 : ( ) 2 개연결하기 5 완성 6 확인해보기 로봇작동이정확하게이루어지는지확인하여보고오류가발생할경우, 그원 인을찾고프로그램을수정해봅시다. 발생한오류는어떤것인가요? 내가생각하는원인은무엇인가요? 해결방법은어떤것이있나요? 62 제주로온코딩
선생님의견 7 로봇축구게임하기 친구들과함께로봇축구게임을해보고그결과를아래에기록해봅시다. 나 8 심화활동 축구로봇알고리즘을바탕으로사용자의조작없이로봇스스로공을찾아다 니며공을몰거나슛팅을하는로봇의알고리즘을구상하여봅시다. 7~8 차시누가이길까? 63
9 자기평가하기 축구로봇만들기활동을통해내가배운내용에대해스스로평가해보세요. (5 : 매우그렇다 ~ 1 : 매우아니다 ) 연번평가기준 5, 4, 3, 2, 1 1 로봇을활용하여공을몰거나이동시키는방법을잘알게되었나요? 2 3 공이있는곳이나골대쪽으로로봇을이동시켜골을넣는알고리즘을설계할수있나요? 앞으로생활속에서어떤문제를발견했을때다양한상황을고려하여컴퓨팅사고력으로문제를해결할수있나요? 64 제주로온코딩
9~10 프로젝트명 우리집은내가지킨다! - 강아지로봇만들기 -
1 문제상황파악하기 국산무인정찰 / 전투견마로봇 ' 견마 '[Korea Unmanned Combat Vehicle] https://www.youtube.com/watch?v=fwbncfowgte( 약 1 분 53 초 ) 라인트레이서 https://www.youtube.com/watch?v=qvsinwssru4 ( 약 2 분 33 초 ) 무인정찰로봇및라인트레이서의움직임원리를생각해보고강아지로봇제 작에필요한알고리즘에대해이야기해봅시다. 66 제주로온코딩
2 문제해결방법탐색하기 ( 언플러그드활동 ) 강아지로봇제작에필요한라인트레이서의움직임원리를체험해봅시다. 게임방법 1 바닥에검은색절연테이프를이용하여라인트레이서라인만들기 2 모두한번씩나와서라인트레이서가되어라인을따라움직여보기 3 선을따라다니는라인트레이서의기본기능을익히고라인트레이서가어떻게동작을하는지등에대하여탐색해보기 4 라인트레이서의움직임원리체험과정에서느낀점이나힘들었던점발표해보기 강아지로봇을어떻게만들어야할지관련자료조사및해결아이디어를찾아 보고발표해봅시다. 구분 내용 해결해야할문제는? 관련자료조사아이디어필요한도구 9~10 차시우리집은내가지킨다! 67
라인트레이서체험을통해알게된움직임원리를생각하면서문제를해결하기 위한방법을생각해보고, 나의생각과친구들의발표를듣고정리하여봅시다. 구분 내용 전체동작을작은단위로나누기 개발해야할프로그램 친구들의발표내용을듣고, 나의의견을정리하여봅시다. 이름발표내용나의의견 68 제주로온코딩
3 선택구조를이용하여알고리즘만들기 강아지로봇의움직원원리를생각해보고, 알고리즘을만들어봅시다. 라인을따라이동중도둑이거리감지센서에감지되면 도둑이아니면 이동중장애물이감지되지않으면 멈추고싶으면 9~10 차시우리집은내가지킨다! 69
강아지로봇이움직이는방법을생각해보고, 순서도로나타내어봅시다. 시작 ( ) 예 종료 아니요 아니요 ( ) 800 ( ) 800 아니요 예 예 직진하기왼쪽으로조금씩이동하기오른쪽으로조금씩이동하기 ( ) 200 아니요 예 제자리에멈추기 LED 번쩍이기, 짖기 속도를빠르게하여달려들기 준비된검은색절연테이프를이용하여책상위또는바닥에라인을직접만들 어봅시다. 70 제주로온코딩
4 비트브릭스케치로강아지로봇프로젝트만들기 1 1 강아지로봇이순찰을하다가거리감지센서에도둑이감지되면 ( IR 센서값 200 정도 ) LED 불빛을반짝이고소리를내면서속도를높혀달려 들도록하는스크립트입니다. 1 에어떤내용이들어가야할지생각해봅시다. 2 1 번과 2 번포트에연결된 IR 센서는라인트레이서모드로설정이되어있습니다. IR 센서두개가검은색선을사이에두고미리설정한센서값보다클경우직진을하도록작성된스크립트 를참고하여 2, 3, 4, 5, 6, 7 에어떤내용이들어가야할지생각해봅시다. 2 3 4 5 6 7 9~10 차시우리집은내가지킨다! 71
3 강아지로봇이감지된물체를도둑으로오해했거나, 강아지로봇의순찰을멈추도록할때에는스페이스키를누르면멈추도록하는스크립트입니다. 5 피지컬컴퓨팅도구 ( 비트브릭 ) 로강아지로봇만들기 비트브릭으로강아지로봇을만들어봅시다. 1 USB 연결하기 2 ( ) 연결하기 3 1,2,3 번포트 : ( ) 3 개연결하기 3D 비트카제작후결합하기 4 ( ) 포트 : ( ) 2 개연결하기 5 완성품 72 제주로온코딩
6 확인해보기 로봇작동이정확하게이루어지는지확인하여보고오류가발생할경우, 그원 인을찾고프로그램을수정해봅시다. 발생한오류는어떤것인가요? 내가생각하는원인은무엇인가요? 해결방법은어떤것이있나요? 선생님의견 7 심화활동 강아지로봇알고리즘을바탕으로, 반복적으로라인을따라가지않고자유롭게 집주위를순찰하며집을지키는강아지로봇의알고리즘을구상하여봅시다. 9~10 차시우리집은내가지킨다! 73
8 자기평가하기 강아지로봇만들기활동을통해내가배운내용에대해스스로평가해보세요. (5 : 매우그렇다 ~ 1 : 매우아니다 ) 연번평가기준 5, 4, 3, 2, 1 1 강아지로봇개발을위한설계를잘할수있었나요? 2 센서를활용하여집주위를순찰하고도둑을갑지하는로봇과그알고리즘을설계할수있나요? 3 앞으로생활속에서어떤문제를발견했을때문제를분해하고다양한상황을고려하여컴퓨팅사고력으로문제를해결할수있나요? 74 제주로온코딩