CS Unplugged 놀이로 배우는 컴퓨터 과학 #1 1. 컴퓨터의 언어 - 이진기호 지도안 1. 컴퓨터들의 언어 - 이진기호 목표 컴퓨터의 언어로 쓰이는 이진기호에 대해 알고 이진기호를 사용하여 비밀번호 전송게임을 할 수 있다. 방법 협력 소요 시간 90분 적정 연령 12세 관련 CT 데이터 표현 이진기호를 이용한 정보전달을 통해 컴퓨터의 계산방법을 이해하는 기본지식을 배울 수 있습니다. 선생님 활동지, 동영상, 상자, 번호 열쇠 준비물 학생 광섬유, 레이저 포인터 < 개요 > 컴퓨터의 언어로 쓰이는 2진수를 일상생활의 여러 구체적인 경우와 연결해보는 활동을 하고 이진수를 사용하여 모둠별로 열쇠의 비밀번호를 이진기호로 만들고 이것을 광섬유를 이용해 전송게임을 할 수 있도록 하였습니다. 2 CS Unplugged 1. 컴퓨터의 언어 - 이진기호 3
단계 소요 시간 요소 교수 활동 형태 자료 1 동기유발 활동 도입 5분 20분 동기유발 목표 제시 활동1 청기, 백기 게임을 시청하고 청기 백기 게임을 해보기 - 학생들을 두 팀으로 나누어 청기, 백기로 정하기 게임을 해본다. 두 가지 상태로 표현할 수 있는 것이 어떤 것이 있는지 알아보기 - 우리 주변에서 두 가지 상태로만 표현 가능한 것 찾아보기 전체 이진기호가 필요한 이유를 알 수 있다. 이진기호를 이용하여 정보를 표현할 수 있다. 이진기호를 이용하여 비밀번호 전송게임을 할 수 있다. 문제 상황 제시 - 비밀번호 전송 게임이라는 상황을 제시한다. - 동영상을 통해 학생들이 어떤 게임을 해야 하는지 알 수 있도록 한다. 2개의 상태를 표현하는 이진기호 알기 - 엄지 신호를 0과 1로 약속해보기 엄지 신호를 이진기호로 바꾸어 보기 - 선생님의 엄지 신호를 이진기호로 바꾸는 놀이 해보기 모둠별로 돌아가며 엄지 신호를 이진기호로 바꿔 보기 두 가지 기호로 표현하는 방법을 찾아보자. - 모둠별 협력을 통해 두 가지 기호로 표현하는 사례를 찾아보자. 모둠 활동 동영상 2 [문제 확인하기] - 청기 백기 게임 동영상을 보고 두 가지 상태가 있는 사례를 찾아보고, 이진기호를 문제로 확인해봅니다. 청기 백기 게임 동영상 예) https://www.youtube.com/watch?v=kvnb9bpvkuq 문제 제시 1. 비밀번호 전송 게임 상황에서 비밀번호를 어떻게 전송해야 할까요? 2. 우리 주변에서 두 가지로 표현되는 것을 숫자로 어떻게 표현할 수 있을까요? 3. 0~9까지의 숫자를 이진기호로 어떻게 표현할 수 있을까요? 4. 비밀번호 전송 게임에서 이기기 위해 어떤 전략을 세워야 할까요? 전개 30분 활동2 비밀번호 전송 게임 설명하기 - 모둠별로 열쇠의 비밀번호를 전송해야 하는 상황을 설명한다. - 광섬유를 통해 레이저를 통해 보물 상자의 비밀번호를 전송해야 하는 상황을 설명한다. 광섬유를 통해 전송할 수 있는 신호는 몇 가지가 있는지 알아보자. - 빛이 있거나 없거나 두 가지 있습니다. 광섬유를 통해 보내야 하는 숫자의 종류를 알아보자. - 0~9까지의 4자리의 숫자입니다. 0~9까지의 4자리 숫자를 이진기호로 표현하는 방법 찾아보기 - 0~9까지의 숫자를 이진기호로 표현하기 위해 몇 개의 숫자가 필요한지 알아보자. 이진기호를 이용해 어떤 정보를 상대방에게 전달하는지 말해 보기 모둠 활동 레이저 포인터, 광섬유, 활동지1, 시계 3 이진수 주요 개념 및 용어 정리 이진수는 0과 1로 표현되는 수입니다. 코드 30분 활동3 모둠별로 레이저 포인터를 이용해 숫자 보내기 연습해 보기 - 모둠별로 비밀번호 전송게임 역할을 정해 본다. 0~9 숫자 이외에 필요한 약속 신호 알아보기 -시작 신호, 다시 보내기 신호 등 비밀번호 게임 전송 게임을 위해 필요한 여러 신호를 정해 본다. 비밀번호 게임을 해 본다. -모둠별로 협력하며 비밀번호 게임을 해 본다. 모둠 활동 (4인 1조) 이진기호표, 보물 상자, 레이저 포인터, 시계, 활동지2 기본적으로 컴퓨터는 숫자만 처리합니다. 글자나 다른 문자에도 숫자를 지정하여 저장합니다. 그러므로 숫자, 문자, 그림 등 사람에게 익숙한 기호 표현 역시 특별한 숫자 패턴 코드화되어야 합니다. 코드는 컴퓨터에 의해 해석되는 특별한 2진 숫자 패턴이라고 보아야 합니다. 기호 표현이 다르다면 컴퓨터끼리 통신이 될 수 없습니다. 코드의 길이 코드의 길이는 코드로 표현해야 할 데이터의 범위입니다. 그러므로 코드의 길이를 알기 위해서는 표현해야 할 정보의 양을 알아야만 합니다. 이번 활동에서는 0~9까지의 정보를 코드로 표현하게 되고 길이는 3입니다. 정리 5분 프로젝트 정리 게임 활동이 끝나고 토론해보기 - 광섬유를 통해 보낼 수 있는 신호의 종류는 몇 가지가 있을까? - 인터넷 선을 통해 왔다 갔다 하는 것들은 무엇일까? 이진기호가 필요한 이유를 말해 본다. 전체 차시 예고 - 다음 시간에 배울 활동을 예고한다. 4 CS Unplugged 1. 컴퓨터의 언어 - 이진기호 5
4 자 활동 < 활동 1 > 5. 기호와 이진기호를 서로 바꾸어 가며 표현해 보는 놀이를 해 본다. 모둠을 나누어 문제를 내는 사람과 맞추는 사람으로 나눈다. 모둠원들이 돌아가며 문제를 내고 맞추어 봅니다. 우리 주위의 물건을 이진기호로 표현하기 = 1, = 0 = - 활동 시간 : 20분 - 활동 개요 6. 반대로 이진기호를 기호로 표현해 보는 활동을 합니다. 학생들의 생활 주변에서 두 가지 상태를 찾아서 기호로 표현해 보는 활동입니다. 수학에서 1은 다양한 실체와 대응됩니다. 예를 들어 1은 손가락 1개, 사과 1개 등 다양한 1개와 대응되는 개념입니다. 이러한 추상화 또는 기호화는 학생들에게 수학 교과 활동을 통해 이미 익숙한 접근입니다. 이 방법대로 이진기호를 도입해봅니다. - 활동 준비물 : 게임 동영상 = 0, = 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 1 = = = - 활동 안내 1. 비밀번호 전송 게임 설명합니다. (동영상을 통해 비밀번호 전송게임을 알아봅니다.) 2. 이진기호 게임 알아봅니다. 학생들은 어떤 게임을 하고 있나요? 어떤 방법으로 비밀번호를 전송하고 있나요? = = 보물 상자의 비밀번호를 전송하고 있습니다. 광섬유를 통해 빛 신호를 보냅니다. 지도 Tip 1. 생활 속에서 두 가지 상태로 표현할 수 있는 것들을 찾아보게 합니다. 예를 들면 동전의 앞면과 뒷면, 안과 밖이 있습니다. 2. 수학 시간이라는 인식을 주지 않도록 이진기호가 일상생활에서 만나는 여러 상황을 표현할 방법이라는 인식을 주는 선에서 활동할 수 있도록 합니다. 학생들이 어떻게 빛을 숫자로 이해할까요? 빛은 몇 가지 상태가 있나요? 게임에서 이기기 위해 어떤 전략이 필요할까요? = 빛 신호를 약속한 것 같습니다. = 두 가지 상태를 가지고 있습니다. = 협력이 필요합니다. 빛 신호를 잘 약속해야 합니다. 3. 게임 상황 이외에도 학생들의 주변에서 두 가지 기호를 찾기 위해 선생님이 시범을 보입니다. 예를 들어 아래처럼 두 가지 신호를 약속합니다. = 1, = 0 4. 선생님은 다음과 같은 신호를 주고 학생들은 어떤 신호인지 적어 보게 합니다. = 6 CS Unplugged 1. 컴퓨터의 언어 - 이진기호 7
< 활동 2 > 게임 준비하기 - 활동 시간 : 30분 지도 Tip 1. 필요한 준비물을 살펴보면 광섬유, 열쇠와 상자, 레이저 포인터가 필요합니다. 열쇠의 경우에는 반드시 번호를 수정할 수 있는 것을 선택합니다. 그래야 다음 게임에서 사용할 수 있습니다. 또, 번호 열쇠는 되도록 큰 수가 많이 들어가도록 번호를 정합니다. 그 이유는 어떤 학생의 경우에는 이진수로 바꾸지 않고 깜박이는 횟수로 하는 학생들이 있습니다. 이때 9999 같은 경우 이진수로 하면 16번 신호를 보내면 되지만 횟수로 보내는 경우는 36번을 보내야 합니다. 그러나 1111인 경우 횟수로 보내면 4번, 이진수는 16번이 되므로 횟수가 유리합니다. - 활동 개요 비밀번호 전송하기 게임을 숙지하고 비밀번호를 전송하는 연습을 해 봅니다. 이 활동에서는 숫자를 2개의 신호를 이용하여 보내는데 필요한 것들을 알아봅니다. 숫자를 이진 코딩으로 표현하는 방법을 모둠 활동을 통해 익히고 신호를 보내는 방법을 연습합니다. - 활동 준비물 모둠별 광섬유 10m, 레이저 포인터, 열쇠를 걸 수 있는 상자 5개, 열쇠 5개(번호를 바꿀 수 있는 것) 메모지, 활동지1, 시계 - 활동 안내 번호를 바꿀 수 있는 4자리 번호 열쇠 번호를 바꿀 수 있는 최대 12자리 번호 열쇠 상자 같은 경우는 저렴하게 구할 수 있는 아크릴 상자가 좋습니다. 아크릴 상자를 구할 때는 반드시 열쇠고리가 있는 것으로 구하도록 합니다. 1. 앞의 활동을 떠올려 보며 엄지 신호로 약속 만들어 봅니다. 선생님이 먼저 = 1, = 0 로 짝수 번호 학생과 홀수 번호 학생을 일어서는 게임을 해 보게 합니다. 2. 2개의 엄지 신호에 대해 학생들이 일어설 수 있었던 것은 어떤 이유 때문인지 알아봅니다. = 기호를 약속했기 때문입니다. 3. 기호를 사용하면 어떤 점이 좋은가요? = 기호가 있으면 말이 없이도 의사전달이 가능합니다. 4. 엄지 신호가 4개 있으면 몇 개의 동작이 가능할지 생각해 보게 합니다. 보물 상자로 활용 가능한 저렴한 상자 2. 광섬유는 되도록 검은색 pvc 자켓이 씌워져 있는 것으로 준비합니다. 그 이유는 피복이 없는 것은 부러지기 쉽고 한번 엉키면 풀기 어렵습니다. 레이저 포인터는 흰색 불빛과 레어저 모두 가지고 있는 것이 좋습니다. 그리고 레이저 포인터는 사용상에 주의가 요구됩니다. 학생들에게 사전에 주의시킵니다. = 16개의 동작이 가능합니다. (해답 참고) 5. 0~9까지의 신호를 보내기 위해 0, 1 몇 개의 숫자가 필요할지 알아봅니다. = 4개의 숫자만 있으면 됩니다. 6. 활동지1에 모둠별로 0~9까지의 숫자를 이진기호로 약속해 보도록 합니다. 7. 모둠별로 레이저 포인터와 광섬유를 이용해 신호 보내기 연습을 하게 합니다. 빛의 직진, 반사 등의 성질을 이용해 반대편으로 전달됨을 이해하게 합니다. 8. 연습 후에 모둠별로 게임을 위해 가장 알맞은 역할을 정해봅니다. 8 CS Unplugged 1. 컴퓨터의 언어 - 이진기호 9
< 활동 3 > 게임을 하기 < 광섬유를 이용해 숫자 정보 보내기 (신호 보내기) > - 모둠별로 만든 이진기호표를 보고 신호를 해석합니다. - 활동시간 : 30분 - 활동 개요 이 활동은 모둠별로 연습한 것을 바탕으로 실제로 게임을 합니다. 게임의 재미를 위해 보물 상자 안에 학생들이 좋아할 만한 것들을 넣으면 더 열심히 할 수 있습니다. - 활동 준비물 모둠별 광섬유 10m, 레이저 포인터, 열쇠를 걸 수 있는 상자 5개, 열쇠 5개(번호를 바꿀 수 있는 것) 메모지, 활동지2 - 활동 안내 1. 게임의 주의 사항을 설명합니다. - 게임 중에는 말을 할 수 없다. - 신호 전송 시작 또는 완료 같은 경우는 몸동작으로 표현해도 되지만 그 이외에는 수신호도 해서는 안 된다. - 필수 수신호 이외에도 시계를 이용한 전송시간 타이밍도 미리 약속하도록 한다. - 보물 상자 열기에 실패하면 곧바로 도전할 수 없고 다른 팀이 도전 후에 다시 할 수 있다. 2. 그림처럼 게임 대형을 만들고 게임을 시작합니다. < 광섬유를 이용해 숫자 정보 받기 (신호 받기) > - 모둠별로 만든 이진기호표의 예 비밀번호 이진기호 비밀번호 이진기호 0 1010 5 0000 1 0010 6 1101 2 0101 7 1010 광섬유를 통해 비밀번호 전송 3 1000 8 1100 1 모둠 비밀번호 전송받고 보물 상자 열쇠를 보물 상자 1 4 0111 9 1111 2 모둠 열기 위해 달려온다. 보물 상자 2 - 이진기호를 해석한 후에는 보물 상자로 뛰어와서 상자 열기를 시도해봅니다. - 만약 맞으면 그 안에 보물을 가지고 가고 그렇지 않으면 다시 번호를 전송받습니다. 3. 게임을 중간중간에 규칙을 준수할 수 있도록 알려줍니다. 3 모둠 보물 상자 3 4자리 번호 키 열쇠로 잠근다. 4. 게임 후에 토론해봅니다. - 보물 상자의 비밀번호를 빨리 여는 데 가장 중요한 것이 무엇이었는지 발표해봅니다. 4 모둠 보물 상자 4 - 비밀번호를 전송하는 것과 실제 컴퓨터 통신과 어떤 차이점이 있고, 공통점이 있는지 말해봅니다. 5 모둠 보물 상자 5 - 게임 시작과 동시에 선생님은 모둠별로 1명씩 신호 보내는 사람을 부릅니다. - 선생님은 열쇠의 비밀번호 중 1개를 알려 줍니다. 단 이때 어떤 상자의 비밀번호인지 알려 주지 않습니다. - 비밀번호를 모둠별로 미리 만든 이진기호표를 보고 전송합니다. 지도 Tip 1. 게임 시작 전에 게임 규칙을 다시 한 번 알려줍니다. 2. 신호 보내기 연습을 사전에 충분히 할 수 있도록 안내합니다. 3. 신호 보내기 게임을 곧바로 시작하고 몸풀기로 연습게임을 몇 번 하는 것도 좋은 방법입니다. 4. 시작 신호, 종료 신호 등은 이진기호로 만들지 말고 몸동작으로 표현하도록 하여 부담을 줄입니다. 5. 광섬유의 길이는 10m 이상은 되도록 합니다. 6. 적절한 보상을 준비하여 학생들의 적극성을 끌어낼 수 있도록 합니다. 10 CS Unplugged 1. 컴퓨터의 언어 - 이진기호 11
5 자용 워크북 (활동지, 활동 자료) 6 해답과 힌트 활동지 1 - 이진기호로 약속 만들기 정답 - 활동지 1 (예시) 1. 모둠별로 엄지신호로 약속을 만들어 보세요. 그리고 돌아가며 엄지신호를 보내고 해당 약속을 실행해 보세요. 1. 모둠별로 엄지신호로 약속을 만들어 보세요. 그리고 돌아가며 엄지신호를 보내고 해당 약속을 실행해 보세요. 엄지신호 이진기호 약속 엄지신호 이진기호 약속 1010 점프 2회 1010 점프 2회 1100 오른쪽으로 90도 돌기 1001 뒤로 돌기 0011 한발 앞으로 가기 정답 - 활동지 2 (예시) 활동지 2 - 이진기호로 이진기호표 만들기 1. 0~9까지를 이진기호로 이진기호표를 만들어 보세요. 비밀번호 이진기호 비밀번호 이진기호 1. 0~9까지를 이진기호로 이진기호표를 만들어 보세요. 비밀번호 이진기호 비밀번호 이진기호 0 1010 5 0000 0 1010 점프 2회 1 0010 6 1101 1 2 0101 7 1010 2 3 1000 8 1100 3 4 0111 9 1111 4 12 CS Unplugged 1. 컴퓨터의 언어 - 이진기호 13
놀이로 배우는 컴퓨터 과학 2. 숫자로 색깔 표현하기 - 이미지 표현 지도안 2. 숫자로 색깔 표현하기 - 이미지 표현 목표 1. 컴퓨터가 이미지를 숫자로 표현하는 방법을 알 수 있다. 2. 이미지가 인터넷을 통해 컴퓨터에 전달되는 과정을 이해할 수 있다. 방법 탐구, 역할 놀이 소요 시간 50분 적정 연령 12세 이상 사진 이미지가 숫자로 분해되어서 저장장치에 저장되고, 모니터 화면으로 뿌려지면서 사진이 완성되는 모습 관련 CT 자료표현, 추상화 선생님 포스트잇(정사각형 3가지 색), 활동지, 선생님 자료 < 개요 > 준비물 학생 연필, 지우개, 색연필, 가위 컴퓨터는 다양한 그림, 문자, 사진 등을 저장하고 전달하는데 단지 숫자만을 사용합니다. "숫자로 색깔 표현하기"는 컴퓨터 그래픽 표현 방법 중 비트맵 방식으로 컴퓨터가 어떻게 이러한 작업을 하는지 알아보는 활동입니다. 이 주제는 이미지를 숫자로 된 픽셀 정보로 변환 표현하는 방법을 배워 역할놀이로 이미지가 전달되는 과정(인터넷 전송 및 이미지 저장)을 경험해 볼 수 있습니다. 또한, 픽셀 정보에 색깔 정보를 추가하면 다양한 색의 표현이 가능함을 활동으로 익히는 내용도 포함되어 있습니다. 14 CS Unplugged 2. 숫자로 색깔 표현하기 - 이미지표현 15
단계 소요 시간 요소 교수 활동 형태 자료 1 동기유발 활동 그림 묘사하기 - 선생님이 그림(선생님 자료1)을 말로 묘사하고 학생들이 각자 그림을 그림 묘사하기 도입 5분 동기유발 그려보기 - 선생님의 그림과 각자의 그림을 비교하고 각자 그린 그림이 다른 이유를 발표해보기 전체 선생님 자료1 1. 선생님이 그림 하나를 묘사하면 학생들이 듣고 각자 그림을 그립니다. 묘사 내용 (예시) 목표 제시 컴퓨터가 이미지를 숫자로 표현하는 방법을 알 수 있다. 이미지가 인터넷을 통해 컴퓨터에 전달되는 과정을 이해할 수 있다. 1. 검은색과 흰색으로 그려진 집 그림입니다. 2. 오른쪽 위쪽에 사각형 모양의 굴뚝이 있습니다. 3. 삼각형 모양의 지붕이 있고 아랫부분은 사각형 모양입니다. 쌍둥이 그림 그리기 < 그림 > 4. 집 그림 중간에는 문이 하나 있습니다. 5. 문의 모양은 사각형입니다. - 선생님이 쌍둥이 그림 그리기 방법 제안하기 10분 활동1 - 이미지를 픽셀에 색칠하는 방법 확인하기 - 흑백 이미지를 숫자로 표현하는 원리 확인하기 - 제시된 숫자로 각자 활동지1에 이미지 표현하기 - 완성된 그림이 모두(학생들) 같은지 확인하기 - 선생님과 학생들의 그림이 같은 이유 발표하기 전체 활동지1, 연필, 지우개 2. 선생님이 가진 그림을 보여주면서 학생들이 그린 그림과 비교합니다. 3. 언어 전달로는 그림을 정확하게 표현하기 어렵고 멀리 있는 곳에 있는 사람에게 같은 그림이 전달되기 어렵다는 것을 설명합니다. 4. 컴퓨터는 인터넷 통신을 통해 그림을 멀리 있는 곳으로 전송하는데, 어떻게 전송할 수 있을지 생각해 봅니다. 이미지의 여행 역할놀이 - 이미지가 인터넷을 통해 컴퓨터에 전달되는 과정 역할놀이 하기 - 역할 설명하기(정보 변환기, 인터넷선, 컴퓨터 저장장치, 컴퓨터 모니터) 2 문제 제시 - 모둠별 역할을 4가지로 나누기 선생님 자료2, 전개 20분 활동2 - 같은 역할끼리 4개 구역으로 구분하여 역할별로 모이기 - 선생님이 이미지(선생님 자료2)를 정보 변환기에 제시하면 1 정보 변환기 역할: 이미지를 숫자로 변환하여 2개의 숫자 편지(활동지3) 제작 2 인터넷선 역할 : 컴퓨터 저장장치와 칠판에 각각 숫자 편지 전달 3 저장장치 역할 : 숫자 편지로 활동지2에 이미지 표현 모둠 활동 (4인 1조) 활동지2, 활동지3, 포스트잇 (두 가지색), 연필, 지우개, 가위 1. 컴퓨터는 이미지를 어떻게 표현할까요? 2. 컴퓨터는 숫자만 사용할 수 있는데 어떻게 그림을 저장할까요? 3. 컴퓨터는 다양한 이미지를 인터넷 통신을 통해 어떻게 전달할까요? 4 컴퓨터 모니터 역할 : 칠판에 포스트잇으로 이미지 표현 - 선생님 제시 이미지, 저장장치의 이미지, 칠판의 화면 이미지 등을 비교하기 - 활동으로 알게 된 점 발표하기 3 주요 개념 및 용어 정리 10분 활동3 태극 마크 표현 - 선생님이 세 가지 색깔의 이미지 표현 방법 제안하기 - 선생님이 이미지 표현방법을 설명하기 - 학생들은 활동지4에 이미지를 숫자로, 숫자는 이미지로 완성하기 활동지4, 포스트잇 (흰색, 빨간색, 파란색), 연필, 지우개, 색연필 픽셀 (Pixel) Picture elements의 준말로 화소라고도 합니다. 컴퓨터 화면(computer screen)을 구성하는 가장 단위이며 색상 정보를 가진 작은 점으로 생각할 수 있습니다. 정리 5분 프로젝트 정리 컴퓨터 이미지 표현원리 확인 - 모자이크 그림의 축소 확대 이미지 비교하기 - 컴퓨터가 이미지를 숫자로 표현하는 이유 발표하기 - 컴퓨터가 이미지를 숫자로 표현하는 방법 발표하기 전체 비트맵 (Bitmap) 컴퓨터의 그래픽 표현방법 중 하나로 픽셀이라고 불리는 작은 점들이 모여 이미지가 만들어지는 방식입니다. 마치 모자이크 그림을 표현하는 방법처럼 평면의 컴퓨터 화면에 색상을 가진 작은 점들로 이미지를 표현하는 방식입니다. 16 CS Unplugged 2. 숫자로 색깔 표현하기 - 이미지표현 17
4 자 활동 < 활동 2 > < 활동 1 > 쌍둥이 그림 그리기 - 활동 시간 : 10분 - 활동 개요 컴퓨터의 이미지 표현 방법인 비트맵 방식 을 통해 학생 전체가 쌍둥이(같은) 그림을 그려보는 활동입니다. 컴퓨터가 이미지를 저장하고 표현하는 방법을 이용하여 모두가 정확히 같은 그림을 그릴 방법(동기유발의 문제 상황을 해결할 방법)을 선생님이 제시하고 학생들이 각자 방법을 확인해보는 활동입니다. 그래서 학생들은 숫자만을 사용하는 컴퓨터가 규칙에 의해 이미지를 숫자로 표현하고, 숫자가 이미지로 복원될 수 있음을 알게 됩니다. - 준비물 : 활동지1, 연필, 지우개 - 활동 안내 1. 활동지1에 나오는 규칙을 보며 숫자를 이미지로 변환하는 방법을 선생님이 설명합니다. 이미지의 여행 역할놀이 - 활동 시간 : 20분 - 활동 개요 이미지의 여행(전송) 역할놀이를 통해 학생들은 컴퓨터가 어떻게 이미지를 전송, 표현, 저장하는지 알 수 있습니다. 이미지(흑백)가 숫자 정보로 표현되어 다른 컴퓨터 화면에 표현 및 저장되는 과정을 역할놀이로 익혀서 컴퓨터 내부의 보이지 않는 동작을 이해하는 데 도움이 될 것입니다. - 준비물 : 포스트잇(두 가지 색), 활동지2, 활동지3, 선생님 자료1, 연필, 지우개, 가위 - 활동 안내 1. 학생들에게 다음 역할을 설명합니다. - 정보 변환기 : 이미지를 숫자 편지(활동지3)로 제작 - 컴퓨터 저장장치 : 숫자 정보를 활동지2에 표현 - 인터넷선 : 숫자 편지를 컴퓨터 저장장치와 컴퓨터 모니터에 각각 전달 - 컴퓨터 모니터 : 숫자 정보를 칠판에 포스트잇으로 표현 규 칙 1 숫자는 연속된 같은 색깔의 픽셀 수 선생님 설명 2. 모둠별로 4가지 역할을 정합니다. (4인 1조가 적합) 3. 4개 구역에 역할별로 모입니다. (교실 내에서 구역 구분, 화살표 방향은 시선 및 이동방향) 1, 4 2 3 4 흰색에서 검은색으로 또는 검은색에서 흰색으로 바뀔 때 숫자와 숫자 사이에, 로 구분 0 이 아닌 첫 번째 숫자는 항상 흰색 픽셀의 수 첫 번째 숫자가 0 이면 검은색 픽셀로 시작 2. 학생은 활동지1에 적인 숫자를 보고 규칙에 맞게 연필로 색칠하여 이미지를 완성합니다. 3. 선생님의 그림과 학생들의 완성된 그림을 비교합니다. 1, 1, 1, 2 0, 1, 3, 1 4. 선생님과 학생들의 그림이 서로 같은 이유를 발표합니다. - 첫째 줄 1, 4 는 첫 번째부터 1개 픽셀은 흰색(공백) 두 번째부터 4개는 검은색(연필) - 둘째 줄 1, 1, 1, 2 는 첫 번째부터 1개 픽셀은 흰색, 그다음부터 1개는 검은색, 그다음부터 1개는 흰색, 그 다음부터 2개는 검은색 - 셋째 줄 0, 1, 3, 1 은 0 으로 시작하기 때문에 첫 번째부터 1개 픽셀은 검은색, 그다음부터 3개는 흰색, 그다음부터 1개는 검은색 4. 선생님이 정보 변환기에 선생님 자료1의 이미지(흑백)를 각각 제시합니다. 5. 각 모둠원은 맡은 역할을 수행합니다. 1 정보 변환기 역할은 이미지를 숫자로 변환하여 활동지3에 2개의 숫자 편지 제작(가위 필요) 2 인터넷선 역할은 컴퓨터 저장장치와 컴퓨터 화면에 각각 숫자 편지 전달(정보 변환기에 가서 다시 편지 전달을 반복) 3 컴퓨터 저장장치 역할은 숫자 편지로 활동지2에 이미지 표현 4 컴퓨터 모니터 역할은 칠판에 포스트잇으로 이미지 표현(두 가지 색으로 표현) 6. 선생님이 제시한 이미지, 저장장치의 이미지, 칠판의 이미지 등 세 가지가 서로 같은지 확인합니다. 7. 활동으로 알게 된 내용과 느낀 점을 발표합니다. 지도 Tip 1. 픽셀 색칠은 틀리기 쉬우므로 연필과 지우개를 사용합니다. 2. 활동지를 수정하여 선생님이 숫자를 불러주는 방법으로 진행해도 좋습니다. 지도 Tip 1. 흑백이미지를 표현하기 위한 검은색 포스트잇을 구하기 어려우면 색의 대비가 좋은 포스트잇 두 가지(같은 크기)를 사용해도 좋습니다. 2. 활동시작 전 칠판에 시작 기준선(왼쪽 위 한 점에서 시작되는 수평선과 수직선)을 그어 놓습니다. 3. 포스트잇을 붙일 때는 좌에서 우로 순서대로 한 줄씩 붙이도록 합니다. 4. 각 역할은 앉은 방향에 주의하며 숫자 편지(최소 40개가 필요)로만 정보가 전달되도록 합니다. 5. 선생님이 이미지를 제시할 때 모둠 수준에 맞게( 가위 가 가장 쉬움) 제시합니다. 6. 오류확인 방법으로 같은 행의 숫자를 다 합하였을 때 각각 행의 합 이 같아야 함을 알려줍니다. 18 CS Unplugged 2. 숫자로 색깔 표현하기 - 이미지표현 19
5 자용 워크북 (활동지, 활동 자료) < 활동 3 > 태극마크 표현 활동지 1 - 쌍둥이 그림 그리기 - 활동 시간 : 10분 - 활동 개요 컴퓨터 화면에 나타나는 이미지의 다양한 색상 표현 방법에 대해 알아보는 활동입니다. 흑백의 정보가 아닌 색깔의 정보를 숫자 변환 규칙에 넣어 활동1을 확대 심화하는 활동입니다. 픽셀은 빛의 삼원색인 적녹청(RGB)의 성분 값을 숫자로 표현하여 여러 가지 색상을 표현할 수 있습니다. 이 활동에서는 세 가지(흰색 1, 빨강 2, 파랑 3 ) 색깔이 있는 이미지가 어떻게 숫자로 표현되는지를 보여줍니다. 그리고 픽셀 정보 중 색상을 나타내는 숫자 정보를 통해 이미지의 색이 표현될 수 있음을 알게 됩니다. - 준비물 : 활동지4, 색연필, 연필, 지우개, 포스트잇(빨간색, 파란색, 흰색) - 활동 안내 1. 선생님이 컴퓨터의 세 가지 색을 가진 이미지의 숫자 변환 방법을 제안합니다. 2. 선생님이 이미지의 숫자 변환 규칙을 칠판에 포스트잇으로 붙이면서 설명합니다. 1. 숫자를 이미지로 변환하는 규칙을 확인하세요. (작은 정사각형들은 '픽셀'이라 이름 붙입니다.) 규 칙 1 숫자는 연속된 같은 색깔의 픽셀 수 2 흰색에서 검은색으로 또는 검은색에서 흰색으로 바뀔 때 숫자와 숫자 사이에, 로 구분 3 같은 줄의 첫 번째 숫자는 항상 흰색 픽셀과 관계 4 첫 번째 숫자가 0 이면 검은색 픽셀로 시작 1 규 칙 2개의 연속된 숫자 중 처음은 연속된 같은 색깔의 픽셀 수, 이어지는 숫자는 색깔정보를 의미함 (흰색 1, 빨강 2, 파랑 3 ) 선생님 설명 2. 컴퓨터가 사용하는 위 규칙을 이용하여 이미지를 완성해보세요. 11, 1 2 픽셀의 개수와 색깔정보는 한 칸 띄어쓰기로 구분함 10, 1, 1 4, 3, 2, 1, 2 3 색깔이 바뀔 때 숫자와 숫자 사이에, 로 구분함 4 첫 번째 숫자가 0 이면 흰색으로 시작하지 않음 - 첫째 줄은 흰색 픽셀 3개, 빨강 픽셀이 8개, 다시 흰색 픽셀이 3개여서 3 1, 8 2, 3 1 로 표현됩니다. - 넷째 줄은 흰색이 아니라 빨강 픽셀로 시작하기 때문에 0 으로 시작하여, 0, 14 2 로 표현하면 됩니다. 파랑 픽셀로 시작해도 0 으로 시작합니다. 3, 2, 1, 2, 1, 1, 2 2, 2, 1, 1, 1, 3, 2 1, 2, 1, 3, 1, 2, 2 3. 선생님 설명을 듣고 태극마크의 윗부분인 붉은 색 부분을 한 줄씩 숫자로 표현해 봅니다. (다섯째 줄까지) 4. 학생들은 활동지4에 제시된 숫자 정보를 보고 나머지 부분을 색칠하여 완성합니다. 5. 한 학생이 활동지4에 완성한 그림을 칠판에 포스트잇으로 완성하고 나머지 학생들의 그림과 같은지 비교합니다. 6. 이미지를 표현하는 활동 규칙에 대해 발표해 봅니다. 0, 11, 1 0, 11, 1 1, 2, 2, 1, 2, 2, 2 1, 2, 2, 1, 2, 2, 2 지도 Tip 1. 표현 규칙은 픽셀 정보가 두 가지로 구성되는데, 첫 숫자는 연속된 같은 색의 픽셀 수를 두 번째 숫자는 픽셀의 색깔 정보를 나타내므로 숫자 사이 간격이 충분히 띄어질 수 있도록 지도합니다. 2. 색이 구분되는 곳을 먼저 연필로 표시하고 나중에 색연필로 칠하도록 안내합니다. 1, 9, 2 1, 2, 2, 1, 2, 2, 2 1, 2, 2, 1, 2, 2, 2 0, 11, 1 20 CS Unplugged 2. 숫자로 색깔 표현하기 - 이미지표현 21
활동지 2 - 컴퓨터 저장장치 활동지 3 - 숫자 편지 숫자 편지의 숫자 정보를 왼쪽에 먼저 적고, 픽셀을 색칠해보세요. ( )번 줄(행) ( )번 줄(행) ( )번 줄(행) ( )번 줄(행) ( )번 줄(행) ( )번 줄(행) ( )번 줄(행) ( )번 줄(행) ( )번 줄(행) ( )번 줄(행) 22 CS Unplugged 23
활동지 4 - 태극마크 표현 6 선생님용 워크북 (활동지, 활동 자료) 세 가지 색(흰색, 빨간색, 파란색)을 이용하여 규칙에 맞게 픽셀을 표현해보세요. 선생님 자료 1 - 동기유발 0, 1 3, 7 2, 3 3, 3 2 0, 2 3, 5 2, 5 3, 2 2 0, 3 3, 3 2, 7 3, 1 2 0, 14 3 0, 14 3 1 1, 12 3, 1 1 2 1, 10 3, 2 1 3 1, 8 3, 3 1 0, 1 3, 7 2, 3 3, 3 2 0, 2 3, 5 2, 5 3, 2 2 0, 3 3, 3 2, 7 3, 1 2 0, 14 3 < 선생님이 말로 묘사할 그림 > 0, 14 3 1 1, 12 3, 1 1 2 1, 10 3, 2 1 3 1, 8 3, 3 1 24 CS Unplugged 2. 숫자로 색깔 표현하기 - 이미지표현 25
선생님 자료 2-1 가위(활동2) 선생님 자료 2-2 개구리(활동2) 26 CS Unplugged 2. 숫자로 색깔 표현하기 - 이미지표현 27
선생님 자료 2-3 손(활동2) 선생님 자료 2-4 휴지통(활동2) 28 CS Unplugged 2. 숫자로 색깔 표현하기 - 이미지표현 29
7 선생님용 참고자료 선생님 자료 3 - 색깔이 있는 이미지 표현 예시 컴퓨터 그래픽 표현 방식 컴퓨터에서 그래픽 정보와 이미지 정보를 내부적으로 어떻게 표현하고 처리하는가에 따라 비트맵(Bitmap)방식과 벡터(Vector)방식으로 구분할 수 있습니다. 1. 비트맵(Bitmap) 이미지 '점'들이 모여서 '선'이 되고 선이 모이면 '면'이 되는 개념을 통해 이미지를 표현하는 방식으로 비트맵 이미지는 '점'으로 구성된 그래픽 데이터입니다. 화면을 바둑판 모양으로 잘게 잘랐을 때 각각의 작은 구역을 픽셀(Pixel)이라 합니다. 화면에 나타나는 정보에서 각각 하나의 점(픽셀)에 대하여 하나의 비트를 할당한 다음, 정보의 상태를 0 또는 1로 표현합니다. 이미지를 구성하는 픽셀 정보는 2차원 배열의 형태로 저장되어 있습니다. 이러한 정보들을 조합하여 이미지로 표현하는 것을 비트맵 방식이라 합니다. 픽셀은 색을 가지는데, 모든 색은 빛의 삼원색인 적 녹 청(RGB) 세 색의 조합이므로, 픽셀의 값은 RGB 세 성분의 값을 숫자로 기술함으로써 표기 가능합니다. 8bit라면 픽셀은 256가지의 색을 가질 수 있으며, 24bit일 때는 약 천육백만 가지 색상(True color)을 표현할 수 있습니다. 비트맵 방식은 각 점에 색을 부여하여 그림을 만들어 나가는데 확대하면 그림의 모서리가 각이 지는, 계단 현상(Aliased)이 발생한다는 단점이 있습니다. 그러나 표현하기가 쉽고 사진 같은 자연적인 이미지 자료를 표현하는 데 많이 사용됩니다. 대표적인 포맷방식으로는 BMP, GIF, JPG 등이 있습니다. 2. 벡터(Vector) 이미지 벡터라는 것은 한마디로 공간, 좌표개념을 말합니다. 그래서 선, 면, 도형 등을 이용하여 수학적인 곡선으로 그림을 표현합니다. 수학에서 함수의 그래프를 그리듯이 점과 점의 거릿값을 계산하여 그 사이를 연결하는 선을 만들어 내기 때문에 아무리 확대를 해도 이미지가 깨어지지 않습니다. 이미지를 표현하는데 많은 계산이 필요하여 속도가 떨어지고 사진 등을 표현하는 데 불편하지만 확대해도 이미지가 그대로 유지되는 장점이 있습니다. 그래서 선명한 출력물을 요구하는 이미지들에 많이 사용됩니다. 대표적인 포맷방식으로는 AI, CDR, WMF 등이 있습니다. 표현 방식 원본 이미지 5배 확대 이미지 비트맵 벡터 30 CS Unplugged 2. 숫자로 색깔 표현하기 - 이미지표현 31
8 해답과 힌트 정답 - 활동 2 정답 - 활동 1 1, 3, 12, 4 0, 1, 2, 1, 9, 6, 1 0, 2, 2, 1, 5, 7, 3 1, 1, 2, 1, 4, 5, 6 1, 11, 8 7, 1, 1, 2, 9 1, 11, 8 1, 1, 2, 1, 4, 5, 6 0, 2, 2, 1, 5, 7, 3 0, 1, 2, 1, 9, 6, 1 1, 3, 12, 4 1, 1, 12, 1, 1 3, 2, 1, 1, 2, 1, 1, 2, 3 1, 1, 4, 4, 4, 1, 1 1, 2, 2, 6, 2, 2, 1 2, 12, 2 4, 8, 4 5, 6, 5 5, 6, 5 6, 4, 6 4, 8, 4 2, 4, 4, 4, 2 2, 3, 6, 3, 2 1, 4, 6, 4, 1 1, 2, 10, 2, 1 0, 2, 12, 2 0, 3, 10, 3 1, 2, 10, 2, 1 2, 2, 8, 2, 2 3, 2, 6, 2, 3 3, 2, 6, 2, 3 2, 2, 8, 2, 2 32 CS Unplugged 2. 숫자로 색깔 표현하기 - 이미지표현 33
정답 - 활동 2 정답 - 활동 3 9, 2, 2, 2, 4 8, 1, 1, 1, 1, 1, 1, 1, 4 7, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2 0, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2 0, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1 2, 1, 7, 1, 2, 2, 1, 1, 2 2, 1, 10, 1, 1, 1, 3 3, 1, 10, 1, 4 3, 1, 9, 1, 5 4, 1, 7, 1, 6 4, 1, 6, 1, 7 5, 1, 5, 1, 7 5, 1, 5, 1, 7 5, 1, 5, 1, 7 5, 7, 7 3 1, 8 2, 3 1 2 1, 10 2, 2 1 1 1, 12 2, 1 1 0, 14 2 0, 14 2 0, 1 3, 7 2, 3 3, 3 2 0, 2 3, 5 2, 5 3, 2 2 6, 4, 6 5, 1, 4, 1, 5 1, 14, 1 0, 1, 14, 1 0, 16 1, 1, 12, 1, 1 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 1, 1, 12, 1, 1 2, 12, 2 0, 3 3, 3 2, 7 3, 1 2 0, 14 3 0, 14 3 1 1, 12 3, 1 1 2 1, 10 3, 2 1 3 1, 8 3, 3 1 34 CS Unplugged 2. 숫자로 색깔 표현하기 - 이미지표현 35
놀이로 배우는 컴퓨터 과학 3. 다시 말할 수 있어요 텍스트 압축 지도안 3. 다시 말할 수 있어요 텍스트 압축 목표 1. 단어와 텍스트의 패턴을 인식할 수 있다. 2. 압축의 원리를 이해할 수 있다. 3. 반복되는 단어를 찾아 단순화할 수 있다. 방법 탐구 소요 시간 40분 적정 연령 10세 이상 관련 CT 자료 분석, 자료 표현, 추상화 선생님 프레젠테이션 자료, 활동지 < 개요 > 준비물 학생 활동지, 색이나 무늬가 다른 종이컵 컴퓨터는 정보를 저장할 수 있는 용량이 한정되어 있어서 효율적인 방법으로 저장할 수 있어야 합니다. 여기서 말하는 효율적인 방법 이란 압축(Compression) 을 말합니다. 압축 방법에서 압축은 자료를 코드화(Coding)시켜 저장하는 것이고, 압축한 자료를 다시 원래의 형태로 되돌리는 것을 압축해제(Decoding)라고 합니다. 컴퓨터는 자료를 압축함으로써 더 많은 자료를 저장할 수 있고 인터넷상에 더 빠르게 전달할 수 있게 됩니다. 36 CS Unplugged 3. 다시 말할 수 있어요 - 텍스트 압축 37
단계 소요 시간 요소 교수 활동 형태 자료 사전 준비 사항 겹쳐서 줄이기 - 학생들의 책상 위에 종이컵을 순서 없이 나열하기 도입 5분 동기유발 - 학생 나름대로 정리하기 - 더 효율적인 방안 찾아보기 - 종이컵을 겹쳐서 정리하여 보기 - 겹치는 기준에 대하여 이야기 해보기 전체 색 혹은 무늬가 다른 종이컵 - 활동지와 2종류 이상 색이 다른 종이컵을 준비합니다. 목표 제시된 단어를 단순화하여 나타낼 수 있다. 제시 반복되는 문자를 줄여 컴퓨터가 압축하고 압축해제하는 과정을 알 수 있다. 화살표 따라가기 - 컴퓨터가 더 많은 자료를 저장하는 방법 설명하기 모둠 10분 활동1 - 문자 자료의 압축 필요성 알기 - 문자 압축하기 시범 보이기 활동 (2인 활동지1 - 활동지1 활동하기 1조) - 활동결과 발표하기 두말하면 잔소리 - 주어진 시에서 빠진 문자 확인하기 모둠 전개 10분 활동2 - 화살표와 네모상자를 이용하여 단어 채워 넣기 - 컴퓨터에서 화살표와 네모상자를 표현하는 방법 알기(숫자로 표현함) 활동 (2인 활동지2 - 중복되는 문자 숫자로 표현하는 활동하기 1조) - 친구와 활동지2 활동하기 짧아서 좋은 것 10분 활동3 - 주어진 글을 읽고 중복된 단어 찾기 - 중복된 단어에 줄 그어보기 - 줄 그어지지 않는 단어 찾아보기 개인 활동 활동지3 - 처음과 비교하여 줄어든 글자 수 비교하기 정리 5분 프로젝트 정리 압축의 원리 - 반복되는 단어, 문구를 부피를 줄인다. - 원래 상태로 다시 복구할 수 있다. 활동의 핵심원리 전체 - 압축 과정은 저장 장치에 더욱 많은 자료를 저장할 수 있다. - 압축은 프로그램 처리 과정을 더 빠르게 해준다. 38 CS Unplugged 3. 다시 말할 수 있어요 - 텍스트 압축 39
1 동기유발 활동 4 자 활동 종이컵 정리하기 - 준비물 : 색 또는 패턴이 다른 종이컵 여러 개 (2종류 이상) 책상 위에 다음과 같이 색이 다른 종이컵이 서로 겹치지 않고 여기저기 흩어져있습니다. 어떻게 하면 책상 위의 공간을 적게 차지하게 정리할 수 있을까요? 다양한 생각으로 종이컵을 정리하여 봅니다. 1. 선생님이 시범을 보입니다. (같은 종류의 종이컵끼리 서로 겹침) 2. 압축의 기본 원리를 설명합니다. 1 불필요한 공간을 제거하여 부피를 줄인다. 2 압축 후 성질이나 형태는 변하지 않는다. 3 원래 상태로 다시 복구될 수 있다. - 활동의 실제 < 활동 1 > 화살표 따라가기 - 활동 시간 : 10분 - 활동 개요 컴퓨터는 많은 자료를 저장하고 인터넷을 통해 전달합니다. 문자 자료를 압축해서 저장하면 저장 공간을 절약하고 자료를 빨리 전달할 수 있습니다. 이 활동은 중복된 말을 찾고 화살표와 네모상자를 이용하여 중복되는 말을 줄여주며 압축에 대하여 알아보는 활동입니다. 개인 또는 짝 활동으로 진행하며, 예제를 통해 익숙해진 후 심화 활동으로 서로에게 문제를 내어보는 활동을 할 수 있습니다. - 준비물 : 활동지1 - 활동 안내 1. 2인 1조로 짝을 만듭니다. 2. 선생님이 예제로 활동 방법을 설명합니다. 1 글에서 2번 이상 반복되는 문자 또는 단어 찾기 후다닥 쿵 후다닥 2 문제 제시 2 반복되지 않는 문장 쓰기 1. 반복되는 패턴 찾기 3. 화살표로 연결하기 1. 컴퓨터는 왜 압축할까요? 2. 책상 위에 어지럽게 놓여 있는 컵들을 정리하는 방법은 무엇일까요? 3. 압축한 파일을 원래대로 돌리는 방법은 무엇일까요? 3 반복되는 말 네모상자로 대체하기 4 화살표로 연결하기 후다닥 쿵 2. 반복되는 말 네모상자 만들기 3 주요 개념 및 용어 정리 3. 압축의 결과를 확인합니다. (예제 활동은 후다닥 이라는 말이 네모상자와 화살표로 표현되면서 정보량이 3개에서 2개로 줄어들었다는 사실을 보여줍니다.) 4. 활동지1 활동을 통해 문자압축 활동을 합니다. 5. 활동결과 확인 및 알게 된 점을 발표합니다. 압축 파일에 저장된 정보를 작은 기억 공간에 같은 정보를 저장하는 기술입니다. 9개의 중복된 를 압축하여 표현합니다. 예를 들면 1111111000011을 170412(1이 7개, 0이 4개, 1이 2개라는 의미)이라는 것으로 바꾸고 여기서 이진수가 아닌 7, 4, 2를 다시 이진수로 바꾸면 파일의 크기가 대폭 주는 것입니다. 즉 20자리의 공간이 필요한 데이터를 이러한 방법으로 10자리만 사용한다면 파일 크기는 반으로 줄어들게 되는 것입니다. 압축해제 압축한 자료를 다시 원래의 형태로 되돌리는 기술입니다. 지도 Tip 1. 네모상자와 화살표는 컴퓨터에서의 처리방법과는 다릅니다. 이 활동에서는 단순히 3개로 표현되어야 하는 값이 네모상자와 화살표 즉, 2개로 표현되어서 전체에서 차지하는 저장 공간이 줄어들었다고 지도합니다. 2. 문장이 길어질수록, 반복되는 말이 많을수록 문자압축의 효과를 더 확실히 알 수 있습니다. 3. 압축을 하기 위해 최소 2가지 표현(네모상자, 화살표)이 있어야 하므로 반복되어 줄이는 문자는 최소 3자 이상일 때 압축의 효과를 볼 수 있습니다. 4. 활동1에서는 단순히 반복되는 말을 줄여서 압축한다는 사실을 가르치므로 문자의 길이 개념은 지도하지 않아도 됩니다. 40 CS Unplugged 3. 다시 말할 수 있어요 - 텍스트 압축 41
< 활동 2 > 숫자로 문자 압축하기 - 활동 시간 : 10분 - 활동 개요 이 활동은 활동1에서 네모상자와 화살표로 압축하였던 활동을 숫자로 표현해보며 압축하고, 압축된 자료를 다시 원래의 단어로 풀어보는 활동을 통해 압축과 압축해제의 관계를 알아보는 활동입니다. - 준비물 : 활동지2 - 활동 안내 1. 선생님은 (그림1)과 같은 공란이 있는 퍼즐을 제시합니다. 2. 같은 말이 반복되었다는 사실을 알려주기 위해 (그림2)처럼 네모상자와 화살표로 표시하여 줍니다. 3. 컴퓨터에서는 (그림3)과 같이 네모상자와 화살표가 숫자로 표현된다는 사실을 알려줍니다. 4. 숫자의 의미가 무엇일지 자유롭게 이야기합니다. 5. 숫자의 의미를 알려줍니다.(6,3) 1 (그림4)와 같이 6 은 압축할 위치에서 6만큼 앞으로 간 곳이 반복되는 문구의 첫 시작점을 의미합니다. 2 (그림5)와 같이 3 은 연속하는 문자 3개를 복사하라는 의미입니다. < 활동 3 > 짧아서 좋은 것 - 활동 시간 : 10분 - 활동 개요 이 활동은 긴 글을 읽고 글자 수가 2개 이상인 단어가 반복되는 말을 찾아 가능한 많은 문자를 지워보는 활동입니다. 활동1, 2에서 짧을 글을 이용하여 압축의 방법을 알았다면 이번 활동에서는 긴 글을 이용하여 얼마나 많은 부분이 줄어들 수 있을지 알아보는 활동입니다. - 준비물 : 활동지3 - 활동 안내 1. 선생님은 아래와 같은 글을 제시합니다. 2. 학생들은 아래의 글을 보면서 중복되는 부분을 찾습니다. 3. 2번 이상 중복되는 말에 밑줄을 그어 봅니다. 4. 밑줄이 그어진 곳은 컴퓨터가 문자를 압축한 것이라고 지도합니다. 5. 원래의 글과 비교하여 얼마나 많은 문자가 줄어들었는지 확인합니다. 괜찮아 더워도 괜찮아 더워도 이야기 글 (그림1) 공란 있는 퍼즐 (그림2) 화살표로 표시하기 괜찮아 더워도(6,3) 괜찮아 더워도 (6,3) (그림3) 숫자로 표시하기 (그림4) 괜찮아 더워도 (6,3)의 "6"의 의미 괜찮아 더워도 괜 괜찮아 더워도 괜찮_ 괜찮아 더워도 괜찮아 (그림5) 괜찮아 더워도(6.3)의 "3"의 의미 6. 활동지2 제시된 예제를 해결해봅니다. 7. 숫자로 문자를 압축하는 규칙에 대해 발표해봅니다. 나의 친구는 세 종류가 있다. 나를 사랑하는 사람, 나를 미워하는 사람, 그리고 나에게 무관심한 사람이다. 나를 사랑하는 사람은 나에게 유순함을 가르치고, 나를 미워하는 사람은 나에게 조심성을 가르쳐 준다. 그리고 나에게 무관심한 사람은 나에게 자립심을 가르쳐 준다. 지도 Tip 1. 띄어쓰기 빈칸과 문장부호는 포함하지 않습니다. 2. 실제로 컴퓨터는 문자를 이진수로 변화하여 압축알고리즘을 통해 압축합니다. 하지만 이 과정에서는 단순히 가능한 많은 데이터를 저장하기 위해 중복되는 것을 줄인다는 개념만 익히는 것을 목표로 합니다. 지도 Tip 1. 단어를 압축하는데 (6,3)과 같이 2개의 숫자가 필요하므로 2개 이상의 문자가 조합된 단어를 압축하는 것이 효율적입니다. 2. 한 문자를 압축하는데 2개의 숫자가 사용된다면 불필요한 저장 공간을 사용하여 파일의 크기는 더 커지게 됩니다. 42 CS Unplugged 3. 다시 말할 수 있어요 - 텍스트 압축 43
5 자용 워크북 (활동지, 활동 자료) 활동지 1 - 화살표 따라가기 활동지 2 - 숫자로 문자 압축하기 다음 문장에서 2번 이상 반복되는 문자를 찾아 네모상자와 화살표로 바꾸어 보세요. 1 반복되지 않는 글을 그대로 쓰기 2 2번 이상 반복되는 문자를 찾아 네모상자로 바꾸기 3 네모상자에 들어갈 말을 화살표로 연결하기 반복되는 문자를 숫자를 이용하여 간단하게 압축하여 보세요. (주의 : 띄어쓰기는 고려하지 않습니다.) 포동포동한 아기 데구르 똑 데구르르 졸졸 흐르는 졸졸 시냇물 흔들거리는 흔들 다리 토마토 맛있는 토마토 가시 많은 가시나무 괜찮아 더워도 괜찮아 무거운 발걸음 무거운 내마음 푸른 하늘 속 (5,4) 바나나 속 (4,3) 가시리 가시리 잇고 푸른 하늘 검푸른 마음 44 CS Unplugged 3. 다시 말할 수 있어요 - 텍스트 압축 45
6 선생님용 참고자료 활동지 3 - 짧아서 좋은 것 아래의 시를 읽고 2번 이상 나온 문자에 줄을 그어 보세요. 밑줄이 그어지지 않는 단어나 문자는 몇 개일까요? 나의 친구는 세 종류가 있다. 나를 사랑하는 사람, 나를 미워하는 사람, 그리고 나에게 무관심한 사람이다. 나를 사랑하는 사람은 나에게 유순함을 가르치고, 데이터 압축 데이터 압축은 데이터를 더 적은 저장 공간에 효율적으로 기록하기 위한 기술, 또는 그 기술의 실제 적용을 가리킵니다. 크게 데이터를 더 작은 크기로 변환시키는 인코딩 과정과 저장된 데이터를 다시 불러와 원래 데이터 형태로 복원시키는 디코딩 과정으로 이루어집니다. 이때 인코딩하기 전의 데이터 크기와 인코딩하고 나서의 데이터 크기의 비율을 압축률이라고 합니다. 압축 기술의 종류에 따라 데이터의 내용을 바꾸지 않고 원래 내용 그대로 디코딩할 수 있는 무손실 압축과 더 높은 압축률을 얻을 수 있지만 디코딩한 데이터의 세부적인 항목을 일부 희생시키는 손실 압축이 존재합니다. 대표적인 무손실 압축 알고리즘에는 반복 길이 부호화와 허프만 부호화, 산술 부호화 등이 있습니다. 손실 압축 알고리즘은 인간의 감각 기관의 특성을 역이용하여 압축률을 높이므로, 음성, 정지화상, 동영상 등 데이터의 종류에 따라 각각 다른 알고리즘이 사용됩니다. MPEG 표준 압축기술이 많이 쓰입니다. - 출처 : 위키백과 Zip 압축기법-지브럼펠 코드화(Ziv-Lempel coding) 1977년 Lempel과 Ziv가 고안해낸 알고리즘으로 현재까지 가장 많이 사용되는 압축기법입니다. 이 기법은 반복되는 문자열을 <상대위치, 길이>로 표현합니다. ZIP 파일 형식이란 데이터를 압축, 보관하기 위한 파일형식입니다. 예) 원래 문자열 : 가나다라마바사아자차카나다라마바사아타파하 압축 문자열 : 가나다라마바사아자차카<10,5>타파하 나를 미워하는 사람은 나에게 조심성을 가르쳐 준다. 그리고 나에게 무관심한 사람은 나에게 자립심을 가르쳐 준다. 46 CS Unplugged 3. 다시 말할 수 있어요 - 텍스트 압축 47
7 해답과 힌트 정답 - 활동지 1 정답 - 활동지 2 졸졸 흐르는 졸졸 시냇물 흔들거리는 흔들 다리 포동포동한 아기 데구르 똑 데구르르 졸졸 흐르는 시냇물 흔들 거리는 다리 포동(2,2)한 아기 데구르 똑(4,3)르 괜찮아 더워도 괜찮아 무거운 발걸음 무거운 내마음 토마토 맛있는 토마토 가시 많은 가시나무 괜찮아 더워도 무거운 발걸음 내마음 토마토 맛있는 (6,3) 가시 많은 (4,2)나무 가시리 가시리 잇고 푸른 하늘 검푸른 마음 푸른 하늘 속 (5,4) 바나나 속 (4,3) 가시리 잇고 푸른 하늘 검 마음 푸른 하늘 속 푸른 하늘 바나나 속 바나나 48 CS Unplugged 3. 다시 말할 수 있어요 - 텍스트 압축 49
정답 - 활동지 3 나의 친구는 세 종류가 있다. 나를 사랑하는 사람, 나를 미워하는 사람, 그리고 나에게 무관심한 사람이다. 나를 사랑하는 사람은 나에게 유순함을 가르치고, 나를 미워하는 사람은 나에게 조심성을 가르쳐 준다. 그리고 나에게 무관심한 사람은 나에게 자립심을 가르쳐 준다. 50 CS Unplugged
놀이로 배우는 컴퓨터 과학 4. 카드 뒤집기 마술 오류탐지 및 수정 지도안 4. 카드 뒤집기 마술 오류 탐지 및 수정 목표 1. 인터넷 통신 중 오류가 발생했는지를 탐지할 수 있으며, 일부 오류를 수정할 수 있다. 2. 상품 바코드를 활용해 일상생활에서의 오류를 탐지할 수 있다. 방법 협력, 게임 소요 시간 75분 적정 연령 12세 이상 관련 CT 자료 표현, 알고리즘과 절차 선생님 포스트잇(2가지 색, 각각 36개 이상), 동영상, 프레젠테이션 자료, 활동지 < 개요 > 준비물 학생 활동지, 필기도구 스마트폰을 이용해서 은행 업무를 보던 중 은행 시스템에 오류(Error)가 발생해서 통장 잔액이 10배가 되었습니다. 이런 일이 발생할 수 있을까요? 컴퓨터도 기계이므로 자석, 먼지, 온도 등의 외부 요인과 저장 매체, 통신망 등의 내부 요인으로 인해 오류를 일으키게 됩니다. 만약 인터넷 통신오류가 발생한다면 은행, 홈쇼핑, SNS 등의 서비스를 더는 신뢰하지 못하게 될 것입니다. 따라서 통신 중 데이터에 오류가 있는지 판단하는 것은 가장 중요한 일입니다. 데이터를 주고받기를 통해 오류를 찾아보고 수정하는 활동으로 구성돼있습니다. 51 CS Unplugged 4. 카드 뒤집기 마술 - 오류 탐지 및 수정 52
단계 도입 소요 시간 7분 요소 동기유발 목표 제시 교수 활동 형태 다양한 오류 상황 제시하기 - 사진을 통한 다양한 오류 상황 설명 인터넷망을 통한 전달 오류 - 인터넷이나 SNS 등에서 오류 상황 질의 및 발표 전체 인터넷 통신 중 오류가 발생했는지를 탐지할 수 있으며, 일부 오류를 수정할 수 있다. 상품 바코드를 활용해 일상생활에서의 오류를 탐지할 수 있다. 자료 선생님 자료1 사전 준비 사항 - 포스트잇이나 자석을 2색 36개 이상 씩 붙일 수 있는 칠판이나 보조용 칠판이 필요합니다. - 교실에서 인터넷 활용 불가능하다면 동기 유발용 동영상을 미리 다운로드합니다. - 지를 학생의 숫자만큼 출력합니다. SNS 메시지 보내기 10분 활동1-2인 1조로 진행 - 짝꿍에게 보낼 영어 단어를 선정 - 알파벳을 이진수로 변환하여 짝꿍에게 전달 - 전달받은 짝궁이 이진수를 알파벳으로 변환 - 답장 메시지를 같은 과정으로 해석 모둠 활동 (2인 1조) 활동지1, 선생님 자료1, 연필, 지우개 오류 탐지, 패리티! 15분 활동2 - 선생님 : 전체 학생 설명 후 개인 - 알파벳 선정 후 5개의 포스트잇 붙이기(0,1) - 흑색 포스트잇의 개수가 짝수가 되도록 6번째 포스트잇 붙이기 - 색을 변경한 후 오류를 탐지하는 방법을 설명 - 활동지2로 오류 문자탐지 (개인) - 한 글자 패리티 방법의 단점을 질의 후 설명 전체, 개인 활동지2, 2색 포스티잇 (각 5개 이상), 연필, 지우개 오류 탐지 마법사! 전개 20분 활동3-5 5크기의 2색 포스트잇 붙이기 - 행과 열에 추가로 패리티 포스트잇 붙이기 - 학생이 1~4개의 칸을 변경해서 오류를 생성 - 선생님이 오류를 수정하면서 오류 탐지 과정 소개 - 패리티 포스트잇을 제외하고 나머지 데이터를 <알파벳 이진수표>에 의해 알파벳으로 수정하고 원본 데이터를 알리기 - 2인 1조 편성 - 친구에게 전달하고 싶은 영어 단어 정하기 - <알파벳 이진수표>에서 이진수로 변경하여 <전송할 메시지>에 0, 1로 표시 - <전송할 메시지>에 짝수 패리티 행과 열 추가 - 1~4개 오류를 만들어서 친구와 교환 - 친구의 <전송할 메시지>의 오류를 수정하고 <알파벳 이진수표>에서 친구가 전달한 영어단어를 알아내기 전체, 모둠 활동 (2인 1조) 활동지3, 연필, 지우개 20분 활동4 바코드 검증하기 - 바코드에 대한 설명 - 바코드 검증 코드 설명 - 학생들은 활동지2에서 3개의 바코드를 판별 개인 선생님 자료2, 활동지3, 연필, 지우개 오류 탐지 및 수정 원리 확인 정리 3분 프로젝트 정리 - 오류가 발생하는 원인 알려주기 - 통신오류 탐지 방법 발표하기 - 바코드 탐지 방법 발표하기 전체 53 CS Unplugged 4. 카드 뒤집기 마술 - 오류 탐지 및 수정 54
1 동기유발 활동 2 문제 제시 다양한 오류 상황 제시하기 1. 다음 그림과 같은 오류 상황을 제시하면서 학생들이 경험했던 오류를 발표해봅니다. 예) http://www.etoday.co.kr/news/section/newsview.php?idxno=1050500 1. 인터넷이나 SNS 등에서 오류 상황은 어떤 것들이 있을까요? 2. 일상생활의 오류를 줄이는 방법은 어떤 것들이 있을까요? 3. 컴퓨터나 스마트폰을 하면서 발생했던 오류들은 어떤 것들이 있었나요? 4. 인터넷 통신과정에서 발생하는 오류는 어떻게 탐지할 수 있을까요? 3 주요 개념 및 용어 정리 2. 위의 사소한 예시가 아닌 실제 은행과 증권사의 오류를 동영상으로 제시합니다. 예) 현대카드 전산 오류로 결제대금 이중 출금 사고 (SBS 8시 뉴스 2014. 11. 26) https://youtu.be/_4g4afzb3ve 오류 탐지(Error Detection) 인터넷 통신을 하는 과정에서 전송된 데이터에 오류가 발생했는지를 검출하기 위해 특수한 정보를 추가하여 오류 발생 여부를 검사하는 방법입니다. 오류 수정(Error Correction) 전송된 데이터가 오류가 있는지를 판별하는 오류 탐지 기능뿐만 아니라 일부 손실된 데이터를 스스로 복구하여 오류를 수정할 수 있는 기법입니다. 패리티 비트(Parity Bit) 0, 1로 구성된 데이터 뒷부분에 1로 구성된 비트가 짝수가 되도록 1개의 비트를 추가하는 오류 탐지 및 수정 기법 중 하나입니다. 예를 들어 7bit의 데이터(001 0011)에 1개의 짝수 패리티 비트를 추가하여 전송 데이터(001 0011 1)로 추가하는 기법으로 간단한 오류를 탐지하고 수정할 수 있습니다. 3. 다음 내용을 설명합니다. - 은행, 공항, SNS 등에서 인터넷 통신 오류가 발생했을 때 상상할 수 없는 큰일이 발생할 수 있다. - 하지만 오류는 통신망이나 컴퓨터 등의 내부요인과 온도, 벼락 등과 같은 외부요인으로 인해 발생할 수 밖에 없는 상황이다. - 따라서 인터넷 통신이나 일상생활에서 오류 발생을 줄일 수 없다면 오류가 발생했는지를 감지하는 게 중요하다. 4. SNS나 인터넷을 사용할 때 오류가 발생한 적이 있는지 질의해보고 발표해봅니다. 55 CS Unplugged 4. 카드 뒤집기 마술 - 오류 탐지 및 수정 56
4 자 활동 < 활동 1 > SNS 메시지 보내기 - 활동 시간 : 10분 - 활동 개요 키보드로 글자를 입력한 후 이진수로 변환된 데이터가 전달되어 다시 글자로 바뀌는 과정을 경험하는 활동입니다. 여기에서는 간단한 상황을 제시하기 위해 알파벳으로만 제한합니다. 짝꿍에게 보내고 싶은 영어 단어를 이진수로 바꿔 짝꿍에게 전달하면 짝꿍은 역순으로 이진수를 알파벳으로 변환합니다. 이런 활동을 통해 인터넷을 통해 정보가 전달되는 과정과 정보 전달 중 오류가 발생할 수 있음을 체험할 수 있습니다. - 준비물 : 활동지1, 선생님 자료1, 연필, 지우개 - 활동 안내 1. 학생들에게 상황을 설명합니다. 지금부터 짝꿍에서 인터넷 메시지를 보내려고 합니다. 사람들은 언어를 통해 대화하지만, 컴퓨터나 스마트폰에서는 0, 1의 이진수로 통신하게 됩니다. 여기에서는 한글, 특수기호 등을 제외한 알파벳만 사용하도록 하겠습니다. 2. 짝꿍에게 보낼 영어 메시지를 선정하게 합니다. 예) LOVE 3. 활동지1에서 영어 메시지를 <알파벳 이진수표>를 보고 이진수로 변환해서 <전송할 메시지>를 작성하도록 안내합니다. 예시) <전송할 메시지>가 LOVE인 경우 이진수 1번 2번 3번 4번 5번 < 활동 2 > 오류 탐지, 패리티! - 활동 시간 : 15분 - 활동 개요 오류를 탐지하는 방법으로 데이터의 1의 개수가 짝수가 되도록 뒤에 1자리수를 더 붙이는 과정으로 데이터 전송 중에 데이터의 1의 개수가 바뀌게 되는지를 탐지하기 위한 활동입니다. 이 과정을 통해 학생들은 오류가 발생하는지를 탐지하는 방법을 알게 됩니다. - 준비물 : 활동지2, 포스트잇(2색, 10개씩) 또는 냉장고 자석(2색, 10개씩)과 금속판, 연필, 지우개 - 활동 안내 1. 활동1이 데이터가 인터넷으로 전송되는 과정임을 설명하고 다음의 문제점을 안내합니다. 여러분들은 활동1에서 친구에게 SNS 메시지 보내기를 통해 데이터가 이진수로 변환되어 인터넷 등으로 전송되는 과정을 체험해 보았습니다. 하지만 실제 전송되는 과정에서는 다양한 상황에서 오류가 발생해서 0,1의 데이터가 변하게 됩니다. 모니터에 자석을 가져다 대면 색이 이상해지는 것처럼 갑자기 번개가 친다거나 지구 자기장의 변화 등 물리적 접촉, 뜨거운 열, 자기 및 전기 방사선 등에 의해 데이터가 변할 수 있습니다. <질문1> 데이터를 전송하는 과정에서 0, 1의 데이터가 변하면 어떠한 일이 발생할까요? <질문2> 0, 1의 데이터가 변한 것을 데이터를 받는 사람(수신자)이 탐지할 수 있을까요? 2. 인터넷 통신과정에서 오류가 발생한 것을 탐지하기 위한 기법으로 패리티 방법을 아래 순서대로 소개합니다. 3. 아래의 칠판 그림과 같이 포스트잇 메시지를 붙이고, 어떤 메시지인지 해석하도록 합니다. 이때, 백색 포스트잇은 이진수 0, 흑색 포스트잇은 이진수 1이라고 알려줍니다. 1번 글자 0 1 1 0 0 2번 글자 0 1 1 1 1 3번 글자 0 1 1 1 0 선생님이 알파벳 중 하나를 임의의 선택 해서 포스트잇으로 칠판에 붙입니다. 이때, 포스트잇의 색이 흑, 백이 아니더라도 관계없습니다. 4번 글자 0 0 1 0 1 4. 활동지1에서 <전송할 메시지>를 친구와 교환한 후 <알파벳 이진수표>를 보고 해석하도록 안내합니다. 4. 흑색 포스트잇의 개수가 짝수가 되도록 6번째 포스트잇을 붙입니다. 5. 활동지1에서 친구의 메시지를 읽고 <답장메시지>를 같은 방법을 작성한 후 답장을 전달합니다. 6. 활동지1에서 <답장메시지>를 해석하도록 안내합니다. 1 2 3 4 1~5번 포스트잇 중 흑색의 개수가 홀수면 6번째는 흑색, 짝수면 6번째는 백색으로 하면 총 6개의 포스트잇에서 흑색의 개수가 짝수가 됩니다. 지도 Tip 1. 시간이 부족하거나 전체 용으로 사용하기 위해서 포스트잇이나 금속판 칠판과 자석을 준비해서 앞에서 선생님과 학생이나 시범 학생들을 선발해서 시범적으로 설명하는 것도 효과적입니다. 5. 전송 메시지가 완성되어 데이터를 전송할 때 외부현상에 의해 포스트잇 중 하나가 흑 백을 변경하면서 오류가 났다가 안내합니다. 그림에선 4번째 포스트잇이 백 흑으로 변경되었습니다. 57 CS Unplugged 4. 카드 뒤집기 마술 - 오류 탐지 및 수정 58
6. 데이터를 전송받은 데이터가 오류가 있는지? 그리고 어떻게 알 수 있는지 질문합니다. 3~5의 과정이 글자 1개의 오류를 탐지하기 위한 패리티 방법임을 설명합니다. 7. 학생들이 활동지2에서 어떤 글자가 오류가 있는지 탐지하도록 안내합니다. 8. 활동2 활동 후 패리티 방법으로 오류를 탐지할 수 없는 상황에 대해 질문을 유도한다. 한 글자 패리티 비트는 단순히 1의 개수가 짝수인지를 검사하려는 방법으로 다음과 같은 상황의 오류를 탐지할 수 없습니다. - 1, 3, 5등 홀수개의 비트가 변경된 경우 : 오류탐지 가능 - 2, 4, 6등 짝수개의 비트가 변경된 경우 : 오류탐지 불가능 < 활동 3 > 오류 탐지 마법사! - 활동 시간 : 20분 - 활동 개요 패리티 비트가 추가된 데이터를 학생이 임의로 교환한 뒤 오류를 선생님이 탐지하여 오류를 수정해주는 활동입니다. 5 5개의 포스트잇을 칠판 위에 붙이는 과정으로 보낼 데이터를 준비하고, 패리티 비트를 추가하는 것이 전송할 데이터에 추가 비트를 생성하는 과정입니다. 학생들이 임의로 포스트잇을 변경해 놓는 것은 오류가 발생하는 것이며, 선생님이 오류를 탐지하고 수정하는 과정으로 오류 탐지 및 수정을 경험하게 됩니다. - 준비물 : 활동지3, 포스트잇(2색, 36개씩) 또는 냉장고 자석(2색, 36개씩)과 금속판, 연필, 지우개 지도 Tip 1. 수업 시간이 부족한 경우는 활동지2를 하지 않고 전체 으로 설명만 할 수도 있습니다. - 활동 안내 1. 다음과 같이 칠판에 5 5 정사각형 모양으로 포스트잇을 붙입니다. 이때, 백색 포스트잇은 이진수 0, 흑색 포스트잇은 이진수 1이라고 알려줍니다. 백 흑 백 백 백 백 백 백 백 흑 흑 백 백 백 백 흑 백 백 백 백 선생님이 왼쪽 그림 예시(HAPPY)와 같이 칠판에 5 5 정사각형 모양으로 포스트잇을 붙입니다. 흑 흑 백 백 흑 2. 선생님이 오류를 방지하기 위한 목적으로 행과 열을 추가하여 짝수 패리티가 되도록 포스트잇을 붙입니다. 백 흑 백 백 백 흑 백 백 백 백 흑 흑 흑 백 백 백 백 흑 흑 백 백 백 백 흑 흑 흑 백 백 흑 흑 흑 백 백 백 백 흑 1) 가로축으로 색의 개수가 홀수면 흑색을 추가하고, 색의 개수가 짝수면 백색을 추가한다. 이때 0은 짝수로 간주합니다. 2) 세로축으로도 1)과 같은 방법으로 색을 추가합니다. 3. 선생님이 오류를 만들 학생을 선정하고, 다음을 안내합니다. 1) 학생에게 1개의 포스트잇을 변경(흑 백, 백 흑)하도록 합니다. 2) 1) 번의 과정이 오류가 발생하는 과정임을 안내합니다. 59 CS Unplugged 4. 카드 뒤집기 마술 - 오류 탐지 및 수정 60
4. 선생님이 어느 부분이 오류가 발생했는지 다음과 같이 확인하여 마법처럼 오류를 수정합니다. 흑색 4개 2개 0개 0개 1개 6개 흑색2개 흑색1개 흑색2개 흑색2개 흑색4개 흑색2개 1) 2번에서 가로축과 세로축의 흑색의 갯수를 짝수로 변경해 놓았으므로, 가로축과 세로축에서 흑색이 짝수가 아닌 칸을 찾습니다. - 왼쪽 그림의 경우 (2, 5)칸이 변경되었습니다. 2) 마법사와 같이 어떤 부분이 오류인지를 맞춥니다. 이 방법이 2차원 패리티 방식임을 알려줍니다. 지도 Tip 1. 상황이 가능하면 학생활동은 종이로 0, 1을 적는 것보다 카드, 동전, 포스트잇 등이 활동에 재미를 더할 수 있습니다. 2. 학생들이 일반적인 영어단어를 선택하도록 합니다. 3. 활동3의 5번 단계에서 1장만 변경하도록 하며, 많은 숫자를 이동 시 오류를 탐지할 수 없음을 이해시킵니다. 4. 2장 이상의 카드가 변경되었다면 오류를 탐지는 가능하지만, 오류를 수정할 수 없습니다. 이런 경우는 송신측에 재전송을 요청해 다시 정보를 수신해야 합니다. 5. 활동지3-2로 친구에게 5글자의 영어단어를 2차원 패리티 방식으로 전송해봅니다. 전송하기 전에 1개의 0, 1을 바꿔서 오류를 만들게 안내합니다. 6. 오류가 포함된 <전송 메시지>의 활동지3을 친구에게 전달하고, 친구가 해석하도록 안내합니다. 7. 학생들이 이 마법의 원리를 추론했는지 물어보고, 설명합니다. <원본> <오류탐지는 가능하나, 오류 수정이 불가능 한 예시> - 흑과 백은 컴퓨터에서 1, 0을 의미합니다. - 5 5는 데이터 원본이고, 가로 칸과 세로 칸의 흑의 개수가 짝수가 되도록 추가 1개 덧붙이는데, 이를 2차원 패리티라고 부릅니다. 이렇게 되면 가로축과 세로축의 모든 흑의 개수가 짝수가 됩니다. - 학생이 포스트잇을 변경하면 가로축과 세로축의 흑의 개수가 홀수로 변한 곳을 찾을 수 있습니다. - 마지막으로, 패리티 비트를 삭제하고 원본 데이터를 오른쪽의 <알파벳 이진수표>에 대비하여 알파벳을 읽어줍니다. 5. 4장의 카드가 특정 위치로 변경이 되었다면 오류 탐지 자체가 불가능해집니다. 이런 경우로 인해 위의 방법(수직 수평 패리티검사 또는 2차원 패리티검사) 보다는 더 개선된 방법이 사용됩니다. 백 흑 백 백 백 01000 H 백 백 백 백 흑 00001 A 흑 백 백 백 백 10000 P 흑 백 백 백 백 10000 P 흑 흑 백 백 흑 11001 Y <원본> <4개가 바뀌어 오류 탐지가 불가능 한 예시> 8. 2차원 패리티 방법으로 탐지할 수 없는 오류가 어떤 상황인지를 질문하고 안내해줍니다. 2차원 패리티 방법은 대부분 오류를 탐지할 수 있으나, 4개의 비트가 정확히 4각형을 이루는 경우는 홀짝의 변화가 없으므로 오류를 탐지할 수가 없음을 안내합니다. 61 CS Unplugged 4. 카드 뒤집기 마술 - 오류 탐지 및 수정 62
< 활동 4 > 바코드 검증하기! - 활동 시간 : 20분 - 활동 개요 바코드(barcode)는 상품의 정보를 알려주는 숫자 표시로 전 세계에서 13자리 수의 EAN-13(표준형 바코드)이 가장 많이 사용됩니다. EAN-13의 13자리 숫자의 의미를 파악해보고 검증코드를 통해 올바른 바코드인지 확인하는 활동입니다. 컴퓨터 통신 등에서만 오류를 탐지하는 것이 아니라 일상생활에서도 오류를 탐지하는 방법을 알게 됩니다. - 준비물 : 활동지4, 연필, 지우개 - 활동 안내 1. 예시 바코드를 보며 바코드 숫자의 의미를 설명하고 올바른 바코드 인지 검증합니다. 지도 Tip 1. 바코드는 크게 1973년 미국에서 시작한 12자리 수 UPC(Universal Product Code) 바코드와 1976년부터 유럽에서 시작된 13자리 수 EAN(European Article Number)로 나뉠 수 있으며, 우리나라는 1988년부터 EAN에 가입하여 KAN(Korea Ariticle Number)를 사용하고 있습니다. KAN는 EAN-13과 같습니다. 2. 등록된 바코드를 검색은 유통물류진흥원에서 검색할 수 있습니다. - 국내 바코드 : http://www.gs1kr.org/service/member/appl/searchbarcodecomp.asp - 해외 바코드 : http://gepir.gs1.org/v32/xx/default.aspx?lang=en-us 3. 체크디지트 계산할 수 있는 사이트를 통해 쉽게 계산할 수 있습니다. - http://www.koreannet.or.kr/ - 화면 중간에 체크디지트계산Go 클릭 4. 국가별 바코드번호는 다음 사이트를 참고할 수 있습니다. - http://www.koreannet.or.kr/ - 화면 중간에 체크디지트계산Go 하단 참고-유통표준바코드용 국가별 리스트 보기 클릭 - http://blog.daum.net/star1010/7834811 예) EAN-13 바코드 선생님 설명 1. EAN-13은 13자리 수로 구성되며 3자리의 국가코드, 4자리의 제조업자코드, 5자리의 상품 고유 코드로 구성되며 마지막 1자리는 EAN-13숫자가 맞는지 검증하기 위한 체크 숫자입니다. 8 8 0 1 3 7 6 0 3 9 0 0 5 국가코드 제조업자 코드 상품 코드 체크숫자 이때, 880은 우리나라 국가코드입니다. 2. 체크 숫자는 홀수 자리의 숫자에 3을 곱하여 1~12자리 수까지의 합을 구합니다. 그 후에 10에서 합의 일의 자릿수를 빼면 체크 숫자가 됩니다. 1) 1단계 : 홀수 자리 숫자에 3을 곱합니다. 자리 1 2 3 4 5 6 7 8 9 10 11 12 바코드 8 8 0 1 3 7 6 0 3 9 0 0 가중치 1 3 1 3 1 3 1 3 1 3 1 3 곱 8 24 0 3 3 21 6 0 3 27 0 0 2) 2단계 : 곱한 숫자와 짝수 자리의 숫자를 모두 더합니다. - 합: 8+24+0+3+3+21+6+0+3+27+0+0 = 95 3) 3단계 : 10에서 합의 일의 자릿수를 빼면 체크 숫자입니다. 단, 일의 자릿수가 0이면 체크 숫자도 0입니다. - 체크 숫자 : 10 5 = 5 4) 만약 3단계의 체크 숫자와 바코드의 13번째 숫자가 맞으면 옳은 바코드입니다. 2. 학생은 활동지4에 적힌 바코드를 검증하여 진위를 파악합니다. 3. 친구들끼리 바코드 검증 결과를 비교하며 확인합니다. 63 CS Unplugged 4. 카드 뒤집기 마술 - 오류 탐지 및 수정 64
5 자용 워크북 (활동지, 활동 자료) 활동지 1 - SNS메시지 보내기 활동지 2 - 오류 탐지, 패리티! 1. 친구에게 보낼 영어 메시지를 생각해서 <알파벳 이진수표>를 보고 이진수로 변환해서 <전송 메시지>를 작성해 보세요. <전송 메시지> 1. 다음 <전송 메시지>들을 오류가 있는지를 검사하고 해석해 보세요. 이때, 전송된 글자에 오류가 있다면 폐기하고, 오류가 없다면 알파벳으로 표현해 보세요. <알파벳 이진수표> 알파벳 십진수 이진수 A 1 00001 B 2 00010 C 3 00011 D 4 00100 E 5 00101 F 6 00110 G 7 00111 H 8 01000 I 9 01001 J 10 01010 K 11 01011 L 12 01100 M 13 01101 N 14 01110 O 15 01111 P 16 10000 Q 17 10001 R 18 10010 S 19 10011 T 20 10100 U 21 10101 V 22 10110 W 23 10111 X 24 11000 Y 25 11001 Z 26 11010 이진수 1번 2번 3번 4번 5번 1번 글자 2번 글자 3번 글자 4번 글자 5번 글자 6번 글자 7번 글자 8번 글자 9번 글자 10번 글자 2. 친구에게 받은 <전송 메시지>를 해석해 보세요. 3. 친구의 메시지에 <답장 메시지>를 작성해서 전달해 보세요. <답장 메시지> 이진수 1번 2번 3번 4번 5번 1번 글자 2번 글자 3번 글자 4번 글자 5번 글자 6번 글자 7번 글자 8번 글자 9번 글자 10번 글자 4. 친구의 메시지에 <답장 메시지>를 해석해 보세요. <알파벳 이진수표> 알파벳 A B C D E F G H I J K L M 이진수 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 알파벳 N O P Q R S T U V W X Y Z 이진수 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 <전송 메시지> 이진수 1번 2번 3번 4번 5번 패리티 1번 글자 0 1 0 0 1 0 2번 글자 1 0 1 0 1 0 3번 글자 0 1 1 0 0 0 4번 글자 0 1 1 1 1 0 5번 글자 0 1 0 1 1 0 6번 글자 1 0 1 0 0 1 7번 글자 1 0 1 1 0 1 8번 글자 1 1 0 1 0 0 9번 글자 0 0 1 0 1 0 10번 글자 1 1 0 1 1 1 2. 폐기처분 할 글자는 어떤 글자들인가요? 3. 한 글자 패리티 방법으로 오류를 탐지할 수 없는 상황은 어떤 것들이 있는지 생각해 보세요. 65 CS Unplugged 4. 카드 뒤집기 마술 - 오류 탐지 및 수정 66
활동지 3 오류 탐지 마법사! 활동지 4 바코드 검증하기 <알파벳 이진수표> 1. 다음 바코드 중에 틀린 바코드가 있는지를 검증해 보세요. 알파벳 A B C D E F G H I J K L M 이진수 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 알파벳 N O P Q R S T U V W X Y Z 이진수 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 1. 짝꿍에게 하고 싶은 5글자 이하의 영어 단어를 생각해 보세요. <바코드 번호> 자리 1 2 3 4 5 6 7 8 9 10 11 12 바코드 가중치 1 3 1 3 1 3 1 3 1 3 1 3 곱 - 합 : - 체크 숫자 : 옳은 바코드 틀린 바코드 2. <알파벳 이진수표>를 이용해서 <전송 메시지>를 작성하고 2차원 패리티를 써주세요. 그 뒤에 1~4개의 이진수를 변경( 0 1, 1 0 )해서 오류를 덧붙인 후 짝꿍에게 전달해 보세요. <전송 메시지> 구분 1번 2번 3번 4번 5번 패리티 1번 글자 2번 글자 3번 글자 4번 글자 5번 글자 패리티 <바코드 번호> 자리 1 2 3 4 5 6 7 8 9 10 11 12 바코드 가중치 1 3 1 3 1 3 1 3 1 3 1 3 곱 - 합 : - 체크 숫자 : 옳은 바코드 틀린 바코드 3. 전달받은 메시지에서 오류를 탐지하고 수정해서 짝꿍이 보낸 영어단어를 찾아보세요. <전송 받은 메시지> 구분 1번 2번 3번 4번 5번 패리티 1번 글자 2번 글자 3번 글자 <짝꿍이 보낸 단어> <바코드 번호> 자리 1 2 3 4 5 6 7 8 9 10 11 12 바코드 가중치 1 3 1 3 1 3 1 3 1 3 1 3 곱 - 합 : - 체크 숫자 : 4번 글자 5번 글자 패리티 옳은 바코드 틀린 바코드 67 CS Unplugged 4. 카드 뒤집기 마술 - 오류 탐지 및 수정 68
6 선생님용 워크북 (활동지, 활동 자료) 선생님 자료 1 - 활동 1 선생님 자료 2 - 활동 4 <알파벳 이진수표> 알파벳 십진수 이진수 A 1 00001 1. 다음 바코드 중에 틀린 바코드가 있는지를 검증해 보세요. 1) B 2 00010 C 3 00011 D 4 00100 E 5 00101 F 6 00110 G 7 00111 H 8 01000 I 9 01001 J 10 01010 2) K 11 01011 L 12 01100 M 13 01101 N 14 01110 O 15 01111 P 16 10000 Q 17 10001 R 18 10010 3) S 19 10011 T 20 10100 U 21 10101 V 22 10110 W 23 10111 X 24 11000 Y 25 11001 Z 26 11010 69 CS Unplugged 4. 카드 뒤집기 마술 - 오류 탐지 및 수정 70
7 선생님용 참고자료 8 해답과 힌트 정답 - 활동지 2 ISBN(국제표준도서번호) ISBN(International Standard Book Number는 13자리 수로 이루어진 전 세계에 등록된 책의 고유번호입니다. 2007년 이전에는 10자리 수의 ISBN번호를 사용했습니다. <전송 메시지> 이진수 1번 2번 3번 4번 5번 패리티 개수 문자/폐기 ISBN (International Standard Book Number) 책에 대한 국제적인 주민등록번호 (국제표준도서번호) 10자리로 구성 국가 코드 발행자 코드 책 코드 체크숫자 1번 글자 0 1 0 0 1 0 2 I 2번 글자 1 0 1 0 1 0 3 폐기 출판되는 책이 늘어남에 따라 2007년부터 13자리 수의 ISBN번호를 사용했습니다. 하지만 2007년 이전에 출판된 도서와 2007년 이전에 계약된 책에 한해서는 고유숫자 978 + 10자리 ISBN번호가 사용되고 있습니다. 3번 글자 0 1 1 0 0 0 2 L 4번 글자 0 1 1 1 1 0 4 O 5번 글자 0 1 0 1 1 0 3 폐기 6번 글자 1 0 1 0 0 1 3 폐기 또한, 13자리 수의 ISBN번호의 검증 코드는 EAN-13 방식과 같게 13번째 자리를 체크 숫자로 검증할 수 있습니다. 그러나 2007년 이전에 출판된 책은 10자리를 사용하므로 정식으로 등록된 책인지 알 수 없습니다. 여기에서는 10자리 ISBN번호를 검증하는 방법은 다음과 같습니다. 예) ISBN 89-5757-818-8 7번 글자 1 0 1 1 0 1 4 V 8번 글자 1 1 0 1 0 0 3 폐기 9번 글자 0 0 1 0 1 0 2 E 10번 글자 1 1 0 1 1 1 5 폐기 71 CS Unplugged 4. 카드 뒤집기 마술 - 오류 탐지 및 수정 72
정답 - 활동지 4 1. 다음 바코드 중에 틀린 바코드가 있는지를 검증해 보세요. <바코드 번호> 자리 1 2 3 4 5 6 7 8 9 10 11 12 바코드 8 8 0 1 1 2 9 0 5 4 1 4 가중치 1 3 1 3 1 3 1 3 1 3 1 3 곱 8 24 0 3 1 6 9 0 5 12 1 12 - 합 : 8+24+0+3+1+6+9+0+5+12+1+12= 81 - 체크 숫자 : 10 1=9 옳은 바코드 틀린 바코드 <바코드 번호> 자리 1 2 3 4 5 6 7 8 9 10 11 12 바코드 9 0 0 2 2 3 6 3 1 1 0 3 가중치 1 3 1 3 1 3 1 3 1 3 1 3 곱 9 0 0 6 2 9 6 9 1 3 0 9 - 합 : 9+0+0+6+2+9+6+9+1+3+0+9 = 54 - 체크 숫자 : 10 4=6 옳은 바코드 틀린 바코드 <바코드 번호> 자리 1 2 3 4 5 6 7 8 9 10 11 12 바코드 9 7 8 0 2 0 5 0 2 8 8 0 가중치 1 3 1 3 1 3 1 3 1 3 1 3 곱 9 21 8 0 2 0 5 0 2 24 8 0 - 합 : 9+21+8+0+2+0+5+0+2+24+8+0 = 79 - 체크 숫자 : 10 9=1 옳은 바코드 틀린 바코드 73 CS Unplugged
놀이로 배우는 컴퓨터 과학 5. 스무 고개 정보 이론 지도안 5. 스무 고개 정보 이론 목표 1. 추상적인 정보 를 양(비트수)으로 측정 표현하는 방법을 이해한다. 2. 표현하려는 정보의 개수에 따른 비트수를 계산할 수 있다. 3. 스무고개의 질문 개수가 정보량임을 이해할 수 있다. 방법 토론, 협력, 게임 소요 시간 70분 적정 연령 13세 이상 관련 CT 자료 분석, 자료 표현 선생님 동영상, 활동지 < 개요 > 준비물 학생 활동지 날씨, 행복, 우정, 사랑 등 추상적인 정보를 어떻게 0, 1로 표시할 수 있을까요? 추상적인 정보를 컴퓨터 안에서 양으로 측정 표현하기 위해 우리는 비트(bit)라는 정보량의 단위를 사용합니다. 비트는 서로 다른 두 가지 가운데 하나를 고르는 정보의 단위로 0과 1로 표현됩니다. 추상적인 정보들은 컴퓨터로 표현되고 전송되기 위해서 모두 0과 1로 부호화하여 약속해 두어야 합니다. A, B, C 등의 알파벳이나 가, 나, 다 등의 언어도 마찬가지입니다. 결국, 모든 정보는 컴퓨터 안에서는 0, 1로 이루어진 비트로 표현됩니다. 그럼, 이러한 추상적인 정보를 0, 1로 구분되게 표현하려면 얼만큼의 정보량(비트수)을 이용해서 부호화해야 하는지 활동으로 통해 알아봅니다. 74 CS Unplugged 5. 스무고개 - 정보이론 75
단계 소요 시간 요소 교수 활동 형태 자료 1 동기유발 활동 도입 10분 동기유발 정보의 부호화(코드화)와 관련된 동영상 시청 EBS 다큐프라임_다섯 개의 열쇠 1부_0과 1 #002 https://youtu.be/okpbwnz0qo0 (처음부터 ~ 5:00 위치까지) - 정보를 부호화하는 이유 - 정보를 부호화하는 데 있어 중요한 요소 파악 전체 동영상 [함께 생각해 보기] - 추상적인 정보의 코드화, 부호화와 관련된 동영상을 보고 함께 생각해 봅시다. 예) EBS Docuprime_과학 대 기획_다섯 개의 열쇠 1부_0과 1_#00 https://youtu.be/okpbwnz0qo0 (처음부터 ~ 5:00 위치까지) 1. 정보를 부호화하는 이유가 무엇인지 생각해 봅시다. 목표 제시 추상적인 정보 를 양(비트수)으로 측정 표현하는 방법을 이해한다. 표현하려는 정보의 개수에 따른 비트수를 계산할 수 있다. 스무고개의 질문 개수가 정보량임을 이해할 수 있다. 2. 정보를 부호화하는 데 있어 중요한 요소가 무엇인지 생각해 봅시다. 15분 활동1 0, 1로 표현되는 날씨 - 추상적 정보의 부호화 - 추상적 정보를 양(비트수)으로 표현하는 과정을 이해하는 활동 - 1단계(상태 정의) : 표현하려는 정보의 상태를 정의 나열한다. - 2단계(상태 개수 확인) : 작성한 상태의 개수를 확인한다. - 3단계(비트수 계산) : 앞에서 정의한 상태를 모두 표현하려면 몇 비트가 필요한지 확인한다. - 4단계(코드 검증 및 성찰) : 자신이 작성한 부호화된 코드를 이용할 경우 어떤 문제가 생길 수 있는지 성찰한다. 개인 또는 그룹 활동지1, 활동지2 2 문제 제시 1. 행복, 우정, 날씨, 색깔 등 실제 세거나 숫자로 표현할 수 없는 이러한 추상적인 정보를 어떻게 양으로 측정 표현할 수 있을까요? 2. 표현하려는 정보의 상태 개수에 따른 최소 필요 정보량(비트수)을 몇 비트일까요? 3. 스무고개에서 질문의 개수는 무엇을 의미할까요? 스무고개 게임 - 정보량 구하기 4. 비밀번호 전송 게임에서 이기기 위해 어떤 전략을 세워야 할까요? - 게임 소개 전개 20분 활동2 선택된 1명은 1~100 사이의 숫자 하나를 선택하고, 정답을 맞힐 때까지 학생들은 선택된 1명의 학생에게 질문을 계속하고, 선택된 학생은 예, 아니오 둘 중 하나만 대답한다. - 모둠별로 질문 전략을 수립한다. - 질문은 통해 스무고개 게임을 진행한다. - 게임이 끝나고 난 뒤 질문 전략과 내용을 공유한다. (모둠별 발표) - 활동 종료 후 활동지3, 4를 이용해 정리한다. 모둠 활동 (4인 1조) 활동지3, 활동지4 3 주요 개념 및 용어 정리 정보 이론 20분 활동3 확장 스무고개 게임 - 활동2의 스무고개 게임에서 선택 숫자의 범위 및 종류를 확장하여 동일한 방법으로 시행한다. - 단, 앞서 한 활동지4 활용하여 체계적인 전략을 수립한다. - 확장 주제 예시 내 나이는? 1 에서 10,000사이의 숫자 하나 알파벳 중 문자 하나 단어 예측 모둠 활동 (4인 1조) 활동지4 정보의 전송, 송신, 수신, 개발 등에 관한 수리적 공학적 이론을 총칭하여 이르는 말로, 여기에서 말하는 정보란 신문의 뉴스나 특종 기사와 같은 정보가 아니라, 문자, 음성, 화상 등의 정보를 의미합니다. 정보 이론에 포함된 대표적인 이론 분야로서 통신 이론, 부호이론, 암호 이론 등이 있으며 네트워크 사회의 기반을 이루는 정보통신 네트워크 설계나 운용에 중요한 논리적 기초를 제공합니다. 정보량 정보를 물리적으로 셈이 가능한 수량적인 표현 방법으로 표현하는 것을 의미하며 어떤 정보를 표현할 때 필요한 비트수를 의미합니다. 본 내용에서는 대상 나이를 고려하여 정보들의 상태 개수에 따른 표현 비트수 의 의미로 제한하여 사용하였으며, 어떤 사건의 확률에 기반을 둔 정보량의 계산에 대해서는 언급하지 않습니다. 정리 5분 프로젝트 정리 정보의 부호화 의 의미를 정리한다. 정보량(비트수)을 구하는 방법을 정리한다. 전체 비트 정보량의 최소 기본 단위로 1bit는 0, 1을 표현하는 이진수 1자리를 의미합니다. 76 CS Unplugged 5. 스무고개 - 정보이론 77
4 자 활동 지도 Tip < 활동 1 > 오늘 날씨는 몇 비트? - 추상적 정보의 부호화 - 활동 시간 : 15분 - 활동 개요 이 활동은 선생님의 안내와 단계별 활동을 통해 추상적 정보를 비트로 표현하는 방법을 이해하는 활동입니다. 개인, 또는 소그룹 토의형식을 통해 진행 가능하며 이 활동을 통해 추상적 정보가 어떻게 부호화되어 비트로 처리되는지를 이해하게 됩니다. - 준비물 : 활동지1, 활동지2 1. 본 활동은 정보량의 정확히 파악하는 활동이라기 보다, 어떻게 추상적인 자료들이 부호화되며 비트를 이용해 저장되고 전송되는지 전체적인 흐름을 파악할 수 있도록 도움을 주는 활동입니다. 따라서, 상태 정의(흐림, 흐린 뒤 갬, 맑은 뒤 구름 등)에 대해 어떤 정답을 요구하기 보다, 본인이 정의한 상태의 개수와 이를 표현하고 저장하는 비트수 명확하게 정할 수 있도록 합니다. 2. 상태의 개수(W)에 따라 비트수(N)를 계산하는 것은(n = log 2W ) 수학적으로 어려울 수 있으니, 역으로 비트수에 따라 표현할 수 있는 정보의 개수를 미리 표로 제시합니다. 추후 스무고개 활동 등을 종합하여 2 n = W 식을 이해할 수 있도록 합니다. 비트수 표현 가능 상태수 비트 표현 1비트 2개 0, 1 2비트 4개 00, 01, 10, 11 3비트 8개 000, 001, 010, 011, - 활동 안내 1단계(상태 정의) 표현하려는 정보의 상태를 정의 나열합니다. 날씨 예시 날씨 지수 내용 정의 4비트 16개 100, 101, 110, 111 5비트 32개 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111 1 맑음 2 흐림 n비트 2 n 개 실제 정보 이론 분야에서 정보량은 해당 사건(일)이 발생할 확률을 포함하여 더욱 복합적이고 구체적으로 다루어지지만, 여기에서는 추상적인 정보를 0, 1로 변환할 때 사용하는 비트수의 개념으로 한정 지어 지도합니다. 단, 실제적인 학문에서 사용하는 본래의 의미에 대해서도 간략하게 언급하도록 합니다. 2단계(상태 개수 확인) 나열한 상태의 개수를 확인합니다. 3단계(비트수 계산) 앞에서 정의한 상태를 모두 표현하려면 몇 비트가 필요한지 확인합니다. 8가지의 날씨는 비트로 표현 가능 4단계(코드 검증 및 성찰) 자신이 작성한 부호화된 코드를 이용할 경우 어떤 문제가 생길 수 있는지 성찰합니다. 5단계(심화 활동) 날씨의 부호화에 대한 활동을 진행한 뒤 활동지2를 활용하여 심화 활동을 진행해 봅니다. 78 CS Unplugged 5. 스무고개 - 정보이론 79
< 활동 2 > 스무고개 활동 - 활동 시간 : 20분 - 활동 개요 이 활동은 4명 내외로 모둠을 구성하여 선택된 1명이 마음속으로 고른 숫자를 스무고개처럼 나머지 학생들이 질문을 통해 맞추는 활동입니다. 이 활동에서 질문의 개수는 정보량(비트수)을 의미하는 매우 중요한 항목이므로, 학생들은 질문 개수를 최소화하기 위해 가장 효과적인 질문 전략을 수립해야 합니다. - 준비물 : 활동지3, 활동지4 - 활동 안내 (먼저 활동을 진행하고 난 뒤 활동지를 작성합니다.) <규칙> 정답을 맞출 때까지, 학생들은 선택된 1명의 학생에게 질문을 계속하고, 선택된 학생은 "예", "아니오" 둘 중 하나만 대답할 수 있습니다. < 활동 3 > 확장 스무고개 활동 - 선택 숫자 범위의 확대, 종류의 확장 (1부터 10,000까지? A부터 Z까지?) - 활동 시간 : 20분 - 활동 개요 스무고개 활동의 확장 활동으로 예측해야 하는 숫자 범위를 확대하거나, 문자를 예측 등 선택하는 종류를 확장하여 진행하는 활동입니다. - 준비물 : 활동지4 - 활동 안내 <규칙> 정답을 맞힐 때까지, 학생들은 선택된 1명의 학생에게 질문을 계속하고, 선택된 학생은 "예", "아니오" 둘 중 하나만 대답할 수 있습니다. 1. 활동 절차는 활동2와 같게 진행하며, 활동 주제를 확장하여 진행합니다. 1. 4인 1조로 짝을 만들고 선택된 1명(학생A)을 정합니다. 내 나이를 맞추어 보세요. 2. 학생A는 1~ 100사이의 숫자 중 원하는 수를 정하고 다른 학생들에게 이렇게 말합니다. 나는 아래의 숫자 중에 하나를 생각하고 있습니다. (1에서 100사이의 숫자 중 하나) 나는 아래의 숫자 중에 하나를 생각하고 있습니다. (1 에서 10000사이의 숫자 중 하나) 3. 나머지 학생들은 함께 토의하며 학생A가 선택한 숫자를 맞추기 위한 가장 효율적인 질문 전략 및 내용을 구상합니다. 4. 정답을 맞힐 때까지 학생들은 수립된 전략 및 질문 내용에 따라 학생A에게 질문합니다. 5. 게임이 종료된 후 질문 횟수와 질문 내용을 정리하여 선생님에게 제출합니다. 6. 가장 질문개수가 적은 / 중간인 / 많은 모둠의 질문 내용 및 횟수를 함께 공유합니다. 나는 아래의 문자 중에 하나를 생각하고 있습니다. (A 에서 Z사이의 문자 중 하나) 2. 나머지 학생들은 앞서 공부한 활동지4를 활용하여 최선의 질문 전략을 수립합니다. 3. 수립된 전략 및 질문 내용에 따라 학생A에게 질문합니다. 지도 Tip 1. 처음부터 너무 큰 범위의 숫자를 선택하여 중도 포기하는 모둠이 있는 경우 작은 범위의 수를 선택하여 진행하도록 안내합니다. (0~7, 0~15 등) 2. 다양한 질문 전략을 세우고 시행해 보도록 권장합니다. 3. 전체 모둠들에서 나온 전략과 질문 내용을 비교하여 공통된 규칙이나 정답 패턴이 있는지 토의해 봅니다. 4. 활동을 마치고 난 뒤 활동지3을 이용하여 의사결정나무(0~7까지)를 활용한 최선의 질문 전략에 관해 이야기 나누어 봅니다. 5. 활동지3을 마치고 자신들의 활동에 대해 활동지4에 다시 정리하도록 합니다. 이때 트리의 개수가 부족하니 확장하여 이어 그릴 수 있도록 안내합니다. 6. 마무리 단계에서 질문의 개수와 정보량의 관계를 반드시 이해하고 응용할 수 있도록 보다 친절하게 지도하고 안내합니다. 4. 게임이 종료된 후 질문 횟수와 질문 내용을 정리하여 선생님에게 제출합니다. 지도 Tip 1. 흥미로운 점은 질문의 범위가 1,000으로 확대된다면, 10배만큼 노력이 들지 않고, 단지 추가 질문 3개만이 필요하다는 점입니다. 질문의 범위가 두 배씩 증가할 때마다 정답을 찾기 위해서 한 개의 추가 질문만을 필요로 한다는 점을 학생들이 스스로 인지할 수 있도록 유도합니다. 80 CS Unplugged 5. 스무고개 - 정보이론 81
5 자용 워크북 (활동지, 활동 자료) 활동지 1-0, 1로 표현되는 날씨 활동지 2 - 너와 나의 우정의 관계는 몇 비트? 날씨와 관련된 정보를 부호화 하는 방법을 함께 살펴보세요. 활동지1을 참고하여 너와 나의 관계 - 우정을 부호화해 보세요. 1단계(상태 정의) 정합니다.) 날씨 예시를 참고하여 날씨 상태를 정의해 보세요. (개수는 날씨의 상태에 따라 자유롭게 날씨 예시 날씨 지수 내용 정의 1 맑음 1단계(상태 정의) 나와 친구와의 관계를 표현할 수 있는 내용(상태)을 정의해 보세요. 우정 지수 내용 정의 예시 그림 1 얼굴과 이름만 알고 지나가며 인사만 하는 사이 2 흐림 2 학교 내에서 행동을 함께하는 사이 2단계(상태 개수 확인) 상태 개수 확인 8 개 3단계(비트수 계산) 위에서 결정한 날씨의 상태를 표현하려면 3 비트 필요 날씨 예시 날씨 지수 내용 정의 1비트 2개 (2 1 ) 0, 1 > 0(맑음), 1(흐림)로 각 비트 표현에 두 가지의 날씨 상태를 약속하고 사용 가능 2단계(상태 개수 확인) 우정의 상태 개수 확인 개 2비트 4개 (2 2 ) 00, 01, 10, 11 -> 총 4가지의 날씨 상태 약속 후 사용 가능 3단계(비트수 계산) 2단계에서 정의한 개수를 모두 표현하려면 비트 필요 3비트 8개 (2 3 ) 000, 001, 010, 011, 100, 101, 110, 111 너와 나의 관계는 비트로 표현 가능 8가지의 날씨는 3 비트로 표현 가능 4단계(코드 검증 및 성찰) 위와 같이 날씨를 부호화하여 사용할 경우 어떤 문제점들이 발생할 수 있나요? ( 입력 또는 전송된 코드 : 000 맑음에 해당하는 지정된 일을 처리합니다. ) 4단계(코드 검증 및 성찰) 위와 같이 날씨를 부호화하여 사용할 경우 어떤 문제점들이 발생할 수 있나요? 82 CS Unplugged 5. 스무고개 - 정보이론 83
활동지 3 의사결정나무 활동지 4 의사결정나무 다음 그림은 0에서 7까지의 숫자 중 하나를 예측하는 의사결정나무의 예시 자료입니다. X 4? 아니요 예 X 2? X 6? 아니요 예 아니요 예 1. 1~100까지의 상대방의 숫자를 예측하기 위한 의사결정나무를 활용하여 더욱 효과적인 질문 전략을 수립해 보세요. (필요에 따라 질문의 수가 늘어나면 트리를 더 추가하여 그리도록 합니다.) 1~100까지 중 하나를 맞추기 위한 의사결정나무 X 1? X 3? X 5? X 7? 아니요 예 아니요 예 아니요 예 아니요 예 아니요 예 X = 0 X = 1 X = 2 X = 3 X = 4 X = 5 X = 6 X = 7 000 1. 숫자5를 맞추는 데 필요한 예/아니오 결정을 순서대로 적어보세요. 아니요 예 아니요 예 아니요 예 아니요 예 아니요 예 아니요 예 2. 어떤 하나의 숫자를 맞추기 위해서 예/아니오 결정이 몇 번이나 필요할까요? 번 3. "아니오" 0으로, "예" 1로 나타내어 의사결정나무의 가장 아래 0,1,2,3 의 숫자 아래에 빈칸에 선택 결정을 순서대로 이진수로 표현하여 적어보세요. 예) x=0의 경우 선택 결정 순서가 아니오-아니오-아니오 이므로, 000 4. 선택한 숫자와 선택 결정한 이진수를 비교해 보고 어떤 규칙이 있나요? 꼭 기억하세요! 상대방 마음속의 숫자 하나를 맞추려면 몇 번의 질문을 통해 그 숫자를 맞출 수 있을까요? 이 질문에는 예/아니오 로만 답할 수 있고, 이는 0과 1로 표현됩니다. 결국 예/아니오라는 대답은 1bit로 표현 가능하고, 최종 숫자를 맞추기까지 사용한 질문의 개수는 총 비트수(정보량)을 의미하게 됩니다. 컴퓨터 과학자들은 이 질문의 개수가 바로 정보량이라고 말하며 비트수로 표현합니다. 84 CS Unplugged 5. 스무고개 - 정보이론 85
6 선생님용 참고자료 6 선생님용 참고자료 클로드 섀넌 (ClaudeElwood Shannon) 정보 이론 미국의 응용수학자이자 컴퓨터과학자입니다. 미국 전자통신시대의 서막을 연 인물로, '디지털의 아버지'라고 불립니다. 최초로 0과 1의 2진법, 즉 비트(bit)를 통해 문자는 물론 소리 이미지 등의 정보를 전달하는 방법을 고안하였습니다. 출생-사망 1916.4.30 ~ 2001.2.24 별 칭 디지털의 아버지 국 적 미국 활동분야 응용수학 저명한 미국 수학자 클로드 섀넌(Claude Shannon)은 이 게임으로 많은 실험을 했습니다. 그는 정보량을 비트로 측정했습니다. 각각의 "예/아니오" 응답이 0/1 비트에 상응합니다. 그는 메시지 정보량이 이미 얼마나 알고 있느냐에 달려있다는 것을 발견했습니다. 때때로 질문 하나로 다른 많은 질문을 할 필요를 없게 만듭니다. 이 경우 메시지의 정보량은 매우 적습니다. 예를 들어, 동전 던지기 한 번의 정보는 통상 1bit(앞면, 뒷면)입니다. 하지만 동전의 양면 중 한 면이 편향되어서 10번 던져 9번 앞면이 나온다면, 정보량은 더 이상 1bit가 아니고, 믿든 믿지 않든, 1bit보다 적습니다. 어떻게 동전 던지기 결과를 1회 미만의 질문으로 알 수 있는 것일까요? 간단합니다. 다음과 같은 질문을 하면 됩니다. "다음 2번 동전 던지기 결과 모두 앞면이 나왔나요?" 편향된 동전 던지기 결과는 이 질문에 약 80% 확률로 예, 아니요 가 나온 경우에는 두 개의 추가 질문을 해야 합니다. 하지만 평균적으로, 동전을 던질 때마다 1회 미만의 질문을 할 것입니다. 출 생 지 주요저서 미국 미시간주( 州 ) 게일로드 커뮤니케이션의 수학적 이론 (1949:W.위버와 공저) 섀넌은 메시지 정보량을 엔트로피( entropy )라고 명명했습니다. "엔트로피"는 동전 던지기의 경우는 두 사건(앞면/뒷면)처럼 사건의 수(number)뿐만 아니라 그것이 일어나는 확률(probability)도 영향을 받습니다. 있을 수 없는 사건, 즉 놀라운 정보는 해당 메시지에 대해 많은 횟수의 질문이 필요한데, 이유는 우리가 아직 알지 못하는 것보다 더 많은 정보를 알려주기 때문입니다. 미국 전자통신시대의 서막을 연 인물로, '디지털의 아버지'라고 불립니다. 1916년 4월 30일 미국 미시간주( 州 ) 게일로드(Gaylord)에서 태어났습니다. 1940년 매사추세츠공과대학(MIT:Massachuset tsinstituteoftechnology)에서 전기공학과 수학을 공부하고, 1942년 벨전화연구소(BellTelephoneLa boratories)의 스태프로 참여하였습니다. 이때부터 커뮤니케이션 연구에 몰두하여 1949년 동료인 워런 위버(WarrenWeaver)와 함께 현대 커뮤니케이션 이론의 고전으로 통하는 커뮤니케이션의 수학적 이론 TheMathematicalTheoryofCommunication 을 발표해 정보이론의 기초를 확립하였습니다. 그는 최초로 0과 1의 2진법, 즉 비트(bit)를 통해 문자는 물론 소리 이미지 등의 정보를 전달하는 방법을 고안하였습니다. 그의 이론은 전화 텔레비전 컴퓨터 네트워크 등 오늘날 광범위하게 이용되는 정보통신의 핵심 원리를 제공했을 뿐 아니라, 유전자 분석 등 다양한 분야의 토대가 되었습니다. 제2차 세계대전 때 암호 해독가로 활약하였으며, 항공기 조준기를 개발하여 독일의 폭격기로부터 런던을 방어하는 데 공헌하였습니다. 그 후 MIT의 교수로 재직하면서 수학 컴퓨터 암호학 분야에서 많은 업적을 남겼고, 교수직에서 은퇴한 이후에는 저글링(juggling) 로봇, 체스를 두는 로봇, 미로를 스스로 해결하는 마이크로 마우스(Micromouse) 등을 발명하였습니다. 말년에 알츠하이머병을 앓다가 2001년 2월 24일 매사추세츠주( 州 ) 메드퍼드에서 사망하였습니다. 메시지 엔트로피는 컴퓨터 과학자에게 매우 중요합니다. 엔트로피보다 적은 공간을 차지하도록 메시지를 압축할 수 없습니다. 가장 압축이 좋은 시스템은 숫자 맞추기 게임과 같습니다. 컴퓨터 프로그램이 '추측'을 하는 것이기 때문에, 질문 목록은 나중에라도 다시 재구성될 수 있습니다. 그래서 정답(비트)이 저장되어 있으면, 정보를 다시 재구성할 수 있습니다. 숫자를 추측하는 게임 방법은 사용자가 다음에 무엇을 입력할까를 추측하는 컴퓨터 인터페이스 설계에도 사용됩니다. 키보드 입력에 어려움이 있는 장애인을 위해서 이 방법이 유용하게 사용될 수 있습니다. 장애인이 다음에 입력할 것을 컴퓨터가 추측하여 제시하면, 장애인은 원하는 바를 선택하면 됩니다. 좋은 시스템은 평균적으로 문자당 2개 예/아니오 결과를 필요합니다. 마우스나 키보드를 미세하게 조정하는 데 어려움이 있는 장애인에게 큰 도움이 될 수 있습니다. 이런 종류의 시스템은 같은 원리로 스마트폰 문자를 입력하는 데 사용될 수 있습니다. - 출처: 클로드 섀넌 [Claude Elwood Shannon] (두산백과) 86 CS Unplugged 5. 스무고개 - 정보이론 87
8 해답과 힌트 정답 - 활동지 1, 2 정답 - 활동지 3, 4 <활동지 1> <활동지 3> X 4? 1단계(상태 정의) 맑음, 흐림, 비, 흐린 뒤 비, 비 온 뒤 갬, 천둥, 번개, 눈, 무지개, 소나기 등 아니요 예 2단계(상태 개수 확인) 학생들이 선택한 날씨 상태의 개수 3단계(비트수 계산) 아래 표현 가능 비트수를 확인하여 해당 개수 기록 X 2? X 6? 비트수 표현 가능 상태수 비트 표현 아니요 예 아니요 예 1비트 2개 0, 1 2비트 4개 00, 01, 10, 11 X 1? X 3? X 5? X 7? 3비트 8개 000, 001, 010, 011, 아니요 예 아니요 예 아니요 예 아니요 예 4비트 16개 100, 101, 110, 111 5비트 n비트 32개 2 n 개 4단계(코드 검증 및 성찰) 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111 - 토네이도, 해일 등 날씨 코드에서 정의되지 않은 상태에 대한 표현이 불가능합니다. - 통신망을 통해 날씨 코드를 주고받을 경우 서로 약속이 같게 되어 있지 않을 경우 보낸 날씨 코드를 잘 못 해석할 수 있습니다. X = 0 X = 1 X = 2 X = 3 X = 4 X = 5 X = 6 X = 7 000 001 010 011 100 101 110 111 1. 숫자5를 맞추는 데 필요한 예/아니오 결정을 순서대로 적어보세요. 예 -> 아니오 -> 예 2. 8개의 숫자 중 하나를 맞추기 위해서 예/아니오 결정이 몇 번이나 필요할까요? 3 번 3. "아니오" 0으로, "예" 1로 나타내어 의사결정나무의 가장 아래 0,1,2,3 의 숫자 아래에 빈칸에 선택 결정을 순서대로 이진수로 표현하여 적어보세요. -> 그림을 참고합니다. <활동지 2> 1단계(상태 정의) 우정 지수 아래 내용은 단지 예시이며 학생들의 다양한 내용을 발표하도록 합니다. 내용 정의 4. 선택한 숫자와 선택 결정한 이진수를 비교해 보고 어떤 규칙이 있나요? -> 그 질문이 간단한 "50보다 큽니까?"라는 질문이든 "20과 60 사이입니까?"라는 좀 더 복잡한 질문이든지, 1 회 "예/아니오" 질문에 대한 답변은 정확히 1bit 정보에 상응합니다. 숫자를 추측하는 게임에서는 특정 방식으로 질문을 선택해 나아간다면, 응답 순서는 이진수로 표현한 것과 같습니다. 3은 이진수로 011이고, 의사결정나무에서 응답으로 나열하게 되면 "아니오, 예, 예"입니다. "아니오" 대신에 0, "예" 대신에 1을 쓰면, 3을 이진수로 표현한 것과 같습니다. 1 얼굴과 이름만 알고 지나가며 인사만 하는 사이 2 학교 내에서 행동을 함께하는 사이 3 학교 밖 일상생활에서도 행동을 함께하는 사이 4 행동을 함께하며, 마음도 나누는 소통하는 사이 5 상대방의 비밀을 공유하며 서로 믿는 사이 6 서로에 대한 믿음을 바탕으로 물심양면 도와주는 사이 2단계(상태 개수 확인) 학생들이 선택한 우정 상태의 개수에 따라 기록 3단계(비트수 계산) 활동지1 정답을 참고하여 해당 비트수 기록 4단계(코드 검증 및 성찰) 우정의 상태를 정확하여 구분하여 나타내기 어려움, 또한 정의되지 않은 내용 상황은 코드로 표현하기 어려움 등을 알 수 있게 됩니다. <활동지 4> 1에서 100 사이의 숫자를 찾기 위해서 만약 질문 범위를 절반으로 줄여간다면 단 7번의 질문으로 정답을 맞힐 수 있다. 예를 들어, 50보다 작습니까? -> 예. 25보다 작습니까? -> 아니요. 37보다 작습니까? -> 아니요. 43 보다 작습니까? -> 예. 40 보다 작습니까? -> 아니요. 41 보다 작습니까? -> 아니요. 42네요! -> 예! 88 CS Unplugged 5. 스무고개 - 정보이론 89
놀이로 배우는 컴퓨터 과학 6. 보물 상자 찾기 - 검색 알고리즘 지도안 6. 보물 상자 찾기 검색 알고리즘 목표 1. 선형 검색을 이용하여 원하는 데이터를 찾을 수 있다. 2. 이진 검색을 이용하여 원하는 데이터를 빠르게 찾을 수 있다. 3. 해싱 검색을 이해하고 해싱 계산법을 이용하여 원하는 데이터를 찾을 수 있다. 방법 게임 소요 시간 50분 적정 연령 12세 이상 관련 CT 알고리즘과 절차 선생님 활동지, 숫자카드 < 개요 > 준비물 학생 필기도구 컴퓨터로 대량의 데이터에서 정보를 찾아야 하는 작업이 많은데, 이런 작업을 수행하기 위해서 빠르고, 효율적인 방법이 필요합니다. 이를 검색이라 하는데 여러 가지 검색방법 중 이번 활동에서는 모든 위치를 하나씩 검색하는 선형 검색, 미리 정렬된 데이터를 두 부분으로 나누어서 찾아가는 이진 검색, 자릿수 숫자 덧셈 등의 계산법을 이용한 인덱스를 활용하여 빠르게 검색하는 해싱이라는 3종류의 검색 기술을 합니다. 90 CS Unplugged 6. 보물상자 찾기 - 검색 알고리즘 91
단계 소요 시간 요소 교수 활동 형태 자료 단계 소요 시간 요소 교수 활동 형태 자료 도입 10분 15분 동기유발 목표 제시 활동1 숫자카드 찾기 - 칠판에 숫자카드 중 (01~20) 중에서 10개를 뽑아 학생들이 안 보이게 뒤집어 일렬로 붙여 놓고 특정 숫자를 찾아보게 한다. - 다시 20개의 숫자카드 중 10개를 뽑아 숫자 오름차순으로 정렬시킨 후 특정 숫자를 찾아보게 한다. - 좀 더 많은 숫자카드의 경우 어느 방식이 더 효율적인지 생각하게 한다. 전체 선형 검색을 이용하여 원하는 데이터를 찾을 수 있다. 이진 검색을 이용하여 원하는 데이터를 빠르게 찾을 수 있다. 해싱 검색을 이해하고 해싱 계산법을 이용하여 원하는 데이터를 찾을 수 있다. 짝 정하고 게임 활동지 나눠주기 - 학생들이 2인 1조로 짝을 지게 한다. - 한 명은 1-11 게임 활동지를, 다른 한 명은 1-12 게임 활동지를 나눠준다. 보물 상자 찾기 게임 진행하기 - 게임 활동지 안의 상자 중 보물을 넣은 상자에 동그라미를 치고 해당 보물 상자 번호를 상대방에게 알려준다. - 서로 번갈아 가면서 영어번호(A~Z) 중 하나를 말하고 해당 영어번호의 상자 번호를 알려준다. - 서로의 보물 상자를 찾을 때까지 진행하며 찾을 때까지 걸린 횟수를 기록한다. - 빨리 끝났을 경우에는 보조 활동지(1-21, 1-22)를 이용하여 추가 게임을 진행한다. 선형 검색 이해하기 - 정렬되어 있지 않은 상자 번호 중 특정한 번호를 하나씩 확인하며 찾는 방법이 선형 검색임을 알려준다. 모둠 활동 (2인 1조) 숫자카드 활동지 1-11, 1-12, 보조 활동지 1-21, 1-22 전개 10분 활동3 정리 5분 프로젝트 정리 짝 정하고 게임 활동지 나눠주기 학생들이 2인 1조로 짝을 지게 한다. - 한 명은 3-11 게임 활동지를, 다른 한 명은 3-12 게임 활동지를 나눠준다. 보물 상자 찾기 게임 진행하기 - 게임 활동지 안의 상자 중 보물을 넣은 상자에 동그라미를 치고 해당 보물 상자 번호를 상대방에게 알려준다. 계산법(숫자를 모두 더한 값의 일의 자릿수)을 이용하여 보물 상자가 있는 위치의 상자 중 하나를 상대방에게 확인한다. 서로의 보물 상자를 찾을 때까지 진행하며 찾을 때까지 걸린 횟수를 기록한다. 빨리 끝났을 경우에는 보조 활동지(3-21, 3-22)를 이용하여 추가 게임을 진행한다. 해싱 검색 이해하기 계산에 의한 인덱스를 통하여 원하는 데이터를 찾아가는 방법이 해싱 검색임을 알려준다. 게임 활동이 끝나고 토론해보기 어떤 방식이 검색에 효율적일까? 해싱 검색의 장단점은 어떤 점일까? 차시 예고 - 다음 시간에 배울 정렬 알고리즘을 예고한다. 모둠 활동 (2인 1조) 전체 활동지 3-11, 3-12 보조 활동지 3-21, 3-22 전개 10분 활동2 짝 정하고 게임 활동지 나눠주기 - 학생들이 2인 1조로 짝을 지게 한다. - 한 명은 2-11 게임 활동지를, 다른 한 명은 2-12 게임 활동지를 나눠준다. 보물 상자 찾기 게임 진행하기 - 게임 활동지 안의 상자 중 보물을 넣은 상자에 동그라미를 치고 해당 보물 상자 번호를 상대방에게 알려준다. - 서로 번갈아 가면서 영어번호(A~Z) 중 하나를 말하고 해당 영어번호의 상자 번호를 알려준다. - 서로의 보물 상자를 찾을 때까지 진행하며 찾을 때까지 걸린 횟수를 기록한다. - 빨리 끝났을 경우에는 보조 활동지(2-21, 2-22)를 이용하여 추가 게임을 진행한다. 이진 검색 이해하기 - 정렬된 상자 번호 중 중간의 숫자를 선택함으로써 반씩 줄여가는 방법이 이진 검색임이고 이 방법이 효율적이라는 것을 알려준다. 모둠 활동 (2인 1조) 활동지 2-11, 2-12, 보조 활동지 2-21, 2-22 사전 준비 사항 - 숫자카드(01~20), 사탕, 게임 활동지 (1-11 ~ 3-22) - 숫자 카드는 동기유발 게임을 위하여 필요합니다. - 게임 활동지는 같은 종이를 짝지어진 팀 수 만큼(보통 15장) 준비합니다. 92 CS Unplugged 6. 보물상자 찾기 - 검색 알고리즘 93
1 동기유발 활동 3 주요 개념 및 용어 정리 1. 선생님이 준비된 숫자카드(01~20) 중에서 10장을 임의로 뽑습니다. 07 01 20 08 03 14 02 09 2. 뽑은 숫자가 안 보이게 뒤집어서 칠판에 일렬로 붙입니다. 19 17 압축 정렬 파일에 저장된 정보를 작은 기억 공간에 같은 정보를 저장하는 기술입니다. 데이터들을 지정된 순서대로 나열하는 것입니다. 9개의 중복된 를 압축하여 표현합니다. 예를 들면 1111111000011을 170412(1이 7개, 0이 4개, 1이 2개라는 의미)이라는 것으로 바꾸고 검색 여기서 이진수가 아닌 7, 4, 2를 다시 이진수로 바꾸면 파일의 크기가 대폭 주는 것입니다. 즉 데이터 20자리의 중에서 공간이 원하는 필요한 데이터를 데이터를 찾는 것입니다.. 이러한 방법으로 10자리만 사용한다면 파일 크기는 반으로 줄어들게 되는 것입니다. 3. 그중 한 숫자 카드를 찾게 합니다. 예) 09 찾기 - 찾고자 하는 숫자는 칠판에 붙인 숫자 중 없을 수도 있습니다. 처음에는 찾고자 하는 숫자카드가 칠판의 숫자 중 있는 숫자를 찾게 합니다. 4. 두 번째는 없는 숫자를 찾게 합니다. 예) 15 찾기 - 두 번째의 경우 아이들은 모두 10번을 확인해야만 숫자카드가 칠판에 없음을 확인할 수 있습니다. 5. 선생님이 준비된 숫자카드(01~20) 중에서 다시 10장을 임의로 뽑아서 나온 숫자 번호를 오름차순으로 정렬한 후 숫자가 안 보이게 뒤집어서 칠판에 붙입니다. 그중 한 숫자카드를 찾게 합니다. 01 03 04 08 09 10 14 15 18 20 압축해제 선형 검색 알고리즘 압축한 데이터 중에서 자료를 원하는 다시 원래의 값을 처음부터 형태로 되돌리는 끝까지 순서대로 기술입니다. 찾는 알고리즘입니다. 이진 검색 알고리즘 오름차순으로 정렬된 데이터 중 특정한 값의 위치를 찾는 알고리즘으로 데이터들 중 중간의 값을 검색하여 원하는 데이터가 아니면 반으로 줄여가면서 위 과정을 반복하며 원하는 값을 찾는 방법입니다. 해싱 검색 알고리즘 특정한 계산법을 이용하여 인덱스 키를 만들어 키에 따른 검색을 하는 방법입니다. 6. 그중 한 숫자 카드를 찾게 합니다. 예) 14 찾기 7. 두 번째는 없는 숫자를 찾게 합니다. 예) 05 찾기 - 1번과 마찬가지로 찾고자 하는 숫자가 있는 경우와 찾는 숫자가 칠판의 숫자 중 없는 경우 2가지를 모두 경험하게 합니다. 없는 경우에도 중간의 값을 선택하여 줄여 가면 빠르게 확인할 수 있음을 게임 중에 알게 합니다. 2 문제 제시 1. 정렬되지 않은 데이터 중에서 원하는 데이터를 찾고자 할 경우 어떤 방법이 있을까요? 2. 위 방법의 문제점은 어떤 것이 있을까요? 3. 정렬된 데이터 중에서 원하는 데이터를 찾고자 할 경우 어떤 방법이 있을까요? 4. 위 두 가지 검색 방법 중 어떤 것이 효율적인가요? 5. 또 다른 검색방법은 어떤 것이 있을까요? 94 CS Unplugged 6. 보물상자 찾기 - 검색 알고리즘 95
4 자 활동 < 활동 1 > 보물 상자 찾기 1 - 활동 시간 : 15분 3. 서로 교대로, 상대방의 보물이 어느 상자에 들어있는지 맞춰보세요. 맞추는 사람이 영어번호(A~Z)까지 중에서 말하고 상대방이 말한 영어번호의 상자번호를 알려줍니다. 예) 학생A는 C라고 말합니다. 학생B는 C위치에 있는 상자 번호인 21을 알려주고 학생A는 알려준 C의 번호를 자신의 활동지에 적습니다. 원하는 상자 번호가 아님을 확인합니다. [학생A의 활동지] [학생B의 활동지] - 활동 개요 이 활동은 2명이 서로 짝을 지어 각자 나눠준 게임 활동지의 상자 중에서 보물을 넣어둘 상자에 동그라미 치고 서로 번갈아가면서 보물이 들어있는 상자 번호를 찾는 게임입니다. - 준비물 : 서로 교차한 게임 활동지 세트 (1-11, 1-12), 추가 활동지(1-21, 1-22) - 활동 안내 1. 2인 1조로 짝을 만들고 한 명은 1-11 게임 활동지를, 다른 한 명은 1-12 게임 활동지를 나눠주고 서로 절대로 보여주지 않습니다. [학생A의 활동지] [학생B의 활동지] 이제 학생B의 차례입니다. 학생B는 A라고 말합니다. 학생A는 A 위치의 상자 번호인 135를 알려주고 학생B는 A의 번호를 자신의 활동지에 적습니다. [학생A의 활동지] [학생B의 활동지] 21 135 2. 게임 활동지의 상자 중에서 각자 보물을 넣을 상자에 동그라미를 치고 해당 보물 상자 번호를 상대방에게 알려줍니다. 예) 학생A는 P(69)에 동그라미 치고 69라고 학생B에게 알려줍니다. 학생B는 J(762)에 동그라미 치고 762라고 학생A에게 알려줍니다. [학생A의 활동지] [학생B의 활동지] 4. 상대방의 보물 상자를 찾을 때까지 가장 적게 영어 번호를 불러 맞춘 사람의 승리입니다. - 기타 최소한으로 맞출 수 있는 횟수는 1회이고 최대의 경우는 26이 됩니다. 모든 위치를 하나씩 하나씩 검색하기 때문에 이 방법을 선형 검색이라 합니다. 지도 Tip 1. 서로 한 번씩 영어문자를 말하도록 하면서 특정 위치를 찍어 말하는 것보다 순서대로 하나씩(A, B, C,...) 말하게 하여 선형 검색의 의미를 이해할 수 있도록 지도합니다. 2. 한 번에 찾을 수도 있기에 여러 개의 게임 활동지를 준비하여 여러 번 반복하여 게임 할 수 있도록 지도합니다. 3. 보물을 감춰 놓은 위치를 상대방이 알 수 없도록 잘 숨기도록 합니다. 96 CS Unplugged 6. 보물상자 찾기 - 검색 알고리즘 97
< 활동 3 > < 활동 2 > 보물 상자 찾기 2 - 활동 시간 : 10분 - 활동 개요 활동1과 모든 방식이 같으나 게임 활동지 세트에서 보물 상자의 번호가 오름차순으로 정렬되어 있습니다. - 준비물 : 서로 교차한 게임활동지 세트 (2-11, 2-12) 추가활동지 (2-21, 2-22) 보물 상자 찾기 3 - 활동 시간 : 10분 - 활동 개요 활동1과 모든 방식이 같으나 게임 활동지 세트에서 영어번호마다 들어가는 보물 상자의 개수가 특정한 규칙에 의해 미리 정해져 있음을 알려줍니다. - 준비물 : 서로 교차한 게임 활동지 세트 (3-11, 3-12), 추가 활동지 세트 (3-21, 3-22) - 활동 안내 - 활동 안내 1. 2인 1조로 짝을 만들고 한 명은 2-11 게임 활동지를, 다른 한 명은 2-12 게임 활동지를 나눠주고 서로 절대로 보여주지 않습니다. 2. 게임 활동지의 상자 중에서 각자 보물을 넣을 상자에 동그라미를 치고 해당 보물 상자 번호를 상대방에게 알려줍니다. 3. 서로 교대로, 상대방의 보물이 어느 상자에 들어있는지 맞춰보세요. 맞추는 사람이 영어번호(A~Z)까지 중에서 말하고 상대방이 말한 영어번호의 상자 번호를 알려줍니다. 4. 상대방의 보물 상자를 찾을 때까지 가장 적게 영어 번호를 불러 맞춘 사람의 승리입니다. - 기타 보물을 적은 횟수에 찾은 사람의 해결 전략을 확인합니다. 정렬된 데이터 중 중간의 값을 골라 반씩 줄여가는 방법을 이진 검색이라 합니다. 지도 Tip 1. 상자 번호가 오름차순으로 정렬된 게임 활동지를 사용하게 하고 보물 상자 번호를 찾을 때 중간의 영어번호를 골라 반씩 줄여가는 방법이 이진 검색인 것을 알게 합니다. 2. 여러 번 반복하게 하여 반씩 줄이는 방법이 아주 효과적이라는 사실을 알게 합니다. 3. 활동지2-12, 2-22을 받는 친구들에게만 힌트가 들어있음을 활동지2-11, 2-21을 받은 친구들이 알지 못하게 합니다. 1. 2인 1조로 짝을 만들고 한 명은 3-11 게임 활동지를, 다른 한 명은 3-12 게임 활동지를 나눠주고 서로 절대로 보여주지 않습니다. 2. 게임 활동지의 상자 중에서 각자 보물을 넣을 상자에 동그라미를 치고 해당 보물 상자 번호를 상대방에게 알려줍니다. 3. 상대방이 알려준 상자 번호를 가지고 어느 열에 보물이 있는지 알 수 있습니다.상자 번호의 각 자릿수 숫자를 모두 더하여 나온 숫자의 일의 자릿수가 열의 위치를 알려줍니다. 예) 학생A는 상자 번호를 213이라고 알려줍니다. 그러면 2+1+3 = 6이기에 6번 줄인 O,P,Q 중의 하나임을 알 수 있습니다. 그중 하나씩 영문자를 말하면서 보물 상자를 찾습니다. 4. 서로 교대로, 상대방의 보물이 어느 상자에 들어있는지 맞춰보세요. 맞추는 사람이 영어번호(A~Z)까지 중에서 말하고 상대방이 말한 영어번호의 상자 번호를 알려줍니다. 5. 상대방의 보물 상자를 찾을 때까지 가장 적게 영어 번호를 불러 맞춘 사람의 승리입니다. - 기타 가장 빠르게 찾을 수 있는 보물 상자는 열에 하나만 있을 경우이며, 가장 찾기 어려운 경우는 열에 많은 수의 보물이 있는 경우입니다. 이 방법을 해싱 검색이라고 하며 앞의 둘보다는 빠르지만, 한곳에 모여 있으면 순차 검색처럼 매우 느릴 수 있습니다. 지도 Tip 1. 계산으로 빠르게 보물이 있는 위치를 알 수 있음을 알려주고 계산에 의한 인덱스를 이용한 방법이 해싱 검색임을 알게 합니다. 2. 보물이 있는 열에 상자가 한 개만 있을 경우와 많은 상자가 있는 경우의 예를 이용하여 해싱 검색의 장단점을 이해시켜 줍니다. 3. 활동지3-11, 3-21을 받는 친구들에게만 힌트가 들어있음을 활동지3-12, 3-22을 받은 친구들이 알지 못하게 합니다. 98 CS Unplugged 6. 보물상자 찾기 - 검색 알고리즘 99
5 자용 워크북 (활동지, 활동 자료) 활동지 1-21 게임 활동지 1-11 게임 본인 상자함 횟수 : 본인 상자함 횟수 : 389 22 65 99 83 212 115 15 36 47 413 369 7 A B C D E F G H I J K L M 135 77 823 3 27 99 955 15 85 164 21 76 144 A B C D E F G H I J K L M 37 125 111 21 612 77 316 113 991 17 13 1 6 N O P Q R S T U V W X Y Z 11 112 69 999 35 7 88 462 441 755 38 9 113 N O P Q R S T U V W X Y Z 짝궁 상자함 횟수 : 짝궁 상자함 횟수 : A B C D E F G H I J K L M A B C D E F G H I J K L M N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z 활동지 1-12 게임 활동지 1-22 게임 본인 상자함 횟수 : 본인 상자함 횟수 : 888 74 21 65 931 77 14 62 774 762 8 23 61 A B C D E F G H I J K L M 771 51 194 35 177 33 991 338 411 911 119 38 3 N O P Q R S T U V W X Y Z 200 95 1 15 366 175 694 21 980 640 500 121 377 A B C D E F G H I J K L M 713 211 223 17 981 825 995 3 777 39 40 10 100 N O P Q R S T U V W X Y Z 짝궁 상자함 횟수 : 짝궁 상자함 횟수 : A B C D E F G H I J K L M A B C D E F G H I J K L M N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z 100 CS Unplugged 6. 보물상자 찾기 - 검색 알고리즘 101
활동지 2-11 게임 활동지 2-21 게임 본인 상자함 횟수 : 본인 상자함 횟수 : 37 42 99 166 311 312 446 495 500 501 503 509 602 A B C D E F G H I J K L M 111 113 114 169 180 222 225 230 265 290 295 333 335 A B C D E F G H I J K L M 607 713 718 755 800 888 889 895 900 920 921 922 999 N O P Q R S T U V W X Y Z 360 380 385 402 405 600 630 690 700 701 888 890 892 N O P Q R S T U V W X Y Z 짝궁 상자함 횟수 : 짝궁 상자함 횟수 : A B C D E F G H I J K L M A B C D E F G H I J K L M N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z 활동지 2-12 게임 힌트 숫자들이 오름차순으로 되어 있어요. 먼저 중간의 M값을 확인하고 M값보다 작으면 F의 값을 확인, 크면 T값을 확인합니다. 즉, 정렬되어 있기에 찾는 범위를 반씩 줄여가며 찾습니다. 활동지 2-22 게임 힌트 숫자들이 오름차순으로 되어 있어요. 먼저 중간의 M값을 확인하고 M값보다 작으면 F의 값을 확인, 크면 T값을 확인합니다. 즉, 정렬되어 있기에 찾는 범위를 반씩 줄여가며 찾습니다. 본인 상자함 횟수 : 본인 상자함 횟수 : 4 14 16 20 111 153 204 215 288 299 315 340 366 A B C D E F G H I J K L M 70 75 78 95 99 105 117 400 650 670 700 720 721 A B C D E F G H I J K L M 367 380 450 455 460 492 500 550 560 800 850 880 890 N O P Q R S T U V W X Y Z 775 776 777 790 800 805 831 870 900 945 950 965 966 N O P Q R S T U V W X Y Z 짝궁 상자함 횟수 : 짝궁 상자함 횟수 : A B C D E F G H I J K L M A B C D E F G H I J K L M N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z 102 CS Unplugged 6. 보물상자 찾기 - 검색 알고리즘 103
활동지 3-11 게임 힌트 상대 친구가 말해준 숫자를 모두 더해보세요. 합한 숫자의 일의 자리가 보물상자가 있는 곳입니다. 만약 76을 이야기했다면 7+6=13 이기에 3번 E, F, G 중에서 찾을 수 있습니다. 활동지 3-21 게임 힌트 상대 친구가 말해준 숫자를 모두 더해보세요. 합한 숫자의 일의 자리가 보물상자가 있는 곳입니다. 만약 76을 이야기했다면 7+6=13 이기에 3번 E, F, G 중에서 찾을 수 있습니다. 본인 상자함 0 1 2 3 4 5 6 7 8 9 횟수 : 본인 상자함 0 1 2 3 4 5 6 7 8 9 횟수 : A B 217 C 38 73 D 83 E F G H 715 824 L 500 O R 213 719 W 739 I 969 S 61 X 90 76 M 456 P 24 V 648 J 13 T 7 Y 775 67 K N 59 744 Q 600 U 881 Z 199 A B C I 181 446 O 637 T W 828 919 D 10 F 372 M 735 R J 700 716 X 720 73 H 30 P 33 U 774 E 218 G K 174 86 N 32 S Y 89 117 910 L Q 248 998 V 17 Z 333 짝궁 상자함 0 1 2 3 4 5 6 7 8 9 횟수 : 짝궁 상자함 0 1 2 3 4 5 6 7 8 9 횟수 : A B C E F H I K L M O P R S T V W Y Z A B D E F H I J K L M N P Q S T V W Y Z D G J N Q U X C G O R U X 활동지 3-12 게임 활동지 3-22 게임 본인 상자함 횟수 : 본인 상자함 횟수 : 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 A B C D 244 64 73 19 E F G R 74 H 778 L 248 O 377 268 V 639 S 647 650 I 273 K 634 M 239 P 736 W 80 T 89 10 J 39 N 284 Q 673 U X 467 378 Y Z 298 991 A B C D 109 777 L 50 P 123 S 70 V 125 H 822 J E 364 342 371 M Y 654 820 Q 367 T 511 W 26 F 119 I 20 K N 111 113 Z 171 37 G R 83 O 366 51 U 322 X 828 짝궁 상자함 횟수 : 짝궁 상자함 횟수 : 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 A B C D E F H I J L M O P R S T V W X Y A B D E F G H I J K M N O P R S T U W X Y G K N Q U Z C L Q V Z 104 CS Unplugged 6. 보물상자 찾기 - 검색 알고리즘 105
6 선생님용 참고자료 7 해답과 힌트 정답 - 활동지 1-11, 1-21 <활동지 1-11> 컴퓨터는 많은 정보를 저장하고 빠르게 검색해서 찾아낼 수 있어야 합니다. 가장 어려운 검색 과제 중 하나는 인터넷 검색 엔진이 1초도 되지 않는 시간 안에 수십억 웹페이지를 검색하는 것입니다. 단어, 바코드(bar code) 번호, 저자 이름 같은 컴퓨터가 검색에 사용하는 데이터를 "검색키"(search key)라고 합니다. - 학생A가 10번만에 찾은 경우 활동지(찾고자 하는 상자 번호 : 762) 본인 상자함 횟수 : 컴퓨터는 정보를 매우 빨리 처리할 수 있어서, 정보를 찾기 위해 저장소 처음부터 원하는 정보가 찾아질 때까지 차례대로 찾는 방법을 생각할 수 있습니다. 이 방법이 순차검색게임에서 수행했던 방법입니다. 하지만 이 방법은 매우 느리고, 컴퓨터에도 부담이 됩니다. 예를 들어, 슈퍼마켓 선반에 10,000 종의 제품이 진열되어 있다고 가정해봅니다. 계산대에서 바코드를 스캔한다면, 제품명과 가격을 확인하기 위해 10,000번 컴퓨터가 작업을 수행해야 합니다. 각 제품을 스캔해서 확인하는데 천분의 1초 걸린다고 하더라도, 전체 제품을 스캔하는데 10초가 소요됩니다. 가족이 먹을 식료품값을 지급할 경우 시간이 얼마나 소요될지 상상해봅니다. 좀 더 좋은 방법은 이진 검색(binary search) 방법입니다. 이 방법을 사용하려면, 숫자가 정렬되어 있어야 합니다. 숫자 리스트의 중간 항목을 확인하고, 검색키가 양쪽 중 한쪽 절반에 있는지 확인합니다. 원하는 항목을 찾을 때까지 이 과정을 계속 반복합니다. 슈퍼마켓 사례로 돌아가서, 10,000개의 제품에 대해서 원하는 품목을 14회 만에 찾을 수 있고, 0.02 초로 시간이 걸리는지 알아채기 쉽지 않습니다. 데이터를 찾는 세 번째 전략은 '해싱'검색 방법입니다. 정확한 정보의 위치를 표시하기 위해 검색키(search key)를 조작합니다. 예를 들어, 검색키가 전화번호라면, 전화번호의 모든 자릿수 숫자를 더한 후에 11로 나눈 나머지 값을 취합니다. 데이터 일부분이 처리되는 다른 데이터와 관련이 있다는 점에서, 해쉬키는 네 번째 활동에서 다룬 자릿수 검증(check digits)과 유사합니다. 대체로 이 방법을 사용하여 컴퓨터는 바로 정보를 찾아낼 수 있습니다. 드물기는 하지만, 복수키가 같게 위치한 경우, 지시한 정보를 찾을 때까지 컴퓨터가 다시 검색을 해야 하므로 시간이 좀 더 걸립니다. 데이터를 순서대로 정렬할 필요가 없거나, 밤늦은 시간의 경우처럼 늦은 속도가 문제가 되지 않다면, 컴퓨터 프로그래머는 검색기법으로 해싱 전략을 기본으로 사용합니다. 135 77 823 3 27 99 955 15 85 164 21 76 144 A B C D E F G H I J K L M 11 112 69 999 35 7 88 462 441 755 38 9 113 N O P Q R S T U V W X Y Z 짝궁 상자함 1번 2번 3번 10번 6번 8번 21 77 62 762 6 23 A B C D E F G H I J K L M 4번 35 N O P Q R S T U V W X Y Z <활동지 1-21> - 학생A가 5번만에 찾은 경우 활동지(찾고자 하는 상자 번호 : 380) 본인 상자함 5번 338 횟수 : 10번 389 22 65 99 83 212 115 15 36 47 413 369 7 A B C D E F G H I J K L M 횟수 : 9번 119 7번 3 37 125 111 21 612 77 316 113 991 17 13 1 6 N O P Q R S T U V W X Y Z 짝궁 상자함 횟수 : 5번 1번 215 A B C D E F G H I J K L M 3번 367 5번 380 4번 450 2번 460 N O P Q R S T U V W X Y Z 106 CS Unplugged 6. 보물상자 찾기 - 검색 알고리즘 107
정답 - 활동지 3-11 - 학생A가 3번만에 찾은 경우 활동지(찾고자 하는 상자 번호 : 89) 본인 상자함 횟수 : 0 1 2 3 4 5 6 7 8 9 A B 217 C 38 73 D 83 E F G H 715 824 L 500 O R 213 719 W 739 I 969 S 61 X 90 76 M 456 P 24 V 648 J 13 T 7 Y 775 67 K N 59 744 Q 600 U 881 Z 199 짝궁 상자함 횟수 : 3번 A B C D 0 1 2 3 4 5 6 7 8 9 E F G H I J K L M N O P Q R S T U 1번 377 2번 647 3번 89 V W X Y Z 108 CS Unplugged
놀이로 배우는 컴퓨터 과학 7. 가벼운 것부터 무거운 것까지 정렬 알고리즘 지도안 7. 가벼운 것부터 무거운 것까지 정렬 알고리즘 목표 1. 정렬의 의미를 이해할 수 있다. 2. 평형 저울을 사용하여 물체를 가벼운 것부터 무거운 것까지 정렬할 수 있다. 3. 정렬 알고리즘을 2가지 이상 설명할 수 있다. 방법 게임 소요 시간 75분 적정 연령 12세 이상 관련 CT 알고리즘과 절차 선생님 평형 저울, 필름통, 동전, 카운터(점수판 또는 스마트폰 카운터 앱) < 개요 > 준비물 학생 필기도구, 트럼프 카드, 스톱워치 또는 스마트폰 스톱워치 앱 데이터는 무작위로 나열되었을 때보다 어떤 규칙에 따라 순서대로 정렬되어 있을 때 훨씬 유용하게 사용될 수 있습니다. 데이터의 특성이 더욱 잘 나타나고, 원하는 데이터를 찾는 것도 수월해지기 때문입니다. 컴퓨터에서는 수많은 파일을 이름순으로, 크기순으로, 날짜순으로 빠르게 정렬 가능하며 여러 가지 데이터도 규칙에 따라 정렬하는 것이 가능합니다. 같은 성능의 컴퓨터를 사용하더라도 사용하는 운영체제나 프로그램에 따라 성능이 달라지기도 합니다. 정렬 방법도 여러 종류가 있는데 어떤 정렬 방법을 사용하느냐에 따라 처리 속도가 달라집니다. 109 CS Unplugged 7. 가벼운 것부터 무거운 것까지 - 정렬 알고리즘 110
단계 소요 시간 요소 교수 활동 형태 자료 1 동기유발 활동 동기유발 가장 큰 수와 가장 작은 수 찾기 - 정렬 안 된 수 목록 제시 학생들에게 수 목록을 보여주고 가장 큰 수와 가장 작은 수를 찾아보도록 합니다. - 정렬 안 된 수 목록을 제시하고 가장 큰 수와 가장 작은 수를 찾아보도록 합니다. - 정렬된 수 목록 제시 25 19 59 67 66 73 20 84 83 15 도입 10분 전체 47 94 90 89 79 46 80 68 76 52 목표 제시 정렬의 의미를 이해할 수 있다. 평형 저울을 사용하여 물체를 가벼운 것부터 무거운 것까지 정렬할 수 있다. 정렬 알고리즘을 2가지 이상 설명할 수 있다. 71 30 85 53 88 95 64 45 63 75 - 정렬된 수 목록을 보여주고 같은 질문을 합니다. 15 19 20 25 30 45 46 47 52 53 59 63 64 66 67 68 71 73 75 76 카드 정리하기 삽입 정렬 개인 79 80 83 84 85 88 89 90 94 95 15분 활동1 - 카드 정리하기 게임(자율적 알고리즘) - 카드 정리하기 게임(삽입 정렬 알고리즘) - 기록 비교 혹은 2인 1조 추가로 특정 숫자를 찾거나, 중간 숫자를 찾도록 해도 좋습니다. 어느 경우가 편했는지 질문하고, 자료가 정렬되어 있으면 좋은 점을 발표해보도록 한다. 전개 20분 활동2 가장 무거운 물건 찾기 선택 정렬 - 무게가 다른 필름 통 제작 - 선택 정렬 알고리즘 설명 - 평형 저울을 이용하여 정렬 모둠 활동 2 문제 제시 - 각 모둠의 저울 사용 횟수 비교 1. 컴퓨터로 데이터를 어떻게 정렬할까요? 2. 데이터를 정렬하는 방법(알고리즘)에는 어떤 것들이 있을까요? 나누어서 해결하기 퀵 정렬 3. 데이터를 정렬하는 가장 좋은 방법(알고리즘)은 무엇일까요? 20분 활동3 - 퀵 정렬 알고리즘 설명 - 평형 저울을 이용하여 정렬 모둠 활동 - 각 모둠의 저울 사용 횟수 비교 컴퓨터에서 정렬 알고리즘의 의미 - 데이터 탐색 - 데이터 특성에 따른 적절한 알고리즘 정리 10분 프로젝트 정리 전체 기타 정렬 알고리즘 소개 - 버블 정렬 - 병합 정렬 111 CS Unplugged 7. 가벼운 것부터 무거운 것까지 - 정렬 알고리즘 112
3 주요 개념 및 용어 정리 4 자 활동 데이터 컴퓨터로 처리해야 할 문제의 구체적인 값입니다. 정렬 주어진 자료를 어떤 기준에 의하여 순서대로 나열하는 것입니다. 알고리즘 문제를 해결하기 위해 정해진 규칙과 절차의 모임입니다. 나누어 해결하기(divide and conquer) 어떤 문제를 해결하는 알고리즘에서 원래 문제를 성질이 똑같은 여러 개의 부분 문제로 나누어 해결하여 원래 문제의 해를 구하는 방식입니다. 재귀 데이터를 작은 그룹으로 나누어 각 그룹에 같은 방법을 반복해서 수행하는 것입니다. < 활동 1 > 카드 정리하기 삽입 정렬 - 활동 시간 : 15분 - 활동 개요 무작위로 섞여 있는 카드를 왼손에 잡고 숫자 순서대로 정리하는 게임으로. 가장 먼저 모든 카드를 정리하는 사람이 우승자입니다. 카드를 빠르게 정리하기 위해서 손동작이 빠른 것도 중요하지만, 어떤 전략을 사용하느냐가 더 중요합니다. - 준비물 : 트럼프 카드, 스톱워치 혹은 스톱워치 앱이 설치된 스마트폰 - 활동 안내 1. 트럼프 카드에서 같은 모양 13장의 카드를 꺼낸 다음, 무작위로 섞어서 책상 위에 뒤집어 놓습니다. 2. 카드를 정리하는 전략을 생각해 보고 활동지에 기록합니다. 3. 선생님의 구령과 함께 스톱워치 측정을 시작하고, 왼손에 카드를 잡고 오른손으로 카드를 정리합니다. 4. 정리가 완료되면 카드를 책상 위에 내려놓고, 스톱워치를 정지시킵니다. 5. 모든 학생이 정리가 끝난 후에, 가장 빠르게 정리를 끝낸 학생이 자신이 사용한 전략을 발표합니다. 6. 삽입 정렬 알고리즘에 따라 다시 스톱워치를 켜고 카드를 정리하여 기록을 잽니다. 7. 삽입 정렬 알고리즘 사용 전 후의 기록을 비교해봅니다. 예) http://www.mathcs.emory.edu/~cheung/courses/171/syllabus/7-sort/insertion-sort.html - 기타 알파벳 카드의 순서는 A-2-3-4-5-6-7-8-9-10-J-Q-K입니다. 다만 알파벳 카드의 순서가 신경 쓰인다면 숫자 카드 9장만 가지고 활동을 해도 무방합니다. - 심화문제 삽입 정렬을 사용할 때 최악에는 몇 장의 카드를 삽입하게 될지 발표해봅니다. 지도 Tip 1. 학생마다 손동작이 다르므로 시간이 절대적인 척도가 될 수는 없습니다. 따라서 우승 자체를 칭찬하기보다는 우승을 유도한 전략을 칭찬해주는 것이 좋습니다. 2. 알고리즘의 유용성을 판단하기 위해 연산 횟수를 계산하는 것이 마땅하나, 삽입 정렬 알고리즘의 연산 횟수를 계산하는 것은 다소 복잡하여, 언플러그드 활동에 적합하지 않습니다. 3. 두 명씩 짝을 지어 한 명이 게임을 할 때 다른 한 명이 기록을 측정해주어도 좋습니다. 113 CS Unplugged 7. 가벼운 것부터 무거운 것까지 - 정렬 알고리즘 114
< 활동 2 > 가장 무거운 물건 찾기 선택 정렬 - 활동 시간 : 20분 - 활동 개요 평형 저울을 여러 번 사용하면 가장 무거운 물건을 찾아낼 수 있습니다. 그 후에 나머지 물건을 대상으로 또 가장 무거운 물건을 찾는 방법을 반복하면 무게순으로 물건을 정렬할 수 있습니다. - 준비물 : 평형 저울, 필름통, 동전, 카운터(운동경기용 점수판이나 스마트폰과 카운터 앱) - 활동 안내 1. 필름통 8개에 동전을 각각 수를 다르게 넣어 모양은 같지만, 무게를 다르게 합니다. 2. 용기를 무작위로 섞어서 무게를 알 수 없게 합니다. 3. 평형 저울을 이용하여 필름통 2개씩 비교해가며 가장 무거운 필름통을 찾습니다. 평형 저울을 한 번 쓸 때마다 카운터를 눌러 평형 저울 사용 횟수를 셉니다. 4. 가장 무거운 필름통을 찾으면 활동지의 마지막 칸에 두고 남은 필름통 중에 다시 가장 무거운 필름통을 찾습니다. 5. 위의 과정을 반복하면 가벼운 것부터 무거운 것까지 순서대로 활동지에 나열됩니다. 6. 정렬이 잘 되었는지 필름통을 열어 확인합니다. - 기타 10 20 30 40 80 60 50 70 모둠별로 정렬이 완료되면 카운터 수를 모둠별로 비교합니다. - 심화 문제 9개, 20개, n개의 물체를 정렬하기 위한 평형 저울 사용 횟수는 몇 회 인지 발표해봅니다. 지도 Tip 1. 평형 저울은 한 번에 용기 2개의 무게만 비교하도록 합니다. 2. 느낌과 추측에 따라 분류하지 말고 꼭 평형 저울을 이용하도록 합니다. 3. 모둠 내에서 우수한 학생이 이끌도록 하지 말고 방법과 절차를 서로 토론해서 하도록 유도합니다. 4. 차근차근 진행하여 가장 무거운 필름통을 찾는 과정이 정렬의 방법임을 이해할 수 있도록 합니다. 5. 정렬이 완료된 필름통을 활동지의 지정된 칸에 놓아가며 정렬 중인 필름통을 잘 구분하도록 합니다. 6. 카운터는 안드로이드 스마트폰을 사용할 경우 Simple Counter 앱이나 유사한 앱을 사용하면 됩니다. < 활동 3 > 나누어서 정렬하기 퀵 정렬 - 활동 시간 : 20분 - 활동 개요 선택 정렬은 가벼운 필름통을 하나 찾을 때마다 평형 저울을 남은 필름통 수만큼 사용하여 필름통의 개수가 많아지면 평형 저울 사용 횟수가 급격히 많아져서 정렬이 느려집니다. 대신 기준 물건을 정하고 기준보다 가볍고 무거운 것으로 나눠가며 정렬하면 평형 저울 사용 횟수를 현저히 줄일 수 있어 빠른 정렬이 가능합니다. - 준비물 : 평형 저울, 필름통, 동전, 카운터(운동경기용 점수판이나 스마트폰과 카운터 앱) - 활동 안내 1. 무작위로 필름통 하나를 골라 평형 저울 한쪽에 올려놓습니다. 2. 평형 저울 반대쪽에 남아 있는 필름통을 하나씩 놓아가며 가벼운 것들은 왼쪽에, 무거운 것들은 오른쪽에 모아둡니다. 그리고 평형 저울을 쓸 때마다 카운터를 누릅니다. 3. 비교가 끝나면 무작위로 골랐던 필름통은 가벼운 것들과 무거운 것들의 중간에 놓아줍니다. 4. 가벼움 칸에 있는 필름통을 대상으로, 1~3의 과정을 반복합니다. 5. 무거움 칸에 있는 필름통을 대상으로, 1~3의 과정을 반복합니다. 6. 가~마의 과정을 모든 칸에 필름통이 하나씩만 남을 때까지 반복합니다. 7. 모든 칸에 필름통이 하나씩만 남으면 활동지의 ᄀ~ᄋ의 칸에 순서대로 놓아줍니다. 8. 정렬이 잘 되었는지 필름통을 열어 확인합니다. - 기타 모둠별로 정렬이 완료되면 카운터 수를 모둠별로 비교합니다. 그리고 선택 정렬의 카운터 수와 비교합니다. 이 방법을 해싱 검색이라고 하며 앞의 둘보다는 빠르지만, 한곳에 모여 있으면 순차 검색처럼 매우 느릴 수 있습니다. - 심화문제 무작위로 고르는 것이 계속 가장 가벼운 것이 나오는 경우 평형 저울을 몇 번이나 사용하게 될까요? 지도 Tip 20 10 20 40 10 60 50 30 80 70 30 70 40 80 50 60 10 20 30 40 50 60 70 80 1. 평형 저울은 한 번에 용기 2개의 무게만 비교하도록 합니다. 2. 느낌과 추측에 따라 분류하지 말고 꼭 평형 저울을 이용하도록 합니다. 3. 모둠 내에서 우수한 학생이 이끌도록 하지 말고 각자 역할을 하나씩 가지도록 하면 좋습니다. 4. 각 그룹의 용기를 잘 구분하여 헷갈리지 않도록 합니다. 115 CS Unplugged 7. 가벼운 것부터 무거운 것까지 - 정렬 알고리즘 116
5 자용 워크북 (활동지, 활동 자료) 활동지 3 나누어서 정렬하기 (퀵 정렬) 활동지 1 카드 정리하기 (삽입 정렬) 비교 횟수 가벼움 기준 1 무거움 전략 기록 전략 기록 비교 횟수 가벼움 기준 1 무거움 고정 가벼움 기준 3 무거움 활동지 2 가장 가벼운 물건 찾기 (선택 정렬) 비교 횟수 가벼움 기준 4 무거움 고정 가벼움 기준 5 무거움 고정 가벼움 기준 6 무거움 고정 가벼움 기준 7 무거움 가벼움 < -------------------------------------------------------> 무거움 용 기 ᄀ ᄂ ᄃ ᄅ ᄆ ᄇ ᄉ ᄋ 비교 횟수 가벼움 < -------------------------------------------------------> 무거움 비 교 횟 수 ᄀ ᄂ ᄃ ᄅ ᄆ ᄇ ᄉ ᄋ 총 비교 횟수 : 117 CS Unplugged 7. 가벼운 것부터 무거운 것까지 - 정렬 알고리즘 118
6 선생님용 참고자료 6 선생님용 참고자료 삽입정렬(Insertion sort)은 아래의 그림처럼, 정렬되지 않은 그룹에서 객체를 하나씩 빼서 정렬된 그룹에 올바른 위치에 삽입합니다. 매번 삽입할 때마다 정렬되지 않은 그룹의 객체는 줄어들게 되고, 정렬된 객체 목록은 늘어나게 되고, 궁극적으로 전체 리스트 객체가 정렬됩니다. 트럼프 카드 게임을 하는 카드 플레이어가 카드를 정렬하는데 같은 방법을 사용하는데, 정렬할 카드를 이미 정렬된 카드를 가진 손으로 한 장씩 뽑아서 옮깁니다. 선택 정렬(selection sort)은 컴퓨터가 사용하는 정렬 방법의 하나로, 정렬대상이 위치한 곳과 정렬결과를 놓을 곳으로 나누고, 가장 가벼운 것을 골라 정렬결과 장소를 옮겨놓습니다. 그다음으로 가벼운 것을 골라 옮겨 놓는 것을 반복하여 더는 정렬대상에 아무것도 없을 때까지 반복합니다. 70 80 10 20 30 40 80 60 50 70 10 30 40 60 50 20 버블 정렬은 순서가 뒤바뀐 2개의 객체 위치를 맞바꾸는 과정을 반복적으로 수행하는 방법으로 정렬하는데, 시간 효율은 높지 않지만 프로그래밍 언어로 표현하기에 간편합니다. 퀵정렬(Quicksort)은 특히 정렬 목록이 많을 때, 선택 정렬보다 훨씬 빠릅니다. 사실 지금까지 알려진 가장 좋은 정렬방법 중의 하나입니다. 무작위로 정렬 대상 중에서 하나를 골라 평형 저울 한쪽에 놓고, 남아있는 정렬대상을 앞에서 선택한 물체와 비교하여 가벼운 것은 왼쪽에, 무작위로 고른 정렬기준은 가운데, 무거운 것은 오른쪽에 위치시킵니다. (우연히, 한쪽에 더 많은 물체가 몰려있을 수도 있습니다.) 왼편과 오른편 그룹에서도 상기와 같은 과정을 반복합니다. 1개 이상의 물체를 가진 그룹이 없을 때까지 이 절차를 반복하여 1개 이상의 물체를 담고 있는 그룹은 하나도 남지 않게 되면, 모든 물체는 가벼운 것부터 가장 무거운 것 순으로 정렬이 완료됩니다. 10 60 50 20 60 30 10 80 40 70 병합 정렬은 그룹을 2개로 나누어 각각 정렬한 후에 두 그룹의 가장 작은 객체를 비교해서 작은 객체부터 정렬된 그룹에 넣는 방법입니다. 20 40 30 50 80 70 40 50 70 10 20 30 30 70 60 80 10 20 40 50 60 80 정보가 순서대로 나열되어 있으면 원하는 정보를 찾기가 훨씬 쉬워집니다. 전화번호부, 사전, 색인 등은 모두 가나다 순서대로 되어 있어 필요한 정보를 편리하게 찾을 수 있지만 정렬되어 있지 않다면 매우 불편할 수 있습니다. 그래서 정렬 알고리즘은 계속 연구됐으며 상황에 따라 가장 좋은 성능을 가지는 알고리즘을 사용해야 하는데 일반적으로 퀵 정렬이 많이 사용됩니다. 찰스 앤터니 리처드 호어는 퀵 정렬 알고리즘을 고안하여 튜링상을 받기도 하였습니다. 10 20 30 40 50 60 70 80 119 CS Unplugged 7. 가벼운 것부터 무거운 것까지 - 정렬 알고리즘 120
8 해답과 힌트 정답 - 활동지 1, 2, 3 <활동지1> - 정렬되지 않은 카드는 모두 삽입해야 하고 그 중 카드 1장은 삽입의 기준이 되므로 모든 카드가 정렬되어 있지 않다면 13-1장의 카드를 삽입해야 합니다. <활동지2> - 가장 가벼운 용기를 찾기 위한 평형 저울 사용 횟수는 용기가 2개일 때 1회 용기가 3개일 때 2회 용기가 4개일 때 3회 용기가 n개일 때 n-1회 이므로 용기가 9개일 때 선택 정렬을 하기 위해선 최솟값을 8번 찾아야 하고 비교 횟수는 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 = 36회, 용기가 20개일 때 비교 횟수는 19 + 18 + 17 +... 3 + 2 + 1 = 190회, 용기가 n개일 때 비교 횟수는 n-1 + n-2 + n-3 +... 3 + 2 + 1 = n(n-1)/2회 <활동지3> - 계속 가장 가벼운 것을 고르게 되면 첫 번째로 1개를 고르고 나머지 7개와 비교 : 7회 두 번째로 1개를 고르고 나머지 6개와 비교 : 6회 세 번째로 1개를 고르고 나머지 5개와 비교 : 5회 이 과정을 지속하면 총 비교 횟수는 7 + 6 + 5 + 4 + 3 + 2 + 1 = 28회 또한 이 과정은 선택 정렬의 과정과 같아집니다. 그러므로 퀵 정렬은 최악의 상황에 선택 정렬과 비교 횟수가 같습니다. 121 CS Unplugged
놀이로 배우는 컴퓨터 과학 8. 시간 내 일을 마치기 병렬 처리 지도안 8. 시간 내 일을 마치기 병렬 처리 목표 1. 병렬처리의 의미를 이해할 수 있다. 2. 정렬 네트워크를 이용하여 물체를 정렬할 수 있다. 3. 정렬 네트워크를 설계할 수 있다. 방법 토론, 협력, 게임 소요 시간 90분 적정 연령 12세 이상 관련 CT 알고리즘과 절차 선생님 카운터, 색 테이프 또는 분필, 젠가 블록 < 개요 > 준비물 학생 활동지, 필기도구, 숫자 카드, 트럼프 카드 한 사람이 종이학 1마리를 접는 것은 금방이지만 종이학 10마리를 접는 것은 1마리를 접는 것에 비해 10배의 시간이 걸립니다. 하지만 종이학 10마리를 종이학 1마리를 접는 시간에 다 접을 방법이 있습니다. 10명이 동시에 종이학을 접는 것입니다. 마찬가지로 더 많은 사람이 동시에 종이접기를 한다면 종이학 100마리도, 종이학 1000마리도 종이학 1마리를 접는 시간에 접는 것이 가능합니다. 이런 것을 병렬처리라 하며, 병렬처리를 이용하면 아무리 많은 일이 있어도 정해진 시간 내에 처리하는 것이 가능합니다. 122 CS Unplugged 8. 시간 내 일을 마치기 - 병렬처리 123
단계 소요 시간 요소 교수 활동 형태 자료 사전 준비 사항 젠가 블록 쌓기 - 1명이 블록을 다 쌓는 시간 측정 동기유발 - 2명이 블록을 다 쌓는 전략 수립 및 시간 측정 도입 10분 - 3명이 블록을 다 쌓는 전략 수립 및 시간 측정 - 기록 비교 전체 - 정렬 알고리즘 (주제명 : 가벼운 것부터 무거운 것까지)을 먼저 공부합니다. (트럼프 카드를 이용한 삽입 정렬 / 평형 저울을 이용한 선택 정렬) 목표 제시 병렬처리의 의미를 이해할 수 있다. 정렬 네트워크를 이용하여 물체를 정렬할 수 있다. 정렬 네트워크를 설계할 수 있다. 협동 카드 정렬 15분 활동1 - 협동 카드 정렬 방법 토의 - 협동 카드 정렬 게임 실시 및 시간 측정 모둠 활동 - 우승 모둠 전략 발표 20분 활동2 평형 저울 여러 개 사용하기 - 동전 개수를 달리 넣은 필름통을 무작위로 섞어서 두 개씩 가짐 - 단계별 지령을 받아 필름통 분류 - 정렬이 잘 되었는지 확인 - 연습 및 기록 측정 모둠 활동 (6인 1조) 정렬 네트워크 전개 - 교실 바닥에 정렬 네트워크를 작성 - 6명이 한 모둠을 이루도록 하고 각자 1장의 숫자 카드를 수령 15분 활동3 - 무작위로 들어가기 쪽의 사각형 위에 1명씩 위치 - 선생님의 숫자 구령(카운터)과 함께 화살표를 따라 1칸씩 이동 - 서로의 카드를 비교해 숫자가 작은 사람은 왼쪽, 큰 사람은 오른쪽 화살표를 따라 이동 - 나오기 쪽 사각형에 모든 모둠원이 도착하면, 정렬이 잘 되었는지 확인 정렬 네트워크 설계하기 - 다양한 정렬 네트워크 샘플 제시 20분 활동4 - 각 정렬 네트워크에 필요한 평형 저울의 개수와 정렬을 완료하는 데 필요한 카운터 계산 모둠 활동 - 8개의 물체를 무게순으로 정렬할 수 있는 정렬 네트워크를 설계 및 테스트 - 모둠별 정렬 네트워크를 발표 및 비교 정리 10분 프로젝트 정리 정렬 네트워크 정리 - 정렬 네트워크의 원리와 효과 - 8개의 물체를 정리하는 최적의 정렬 네트워크 제시 및 설명 전체 124 CS Unplugged 8. 시간 내 일을 마치기 - 병렬처리 125
1 동기유발 활동 4 자 활동 젠가 블록 쌓기 게임을 합니다. - 1명이 블록을 다 쌓는 시간을 측정합니다. - 2명이 블록을 다 쌓는 전략을 수립하고 시간을 측정합니다. - 3명이 블록을 다 쌓는 전략을 수립하고 시간을 측정합니다. - 기록을 비교합니다. < 활동 1 > 협동 카드 정렬 - 활동 시간 : 15분 - 활동 개요 2 문제 제시 무작위로 섞인 트럼프 카드 1벌을 모양과 순서에 맞게 다시 정렬하는 게임입니다. 모둠원이 함께 참여하여 역할을 분담하여 빠르게 정렬할 수 있는 전략을 짜고 모둠별로 정렬하는 시간을 측정하여 좋은 전략의 특징을 찾아봅니다. - 준비물 : 활동지1, 모둠별 트럼프 카드 1벌, 스톱워치 또는 스마트폰(스톱워치 앱) - 활동 안내 1. 병렬 처리 기법을 이용하면 데이터를 더 빨리 정렬할 수 있을까요? 2. 정렬 네트워크는 어떻게 데이터를 빠르게 정렬할까요? 3. 정렬 네트워크는 얼마나 빨리 데이터를 정렬할까요? 1. 모둠별로 트럼프 카드 1벌을 무작위로 섞어줍니다. 2. 카드의 모양과 숫자, 문자에 따른 순서를 정의합니다. 예) 모양은 - - - 순서, 문자 카드는 배제하고 숫자 카드만 사용 3. 모둠원 5명이 함께 참여해서 정의한 순서에 따라 카드를 빠르게 정렬하는 방법을 토의합니다. 3 주요 개념 및 용어 정리 4. 무작위로 섞은 트럼프 카드를 순서대로 정렬하기 게임을 하고 시간을 측정합니다. 5. 가장 빠르게 정렬을 완료한 모둠은 사용한 전략을 발표합니다. 무작위로 섞인 카드 분배 삽입정렬 2 5 정렬 주어진 자료를 어떤 기준에 의하여 크기 순서로 배열하는 것으로 자료 분석 방법 중에서 가장 보편적인 방법이며 컴퓨터를 이용하는 많은 응용분야에서 사용되고 있습니다. 상용 업무의 상당 부분을 차지하므로 효율이 높은 정렬 알고리즘(sorting algorithm)을 개발하거나 이용하는 것이 시간과 비용을 절약하는 방법입니다. [네이버 지식백과] 정렬 [sort, 整 列 ] (두산백과) 8 8 3 3 3 3 9 9 10 10 10 10 3 7 2 3 7 7 5 7 4 5 8 10 병렬 복수의 처리 장치를 사용하여, 모든 처리 장치가 하나의 프로그램상의 서로 다른 태스크를 동시에 처리함으로써 처리의 부하를 분담하여 처리 속도를 향상시키는 방법입니다. 병렬 처리에서는 10개의 처리 장치로 병렬 처리하면 최대 10배 정도 처리 속도를 향상시킬 수 있으나, 실제로는 병렬화에 따른 복잡한 처리가 추가되기 때문에 반드시 10배로 향상되지는 않습니다. [네이버 지식백과] - 기타 : 트럼프 카드 1벌에서 무작위로 카드 몇 장을 빼고 해도 됩니다. - 심화 문제 : 모둠원이 6명이라면 사용할 수 있는 좋은 전략을 찾아봅니다. 4 5 8 10 정렬 네트워크 병렬 처리 기법으로 데이터를 정렬하기 위해 단계별 비교 및 처리 경로를 선으로 연결하여 네트워크 모양으로 표현한 것입니다. 지도 Tip 1. 전략을 연구하고 연습해 불 수 있는 시간을 충분히 부여합니다. 2. 전략 발표에 대해 미리 귀띔해주고, 전략을 정리하여 설명할 수 있도록 준비시킵니다. 3. 학생들의 민첩성에 따라 결과는 달라질 수 있으므로 순위 보다는 전략의 창의성을 칭찬하는 것이 좋습니다. 4. 중간중간 힌트를 제시하고, 규칙이나 원리에 의문이 생기면 질문하도록 유도합니다. 5. 모둠원이 5명이 아니어도 됩니다. 사람 수에 맞는 전략을 세우도록 합니다. 126 CS Unplugged 8. 시간 내 일을 마치기 - 병렬처리 127
< 활동 2 > 평형 저울 여러 개 사용하기 - 활동 시간 : 15분 - 활동 개요 정렬 네트워크와 평형 저울을 가지고 무게순으로 정렬해 봅니다. 각 단계에서 해야 할 역할을 구체화하여 컴퓨터가 병렬 처리를 통해 정보를 처리하는 과정을 알게 되고 효율성을 체크해봅니다. - 준비물 : 필름통(6개), 동전(21개 이상), 평형 저울(3개), 활동지2 - 활동 안내 1. 긴 책상에 3명이 평형 저울을 하나씩 가지고 한쪽 면에 차례로 앉습니다. 2. 동전 개수를 달리 넣은 필름통을 무작위로 섞어 두 개씩 가집니다. 3. 나머지 1명이 단계마다 지령을 평형 저울을 가진 사람에게 주고, 평형 저울을 가진 사람은 지령에 따라 필름통을 분류합니다. 4. 마지막 단계가 끝나면, 정렬이 잘 되었는지 확인합니다. 5. 단계별 지령을 외우고 정렬을 더 빨리할 수 있도록 연습하고 기록을 측정해봅니다. 평형 저울 1 평형 저울 2 평형 저울 3 < 활동 3 > 정렬 네트워크 - 활동 시간 : 20분 - 활동 개요 정렬 네트워크를 그려서 규칙에 따라 네트워크 위를 직접 이동하며 정렬 네트워크를 통해 자료가 정렬되는 과정을 경험하게 됩니다. - 준비물 : 분필 혹은 색 테이프, 숫자 카드, 활동지3 - 활동 안내 1. 분필이나 테이프 등을 이용해 교실 바닥에 아래 그림과 같은 정렬 네트워크를 그립니다. 2. 6명이 한 모둠을 이루도록 하고 각자 1장의 숫자 카드를 받습니다. 3. 6명의 모둠원이 무작위로 섞은 후 들어가기 쪽의 사각형 위에 1명씩 들어갑니다. 4. 선생님의 숫자 구령(카운터)과 함께 화살표 방향을 따라 1칸씩 이동합니다. 5. 원에서 두 명씩 만나게 되는데, 서로의 카드를 비교해, 선생님의 다음 구령 때 숫자가 작은 사람은 왼쪽, 큰 사람은 오른쪽 화살표를 따라 이동합니다. 6. 나오기 쪽 사각형에 모든 모둠원이 도착하면, 정렬이 잘 되었는지 확인합니다. 1단계 무거운 것 2에게 전달 가벼운 것 1에게 전달 무거운 것 3에게 전달 가벼운 것 2에게 전달 2단계 무거운 것 2에게 전달 가벼운 것 1에게 전달 무거운 것 3에게 전달 가벼운 것 2에게 전달 3단계 가벼운 것 ᄀ칸에 배치 가벼운 것 1에게 전달 무거운 것 3에게 전달 무거운 것 ᄇ칸에 배치 들어가기 나오기 4단계 가벼운 것 ᄂ칸에 배치 무거운 것 2에게 전달 휴식 가벼운 것 2에게 전달 무거운 것 ᄆ칸에 배치 5단계 휴식 가벼운 것 ᄃ칸에 배치 무거운 것 ᄅ칸에 배치 휴식 - 심화 문제 : 평형 저울을 1개만 사용하는 선택 정렬과 평형 저울 사용 횟수와 시간을 비교해봅니다. - 심화 문제 : 작은 숫자를 가진 사람이 왼쪽 대신에 오른쪽으로, 큰 숫자를 가진 사람이 오른쪽 대신에 왼쪽으로 이동하면 어떤 결과가 일어날지 발표해봅니다. 지도 Tip 1. 처음에는 복잡하게 여길 수 있으므로 숙달해서 빠르게 정렬할 수 있음을 확인시켜줍니다. 2. 지령은 카드 형태로 간결하게 만들어 평형 저울을 사용하는 학생이 헷갈리지 않도록 해줍니다. 3. 선생님의 구령에 맞춰 저울을 사용하도록 하여 작업을 연산 단위로 끊어지도록 합니다. 4. 학생의 실수로 정렬이 제대로 안 되었을 때는 처음부터 다시 시작하도록 합니다. 지도 Tip 1. 모든 학생이 정렬 네트워크 체험을 하도록 하여 항상 일정한 카운터가 소요되는 것을 느끼도록 합니다. 2. 카드는 크게 만들어서 모두 보도록 해도 좋고, 트럼프 등을 이용해서 이동 중에는 숨기는 것도 좋습니다. 3. 숫자를 스스로 써보는 것도 좋습니다. 우연히 같은 숫자를 가진 학생이 만난다면, 어떤 경로로 가도 상관없습니다. 4. 선생님의 구령에 맞춰 이동하도록 하여 소요 시간을 연산 단위로 끊어지도록 합니다. 5. 학생의 실수로 정렬이 제대로 안 되었을 때는 처음부터 다시 시작하도록 합니다. 128 CS Unplugged 8. 시간 내 일을 마치기 - 병렬처리 129
5 자용 워크북 (활동지, 활동 자료) < 활동 4 > 정렬 네트워크 설계하기 활동지 2 - 그래프 색칠하기 - 활동 시간 : 20분 - 활동 개요 활동1, 2에서 활용해 본 정렬 네트워크를 직접 설계해보고, 정렬이 잘 되는지 테스트하고, 설계된 정렬 네트워크의 효율성을 계산해봅니다. 1. 문제 상황을 확인합니다. 친한 친구들끼리만 차를 타고 가려면 차가 최소한 몇 대 필요하고, 어떻게 차를 타면 될까요? - 준비물 : 흰 바둑돌, 네임펜, 활동지4, 연필, 지우개 - 활동 안내 1. 아래 그림과 같은 다양한 정렬 네트워크 샘플을 보여줍니다. 2. 문제해결과정에서 고려해야할 친구 관계를 확인합니다. 친구 관계표 민규는 태환, 수경, 영미 태환은 민정은 현아는 민규, 민정, 영미 태환, 수경 수경, 영미 와(과) 처음 만나서 친하지 않습니다. 수경은 영미는 민규, 민정, 현아 민규, 태환, 현아 3. 그래프 색칠하기 방법으로 문제를 해결합니다.(같은 색이 칠해진 이름이 같은 차를 타는 사람입니다.) 2. 동시에 비교하는 원의 개수와 정렬을 완료하는 데 필요한 카운터 횟수를 계산합니다. 3. 모둠별로 8개의 바둑돌에 1부터 8까지의 숫자를 씁니다. 4. 바둑돌을 순서대로 정렬하는 정렬 네트워크를 설계하고, 정렬이 잘 되는지 테스트해봅니다. 5. 모둠별로 완성된 정렬 네트워크를 발표하고, 비교해봅니다. - 기타 : 독특한 정렬 네트워크가 만들어지면 그 특징과 장단점을 토의해봅니다. - 심화 문제 : 최댓값 또는 최솟값을 찾아내기 위한 네트워크를 설계해봅니다. 지도 Tip 1. 몇 개를 동시에 비교하는 것이 가장 효율적인지 생각해보도록 합니다. 2. 카운터 수가 곧 처리시간이 됨을 이해시킵니다. 3. 모둠의 크기는 4명 정도로, 우수한 학생이 이끌도록 하지 말고 각자 역할을 하나씩 가지도록 하면 좋습니다. 4. 실제로 테스트하여 정렬이 잘 되는지 확인해보도록 합니다. 5. 같은 방법으로 평형 저울을 사용하면 물체를 무게순으로 정렬할 수 있음을 설명해줍니다. 130 CS Unplugged 8. 시간 내 일을 마치기 - 병렬처리 131
활동지 4 - 정렬 네트워크 설계하기 6 선생님용 참고자료 동시 비교 수 다음 정렬 네트워크는 병렬 처리하지 않고 정렬하는 방법으로, 가장 가벼운(혹은 무거운) 물체부터 찾아 먼저 나열하고 나머지 물체 중에 가장 가벼운(무거운) 물체를 찾아 다음에 나열하고 이를 반복하는 방법으로, 선택 정렬 알고리즘과 같습니다. 정렬 완료 카운터 수 동시 비교 수 정렬 완료 카운터 수 8개의 물체는 카운터 6번 만에 정렬 가능합니다. 그 정렬 네트워크의 예는 다음과 같다. 4개씩 정렬하여 병합하는 방법을 사용합니다. 동시 비교 수 정렬 완료 카운터 수 정렬 전 정렬 후 n개의 물체를 정렬하는 정렬 네트워크의 최소 카운터는 다음과 같습니다. n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 최소 카운터 수 0 1 3 3 5 5 6 6 7 7 8 8 9 9 9 9 동시 비교 수 정렬 완료 카운터 수 132 CS Unplugged 8. 시간 내 일을 마치기 - 병렬처리 133
활동지 2 평형 저울 여러 개 사용하기 4단계 지령카드 4단계 지령카드 4단계 지령카드 1단계 지령카드 1단계 지령카드 1단계 지령카드 평형 저울 1 평형 저울 3 평형 저울 3 평형 저울 1 무거운 것 2에게 전달 가벼운 것 1에게 전달 평형 저울 2 무거운 것 3에게 전달 평형 저울 3 가벼운 것 2에게 전달 가벼운 것 ᄂ칸에 배치 무거운 것 2에게 전달 휴식 가벼운 것 2에게 전달 무거운 것 ᄆ칸에 배치 5단계 지령카드 5단계 지령카드 5단계 지령카드 2단계 지령카드 2단계 지령카드 2단계 지령카드 평형 저울 1 평형 저울 2 평형 저울 3 평형 저울 1 평형 저울 2 평형 저울 3 무거운 것 가벼운 것 무거운 것 가벼운 것 휴식 가벼운 것 ᄃ칸에 배치 무거운 것 ᄅ칸에 배치 휴식 2에게 전달 1에게 전달 3에게 전달 2에게 전달 가벼움 < -------------------------------------------------------> 무거움 3단계 지령카드 3단계 지령카드 3단계 지령카드 평형 저울 1 평형 저울 2 평형 저울 3 ᄀ ᄂ ᄃ ᄅ ᄆ ᄇ 가벼운 것 가벼운 것 무거운 것 무거운 것 ᄀ칸에 배치 1에게 전달 3에게 전달 ᄇ칸에 배치 11344 CS Unplugged 8. 시간 내 일을 마치기 - 병렬처리 135
7 해답과 힌트 정답 - 활동지 1, 2, 3, 4 <활동지1> - 트럼프 카드는 4개의 모양으로 구분되므로 각 모양을 1명씩 담당하고 각각 삽입 정렬하도록 하면 되는데 카드를 분배해주는 사람이 1명이면 한 번 분배할 때마다 각 모양을 담당하는 4명 중 1명만 삽입정렬을 하게 되므로 분배에서 병목현상이 생깁니다. 그러므로 정렬되지 않은 트럼프 카드를 2명이 절반씩 나눠 가진 후 2명이 동시에 분배하는 방법이 있습니다. <활동지2> - 6개의 물체를 정렬할 경우 선택정렬은 가장 가벼운 물체를 찾기 위해 평형 저울을 5번 사용하고, 그다음 4번, 3번, 2번, 1번 사용하여 총 15번을 사용한다. 정렬 네트워크를 사용할 경우 평형 저울을 총 12번 사용하게 되는데, 선택 정렬은 평형 저울을 순서대로 사용하여 15번을 사용하는 시간이 소요되지만, 정렬 네트워크는 3개를 동시에 사용 가능하므로 시간은 더 단축되는데, 지령이 5번 있으므로 평형 저울을 5번을 사용하는 시간만 있으면 정렬을 완료할 수 있습니다. <활동지3> - 직접 해보면 알 수 있는데 큰 숫자일수록 오른쪽으로, 작은 숫자일수록 왼쪽으로 가게 되므로 원래 규칙으로 하는 것과 반대로 정렬됩니다. <활동지4> - 최댓값을 찾기 위해서는 두 값을 비교해서 작은 값을 버리는 방법으로 네트워크를 설계하면 됩니다. 이는 우리에게 익숙한 네트워크로, 토너먼트 대진표와 같은 구조가 됩니다. 최솟값을 찾기 위해서는 같은 방법을 사용하되, 작은 값 대신 큰 값을 버리는 방법을 사용하면 됩니다. 136 CS Unplugged
놀이로 배우는 컴퓨터 과학 9. 속리산 프로젝트 최소비용신장트리 지도안 9. 속리산 프로젝트 최소비용신장트리 목표 1. 복잡한 형태의 문제를 그래프의 형태로 단순화시킬 수 있다. 2. 최소비용신장트리 알고리즘을 이해하고 적용할 수 있다. 방법 탐구 소요 시간 55분 적정 연령 13세 이상 관련 CT 자료 표현, 알고리즘과 절차 선생님 활동지, 프레젠테이션 자료 < 개요 > 준비물 책이나 영화에서의 관계들은 처음에는 머리로 그려지지만, 나중에 복잡해지면 기억하기 어려운 정도로 복잡해집니다. 이런 복잡한 것을 단순화시킬 수 있는 방법은 없을까요? 복잡한 자료들을 핵심적인 부분만 표시해서 그들의 관계를 표시한 것이 그래프입니다. 그래프는 지하철 노선도와 같이 점과 선으로만 연결되어 점 간의 관계를 표현하는 표현형식입니다. 그래프는 순환구조가 있는 그래프와 순환구조가 없는 트리로 나눌 수 있습니다. 여기에서는 트리를 중심으로 살펴보도록 합니다. 수도, 도로, 가스, 전기, 인터넷망과 같이 기반 시설들을 어떻게 해야 전선이나 파이프와 같은 망(네트워크)을 최소의 비용으로 최대의 효과를 낼 수 있는지 1956년에 발표된 크루스칼 알고리즘으로 최소의 비용으로 그래프에서 트리를 찾는 최소비용신장트리(Minimal Spanning Tree) 알고리즘을 통해 살펴보도록 합니다. 학생 활동지, 필기도구 137 CS Unplugged 9. 속리산 프로젝트 - 최소비용신장트리 138
단계 소요 시간 요소 교수 활동 형태 자료 1 동기유발 활동 도입 7분 동기유발 넥슨컴퓨터 박물관 찾기 - 선생님이나 대표학생이 상세지도로 설명 - 학생들은 지도로 박물관 찾기 - 복잡한 관계를 표현하기 그래프의 필요성 설명 전체 선생님 자료1, 활동지1 넥슨컴퓨터 박물관 찾기 1. 제주도에 있는 넥슨컴퓨터 박물관을 찾아가려고 합니다. 학생 중 1명은 선생님 자료1의 상세지도로 넥슨컴퓨터 박물관의 위치를 설명하고, 다른 학생들은 활동지1의 지도에서 넥슨컴퓨터 박물관의 위치를 찾아봅니다. 목표 제시 복잡한 형태의 문제를 그래프의 형태로 단순화 시킬 수 있다. 최소비용신장트리 알고리즘을 이해하고 적용할 수 있다. 가족관계도 15분 활동1 - 복잡한 가족 관계 글을 그래프로 표현 - 가족 관계에 대한 질문 - 그래프의 사용 예시 질문 개인 활동지2, 연필, 지우개 전개 10분 활동2 다양한 그래프와 트리 - 그래프와 트리 자료 제시 후 차이점 질의 및 설명 - 다양한 그래프 예시를 통해 그래프와 트리를 구별하기 전체, 개인 선생님 자료2, 활동지3, 연필, 지우개 20분 활동3 환경보전용 등산로 지정하기 - 최소비용신장트리 알고리즘(크루스칼) 설명 - 속리산 국립공원 등산로 상황제시 - 속리산 8대 유명관광지 그래프로 표현 - 최소오염도 등산로(최소비용신장트리) 찾기 전체, 개인 선생님 자료3, 활동지4, 연필, 지우개 정리 3분 프로젝트 정리 최소비용신장트리 - 그래프로 표현하는 이유 발표하기 - 최소 비용 신장 트리를 활용예시 발표하기 전체 2. 도로의 위치, 건물과의 거리 등의 관계를 글이나 말로 표현하는 것이 어렵다는 것을 강조하고, 그렇다면 쉽게 길을 찾는 방법은 무엇이 있는지 물어봅니다. 3. 약도, 지하철노선도, 가족 관계도 등 복잡한 관계를 점과 선으로 표시한 도형의 형태인 그래프를 알려주고 다양한 그래프의 특성에 대해 알아보도록 안내합니다. 사전 준비 사항 2 문제 제시 - 자의 수만큼 유인물을 미리 준비합니다. 1. 복잡한 관계를 단순화시킬 수 있는 방법이 있을까요? 2. 어떻게 하면 최소한의 비용으로 최대의 효과를 얻을 수 있을까요? 139 CS Unplugged 9. 속리산 프로젝트 - 최소비용신장트리 140
3 주요 개념 및 용어 정리 4 자 활동 그래프 보통 그래프는 꺾은선 그래프, 막대 그래프 등을 생각하지만, 정보과학에서 그래프는 점과 간선(점간의 선)으로 이루어진 관계를 쉽게 파악할 수 있는 단순화된 그림 형태입니다. 순환(사이클) 그래프에서 어떤 점에서 다른 점으로 가는 길이 무제한인 그래프입니다. 1 <그래프> 2 < 활동 1 > 가족 관계도 - 활동 시간 : 15분 - 활동 개요 복잡한 가족관계의 글을 점과 연결선으로 구성된 가족 관계 이미지로 단순화시키는 활동입니다. 이 과정을 통해 점과 선으로 이루어진 그래프가 관계 표현에 적합한 자료 형태임을 이해하게 됩니다. 3 - 준비물 : 활동지2, 연필, 지우개 - 활동 안내 4 5 1. 활동지2의 <가족 관계 설명>을 같이 읽습니다. 예를 들어 1~5까지 가는 경로를 생각해봅니다. 그래프는 1 2 5, 1 2 3 5, 1 2 5 2 5, 1 2 5 2 5 2 5 등 무한합니다. 트리 그래프의 일종으로 순환이 존재하지 않으므로 어떤 점에서 다른 점으로 가는 길이 오직 1개인 그래프입니다. 1 <트리> 3 2 종철, 미란은 결혼해서 수창, 철수, 재희를 낳고, 수창이는 재훈이를 낳았습니다. 윤형, 미선은 결혼해서 승만, 미희, 승희를 낳았습니다. 철수와 미희는 결혼해서 영철, 영희, 영미를 낳았습니다. 승만이는 재범, 연재를 낳았습니다. 2. 활동지2의 <가족 관계 설명>을 보고 다음 질문을 합니다. 질문1 : 영희는 사촌은 누구일까요? 질문2 : 영철이의 이모는 누구일까요? 3. 활동지2의 <가족 관계 설명>을 보고 사람을 동그라미(이름)와 관계를 연결선으로 표시하도록 합니다. 4 5 4. 2번의 질문을 다시 합니다. 예를 들어 1~5까지 가는 경로는 1 2 5 하나밖에 없습니다. 5. <가족 관계도>와 같이 점과 선으로 이루어진 그래프가 일상생활에서 사용되는 예를 찾아보도록 질문합니다. 최소신장트리(Minimal Spanning Tree) 그래프에서 모든 간선의 가중치의 합이 최소인 트리입니다. 예를 들어, 아래 <도시 간 비용 그래프>는 7개 도시에서 서로 연결할 수 있는 모든 도로와 그 비용을 나타낸 것입니다. 모든 도로를 연결하는 것이 가장 좋지만, 너무나 많은 비용이 필요합니다. 이럴 때 간선들의 비용 총합을 최소한 <도시 간 비용 최소신장트리>로 연결된 도로만 연결하면 모든 도시를 이동할 수 있는 도시 간 비용 최소신장트리가 됩니다. 도시 간 비용 그래프 도시 간 비용 최소신장트리 지도 Tip 1. 가족 관계도를 그리지 못하는 학생들에게는 점과 선으로 이루어진 그래프의 예시를 보여줍니다. 2. 다양한 이미지 자료를 통해 그래프의 예시를 보여줍니다. 141 CS Unplugged 9. 속리산 프로젝트 - 최소비용신장트리 142
< 활동 2 > 다양한 그래프와 트리 - 활동 시간 : 10분 - 활동 개요 다양한 그래프의 예시를 들어 그래프와 트리로 구분하는 활동입니다. 트리는 사이클(한 지점에서 다른 지점을 가는 경로가 2개 이상인 경우)이 없는 그래프입니다. 이 과정을 통해서 트리와 그래프의 차이점을 이해하게 됩니다. - 준비물 : 활동지3, 선생님 자료2-12, 연필, 지우개 - 활동 안내 1. 선생님 자료2의 두 지하철 노선도를 보여주고, 어떤 차이점이 있는지 질의합니다. <서울지하철 2호선> <서울지하철 3호선> < 활동 3 > 환경보전용 등산코스 - 활동 시간 : 20분 - 활동 개요 환경보호를 위해 여러 등산로 중 모든 관광지점에 가는 길을 최소로 정하도록 하는 활동입니다. 한 지점에서 다른 지점으로 가기 위해 오직 한길만 갈 수 있도록 최소신장트리를 만들고 나머지 등산로는 환경보호지역으로 정하도록 합니다. 실제 수도관, 송유관, 가스관 등 최소한의 비용으로 최대 효과를 얻기 위해 사용하는 방법을 배우게 됩니다. - 준비물 : 활동지4, 연필, 지우개 - 활동 안내 1. 선생님 자료3으로 최소비용신장트리 알고리즘을 설명합니다. <등산로 예시> <크루스칼의 알고리즘> 5 1 4 <가중치 그래프> 1 3 3 4 6 2 5 2 <최소신장트리> 크루스칼의 알고리즘은 최소 비용으로 모든 점을 연결하는 방식으로 수도관, 가스관, 도로망 등에 사용되는 방식이다. 크루스칼의 알고리즘은 2가지 원칙이 있다. 1. 남은 가중치 중 최소 가중치를 선택한다. 2. 선택한 가중치를 넣었을 때 사이클이 발생하면 취소한다. <서울지하철 2호선>은 순환이 있고, <서울지하철 3호선>은 순환이 없다는 것입니다. 순환은 다른 말로 사이클이라고 하는데, 자기 자신에게 돌아갈 수 있는 경로가 있음을 의미합니다. 순환이 있으면 한 지점에서 다른 지점으로 갈 수 있는 경로의 개수가 무제한입니다. 예를 들어 홍대입구에서 신촌역을 가는 방법은 홍대입구 신촌역, 홍대입구 홍대입구 신촌역, 홍대입구 홍대입구 홍대입구 신촌역 등 무한히 순환할 수 있으므로 경로의 개수가 무한합니다. 하지만 <서울지하철 3호선>과 같이 순환이 없다면 한 지점에서 다른 지점으로 갈 수 있는 방법은 단 한 가지뿐이라는 것입니다. 그래프와 트리는 상황에 따라서 표현되는 방식이므로 상황에 따라 중요도가 달라집니다. 예를 들어, 사람과의 관계에서는 최대한 많은 순환이 이루어지는 그래프가 중요하지만, 내비게이션과 같이 복잡한 그래프에서 최소 시간 경로를 찾는 것이 중요하기도 합니다. 2. 선생님은 활동지4-1의 상황제시를 읽어줍니다. 해발 1,057m인 속리산 국립공원은 한국 8경 중의 하나로 태백산맥에서 남서방향으로 뻗어 나오는 소백산맥 줄기 가운데 있으며, 남북으로 백두대간이 지나고 있을 뿐만 아니라 천왕봉에서 한남금북정맥이 분기하고 있으며, 행정구역상으로 충북 보은군, 괴산군, 경북 상주시의 경계에 있는 산이다. 유명한 관광지로 문장대, 중사자암, 세심정, 신선대, 입석대, 문수봉, 비로봉, 천왕봉의 8개 관광지가 서로 복잡하게 얽혀있다. 하지만, 최근에는 등산객의 증가로 인해 쓰레기 무단 투척, 무단 야영 등으로 인해 등산로의 오염도가 급속하게 늘고 있다. 하지만 많은 등산객이 유명 8개 관광지를 모두 다니고 싶어한다. 따라서 국립공원 측은 모든 관광지로 이동할 수는 있지만, 등산로의 개수를 최소한으로 줄이려고 한다. 2. 활동지2를 보고 그래프와 트리를 구별해봅니다. 3. 학생은 활동지4-1, 2에 등산코스 결정 문제를 그래프로 표현하고, 최소비용신장트리를 완성합니다. 4. 친구들끼리 완성된 최소비용신장트리를 비교합니다. 지도 Tip 1. 그래프와 트리가 차이가 있음을 알려주는 다양한 사례를 준비합니다. 지도 Tip 1. 속리산 국립공원의 8대 유명관광지와 연결된 등산로는 가상 상황임을 알려줍니다. 143 CS Unplugged 9. 속리산 프로젝트 - 최소비용신장트리 144
5 자용 워크북 (활동지, 활동 자료) 활동지 1 - 넥슨컴퓨터 박물관 찾기 활동지 2 - 가족 관계도 1. 친구의 설명을 듣고 넥슨컴퓨터 박물관의 위치를 찾아보세요. 1. 다음은 영희 집안 친척 간의 관계입니다. <가족 관계 설명> 종철, 미란은 결혼해서 수창, 철수, 재희를 낳고, 수창이는 재훈이를 낳았습니다. 윤형, 미선은 결혼해서 승만, 미희, 승희를 낳았습니다. 철수와 미희는 결혼해서 영철, 영희, 영미를 낳았습니다. 승만이는 재범, 연재를 낳았습니다. 2. 위의 <가족 관계 설명>을 보고 다음 질문에 답해 보세요. (부부는 0촌(무촌), 부모-자식은 1촌, 형제는 2촌입니다.) 질문1 : 영희는 사촌은 누구일까요? 질문2 : 영철이의 이모는 누구일까요? 3. 사람을 동그라미(이름)와 관계를 연결선으로 표시해 보세요. <가족 관계도> 4. 위의 <가족관계도>를 보고 다음 질문에 답해 보세요. (부부는 0촌(무촌), 부모-자식은 1촌, 형제는 2촌입니다.) 질문1 : 영희는 사촌은 누구일까요? 질문2 : 영철이의 이모는 누구일까요? 5. <가족 관계도>와 같이 점과 선으로 이루어진 그래프가 일상생활에서 사용되는 예를 찾아보세요. 145 CS Unplugged 9. 속리산 프로젝트 - 최소비용신장트리 146
활동지 3 다양한 그래프와 트리 활동지 4 환경보호용 등산코스 1 1. 점과 선으로 표현되는 형식에는 크게 그래프와 트리로 구성되어 있습니다. 그래프와 트리의 차이점을 써보세요. 상황제시 1 4 <그래프> <트리> <차이점> 2 1 2 3 3 5 4 5 해발 1,057m인 속리산 국립공원은 한국 8경 중의 하나로 태백산맥에서 남서방향으로 뻗어 나오는 소백산맥 줄기 가운데 있으며, 남북으로 백두대간이 지나고 있을 뿐만 아니라 천왕봉에서 한남금북정맥이 분기하고 있으며, 행정구역상으로 충북 보은군, 괴산군, 경북 상주시의 경계에 있는 산이다. 유명한 관광지로 문장대, 중사자암, 세심정, 신선대, 입석대, 문수봉, 비로봉, 천왕봉의 8개 관광지가 서로 복잡하게 얽혀있다. 하지만 최근에는 등산객의 증가로 인해 쓰레기 무단 투척, 무단 야영 등으로 인해 등산로의 오염도가 급속하게 늘고 있다. 하지만 많은 등산객이 유명 8개 관광지를 모두 다니고 싶어한다. 따라서 국립공원 측은 모든 관광지로 이동할 수는 있지만, 등산로의 개수를 최소한으로 줄이려고 한다. 1. 속리산 국립공원 중 가장 인기가 좋은 8개의 관광지를 그래프로 표현해 보세요. 단, 이때 등산길의 오염도 같이 표시해 보세요. (실제 속리산 국립공원의 길과 다른 가상 상황이다.) 2. 다음 그래프 형식이 그래프인지 트리인지를 구별해 보세요. <고속도로 혼잡도> <윈도우 탐색기> <지하철노선도> 문장대는 중사장암, 신선대, 문수봉, 천왕봉과 연결되어 있으며 오염도는 각각 4, 5, 4, 2이다. 중사자암은 세심정, 신선대, 문장대와 연결되어 있으며 오염도는 각각 5, 3, 4이다. 세심정은 중사장암, 신선대, 입석대와 연결되어 있으며 오염도는 각각 5, 3, 2이다. 신선대는 문장대, 중사자암, 세심정, 입석대, 문수봉과 연결되어 있으며 오염도는 각각 5, 3, 3, 3, 4이다. 입석대는 세심정, 신선대, 문수봉, 비로봉과 연결되어 있으며 오염도는 각각 2, 3, 4, 3이다. 문수봉은 문장대, 신선대, 입석대, 천왕봉, 비로병과 연결되어 있으며 오염도는 각각 4, 4, 4, 3, 2이다. 비로봉은 입석대, 문수봉, 천왕봉과 연결되어 있으며 오염도는 각각 3, 2, 3이다. 천왕봉은 문장대, 문수봉, 비로병과 연결되어 있으며 오염도는 각각 2, 3, 3이다. 중사자암 세심정 <마인드맵> <등산코스> <LAN> 문장대 신선대 문수봉 입석대 천왕봉 비로봉 <고속도로 혼잡도> roadplus어플 <지하철 노선도> 네이버 지도 <마인드 맵> 알마인드 (http://www.altools.co.kr/) <등산코스> http://uhf.or.kr/new/announce/view.php?board_id=news&board_idx=5002 <LAN> http://www.computer-networking-success.com/computer-lan-network.html <속리산 국립공원 8대 유명관광지 그래프> 147 CS Unplugged 9. 속리산 프로젝트 - 최소비용신장트리 148
6 선생님용 워크북 (활동지, 활동 자료) 활동지 4 환경보호용 등산코스 2 선생님 자료 1 - 동기유발활동 2. 다음 조건에 맞도록 최소 환경오염도 등산코스의 최소신장트리를 표현해 보세요. 최소신장트리는 그래프에서 모든 간선의 가중치의 합이 최소인 트리이다. 속리산 국립공원에서 오염도를 최소한으로 하기 위한 다음 조건을 만족하는 등산코스를 선택해야 한다. 참고로 관광지가 8개 이므로, 등산로는 7개만 있으면 된다. 1 모든 관광지에서 다른 관광지로 움직일 수 있는 등산로가 있어야 한다. 2 1의 조건을 만족하는 최소오염도 등산코스를 선택해야 한다. 중사자암 세심정 문장대 신선대 동쪽 입석대 1 넥슨컴퓨터박물관 문수봉 천왕봉 비로봉 <완성된 속리산 8대 관광지 최소오염도 등산로 - 최소비용신장트리> 149 CS Unplugged 9. 속리산 프로젝트 - 최소비용신장트리 150
선생님 자료 2 - 활동 2 선생님 자료 2 - 활동 2 <서울지하철 2호선> <고속도로 혼잡도> <윈도우 탐색기> <지하철노선도> <마인드맵> <서울지하철 3호선> <등산코스> <LAN> 151 CS Unplugged 9. 속리산 프로젝트 - 최소비용신장트리 152
7 해답과 힌트 선생님 자료 3 - 활동 1 정답 - 활동지 2 크루스칼의 알고리즘은 2가지 원칙이 있다. 1. 남은 가중치 중 최소 가중치를 선택한다. 2. 선택한 가중치를 넣었을 때 사이클이 발생하면 취소한다. 1. 다음은 영희 집안 친척 간의 관계입니다. <가족 관계 설명> 종철, 미란은 결혼해서 수창, 철수, 재희를 낳고, 수창이는 재훈이를 낳았습니다. 윤형, 미선은 결혼해서 승만, 미희, 승희를 낳았습니다. 철수와 미희는 결혼해서 영철, 영희, 영미를 낳았습니다. 승만이는 재범, 연재를 낳았습니다. 2. 위의 <가족 관계 설명>을 보고 다음 질문에 답해 보세요. (부부는 0촌(무촌), 부모-자식은 1촌, 형제는 2촌입니다.) 1 질문1 : 영희는 사촌은 누구일까요? 질문2 : 영철이의 이모는 누구일까요? 재훈, 재범, 연재 승희 1 2 3. 사람을 동그라미(이름)와 관계를 연결선으로 표시해 보세요. 3 <가족 관계도> 5 3 2 4 4. 위의 <가족관계도>를 보고 다음 질문에 답해 보세요. (부부는 0촌(무촌), 부모-자식은 1촌, 형제는 2촌입니다.) 4 6 5 질문1 : 영희는 사촌은 누구일까요? 질문2 : 영철이의 이모는 누구일까요? 재훈, 재범, 연재 승희 5. <가족 관계도>와 같이 점과 선으로 이루어진 그래프가 일상생활에서 사용되는 예를 찾아보세요. 그래프 : 친구관계도, 지하철노선도, 고속도로망 가중치 그래프 : 고속도로 혼잡도, 거리표시 등산로 트리 : 가족관계도, 마인드맵 가중치 트리 : 가족 촌수, 상하수도관, 송유관, 인터넷 망 등 153 CS Unplugged 9. 속리산 프로젝트 - 최소비용신장트리 154
정답 - 활동 2 정답 - 활동지 4 <고속도로 혼잡도> - 그래프 <윈도우 탐색기> - 트리 <속리산 관광지 그래프> <지하철노선도> - 그래프 <마인드맵> - 트리 <등산코스> - 그래프 <LAN> - 트리 155 CS Unplugged 9. 속리산 프로젝트 - 최소비용신장트리 156
정답 - 활동지 4 <최소비용신장트리> 1 2 3 4 5 6 157 CS Unplugged
놀이로 배우는 컴퓨터 과학 10. 오렌지 게임 - 네트워크 라우팅과 교착상태 지도안 10. 오렌지 게임 - 네트워크 라우팅과 교착상태 1. 네트워크 라우팅의 개념을 이해할 수 있다. 목표 2. 라우팅 과정에서 발생할 수 있는 교착 상태의 의미와 해결 방법을 설명할 수 있다. 방법 토론, 협력, 게임 소요 시간 75분 적정 연령 10세 이상 관련 CT 알고리즘과 절차 선생님 < 개요 > 동영상, 활동지, 오렌지 또는 공 + 부착 가능한 이름표(학생용) 분필 또는 청테이프(연결구조도 그릴 용도) 준비물 학생 친구에게 편지를 보내본 적이 있나요? 우리가 보낸 편지는 다양한 경로를 거쳐 친구의 손에까지 도착하게 됩니다. 1인당 오렌지 두 개 혹은 공 2개, 부착이 가능한 이름표 또는 이름 스티커 인터넷상에서 우리가 보내는 메시지 또한 매우 짧은 시간에 목적지까지 도착하는 것 같지만, 이 편지와 같이 긴 여행을 하게 됩니다. 우리가 인터넷상에서 보내는 메시지는 어떤 여행을 하며 목적지까지 도착할 수 있을까요? 여행 도중 길을 잃거나, 혹은 길이 막혀 더는 진행되지 못하는 경우도 발생할 수 있을까요? 자동차가 다니는 도로나 메시지가 지나가는 인터넷과 같이 하나의 자원을 많은 사람이 공유하여 사용할 때, 교착상태(deadlock) 발생 가능성이 있습니다. 이러한 교착상태가 발생하는 것을 피하는 방법은 서로 협력하는 것입니다. 158 158 CS CS Unplugged Unplugged 10. 오렌지 게임 - 네트워크 라우팅과 교착상태 159 159
단계 소요 시간 요소 교수 활동 형태 자료 1 동기유발 활동 도입 10분 동기유발 우리가 인터넷 창에서 입력한 검색어는 어떻게 해당 서버로 전달될까요? - 질문과 함께 아래의 동영상을 시청하며 전반적인 메시지 전달과 관련된 내용을 이해한다. - 동영상 전체 동영상 [함께 생각해 보기] 우리는 매일 같이 인터넷 창에 또는 스마트폰에 궁금한 내용을 검색어로 입력합니다. 우리가 이렇게 입력한 검색어는 어떤 여행을 하며 목적지까지 전달될까요? 목표 제시 네트워크 라우팅의 개념을 이해할 수 있다. 라우팅 과정에서 발생할 수 있는 교착 상태의 의미와 해결방법을 설명할 수 있다. 20분 활동1 네트워크의 통제사령탑 라우터 돼보기 < 하나의 메시지를 출발점에서 목적지까지 > - 활동 소개: 지정된 네트워크 구조에서 출발점 PC 역할 학생이 작성한 쪽지를 목적지까지 전달하는 활동. 어떤 경로로 메시지를 전송했는지에 따라 전달속도가 다르며 빨리 전달한 모둠이 승리. 모둠 활동 (8명 활동자료 (역할 스티커) 인터넷상의 메시지 전달에 관련된 유투브 동영상을을 함께 시청하며 인터넷상에서의 메시지 전달 과정에 대해 생각해 본다. 예) Warriors Of the Net 유사 동영상 목록 - 추가로 활용가능 예1) The OSI Model Animation - https://youtu.be/-6uoku-m6oy 예2) How Does the Internet Work? - https://youtu.be/i5oe63pohli - 모둠원 : 8명 내외 내외) 활용 - 활동 후 어떤 전략(경로)으로 전달했는지, 어떤 문제가 발생했는지 등을 함께 공유함. 2 문제 제시 오렌지 게임 전개 < 전달 메시지 多, 목적지 多 > 20분 활동2 - 게임 소개: 활동1은 1개의 메시지를 1개의 목적지로 보내는 활동이라면 이 활동은 서로 다른 여러 개의 메시지를 서로 다른 목적지에 전달하는 방법에 대해 이해하는 게임이다. 참가자 전원이 자신의 이름이 이니셜로 새겨진 오렌지(또는 공)를 갖는 것이 모둠 활동 (5인 1조) 오렌지, 스티커, 활동지1 1. 우리가 검색어로 입력한 메시지는 어떤 과정을 통해 목적지까지 도착할 수 있을까요? 2. 인터넷 검색을 하다가 다운되거나 원하는 답변이 오지 않은 경험 있나요? 왜 그런 일이 발생했을까요? 게임의 목표이다. - 모둠 구성: 5명 이상 20분 활동3 확장 오렌지 게임 - 활동2와 같은 방식으로 운영 - 앉는 대형을 다양하게 달리하여 활동 진행 모둠 활동 (5인 1조) 오렌지, 스티커, 활동지1 정리 5분 프로젝트 정리 라우터의 역할 및 라우팅의 개념을 정리한다. 교착상태의 의미와 해결방법을 정리한다. 전체 160 CS Unplugged 10. 오렌지 게임 - 네트워크 라우팅과 교착상태 161
3 4 주요 개념 및 용어 정리 자 활동 < 활동 1 > 전송 글이나 사진 따위를 전류나 전파를 이용하여 먼 곳에 보내는 것입니다. 네트워크의 통제사령탑 라우터 돼보기 - 하나의 메시지가 하나의 목적지까지 네트워크 - 활동 시간 : 20분 <컴퓨터> 랜(LAN) 등 통신 설비를 갖춘 컴퓨터를 이용하여 서로 연결해 주는 조직이나 체계. 통신망 이라고 합니다. <일반>어떠한 일이나 문제점을 처리하는 데 각 기관 따위가 긴밀하게 연결되어 조직적이고 효율적으로 움직일 수 있도록 만든 체계입니다. 관계망, 연결망, 연계망 으로 순화되어 쓰입니다. - 활동 개요 이 활동은 각각의 학생이 직접 라우터가 되어 메시지를 전달해 보는 활동입니다. 자신에게 온 쪽지를 자신에게 연결된 많은 라우터 중 하나를 선택하여 전달하고, 이러한 과정을 거쳐 목적지까지 쪽지를 전달합니다. 학생들은 쪽지의 전달 경로를 설정하고 다양한 경로 중 하나를 선택해 봄으로써 라우터의 기능을 이해하게 되고, 어떤 경로를 통해 전달하는 것이 효율적인지 생각해 볼 수 있습니다. - 준비물 : 역할 스티커, 메시지(쪽지), 연결망 구조도(참고자료 활용) - 활동 안내 1. 8명 내외로 모둠을 지어 역할을 정합니다. 1인: 출발 PC 역할, 1인: 도착점 서버(예:네이버), 나머지는 라우터 역할 2. 연결망 구조도의 동그라미 안에 각 역할의 학생이 섭니다. 연결망 구조도는 색 테이프나, 분필을 이용해 바닥에 미리 만들어 둡니다. 이때 숫자는 기다리는 시간(초)을 의미합니다 라우터(router) 인터넷상에서 패킷(메시지)의 위치를 추출하여 그 위치에 대한 최상의 경로를 지정하며 이 경로를 따라 다음 장치로 전달시키는 장치입니다. 특정한 위치로 전달하기에 가장 적합한 "외부로 나가는" 장치를 찾아냅니다. 12 B 2 출발 PC 3 27 6 A G 4 C 1 4 E 3 4 5 D 1 H 도착 서버 7 F 3. 출발점 PC 역할은 질문 1개를 쪽지에 기록하여 연결된 라우터에게 전달합니다. 코어 라우더 4. 라우터 역할을 맡은 학생은 자신에게 연결된 라우터 중 하나를 선택하여 메시지를 전달합니다. 이때, 전달하는 쪽지에 시간(초)을 기록하여 표시된 시간(초)만큼 기다린 후 전달합니다. D-Link_DI-524 라우터 출처 : https://ko.wikipedia.org/wiki/%eb%9d%bc%ec%9a%b0%ed%84%b0 5. 도착점 서버 역할에게 쪽지가 전달될 때까지 [과정4]를 반복합니다. 라우팅(routing) 6. 도착점 서버는 쪽지에 적힌 내용에 대한 답을 기록하여 다시 자신에게 연결된 라우터로 전달하고 출발점 PC로 메시지가 도착할 때까지 [과정4]를 반복합니다. 어떤 네트워크 안에서 통신 데이터를 보낼 경로를 선택하는 과정입니다. 라우팅은 전화 통신망, 전자 정보 통신망(인터넷 같은) 그리고 교통망 등 여러 종류의 네트워크에서 사용됩니다. - 기타 교착상태(膠着狀態, deadlock) 1. 메시지 전달이 완료되면 상호 토의를 통해 가장 빠르게 전달할 수 있는 전략을 정리하고, 팀별로 정리된 전략을 발표하여 공유합니다. 2개 이상의 작업이 상대방의 작업이 끝나기만을 기다리고 있으므로 결과적으로 아무것도 완료되지 못하는 상태입니다. 2. 혹시 메시지를 중간에 잃어버리는 등 전달 과정에서 발생했던 어려운 점들을 발표합니다. 지도 Tip 1. 모둠 구성 인원이 너무 적을 경우 전달의 속도나 효율성을 체크하기 어려우므로 인원수를 너무 작게 구성하지 않도록 한다. 2. 현재 안내된 활동은 PC 서버(검색어), 서버 PC(검색 결과)로 검색어를 입력하면 그 결과가 되돌아오는 왕복 구조로 구성된 활동이므로, 시간적 제약이 있을 때 왕복이 아닌 단방향으로(PC 서버) 축소하여 운영할 수 있다. 162 CS Unplugged 10. 오렌지 게임 - 네트워크 라우팅과 교착상태 163
< 활동 2 > 오렌지 게임 - 여러 개의 메시지가 여러 개의 목적지로 - 활동 시간 : 20분 - 활동 개요 활동1이 1개의 메시지를 1개의 목적지로 보내는 활동이라면 이 활동은 서로 다른 여러 개의 메시지를 서로 다른 목적지에 전달하는 활동입니다. 실제 인터넷에서 수많은 메시지가 수많은 목적지로 이동하게 됨을 이해하는 활동으로, 참가자 전원(목적지)이 자신의 이름이 이니셜로 새겨진 오렌지(메시지)를 모두 갖는 것이 이 게임의 목표이며, 그 과정에서 라우팅과 교착상태를 이해하게 됩니다. - 준비물 : 오렌지 2개 혹은 공 2개(1인당), 부착이 가능한 이름표 또는 이름 스티커, 활동지1 - 활동 안내 1. 5명 혹은 그 이상의 학생들이 한 그룹으로 원을 그려 앉습니다. < 활동 3 > 확장 오렌지 게임 - 활동 시간 : 20분 - 활동 개요 이 게임은 활동2의 오렌지 게임의 심화 활동입니다. 동그란 원 대형으로 진행했던 오렌지 게임의 앉는 대형을 다양한 모양으로 변경하여 오렌지 게임을 진행해봅니다. - 준비물 : 오렌지 2개 혹은 공 2개(1인당), 부착이 가능한 이름표 또는 이름 스티커, 활동지1 - 활동 안내 활동2와 같은 방법으로 활동을 진행합니다. 단, 모둠의 앉는 대형을 다음과 같이 다양하게 변화하여 활동을 진행합니다. 모둠 대형 예시1 모둠 대형 예시2 2. 학생들 모두 자신의 이니셜을 이름표나 이름 스티커에 적습니다. 한 명을 제외한 모든 학생은 오렌지 두 개에 자신의 이니셜을 붙입니다. 제외된 한 명은 하나만 오렌지에 붙여 한 손에 들고 있고, 나머지 손은 빈손입니다. 3. 오렌지를 모두 걷은 다음 원에 둘러앉은 학생들에게 무작위로 오렌지를 나눠줍니다. 오렌지 하나만을 가진 한 명을 제외하고 모든 학생은 오렌지 2개를 가집니다. (단, 어떤 학생도 자신의 이니셜이 적힌 오렌지를 가지면 안 됩니다.) 4. 자신의 이니셜이 적힌 오렌지를 모든 학생이 가질 때까지 학생들은 오렌지를 전달합니다. 이때 두 가지 규칙을 지켜야 합니다. 한 번에 상대에게 전달할 수 있는 오렌지는 1개뿐입니다. 바로 옆 사람의 손이 빈 경우에만 오렌지를 전달할 수 있습니다. (즉, 옆 사람에게 오렌지를 전달할 수 있는 학생은 한번에 1명뿐입니다.) - 기타 1. 문제를 해결하기 위해 어떤 전략을 사용했는지 정리하여 발표해봅니다. 2. 실생활에서는 어떤 장소에서 교착상태(deadlock)를 경험했는지 발표해봅니다. (교통 체증, 야구경기에서 베이스를 도는 주루선수, 많은 사람이 동시에 출구를 통과하려는 모습 등) - 기타 1. 모둠 대형에 따른 데이터(오렌지) 전달과 게임 완료에 있어 어떠한 차이점들이 있는지 정리해 발표해봅니다. 2. 어떤 구조가 보다 효율적으로 메시지를 주고받을 수 있는지 생각해봅니다. 지도 Tip 1. 모둠 대형이 현실적인 네트워크 연결과 관련이 있음을 학생들에게 함께 지도하도록 합니다. 2. 만약 오렌지 개수(메시지 개수)가 너무 많아서 혼란스럽거나 활동이 원활히 이루어지지 않을 경우 오렌지의 개수를 줄여 활동을 진행하도록 합니다. 3. 활동이 끝난 뒤 동기유발 과정에서 보았던 동영상과 역할을 비교해봅니다. 지도 Tip 1. 활동에 있어 누군가 자신의 이니셜이 적힌 오렌지를 차지하여 게임에서 "승리"하는 것이 목적이 아니라, 모두가 자신의 이니셜이 적힌 오렌지를 가질 때 게임 퍼즐을 풀 수 있다는 것을 강조합니다. 2. 만약 학생들이 욕심을 부려 자신의 이니셜이 적힌 오렌지를 손에 넣어 다른 학생에게 오렌지를 전달하지 못하게 한다면 그룹 전체가 게임의 목표를 달성할 수 없다는 것을 인지하도록 합니다. 164 CS Unplugged 10. 오렌지 게임 - 네트워크 라우팅과 교착상태 165
5 자용 워크북 (활동지, 활동 자료) 활동지 1 - 네트워크의 통제사령탑 '라우터' 돼보기 역할 종이 3종류 역할 종이 3종류 PC(출발), 서버(도착), 라우터A,B,C,... (나머지)에 맞게 역할 종이를 부착하세요. 라우터 A PC 서버 라우터 B 라우터 C 166 CS Unplugged 10. 오렌지 게임 - 네트워크 라우팅과 교착상태 167
역할 종이 3종류 활동1 참고 자료 - 네트워크 연결 구조 - 연결 구조도 (각 선에 표시된 숫자는 전송 지연도를 의미) 라우터 D 2 B 27 12 G 3 A 6 4 C D 5 H 4 E 1 4 3 1 F 7 라우터 E 라우터 F 168 CS Unplugged 10. 오렌지 게임 - 네트워크 라우팅과 교착상태 169
활동지 1 - 오렌지 게임 6 선생님용 참고자료 모둠원끼리 오렌지의 이동 경로를 표로 기록해 보세요. 단, 본 활동지는 별도로 관찰자 역할을 하는 학생이 따로 기록하도록 해 보세요. 오렌지 이동 경로 오렌지 A B C D E F 이동 회차 A1 A2 B1 B2 C1 C2 D1 D2 E1 E2 F1 F2 출발점 B D C E... 1회차 2회차 3회차 4회차 5회차... 라우팅(Routing)과 교착상태(Deadlock) 도로, 전화, 컴퓨터 시스템같이 많은 네트워크에서 라우팅(Routing)과 교착상태(Deadlock)는 흔한 문제입니다. 엔지니어들은 이런 문제를 어떻게 해결할 것인가, 문제를 풀기 쉬운 네트워크를 어떻게 설계할지에 대해서 많은 연구를 합니다. 라우팅, 정체, 교착상태는 많은 네트워크에서 좌절감을 안겨줄 정도의 문제를 제시합니다. 출퇴근 혼잡 시간대에 교통 상황을 상상해봅니다. 뉴욕이나 서울 도로에 너무나 많은 자동차가 흘러나와 혼잡한 상황이 되어서 어떤 자동차도 움직일 수 없는 교착상태가 되는 경우가 종종 있습니다. 때때로, 은행 같은 금융 업무용 컴퓨터가 다운될 때는 통신 네트워크에 교착상태가 원인입니다. 라우팅이 쉽고, 효율적이며, 정체가 최소화되는 네트워크를 설계하는 것이 많은 엔지니어가 직면한 어려운 문제입니다. 여러 사람이 동일 시간대에 같은 데이터를 요구하는 것은 자주 있는 일입니다. 고객의 예금 잔액과 같은 데이터를 갱신할 때, 그 찰나의 시간에 "잠금(lock)"을 걸어 타인에게 보이지 않도록 하는 것이 중요합니다. 만약 잠겨 있지 않으면, 다른 누군가가 데이터를 동시에 갱신해서, 잘못된 예금 잔액이 기록되어 버릴 수도 있기 때문입니다. 그러나 이러한 잠금 설정이 다른 항목의 잠금 설정 때문에 충돌 나거나 간섭이 발생하는 상황이 되면 교착 상태가 발생할지 모릅니다. 컴퓨터 설계에 있어 가장 획기적인 업적 중 하나는 병렬 컴퓨팅(parallel computing)의 등장입니다. PC 같은 개인용 컴퓨터 수백, 수천 개의 중앙처리장치(processor)를 네트워크로 결합하여 하나의 강력한 컴퓨터를 만든 것입니다. 이러한 병렬 컴퓨터를 작동시키기 위해서 오렌지 게임과 같은 많은 문제가 네트워크에서 항상 (훨씬 빠르게) 재현되고 있는 것입니다. 170 CS Unplugged 10. 오렌지 게임 - 네트워크 라우팅과 교착상태 171
놀이로 배우는 컴퓨터 과학 11. 멀리 있는 로봇을 움직여 보자 - 네트워크 통신프로토콜 지도안 11. 멀리 있는 로봇을 움직여 보자 - 네트워크 통신 프로토콜 목표 1. 통신을 위해 규칙이 필요함을 이해한다. 2. 멀리있는 로봇 움직이기 게임을 이기기 위한 통신전략을 세울 수 있다. 3. 모둠별 협력을 통해 멀리 있는 로봇 움직이기 게임을 할 수 있다. 방법 협력 소요 시간 2차시 적정 연령 12세 관련 CT 데이터 표현, 알고리즘 선생님 지, 동영상 < 개요 > 준비물 어린이 여러분이 아프리카에 간다면 어떤 곤란한 점이 있을까요? 아마 대화가 안되서 힘들 것 같지요? 왜 대화가 안될까요? 서로 언어가 다르기 때문이겠죠. 또, 주의해야 할 점이 있습니다.. 아프리카의 마사이족을 만났을때 얼굴에 침을 뱉는다고 화를 내면 안됩니다. 이것은 반갑다는 인사입니다. 상대방에 반갑다고 인사하는데, 화를 내면 이상하겠죠. 사람들끼리도 원하는 것을 잘 전달하기 위해서는 서로간의 약속이 필요합니다. 멀리 떨어져 있는 컴퓨터끼리 대화하기 위해서는 무엇이 필요할까요? 약속이 필요합니다. 사람은 소리가 들리는 거리에서만 대화를 할 수 있지만 컴퓨터는 지구 반대편에 있는 수만대의 컴퓨터와 동시에 이야기 할 수 있지요. 이번 시간에는 멀리 떨어져 있는 컴퓨터들끼리 대화를 하기 위해 어떤 약속이 필요한지 알아 보고 실제로 컴퓨터가 되어 대화를 해 보도록 해요. 학생 광케이블, 광섬유, 바둑판, 바둑알, 레이져 포인터 172 CS Unplugged 11. 멀리 있는 로봇을 움직여 보자 - 네트워크 통신프로토콜 173
단계 소요 시간 요소 교수 활동 형태 자료 1 동기유발 활동 도입 5분 동기유발 목표 제시 원격 제어 로봇을 보고 물음에 답하기 - 로봇을 멀리서 어떻게 조정할 수 있을까요? - 로봇은 어떻게 사람이 내리는 명령을 이해하고 움직일 수 있을까요? - 통신을 위해 규칙이 필요함을 이해한다. - 멀리있는 로봇 움직이기 게임을 이기기 위한 통신전략을 세울 수 있다. - 모둠별 협력을 통해 멀리 있는 로봇 움직이기 게임을 할 수 있다. 전체 [문제 확인하기] - 심해 탐사 또는 자원채취 로봇을 원격으로 조정하는 뉴스 화면을 보고 할 문제를 알아 본다. 문제 상황 제시 - 멀리 있는 로봇을 움직이는 게임 상황을 이해한다. - 게임 상황을 이해하고 어떤 준비가 필요한지 발표 해본다. 20분 활동1 - 로봇이 움직여야하는 명령전송 - 명령을 이해하기 위한 이진수 변환표 등 모둠 활동 동영상, 활동지1 로봇이 움직이는 명령 이진수로 코딩해 보기 - 게임판을 보고 로봇의 이동 방법 알기 https://www.youtube.com/watch?feature=player_detailpage&v=fam98a7he2m 모둠별로 로봇을 위한 명령을 이진수로 코딩해 보기 - 사람이 탐승하지 않은 로봇을 멀리서 조정할 수 있는 이유 생각해 보고 말해본다. - 로봇은 어떻게 사람이 내리는 명령을 이해하고 움직일 수 있는 이유 생각해본다. 로봇 명령 전송 연습하기 - 모둠별로 신호를 보내는 쪽에서 위치를 정해서 전송하기 전송받은 후에 전개 30분 활동2 서로 위치를 비교해 본다. 로봇명령 전송 후 통신 규칙의 필요성 알기 - 로봇명령을 전송할 때 불편한 점이 무엇인가요? - 말을 하지 못하기 때문에 통신시작이나 끝났는지 알 수 없어요. - 신호를 놓쳤는데 다시 받을 때 어떻게 해야 할지 모르겠어요. - 신호를 받는 쪽도 레이져 포인터가 있어야 되요. 통신규칙도 이진수로 바꾸어 보기 - 0~9지의 4자리의 숫자입니다. 통신규칙을 정한 후에 다시 로봇 명령 전송 연습하기 - 모둠별로 전송규칙을 정한 후에 로봇 전송명령을 해본다. 통신규칙이 부족하면 다시 규칙을 추가 하도록 안내한다. 모둠 활동 레이져포인터, 광섬유, 활동지2, 바둑판, 장난감 로봇 2 문제 제시 1. 통신이 필요한 이유는 무엇일까요? 2. 통신을 할 때 여러 가지 규칙이 필요한 이유는 무엇일까요? 3. 통신에 필요한 규칙을 정하고 멀리 있는 로봇 조정하는 명령을 전송할 수 있는가요? 4. 모둠별 협력을 통해 로봇을 조정하는 명령을 전송하는 게임에서 이기기 위한 전략을 세울 수 있는가요? - 모둠별로 통신을 하면서 새로운 규칙을 탐색해 볼 수 있도록 한다. 모둠별로 멀리 떨어진 로봇 조정하기 게임을 위해 역할을 정해 본다. - 모둠별로 전송게임의 역할을 정해 본다. 모둠 30분 활동3 원격 로봇 제어 게임을 해본다. - 교사의 전송을 맡은 사람은 지령지를 받아 로봇전송명령을 만들고 명령을 활동 (4인 전송한다. 1조) - 전송은 사람은 최종 로봇의 위치와 방향을 지에 표시하여 가지고 온다. 게임 활동이 끝나고 토론해보기 - 게임에서 잘 할 수 있었던 이유는 무엇이었나요? 정리 2분 프로젝트 정리 - 게임에서 부족했던 점은 무엇이었나요? 통신을 할 때 규칙이 필요한 이유 말해 보기 전체 차시 예고 174 CS Unplugged 11. 멀리 있는 로봇을 움직여 보자 - 네트워크 통신프로토콜 175
3 주요 개념 및 용어 정리 4 자 활동 디지털 통신 프로토콜 통신 시스템은 신호를 멀리까지 왜곡 없이 보내고 받기 위한 시스템으로, 아날로그 통신 시스템과 디지털 통신 시스템으로 나눌 수 있습니다. 디지털 통신 시스템은 정보를 디지털이라는 방식으로 표현한 것일 뿐 아날로그 통신의 기술이 그대로 사용됩니다. 컴퓨터통신을 통해서 사용자는 다른 통신망과 컴퓨터로부터 다양한 자료와 정보를 제공받을 수 있는데, 전자우편으로 멀리 떨어진 곳에 편지를 보내기도 하고, 제품을 구입하기도 하고, 신문기사를 검색해서 구독하거나 프로그램을 받아볼 수도 있습니다. 그외에 전자회의를 통해서 회의를 하거나 대화방을 이용해서 멀리 떨어진 사람과 대화를 나눌 수도 있습니다. 앞으로는 특별하게 지정하지 않을 경우 이 글에서 컴퓨터통신이라고 할 경우 좁은 의미의 컴퓨터통신인 PC통신을 말하는 것으로 하겠습니다. 통신 프토토콜 프로토콜은 두 가지로 이루어져 있으며 물리적 측면과 논리적 측면으로 나뉩니다. ㆍ물리적 측면 : 자료 전송에 쓰이는 전송 매체, 접속용 단자 및 전송 신호, 회선 규격 등. ㆍ논리적 측면 : 프레임(Frame, 자료의 표현 형식 단위) 구성, 프레임 안에 있는 각 항목의 뜻과 기능, 자료 전송의 절차 등. ㆍ폐쇄적인 프로토콜 : 자사 장치들끼리 통신하기 위한 독자적인 통신 규약이며, 자세한 규격이 공개되어 있지 않아서 크래킹 위협에 상대적으로 안전합니다. (보기: IBM의 SNA, SDLC 프로토콜) ㆍ공개된 범용 프로토콜 : 여러 장치들에 쓰이는 널리 알려진 규격이며, 규격이 널리 공개되어 있기 때문에 컴퓨터와 네트워크 크래킹에 취약한 편입니다. (보기: 인터넷의 TCP/IP) < 활동 1 > 로봇에게 전송할 명령 만들기 - 활동 시간 : 20분 - 활동 개요 게임 동영상을 통해 해결해야할 문제를 파악합니다. 문제를 해결하기 위해서는 로봇에게 전송해야 할 명령을 이진수로 바꾸어야 할 필요성을 알고 이진수로 변환합니다. - 준비물 : 활동지1, 게임 동영상 - 활동 안내 1. 동영상을 통해 게임을 하기 위해 필요한 것들을 알아봅니다. ㆍ학생들이 어떤 활동을 하는지 말해봅니다. ㆍ신호를 받은 학생들을 하는지 말해봅니다. ㆍ로봇을 이동시킨 후에 어떻게 하는지 말해봅니다. = 학생들은 광섬유를 통해 빛을 보내 명령을 전송하고 있습니다. = 신호를 해석해서 로봇을 이동시키고 있습니다. = 로봇의 최종 위치를 알아낸후 선생님께 알려 줍니다. 2. 로봇 명령을 이진수로 바꿔봅니다. ㆍ 로봇 명령을 이진수로 바꾸어야 하는 이유를 알아 봅니다. = 레이져로 보낼 수 있는 신호는 빛을 보내는 것과 보내지 않는 것 두 종류가 있기 때문입니다. ㆍ 로봇 명령을 이진수로 바꾸어 봅니다. = 로봇은 전진, 우회전, 좌회전 3가지 기능만 할 수 있다. 또한 몇칸 앞으로 전진하기 위해서는 숫자도 전송할 수 있습니다. 176 CS Unplugged 11. 멀리 있는 로봇을 움직여 보자 - 네트워크 통신프로토콜 177
로봇 명령 이진기호 약속 < 활동 2 > L 1010 왼쪽으로 90 도 돌기 통신 약속 정하기 R H X 1 2 3 4 5 6 7 오른쪽으로 90도 돌기 앞으로 X 만큼 가기 - 활동시간 : 20분 - 활동 개요 앞에서 정한 로봇 명령을 모둠별로 전송 연습을 합니다. 전송연습을 하면서 자연스럽게 통신 약속(프로토콜)이 필요함을 알게 합니다. 이때 필요한 통신 약속은 학생들이 탐색하게 합니다. - 활동 준비물 모둠별 광섬유 10m, 레이져 포인터, 활동지2, 로봇이동판, 로봇 모형 장난감 - 활동 안내 1. 로봇 명령 전송 연습합니다. - 모둠별로 신호를 보내는 쪽에서 위치를 정해서 전송하기 전송받은 후에 서로 위치를 비교해봅니다. 2. 로봇명령 전송 후 통신 규칙의 필요성 알아 봅니다. 8 9 3. 모둠별로 바꾼 이진수를 평가해봅니다. - 빠짐없이 이진수를 바꾸었는지 살펴 보도록 합니다. 지도 Tip ㆍ로봇명령을 전송할 때 불편한 점이 무엇입니까? = 말을 하지 못하기 때문에 통신시작이나 끝났는지 알 수 없습니다. = 신호를 놓쳤는데 다시 받을 때 어떻게 해야 할지 모르겠습니다. = 신호를 받는 쪽도 레이져 포인터가 있어야 합니다. 3. 통신규칙도 이진수로 바꾸어 봅니다. - 활동을 통해 필요한 통신 약속을 모둠별로 알아봅니다. - 통신 약속을 이진수로 바꾸어 봅니다. - 필요한 신호의 개수를 세어 봅니다. 1. 게임상황을 정확하게 이해하여 해결해야 할 문제를 알게 합니다. 2. 로봇이 이동이 복잡하면 전송해야할 명령이 많아지게 때문에 어려워 질 수 있다. 그러므로 활동에서 제시한 이상의 명령은 도입하지 않습니다. 전송을 위한 규칙 이진기호 약속 통신시작 수신완료 178 CS Unplugged 11. 멀리 있는 로봇을 움직여 보자 - 네트워크 통신프로토콜 179
< 활동 3 > 4. 통신규칙을 정한 후에 다시 로봇 명령 전송 연습해봅니다. - 모둠별로 전송규칙을 정한 후에 로봇 전송명령을 해봅니다. 5. 통신규칙이 부족하면 다시 규칙을 추가 하도록 안내합니다. - 모둠별로 통신을 하면서 새로운 규칙을 탐색해 볼 수 있도록 합니다. - 지를 이용해 활동을 진행합니다. 멀리 있는 로봇에 명령 전달하기 게임하기 - 활동 시간 : 40분 - 활동 개요 이 활동은 역활을 정해서 모둠끼리 명령을 전송해 보는 활동입니다. 명령을 전송하는 사람과 받는 사람 받고 움직이는 로봇등의 역활을 정해 로봇을 움직이는 게임을 해 봅시다. - 준비물 : 모둠별 광섬유 10m, 레이져 포인터 2개, 로봇위치를 표시할 판, 메모지, 활동지3 지도 Tip 1. 통신규칙이 필요함을 알기 위해 말, 동작등을 하지 않도록 규칙을 정한다. 이런 제한을 통해 통신의 규칙(프로토콜)의 필요함을 알게 합니다. 2. 통신프로토콜을 주지시키기 보다는 필요한 통신 약속을 만들고 왜 그런 약속이 필요한지 알아가면서 만들어 봅니다. 3. 통신 프로토콜을 자연스럽게 학생들이 발견하게 한다. 이때 프토토콜, ACK 등의 통신 프로토콜 용어 등은 도입하지 않습니다. 4. 이진수의 광통신과는 달리 양쪽에서 통신해야 함을 이해시킵니다. 5. 로봇명령과 통신 프로토콜을 포함하여 16개가 넘지 않도록 합니다. - 활동 안내 1. 모둠별로 멀리 떨어진 로봇 조정하기 게임을 위해 역할을 정해 봅니다. - 모둠별로 전송게임의 역할을 정해 봅니다. 이름 역할 2. 원격 로봇 제어 게임을 해봅니다. - 교사의 전송을 맡은 사람은 지령지를 받아 로봇전송명령을 만들고 명령을 전송합니다. 레이저 포인터 1. 교사는 로봇의 위치를 신호 보내는 사람에게 알려 준다. 2. 명령은 한번에 하나씩만 알려 준다. 명령카드를 준비하여 한 장씩 준다. 1. 신호를 받은 후에 이것을 명령으로 바꾸어 로봇의 위치를 이동시킨다. 2. 명령을 2진수로 변환하여 레이저 포인터를 이용하여 신호를 보낸다. 1. 로봇의 위치를 이동시키기 위한 명령을 만든다. 2. 명령을 2진수로 변환하여 레이저 포인터를 이용하여 신호를 보낸다. 180 CS Unplugged 11. 멀리 있는 로봇을 움직여 보자 - 네트워크 통신프로토콜 181
5 자용 워크북 (활동지, 활동 자료) - 전송은 사람은 최종 로봇의 위치와 방향을 지에 표시하여 가지고 옵니다. 활동지 1 - 로봇에게 전송할 명령 만들기 1. 로봇 명령 이진명령으로 바꾸어 보세요. 로봇 명령 이진기호 약속 L 1010 왼쪽으로 90 도 돌기 R 오른쪽으로 90도 돌기 H X 앞으로 X 만큼 가기 1 3. 게임을 규칙을 준수 할 수 있도록 주지시킵니다. 4. 게임 활동이 끝나고 토론해보기 - 보물 상자의 비밀 번호를 빨리 여는데 가장 중요한 것이 무엇이었는지 발표 해 보게 합니다. - 비밀 번호를 전송하는 것과 실제 컴퓨터 통신과 어떤 차이점이 있고, 공통점이 있는지 말해 봅니다. 2 3 4 지도 Tip 1. 게임 시작 전에 게임규칙을 다시 한 번 주지시킵니다. 2. 신호 보내기 연습을 사전에 충분히 할 수 있도록 안내합니다. 3 신호 보내기 게임을 곧바로 시작하고 워밍업으로 연습게임을 몇 번하는 것도 좋은 방법입니다. 4. 광케이블의 길이는 10미터 이상은 되도록 합니다. 5. 상품을 적절한 것을 준비하여 학생들의 적극성을 끌어 낼 수 있도록 합니다. 5 6 7 8 9 182 CS Unplugged 11. 멀리 있는 로봇을 움직여 보자 - 네트워크 통신프로토콜 183
6 선생님용 참고자료 활동지 2 - 통신 약속 정하기 1. 로봇에게 명령을 전송하기 위한 규칙을 정해 보세요. 전송을 위한 규칙 이진기호 약속 통신시작 0000 활동지 3 - 멀리 있는 로봇에 명령 전달하기 게임하기 7 해답과 힌트 1. 게임을 위한 역할을 정해 보세요. 정답 - 활동지 2 이름 역할 전송을 위한 규칙 이진기호 약속 통신시작 0000 통신 개시 수신완료 0001 신호를 다 받았음 통신완료 1111 전체 명령 전송 완료 재전송 1110 다시 명령을 보내도록 한다. 184 CS Unplugged 11. 멀리 있는 로봇을 움직여 보자 - 네트워크 통신프로토콜 185
놀이로 배우는 컴퓨터 과학 12. 보물섬 찾기 - 유한 오토마타 지도안 12. 보물섬 찾기 - 유한 오토마타 목표 1. 유한 오토마타의 개념을 이해할 수 있다. 2. 한정된 입력을 가지고 원하는 출력을 만들 수 있다. 방법 게임 소요 시간 65분 적정 연령 12세 이상 관련 CT 알고리즘과 절차 선생님 게임 활동지 < 개요 > 준비물 컴퓨터 프로그램이 문서 안에서 문자나 단어, 혹은 다른 컴퓨터 프로그램의 텍스트 같은 기호 순서(sequence)를 종종 처리할 필요가 있습니다. 컴퓨터 과학자는 이런 작업을 처리하기 위해서 유한상태 오토마타를 사용합니다. "기호는 문서 안의 문자나 단어 또는 프로그램 문장", "정수는 0~ 9까지 숫자가 늘어선 것", "실수는 일정 숫자 순서 뒤에 소수점이 1개 있고 다시 숫자가 늘어선 것" 같이 단어나 기호 문자열을 컴퓨터가 인식해야 합니다. 유한상태 오토마타는 명령어 집합을 따라서 컴퓨터가 단어나 기호 문자열을 인식하는지 확인합니다. 유한상태 오토마타에 상응하는 보물지도를 사용하여 활동을 수행합니다. 학생 필기도구 186 CS Unplugged 12. 보물섬 찾기 - 유한 오토마타 187
단계 소요 시간 요소 교수 활동 형태 자료 해적섬에서 이동하는 경로 그리기 사전 준비 사항 동기유발 - 칠판에 3개의 섬(해적섬, 난파만, 망자의섬)을 붙이고 각 섬으로 이동할 수 도입 5분 있는 경로를 그리는 방법 설명 전체 섬 카드 목표 제시 [활동지 1, 2, 3 섬 안내 카드] 안내자 세우기 - 안내자 7명을 선별하고 안내자들에게 각각 섬이름과 안내자카드를 전달 - 적당한 위치마다 안내자 세우기 보물섬 게임 진행하기 30분 활동1 - 학생이 한명씩 해적섬에서 시작하여 안내자에게 A 또는 B를 말하여 A배 게임 게임 활동지1 또는 B배로 연결된 섬으로 이동 - 학생은 이동한 경로를 지도에 표시 [활동지1] [활동지2] [활동지3] [섬 안내 카드] - 위 행동을 최종 목적지인 보물섬에 도착할 때 까지 계속 전개 15분 활동2 - 보물섬을 찾으면 다음 학생이 위 활동을 새롭게 시작 보물섬 찾기2 게임 진행하기 - 보물섬을 단순화하여 그리는 방법에 대하여 안내 - 학생들이 2인 1조로 짝 만들기 - 자신만의 경로 만들기 - 상대방이 만든 경로를 섬마다 이동하면서 최종 목적지로 이동 모둠 활동 (2인 1조) - 활동지 1,2,3은 학생 수 만큼 준비합니다. - 섬 안내 카드는 1장만 출력합니다. - 섬 이름을 크게 출력하여 섬 안내자 가슴에 붙입니다. 수수께끼 동전 던지기 게임 10분 활동3 - 학생들에게 활동지3을 나눠주기 - 주어진 활동지의 질문을 이해하고 특정 패턴 찾기 전체 활동 - 패턴을 지도로 만들기 정리 5분 프로젝트 정리 활동 정리하기 - 보물섬으로 이동하는 경로 말하기 - 최단 경로와 최장 경로 말하기 전체 188 CS Unplugged 12. 보물섬 찾기 - 유한 오토마타 189
1 동기유발 활동 2 문제 제시 - 해적섬에서 이동할 수 있는 경로 그리기 섬에서 섬으로 이동할 수 있는 배 A, B가 있습니다. 여행자는 시작섬인 해적섬에서 A배 또는 B배 중 오직 한배를 선택할 수 있습니다. 여행자가 배를 선택하면 안내자는 A배를 선택하면 보물섬으로 이동하라고 알려주고, B배를 선택하면 무인도로 이동하라고 알려줍니다. 여행자는 해당 섬으로 이동하여 계속 A배 또는 B배를 선택하면서 최종 목적지로 이동하는 게임입니다. 예를 들어 해적섬에서 시작하여 A배를 선택하여 보물섬(난파만)으로 이동하고 보물섬(난파만)에서 다시 A배를 선택하면 해적섬으로 이동하게 됩니다. 이번에는 B배를 선택하면 망자의 섬으로 이동하여 꼼짝할 수 없이 갇히게 됩니다. 이 경로를 그린 최종 지도는 아래와 같습니다. 3 1. 해적섬에서 망자의 섬으로 가는 방법은 몇가지가 있나요? 2. 해적섬에서 망자의 섬으로 가는 가장 빠른 방법은 무엇일까요? 3. 해적섬에서 망자의 섬으로 가는 가장 느린 방법은 무엇일까요? 주요 개념 및 용어 정리 [여행자가 가지고 시작하는 지도] [여행자가 최종 그린 지도 예] 오토마타 기계 내부의 구성이나 동작에 대한 세부 사항이 무시되고 입력과 출력에 대한 사항만이 명시되는 추상적인 기계입니다. 유한 상태 기계(finite-state machine, FSM) 또는 유한 오토마톤(finite automaton, FA; 복수형: 유한 오토마타 finite automata)는 컴퓨터 프로그램과 전자 논리 회로를 설계하는데에 쓰이는 수학적 모델입니다. 간단히 상태 기계라고 부르기도 합니다. 유한 상태 기계는 유한한 개수의 상태를 가질 수 있는 오토마타, 즉 추상 기계라고 할 수 있습니다. 이러한 기계는 한 번에 오로지 하나의 상태만을 가지게 되며, 현재 상태(Current State)란 임의의 주어진 시간의 상태를 칭합니다. 이러한 기계는 어떠한 사건(Event)에 의해 한 상태에서 다른 상태로 변화할 수 있으며, 이를 전이(Transition)이라 합니다. 특정한 유한 오토마톤은 현재 상태로부터 가능한 전이 상태와, 이러한 전이를 유발하는 조건들의 집합으로서 정의됩니다. 해적섬 난파만 망자의 섬 A 해적섬 A B 난파만 망자의 섬 B 망자의 섬 망자의 섬에 들어온 배는 외부로 향해불가! 망자의 섬 난파만 해적섬 <tip> 3개의 섬을 가지고 경로 그리기를 진행하되 망자의 섬은 외부로 갈수 없다가 아니고 자기 자신으로 오는 B와 다른곳으로 가는 A로 변형해서 경로를 그리는 방법을 이해시키는 것이 더 좋습니다. 그리고 섬 이름을 실제 활동에서 사용하는 섬이 아닌 다른 섬으로 바꿔야합니다. 하나 더 추가하여 4개의 섬으로 하는 방법도 고려해 봅니다. 190 CS Unplugged 12. 보물섬 찾기 - 유한 오토마타 191
4 자 활동 < 활동 1 > 보물섬 찾기 1 - 활동 시간 : 20분 - 활동 개요 7개의 섬 지도에서 해적섬을 시작으로 보물섬까지를 경로를 그리면서 찾아가는 게임으로 보물섬으로 가는 다양한 경로를 확인할 수 있습니다. 3. 여행자(학생) 1명씩 해적섬에서 시작하여 A배 또는 B배를 선택함으로써 여행을 시작하며 섬을 이동하는 경로를 자신이 가지고 있는 지도에 표시합니다. 활동 예) 1) 해적섬에서 A를 선택-> 난파만 이동 2) 난파만에서 B를 선택->망자의섬으로 이동 난파만 난파만 망자의 섬 B A A - 준비물 : 활동지1, 필기도구 - 활동 안내 해적섬 해적섬 1. 섬 안내자 7명을 선발하여 안내자들마다 섬 안내자 카드 한 개씩을 나눠줍니다. 섬 안내자는 섬 안내카드 뒷면에 A배와 B배 중 선택했을 때 이동할 섬이 표시되어 있기에 다른 사람이 볼 수 없도록 주의합니다. [안내자 카드] 4. 보물섬을 찾을 때까지 현재 섬에서 A배 또는 B배를 선택하고 이동을 반복합니다. 활동 예) -보물섬까지의 활동을 마친 여행자 지도의 예 A-B-B-A-B-A-B 난파만 B 망자의 섬 보물섬 B A B 2. 선 안내자를 교실 내부나 외부에서 적절한 공간에 무작위로 배치합니다. 해적섬 A 반란자의 섬 A 밀수업자의 만 머스킷총 언덕 B 난파만 망자의 섬 보물섬 5. 보물섬을 찾으면 다른 여행자가 시작하도록 합니다. 해적섬 머스킷총 언덕 반란자의 섬 밀수업자의 만 지도 Tip 1. 보물섬을 찾을 여행자는 한번에 한명만 한정하여 미리 목적지를 듣지 못하도록 해야 합니다. 2. 빨리 찾은 여행자의 경우는 다른 경로를 찾아보게 합니다. 192 CS Unplugged 12. 보물섬 찾기 - 유한 오토마타 193
< 활동 2 > 보물섬 찾기 2 - 활동시간 : 20분 - 활동 개요 활동1과 같이 목적지까지의 경로를 그리는 방식은 같으나 학생들이 지도를 직접 만들고 상대 학생이 경로를 찾는 게임입니다. - 활동 준비물 : 활동지2 - 활동 안내 1. 2인 1조로 짝을 만들고 게임활동지를 한 장씩 각자 받습니다. 2. 지도 그리는 방법에 대하여 설명합니다. 섬은 1, 2, 3과 같이 숫자를 포함한 원으로 표현하고, 최종 보물섬은 이중원으로 표시합니다. 1차 활동지를 그리면 아래와 같습니다. B 2 B A A 1 B A 4 3 7 B A A 6 B 5 A 3. 활동지 윗면에는 본인만의 맵을 만듭니다. < 활동 3 > 수수께끼 동전 게임 - 활동 시간 : 10분 - 활동 개요 동전 던지기 결과를 통하여 얻을 수 있는 패턴으로 다음 번에 앞면이 나올지 뒷면이 나올지 예측할 수 있습니다. - 준비물 : 동전, 활동지3 - 활동 안내 1. 패턴을 찾는 방법에 대하여 설명합니다. 1) 이중 원(섬2)에서 종료할 수 있는 방법은 AB, BABAA, AAABABA 등입니다. 즉, 홀수개 일 때 A를 가질 때만 이중원에 도착할 수 있습니다. B 1 2) A와 B가 교대로 나타나는 경우에만 이중원에 도착할 수 있습니다. B 1 B A A 3 A B A 2 2 A B 1 2 3 4 6 7 B 1 A B 2 A B 3 ( 맵 만든 예 ) A B 4 A A 6 7 B 3) 적어도 한 개의 B가 포함되어야 이중원에 도착할 수 있습니다. A A B 1 2 B 5 B A 5 2. 활동지의 동전이 나온 결과를 이용하여 예측 가능한 패턴을 찾아봅시다. 3. 찾은 패턴을 이용하여 지도로 그려봅니다. 4. 아래 면은 상대방이 만든 지도에서 목적지까지의 경로를 찾아봅니다. 지도 Tip 1. 반드시 섬 7이 목적지일 필요는 없습니다. 즉, 섬3이 목적지일 수 있습니다. 2. 갈 수 있는 경로는 2개로 한정하며 그 중 하나는 자신을 선택할 수도 있습니다. 단 목적지까지 갈 수 있는 경로는 반드시 존재해야 합니다. 지도 Tip 1. 패턴을 찾는 때 이중원에서 끝내지 않고 다시 이동할 수 있다고 알려 줍니다. 즉, 최종 이중원에서 끝났을 경우에 목적지에 도착한 것입니다. 194 CS Unplugged 12. 보물섬 찾기 - 유한 오토마타 195
5 자용 워크북 (활동지, 활동 자료) 활동지 1 - 보물섬 찾기 1 활동지 1 - 보물섬 찾기 1 [학생 활동지] - 보물섬에 가는 길을 찾아보세요. [섬카드] 해적섬 난파만 머스킷총 언덕 망자의 섬 A 난파만 A 머스킷총 언덕 A 해적섬 A 머스킷총 언덕 B 머스킷총 언덕 B 망자의 섬 B 반란자의 섬 B 난파만 난파만 망자의 섬 보물섬 머스킷총 언덕 난파만 해적섬 밀수업자의 만 반란자의 섬 밀수업자의 만 해적섬 반란자의 섬 A B 밀수업자의 만 망자의 섬 A B 해적섬 머스킷총 언덕 밀수업자의 만 반란자의 섬 망자의 섬 보물섬 보물섬 축하합니다! 보물섬 196 CS Unplugged 12. 보물섬 찾기 - 유한 오토마타 197
활동지 1 - 보물섬 찾기 2 활동지 3 - 수수께끼 동전 게임 [학생 활동지] - 본인만의 보물섬 길을 만들자. 2 7 한 친구가 인터넷에서 게임을 다운로드 했습니다. 로봇이 동전을 던지면, 앞면이 나올지 뒷면이 나올지를 맞추는 게임이었습니다. 처음에 무척이나 간단해 보였고, 적어도 50대50 가능성이 있다고 생각했습니다. 하지만, 잠시 뒤에 의심스러운 생각이 들었습니다. 동전 던지기에 특정한 패턴이 있는 것처럼 보였습니다. 인간이 게임을 이길 수 없게 게임이 조작되었나? 분명 아닙니다. 게임을 조사하기로 마음먹고, 조(Joe)는 게임에서 동전 던지기 결과를 적기 시작했고, 다음이 동전던지기 결과 찾아낸 것입니다. (h = heads 앞면, t=tails 뒷면) 1 3 4 6 h h t h h t h h h t t h h h h t t h t t t h h h h h t h h h t t t h h h t t t h h h h h h t t h t t t t t h t t h t t t h h h t t h h h t h h h h h h h h h t t h h h t t t t h h h h h t t t t t t t 5 찾은 패턴을 이용하여 지도를 만들어보세요. (힌트 : 4개의 섬을 이용합니다.) 찾은 패턴은? [학생 활동지] - 상대편의 지도에서 보물섬 가는 길 찾기. 2 7 1 4 3 6 5 198 CS Unplugged 12. 보물섬 찾기 - 유한 오토마타 199
6 선생님용 참고자료 7 해답과 힌트 정답 - 활동 1 컴퓨터 과학 핵심 개념 [학생 활동지] - 보물섬에 가는 길을 찾아보세요. 컴퓨터 과학에서 컴퓨터가 문자나 이벤트 순서(sequence)를 처리하려고 유한상태 오토마타(finitestate automata)를 사용합니다. 가장 간단 사례로 전화 자동응답 서비스가 있습니다. 전화를 걸면 자동응답 시스템에서 "무슨 서비스를 원한다면 1번, 다른 무언가를 원한다면 2번, 상담원과 직접 통화를 원하시면 3번 버튼을 누르십시오"라는 메시지를 들을 수 있습니다. 전화 숫자 버튼을 누르는 것은 전화 저편에 있는 컴퓨터 유한상태 오토마타에 입력을 주는 것입니다. 컴퓨터와 대화는 간단할 수도, 매우 복잡할 수도 있습니다. 유한상태 오토마타에는 특유의 무한반복이 존재하기 때문에, 계속해서 동일한 대화를 반복하게 됩니다. 만약 이런 일이 발생한다면, 분명한 시스템 설계에 오류가 있으며, 전화를 거신 여러분은 분명 매우 당황스러울 것입니다. 또 다른 사례는 현금 자동인출기계에서 현금을 인출하는 경우입니다. 현금 자동인출기계 프로그램은 여러분들로 하여금 이벤트 순서를 발생시킬 것입니다. 프로그램 내부에, 모든 가능한 순서가 유한-상태 오토마타로 표현되어 있습니다. 사용자가 키를 누를 때마다 다음 상태로 자동적으로 이동하게 됩니다. 몇몇 상태는 컴퓨터에 지시사항을 담고 있습니다. 예를 들어, "현금 만원을 지불하세요", "명세표를 출력하세요", "현금카드를 꺼내세요". A 난파만 B B 망자의 섬 B B 보물섬 몇몇 컴퓨터 프로그램은 페이지 97와 같은 지도를 사용하여 국어나 영어 문장을 정말 잘 다룹니다. 이들 컴퓨터는 문장을 잘 만들어 낼 뿐 아니라 사용자가 입력하는 문장을 잘 처리하기도 합니다. 1960년대 컴퓨터 과학자가 사람과 대화하는 "Eliza", 후에 "Eliza Dolittle"라는 프로그램을 만들었습니다. 영화 '마이 페어 레이디'에서 오드리 헵번이 연기한 꽃 파는 소녀 이름이기도 합니다. 이 프로그램은 마치 자신이 심리치료 전문가처럼 행사하며 "여러분의 가족에 대해서 알려주세요", "아무쪼록 계속하십시오" 같이 대화를 이끌어 가는 질문을 곧잘 했다. 사실 이 컴퓨터는 아무것도 이해를 하지 못하지만, 그럴듯하게 보였고, 몇몇 사람은 자신이 사람 심리치료 전문가와 대화하고 있다고 생각하기도 했습니다. 해적섬 A A A 밀수업자의 만 컴퓨터가 자연어를 이해하는 데는 서투르지만, 인공언어를 처리하는 것은 꽤 잘 합니다. 프로그래밍 언어는 중요한 인공언어 중 하나입니다. 컴퓨터는 유한상태 오토마타를 사용하여 프로그램을 읽어서 컴퓨터가 "실행할"" 수 있는 컴퓨터 명령어로 변환합니다. B A B 반란자의 섬 A 머스킷총 언덕 200 CS Unplugged 12. 보물섬 찾기 - 유한 오토마타 201
정답 - 활동 3 * 수수께끼 동전 게임 사용 지도 h 2 h h 1 3 t t 4 t 이 지도를 따라가면, 동전을 세번 던질 때마다 처음 두번은 필히 같은 면을 가지는 것을 알 수 있다. 202 CS Unplugged
놀이로 배우는 컴퓨터 과학 13. 진군명령 - 프로그래밍 언어 지도안 13. 진군명령 - 프로그래밍 언어 목표 1. 프로그래밍언어의 성격을 알 수 있다. 2. 놀이를 통하여 프로그래밍을 체험하고 여러 가지 문제해결 방식을 알 수 있다. 방법 협동 소요 시간 50분 적정 연령 10세 이상 사진 이미지가 숫자로 분해되어서 저장장치에 저장되고, 모니터 화면으로 뿌려지면서 사진이 완성되는 모습 관련 CT 자료 분석, 자료 표현, 시뮬레이션 < 개요 > 선생님 준비물 학생 프리젠테이션 자료, 활동지 활동지, 주사위, 보드게임판 컴퓨터는 제한된 명령어 어휘로 구성된 "언어"로 프로그래밍됩니다. 프로그래밍에 대한 가장 힘든 부분 중의 하나는 컴퓨터가 말도 안되는 결과를 생성하더라도, 지시사항을 글자 한자까지도 지킨다는 것입니다. 이번 활동을 통해서 여러분들은 프로그래밍의 이러한 점을 경험할 것입니다. 203 CS Unplugged 13. 진군명령 - 프로그래밍 언어 204
단계 소요 시간 요소 교수 활동 형태 자료 명령대로 따라하기 사전 준비 사항 - 설명하는 것 따라하기 동기유발 - 자리에서 일어서기, 팔들기, 손흔들기, 머리때리기 등 도입 5분 - 컴퓨터는 일련의 명령에 따라 그대로 작동하며, 설령 명령이 이치에 맞지 않더라도 명령대로 그대로 따라한다는 사실 알기 전체 [활동지, 종이컵] 목표 제시 프로그래밍언어의 성격을 알 수 있다. 놀이를 통하여 프로그래밍을 체험하고 여러 가지 문제해결 방식을 알 수 있다. - 언플러그드 활동을 하기 위하여 교사와 학생이 수업 전에 미리 준비해야 하는 사항을 제시합니다. (있을 경우만 제시) 컴퓨터와 프로그래머 10분 활동1 - 컴퓨터와 프로그래머의 역할로 나누어 역할 놀이하기 - 프로그래머 역할 : 주어진 그림 설명하기 - 컴퓨터 역할 : 그림을 보지 않고 그리기 - 순서대로 프로그래머 역할하기 - 약속된 정확한 그림을 그리기위해서 보다 정확한 명령을 내려야한다는 모둠 활동 (4인 1조) 그림자료 사실알기 전개 10분 활동2 순차적 컵쌓기 - 로봇과 프로그래머 역할로 나누기 - 프로그래머가 되어 화살표로 명령서 작성하기 - 로봇이 되어 명령서를 읽어 실행하기 - 순차적실행의 의미 알기 모둠 활동 (2인 1조) 종이컵, 명령어, 작성 용지 나도 프로그래머 - 로봇과 프로그래머 역할로 나누기 모둠 20분 활동3 - 종이컵으로 다양한 형태 만들기 - 활동지를 이용하여 명령문 작성하기 활동 (2인 종이컵, 활동지3 - 로봇역할의 학생이 명령문을 해석하여 그대로 실행하기 1조) - 결과를 서로 비교해보기 프로그래밍 언어란? 컴퓨터가 작동하기 위한 기본적인 명령체계이다. 정리 5분 프로젝트 정리 활동의 핵심원리 - 순차실행에 대해 이해하기 - 함수명령에 대해 이해하기 전체 - 반복문에 대해 이해하기 - 가정문에 대해 이해하기 205 CS Unplugged 13. 진군명령 - 프로그래밍 언어 206
1 동기유발 활동 4 자 활동 명령대로 따라하기 1) 교사는 미리 명령문을 준비합니다.(자리에서 일어서기, 팔들기, 손흔들기, 머리때리기 등) 2) 교사는 명령어를 순서 없이 하나씩 꺼내서 칠판에 붙입니다. 3) 학생들은 칠판에 붙어 있는 명령어를 하나씩 실행해봅니다. 4) 이러한 결과가 나오게 된 이유에 대하여 이야기합니다. < 활동 1 > 컴퓨터와 프로그래머 - 활동 시간 : 10분 - 활동 개요 2 문제 제시 이 활동은 학생들이 컴퓨터와 프로그래머의 역할로 나누어서 역할 놀이를 해봄으로써, 컴퓨터는 일련의 명령에 따라 그대로 작동된다는 사실을 알아보는 활동입니다. 4인이 모둠이 되어 순서대로 돌아가며 설명하고 그림을 그려보도록 합니다. - 준비물 : 활동지1 - 활동 안내 1. 4명이 모둠을 만들고 프로그래머역할을 정합니다. 1. 컴퓨터는 어떻게 원하는 결과물을 얻어 낼 수 있을까요? 2. 컴퓨터가 작동되려면 무엇이 필요할까요? 3. 컴퓨터 명령어를 이용한 놀이에서 승리하기 위해서는 어떻게 해야 할까요? 2. 프로그래머 역할을 맡은 학생은 주어진 그림을 최대한 자세히 설명합니다. 3. 컴퓨터 역할을 맡은 학생들은 프로그래머가 설명한 그림을 그립니다. 4. 학생들은 명령을 정확하게 이해하기 위한 어떤 질문도 할 수 없습니다. 5. 그림이 완성되면 서로의 그림을 비교하여 봅니다. 6. 한 개의 그림에 대한 설명이 끝나면 프로그래머역할을 순서대로 교체해서 실시합니다. 3 주요 개념 및 용어 정리 지도 Tip 컴퓨터는 프로그램(Program)이라고 불리는 명령 목록에 따라 동작합니다. 어떤 언어를 사용하든지, 프로그래머는 컴퓨터에 실행시키고자 하는 것을 정확하게 전달하는데 능숙해야 합니다. 인간과 달리, 컴퓨터는 터무니없는 것일지라도 지시명령문의 글자 그대로 수행합니다. 컴퓨터과학 분야에 있어 프로그래밍언어의 등장은 다양한 언어를 개발하기 위한 노력으로써 대단히 중요한 의미를 갖습니다. 프로그래밍언어는 기계어만을 이해하는 컴퓨터와 자연어를 구사하는 인간 사이의 의사소통 수단으로 작용하기 때문입니다. 또한, 프로그래밍언어는 프로그래밍의 방법에 큰 영향을 주며, 컴퓨터에 대한 이해와 활용에 매우 큰 영향을 끼쳐 왔으며, 컴퓨터 하드웨어의 발전과 더불어 계속하여 발전하여 왔습니다. 1.주어진 활동지의 점(좌표)을 이용하여 설명을 하면 보다 정확하게 미션을 수행할 수 있습니다. 2. 설명하는 순서는 프로그래머 역할을 한 학생이 자유롭게 할 수 있습니다. 3. 활동이 끝난 후 서로의 그림을 비교하여 보며 정확한 그림을 그리기 위해서는 어떻게 해야하는지에 대해 토의합니다. 207 CS Unplugged 13. 진군명령 - 프로그래밍 언어 208
< 활동 2 > 순차적 컵쌓기 - 활동 시간 : 10분 - 활동 개요 이 활동은 컴퓨터와 프로그래머의 역할로 나누어 프로그래머가 작성한 명령서를 이용하여 명령대로 컵을 쌓는 활동을 통하여 순차적실행이라는 프로그래밍 언어의 특성에 대하여 알아가는 활동입니다. - 준비물 : 종이컵, 활동지2 - 활동 안내 1. 프로그래머역할의 학생과 컴퓨터역할의 학생을 구분합니다. 2. 프로그래머 역할을 맡은 학생은 활동지를 보고 아래의 6개의 기호만 사용하여 명령서를 작성합니다. 3. 로봇역할의 학생은 프로그래머역할의 학생이 작성한 명령서를 보면서 컵을 쌓아올립니다. 4. 로봇을 맡은 사람이 화살표를 특정한 움직임으로 파악해서 다음과 같은 형태로 컵을 배열합니다. 예) < 활동 3 > 나도 프로그래머 - 활동 시간 : 15분 - 활동 개요 이 활동은 친구들과 함께 놀며 순차, 반복, 변수와 같은 프로그래밍의 핵심 원리를 배우는 활동입니다. 이 활동을 통해서 학생들은 알고리즘적 사고를 통한 논리력과 문제해결력을 향상 시킬 수 있습니다. - 준비물 : 종이컵, 명령어판 - 활동 안내 1. 선생님은 명령어판과 종이컵을 준비합니다. 2. 2명이 한 모둠이 되어 프로그래머 역할과 로봇역할로 순서를 정합니다. 3. 프로그래머 역할의 학생이 먼저 종이컵을 쌓은 후 명령어를 작성합니다. 4. 로봇의 역할을 하는 학생은 명령어판에 적혀진 규칙을 정확하게 이해하고 실행하도록 합니다. 5. 프로그래머는 주어진 화살표 외에 다른 기호에 대한 약속을 선언하고 명령어를 작성할 수 있습니다. 6. 칸막이를 설치하여 결과물을 나중에 비교하도록 합니다. 7. 이 활동을 통해 프로그래밍의 기초 개념인 순차, 반복, 함수 의 개념을 배울 수 있습니다. 8. 프로그램을 작성하는 사람은 명령어의 의미를 명확하게 설명해 주도록 합니다. - 기타 : 활동 예시 <기본 배치> 로봇<컵을 옮긴 모습> 프로그래머<명령어> 1 2 3 4 5. 활동지를 통해 역할을 바꾸어가며 놀이를 하여 봅시다. - 기타 : 명령어의 의미 파악 A B 컵 집어 올리기 컵 내려놓기 C 오른쪽 옆으로 컵 1/2칸이동 왼쪽 옆으로 컵 1/2칸 이동 컵을 세우세요 왼쪽으로 90도 회전 오른쪽으로 90도 회전 명령어 컵을 엎으세요 컵사이에 컵을 놓으세요 < 명령어 작성판 > 지도 Tip 1. 종이컵의 기본 모양은 엎어진 모양이며, 옆과 위로만 움직입니다. 2. 명령어 부분에 대한 해석은 다음과 같습니다. 첫 줄 (컵을 집어든다), (컵을 든채 오른쪽으로 컵한개 크기만큼 이동), (컵내려놓기), (왼쪽으로 컵한개 크기만큼 이동, 즉 컵이 놓인 곳으로 돌아가게하는 명령어입니다.) 3. 두 번째 줄 명령어 는 (4) (4)로 표시할 수 있습니다. 이를 통해 학생들은 함수의 필요성을 자연스럽게 느끼게 됩니다. 4. 반복되는 명령어가 길어질수록 함수는 훨씬 강력한 효과를 발휘합니다. 5. 로봇역할의 학생들은 서로 의논하여 위치를 결정할 수 있으나 프로그래머 역할의 학생에게 질문할 수 없습니다. 지도 Tip 1. 프로그래머 역할의 학생은 명령어의 의미를 명확하게 정의해주도록 합니다. : 컵이 위로 향하게 세우세요. : 컵이 엎어지게 세우세요. 연결된 컵사이(가운데)에 세우세요. 2. 명령어이 실행순서는 A1 C4의 순서로 실행하며 A1과 같은 이중형태의 명령은 나중에 실행합니다. 3. 함수의 의미를 전달하고자하면 같은 명령어를 써야하는 경우 예를 들면 B2에 들어갈 명령어는 A1의 명령어와 동일합니다. 이 경우 화살표를 사용하지 않고 B2자리에 A1을 기입하면 B2자리에 A1의 명령을 실행합니다. 이러한 경우를 프로그래밍에서 함수라고 지도합니다. 4. 이 활동은 프로그래머의 명령에 따라 다양한 결과물이 나올 수 있습니다. 209 CS Unplugged 13. 진군명령 - 프로그래밍 언어 210
5 자용 워크북 (활동지, 활동 자료) 활동지 1 - 컴퓨터와 프로그래머 활동지 2 - 순차적 컵쌓기 1. 설명을 잘 듣고 그림을 그려보세요. 1) 2) 다음의 그림을 이용하여 프로그래머와 로봇이 되어 활동해보세요. 1 2 3) 4) 3 4 211 CS Unplugged 13. 진군명령 - 프로그래밍 언어 212
6 선생님용 참고자료 활동지 3 - 나도 프로그래머 A 1 2 3 4 컴퓨터는 프로그램(Program)이라 불리는 일련의 명령문에 따라 작동합니다. 프로그램은 특정 임무를 수행하도록 작성됩니다. 프로그래머(Programmer)는 제한된 명령문의 집합을 가지고 컴퓨터가 해야 하는 일을 컴퓨터에게 전달할 수 있도록 특별하게 고안된 언어(프로그래밍 언어 : Programming language)를 사용하여 프로그램을 작성합니다. 어떤 언어는 다른 언어에 비해 특정 목적에 더 적합하도록 설계되어 있습니다. B C 프로그래밍 언어의 종류에 관계없이 프로그래머는 원하는 컴퓨터 동작을 위하여 명령어를 정확히 기술할 수 있도록 숙달되어야 합니다. 인간과 달리 컴퓨터는 터무니없는 명령이라 할지라도 그대로 실행하기 때문입니다. 명령어 A B < 명령어 작성판 > 1 2 3 4 작은 에러라 할지라도 큰 문제점을 발생시킬 수 있으므로 프로그램을 정확하게 작성하는 것은 매우 중요합니다. 만약 우주선 발사 시 에러가 났다고 상상해봅시다. 또, 원자력 발전이나 철도 신호등에서 에러가 났을 때의 결과를 생각해 봅시다. 보통 우리는 이러한 에러를 1940년대 초기의 전자계산기에서 교체되어 사라진 모스(Moth)를 기념하여 버그(Bug)라고 부릅니다. 더욱 복잡한 프로그램에는 더 많은 에러가 있을 것입니다. 이것은 미국이 전략적 방위 주도 프로그램( 스타워즈 )을 작업할 때 큰 화제거리가 되었습니다. 이 프로그램은 컴퓨터가 핵공격에 대항하여 철통 같은 방어막을 형성하는 시스템이었습니다. 몇몇 컴퓨터 과학자는 복잡성과 필요한 소프트웨어 자체의 비 신뢰성 때문에 시스템이 작동하지 않을 것이라고 주장했습니다. 따라서 가능한 많은 버그를 발견해 낼 수 있도록 소프트웨어를 신중하게 검사할 필요가 있었지만 제대로 작동하는지 확인하기 위해서는 미사일을 발사해 볼 수 밖에 없었습니다. 결국 이런 불가능한 점 때문에 시스템 검사를 실행할 수 없게 되었습니다. C 명령어 < 선생님이 말로 묘사할 그림 > < 명령어 작성판 > 213 CS Unplugged 13. 진군명령 - 프로그래밍 언어 214
7 해답과 힌트 정답 - 활동지 1, 2 <활동지1> 1) 2) 가 ABC 가 # @ 123 Def 3 ghi 4 jkl 5 3) 4) <활동지2> 1. 2. 3. 4. 215 CS Unplugged
놀이로 배우는 컴퓨터 과학 14. 알뜰 여행 계획 - 그래프 색칠하기 지도안 14. 알뜰 여행 계획 - 그래프 색칠하기 목표 1. 최적화의 이유를 이해할 수 있다. 2. 복잡한 문제 상황을 그래프 색칠하기로 해결할 수 있다. 방법 탐구, 협동 소요 시간 55분 적정 연령 12세 이상 사진 이미지가 숫자로 분해되어서 저장장치에 저장되고, 모니터 화면으로 뿌려지면서 사진이 완성되는 모습 관련 CT 자료분석, 시뮬레이션, 추상화 선생님 훌라후프 6개, 고깔모자 6개, 수성매직, 학생 활동지 < 개요 > 준비물 학생 색연필 일상생활에서 발생하는 많은 문제들은 이상적 해결책이 아닌 제한된 조건을 고려하여 최선의 방법으로 해결합니다. 그래서 합리적인 문제해결 방법은 최소한의 자원으로 문제를 해결할 수 있는 최적화 과정이라 할 수 있습니다. 컴퓨터 과학에서도 물리적인 제한, 즉 저장 용량의 제한, 시간의 제한 등으로 최적화를 위한 노력이 필요하였습니다. 이러한 최적화의 문제들 중 상당부분은 그래프 색칠하기 로 실마리를 풀 수 있었습니다. 그래프 채색 문제는 특정 그래프 채색에 필요한 최소한의 색깔 수를 찾아 최소한의 비용으로 최대의 효과를 내는 해결책을 찾는 것입니다. 이번 활동은 컴퓨터 과학적 문제해결방법인 그래프 색칠하기 를 습득하여 실생활에 있을 법한 문제에 적용해 봄으로써 보다 효율적인 사고에 접근하는 계기가 될 것입니다. 216 CS Unplugged 14. 알뜰 여행 계획 - 그래프 색칠하기 217
단계 소요 시간 요소 교수 활동 형태 자료 1 동기유발 활동 여행 경로 찾아보기 - 여행지도를 제시하고 여행가는 경로를 알아보기 동기유발 - 복잡한 지도를 보고 간단한 그래프로 표현해보기 - 그래프로 여행경로 만들기 여행 경로 찾아보기 도입 5분 알뜰 여행 계획의 고려사항 - 처음 만나 여행을 같이 가게 된 친구들 관계 이야기 - 즐거운 여행을 가기 위한 준비(친구 관계를 고려한 차량이용과 숙소예약) 전체 - 여행지도를 제시하고 여행가는 경로를 알아보기 - 복잡한 지도를 보고 간단한 그래프로 표현해보기 - 그래프로 여행경로 만들기 목표 제시 최적화의 이유를 이해할 수 있다. 복잡한 문제 상황을 그래프 색칠하기로 해결할 수 있다. 알뜰 여행 계획의 고려사항 친한 친구끼리 차타기 - 문제 상황제시(최소한의 차로 친한 친구와 배차) - 처음 만나 여행을 같이 가게 된 친구들 관계 이야기하기 - 즐거운 여행을 가기 위한 준비하기(친구 관계를 고려한 차량이용과 숙소예약) - 가장 효율적인 여행을 가기 위한 방법을 고민해보기 - 선생님이 친구 관계 표 제시 - 활동지1의 스티커를 모둠원이 각자 가슴에 붙이고 각자 훌라후프를 하나씩 모둠 15분 활동1 갖기 - 친한 친구들 2명 이상이 모이면 훌라후프를 겹치고, 겹쳐진 훌라후프 속에 모두 들어가기 - 두 개로 겹쳐진 훌라후프는 하나만 갖고 남은 훌라후프는 선생님에게 활동 (6인 1조) 활동지1, 훌라후프6개 2 문제 제시 전달하기 - 친구 관계를 고려하여 훌라후프 수를 최소화시키기 컴퓨터 과학자처럼 - 문제 상황 확인하기(활동1과 같음) 1. 친구들과 여행을 가기 위해서 어떤 준비를 해야 하나요? - 문제해결방법으로 그래프 색칠하기 익히기 2. 친구 관계를 고려해서 최적의 방법으로 여행을 할 수 있는 방법은 무엇일까요? 전개 15분 활동2 1 6명이 육각형 모양 대형으로 훌라후프를 바닥에 두고 하나씩 사람이 들어간다. 2 친하지 않은 친구끼리는 훌라후프 사이를 선으로 연결한다. 3 한 사람을 골라 아무 색 하나의 모자를 씌운다. 4 선으로 연결된 친구들은 같은 색의 모자를 씌우지 않는다. 5 모자 색을 최소화하여 모든 사람에게 모자를 씌운다. 6 사용한 모자 색상수가 필요한 차량 대수이고 같은 색의 모자를 쓴 친구는 같은 차를 탄다. 모둠 활동 (6인 1조) 활동지1, 훌라후프6개, 꼬깔모자 6개, 수성매직 3 3. 컴퓨터 과학으로 더 쉽게 문제를 해결할 수 있는 방법이 있을까요? 주요 개념 및 용어 정리 - 활동으로 문제 상황 해결하기 - 그래프 색칠하기 방법에 대한 느낀 점 발표하기 15분 활동3 정리 5분 활동 정리 친해지길 바래 - 문제 상황 제시하기(최소한의 방을 예약하면서 친하지 않은 친구와 배정) - 선생님이 친구 관계 표와 성별 표 제시하기 - 문제 상황에서 고려해야할 점 확인하기(친구 관계, 성별) - 활동지2에 짝과 그래프 색칠하기로 문제 해결하기 나도 컴퓨터 과학자 - 그래프 색칠하기 방법이 적용 가능한 실생활 문제 알아보기 - 그래프 색칠하기 방법 확인 모둠 활동 (2인 1조) 전체 활동지2, 색연필 그래프 색칠하기 그래프는 자료 요소에 해당하는 정점(V, vertex)과 정점 간의 관계를 표시하는 간선(edge)으로 구성된 그림입니다. 그래프는 자료 요소들의 관계가 비선형 구조로 나타날 때 사용되는 자료 구조입니다. 컴퓨터 과학에서 그래프는 객체를 표현하는 노드(node)라고 불리는 원 혹은 큰 점을 사용해서 표현합니다. 그래프는 노드로 표현된 객체들 사이에 선을 그어서 객체 간에 관계가 있다는 것을 표기합니다. 그래프 채색 규칙은 연결된 노드는 동일한 색으로 채색될 수 없다는 것입니다. 다시 말해, 그래프의 노드들에 같은 색이 인접하지 않도록 색을 부여합니다. 그래프 색칠하기는 특정 사건이 동일 시간에 발생할 수 없거나, 각각의 집합에 소속된 구성원이 서로 인접할 수 없는 상황들의 최적화 방법을 구할 때 적용될 수 있습니다. 218 CS Unplugged 14. 알뜰 여행 계획 - 그래프 색칠하기 219
4 자 활동 4. 모둠별로 문제 해결 방법을 토의하면서 활동합니다. < 활동 1 > 친한 친구끼리 차타기 - 활동 시간 : 15분 (문제 해결 과정의 예) 민규, 태환, 민정, 현아, 수경, 영미 순으로 1열로 선다. 민규가 순서대로 옆으로 한 사람씩 친한 사람을 찾는다. 태환하고는 겹칠 수 없고 민정은 겹칠 수 있다. 민규-민정은 겹쳐진 상태로 기다린다. 태환은 옆에 있는 현아와 겹칠 수 있고, 민규-민정처럼 기다린다. 나머지 수경은 영미와 겹칠 수 있다. 한 사람씩은 훌라후프를 이동할 수 있지만 더 이상 겹칠 수 없기에 3대의 차가 필요하고, 민규-민정, 태환-현아, 수경-영미 등과 같이 두 명씩 같은 차를 타고 갈 수 있다. - 활동 개요 친구들과 즐거운 여행을 위해 차량을 최소화하여 갈 수 있는 방법을 찾아보는 활동입니다. 친구 관계를 고려하여 친한 친구들끼리 차를 타고 갈 수 있는 방법 중 최소한의 비용(차량 수)으로 갈 수 있도록 직접 찾아보는 활동입니다. 학생들은 훌라후프를 차로 가정해서 전체 훌라후프 수를 줄여가면서 최적화를 위한 복잡한 문제해결과정을 경험해 볼 수 있습니다. - 준비물 : 활동지1, 훌라후프 6개 - 활동 안내 1. 문제 상황을 제시합니다. 지도 Tip 1. 선생님이 순회지도하면서 한 모둠에게는 최적화 방법을 알려주고 나머지 모둠보다 빨리 방법을 찾게 도와주는 방법도 있습니다. 선생님이 도와준 모둠을 제외한 나머지 모둠은 빨리 문제를 해결할 수 있는 방법이 있음을 알게 되고 자연스럽게 다음 활동으로 이어질 것입니다. 2. 처음 보는 사람 외에는 모두 친한 사이로 가정합니다. (이후 활동도 동일함) 친한 친구끼리 같은 차를 타고 가려면 차가 최소한 몇 대 필요하고, 어떻게 차를 타면 될까요? 2. 선생님이 친구 관계 표를 제시합니다. 친구 관계표 민규는 태환은 민정은 현아는 수경은 영미는 태환, 수경, 영미 민규, 민정, 영미 태환, 수경 수경, 영미 민규, 민정, 현아 민규, 태환, 현아 와(과) 처음 만나서 친하지 않습니다. 3. 선생님이 활동을 설명합니다. 1 활동지1의 스티커를 모둠원이 각자 가슴에 붙이고 각자 훌라후프를 하나씩 갖고 선다. 2 훌라후프를 필요한 차로 생각하고 처음에는 6개로 시작한다. 3 한 훌라후프에는 혼자 또는 친한 친구들만 함께 있을 수 있고 인원제한은 없다. 4 친한 친구 2명 이상이 모이면 훌라후프를 겹치고, 겹쳐진 훌라후프 속으로 모두 들어간다. 5 두 개 이상으로 겹쳐진 훌라후프는 하나만 갖고 남은 훌라후프는 선생님에게 전달한다. 6 친구 관계를 고려하여 훌라후프 수를 최소화시킨다. 220 CS Unplugged 14. 알뜰 여행 계획 - 그래프 색칠하기 221
< 활동 2 > 컴퓨터 과학자처럼 - 활동 시간 : 15분 - 활동 개요 컴퓨터 과학자처럼 이란 컴퓨터 과학에서 활용되는 그래프 색칠하기 방법으로 복잡한 문제를 쉽고 빠르게 해결해 본다는 의미입니다. 학생들은 마치 컴퓨터 과학자가 문제를 추상화하여 최소 비용을 찾는 것처럼 사고합니다. 학생들은 활동하면서 실생활의 문제를 컴퓨터 과학적 사고로 쉽고 빠르게 해결할 수 있음을 느끼게 됩니다. - 준비물 : 활동지2, 훌라후프 6개, 꼬깔모자 6개(3가지 색상, 각 2개씩) - 활동 안내 1. 문제를 확인합니다. 친한 친구끼리 같은 차를 타고 가려면 차가 최소한 몇 대 필요하고, 어떻게 차를 타면 될까요? 2. 선생님이 그래프 색칠하기 방법을 설명합니다. < 활동 3 > 친해지길 바래 - 활동 시간 : 15분 - 활동 개요 친구 관계를 고려하여 최소의 비용으로 숙소를 예약하는 문제 상황을 제시하고 최적의 방법을 찾아보는 활동입니다. 이전 활동의 심화단계로 친하지 않은 친구와 같이 숙소를 사용하는 것과 방 배정에서 성별을 구분해야 하는 부분을 추가하여 문제 상황은 보다 복잡하게 되었습니다. 하지만, 조건 변경으로 복잡해진 문제 상황도 그래프 색칠하기로는 간단히 해결할 수 있음을 경험해 볼 것입니다. - 준비물 : 활동지3, 색연필 - 활동 안내 1. 선생님이 문제를 제시합니다. 같은 방을 쓰면서 친해지기 위해, 친하지 않은 친구끼리 방을 쓰게 하려면 최소한 몇 개의 방을 예약해야 하고, 어떻게 방을 배정하면 될까요? 그래프 색칠하기 활동 방법 활동 대형 2. 선생님이 친구 관계 표와 성별 표를 제시합니다. 친구 관계표 1 6명이 육각형 모양 대형으로 훌라후프를 바닥에 두고 한 훌라후프에 한 사람씩 들어간다. 민규는 태환, 수경, 영미 2 친하지 않은 친구끼리는 훌라후프 사이를 선으로 연결한다. 태환은 민규, 민정, 영미 3 한 사람을 골라 아무 색의 모자를 씌운다. 4 선으로 연결된 친구들은 같은 색의 모자를 씌우지 않는다. 5 모자색을 최소화하여 모든 사람에게 모자를 씌운다. 민정은 현아는 태환, 수경 수경, 영미 와(과) 처음 만나서 친하지 않습니다. 6 사용한 모자 색상수가 필요한 차량 대수이고 같은 색의 모자를 쓴 친구는 같은 차를 탄다. 수경은 민규, 민정, 현아 영미는 민규, 태환, 현아 3. 학생은 선생님의 설명을 듣고 그래프 색칠하기 방법을 활동으로 알아보고 활동지2 문제를 해결합니다. 4. 그래프 색칠하기 방법을 배운 후의 느낀 점을 발표합니다. 남자 민규, 태환 여자 민정, 현아, 수경, 영미 지도 Tip 1. 6인 1조로 진행하기 때문에 한 사람은 훌라후프에서 나와 필요한 모자를 친구들에게 씌우고 마지막에 자신이 모자를 씁니다. 2. 훌라후프 사이를 선으로 긋는 방법 대신 색 테이프나 줄을 연결하는 방법도 있습니다. 3. 이전 활동2와 달라진 문제 상황을 찾습니다. (예 친한 친구에서 친하지 않은 친구로, 남녀의 성별을 고려해야 함) 4. 활동지3에 서로 친한 친구의 관계를 표로 정리합니다. 222 CS Unplugged 14. 알뜰 여행 계획 - 그래프 색칠하기 223
5 자용 워크북 (활동지, 활동 자료) 5. 그래프 색칠하기 방법으로 활동지3의 문제를 짝과 함께 해결합니다. (문제 해결 과정의 예) 1 친구 이름을 활동지3의 동그라미에 한 명씩 순서대로 쓴다. 2 이름을 적을 때 남자 이름과 여자 이름은 다른 색으로 쓴다. 3 친한 친구끼리는 선으로 연결한다. 4 친구이름이 적힌 여섯 개의 동그라미 중 하나를 골라 아무색(이름을 적은 색은 제외)이나 칠한다. 5 선으로 연결된 친구들은 같은 색으로 칠하지 않는다. 6 색을 최소화하여 모든 동그라미를 색칠한다. 7 동그라미에 칠해진 색상 수만큼의 방이 필요하고 같은 방을 쓰는 사람은 같은 색이 칠해진 사람이다. 지도 Tip 1. 활동2와 같이 훌라후프를 이용하여 동적인 활동으로 전개할 수 있습니다. 이때 성별의 차이를 나타낼 수 있는 팀조끼(운동경기에 주로 사용)를 이용하여 구분하고 활동2의 방법으로 활동하면 좋습니다. 활동지 1 - 친한 친구끼리 차타기 * 이름을 가위로 잘라서 사용하세요. 민규 현아 태환 수경 민정 영미 224 CS Unplugged 14. 알뜰 여행 계획 - 그래프 색칠하기 225
활동지 2 - 컴퓨터 과학자처럼 활동지 3 - 친해지길 바래 1. 문제 상황을 확인합니다. 친한 친구들끼리만 차를 타고 가려면 차가 최소한 몇 대 필요하고, 어떻게 차를 타면 될까요? 2. 문제해결과정에서 고려해야할 친구 관계를 확인합니다. 민규는 태환은 민정은 현아는 수경은 영미는 태환, 수경, 영미 민규, 민정, 영미 태환, 수경 수경, 영미 민규, 민정, 현아 민규, 태환, 현아 친구 관계표 와(과) 처음 만나서 친하지 않습니다. 3. 그래프 색칠하기 방법으로 문제를 해결합니다.(같은 색이 칠해진 이름이 같은 차를 타는 사람입니다.) 1. 문제 상황을 확인합니다. 같은 방을 쓰면서 친해지기 위해, 친하지 않은 친구끼리 방을 쓰게 하려면 최소한 몇 개의 방을 예약해야 하고, 어떻게 방을 배정하면 될까요? 2. 문제해결과정에서 고려해야할 친구 관계를 확인합니다. 남자 여자 민규, 태환 민정, 현아, 수경, 영미 서로 친한 친구에 를 칠하세요. 민규 태환 민정 현아 수경 영미 태환 민규 민정 현아 수경 영미 민정 민규 태환 현아 수경 영미 현아 민규 태환 민정 수경 영미 수경 민규 태환 민정 현아 영미 영미 민규 태환 민정 현아 수경 3. 그래프 색칠하기 방법으로 문제를 해결합니다.(같은 색이 칠해진 이름이 같은 방을 쓰는 사람입니다.) 226 CS Unplugged 14. 알뜰 여행 계획 - 그래프 색칠하기 227
6 선생님용 참고자료 7 해답과 힌트 지도 채색 문제 정답 - 활동지 2 지도 채색 문제는 본질적으로 특정한 지도를 채색하는데 필요한 최소 색상의 수를 찾는 것입니다. 단지 4가지 색을 사용해서 어떤 지도도 채색될 수 있다는 추측은 1852년에 정립되었습니다. 하지만, 1976년이 되어서야 비로소 증명이 되었습니다. 컴퓨터 과학은 아직 미해결된 문제로 가득 차 있습니다. 네 가지 색깔 정리가 연구자로부터 120년 이상 관심을 받은 후에야 증명되었다는 것을 알게 되는 것은 오랫동안 해결책이 발견되지 않은 다른 문제에 학생들을 참여하게 하는 좋은 동기부여가 될 것입니다. 지도 채색은 그래프 채색(graph coloring)으로 알려진 일반적인 문제 분야에 속합니다. 컴퓨터 과학에서 그래프는 관계의 추상적인 표현입니다. 여기에서 말하는 그래프는 수학에서 사용하는 숫자 데이터를 표현하기 위한 막대그래프처럼, 차트를 의미하는 것과는 다른 의미로 사용됩니다. 컴퓨터 과학자가 사용하는 그래프는 객체를 표현하는 노드(node)라고 불리는 원 혹은 큰 점을 사용해서 표현됩니다. 객체와 객체 사이에는 선을 그어서 객체 간에 일종의 관계가 있다는 것을 표기합니다. 1. 문제 상황을 확인합니다. 친한 친구들끼리만 차를 타고 가려면 차가 최소한 몇 대 필요하고, 어떻게 차를 타면 될까요? 2. 문제해결과정에서 고려해야할 친구 관계를 확인합니다. 민규는 태환은 민정은 현아는 수경은 영미는 친구 관계표 태환, 수경, 영미 민규, 민정, 영미 태환, 수경 수경, 영미 민규, 민정, 현아 민규, 태환, 현아 와(과) 처음 만나서 친하지 않습니다. 3. 그래프 색칠하기 방법으로 문제를 해결합니다.(같은 색이 칠해진 이름이 같은 차를 타는 사람입니다.) 민규 위의 그림은 간단한 지도를 그래프로 표현한 것입니다. 노드는 나라를, 두 노드 사이의 선은 두 나라가 국경을 맞대고 있음을 표기합니다. 그래프에서 채색 규칙은 간선으로 연결된 노드는 동일한 색으로 채색될 수 없다는 것입니다. 이 규칙을 적용하는 그래프 채색 문제(graph coloing problem)는 특정 그래프 채색에 필요한 최소 색깔 수를 찾는 것입니다. 위의 그래프 채색 문제는 국경을 맞대고 있는 나라가 다른 색으로 칠해질 때 필요한 최소 색의 수를 찾는 문제로, 두 가지 색으로 모두 색칠할 수 있기 때문에 구하고자 하는 값은 2 가 됩니다. 지도 채색 문제를 해결하는데 소요되는 컴퓨터 시간은 그래프 크기가 증가함에 따라 기하급수적으로 증가합니다. 위와 같은 작은 지도는 매우 간단한 문제 예제로 최적의 해결책을 찾기는 매우 쉽습니다. 하지만, 나라가 10개국을 넘게 되면, 최적 값을 손으로 찾기는 매우 어렵게 됩니다. 그리고, 어떤 조합의 지도라도 최대 네 가지 색이 필요하다는 것을 이미 알고 있지만, 네 가지 색을 나라마다 적용해서 모든 가능한 조합을 평가할 필요가 있습니다. 만약 n개의 나라가 있다면 총 n^4개의 조합이 있습니다. 나라가 하나씩 증가할 때마다 확인할 경우의 수가 기하급수적으로 많아져 4승의 곱만큼 시간이 추가로 필요하게 됩니다. 이런 문제를 해결하기 위해 고안된 컴퓨터조차도, 50개 나라를 색칠하는데 한 시간이 소요된다면, 나라를 하나 더 추가하면 4시간이 소요되고, 10개 나라를 더 추가하게 되면 일년 이상이 정답을 찾는데 소요됩니다. 더 빠른 컴퓨터를 발명한다고 해서 이런 종류의 문제는 사라지지 않습니다. 이처럼 그래프 채색 문제는 작은 조건의 추가가 해답을 찾는데 걸리는 시간이 기하급수적으로 늘어나는 것을 보여주는 좋은 문제 사례입니다. 태환 민정 현아 영미 수경 * 민규-민정, 태환-현아, 영미-수경 등도 가능한 해답 228 CS Unplugged 14. 알뜰 여행 계획 - 그래프 색칠하기 229
정답 - 활동지 3 1. 문제 상황을 확인합니다. 같은 방을 쓰면서 친해지기 위해, 친하지 않은 친구끼리 방을 쓰게 하려면 최소한 몇 개의 방을 예약해야 하고, 어떻게 방을 배정하면 될까요? 2. 문제해결과정에서 고려해야할 친구 관계를 확인합니다. 남자 민규, 태환 여자 민정, 현아, 수경, 영미 서로 친한 친구에 를 칠하세요. 민규 태환 민정 현아 수경 영미 태환 민규 민정 현아 수경 영미 민정 민규 태환 현아 수경 영미 현아 민규 태환 민정 수경 영미 수경 민규 태환 민정 현아 영미 영미 민규 태환 민정 현아 수경 3. 그래프 색칠하기 방법으로 문제를 해결합니다.(같은 색이 칠해진 이름이 같은 방을 쓰는 사람입니다.) 민규 태환 영미 민정 수경 현아 230 CS Unplugged
놀이로 배우는 컴퓨터 과학 15. 전기차 충전소 설치 지배집합 지도안 15. 전기차 충전소 설치 지배집합 목표 1. 최적화 문제를 해결하는 다양한 방법이 있음을 알 수 있다. 2. 최적화 문제를 다양한 방법으로 해결할 수 있다. 방법 문제해결, 협동 소요 시간 60분 적정 연령 13세 이상 사진 이미지가 숫자로 분해되어서 저장장치에 저장되고, 모니터 화면으로 뿌려지면서 사진이 완성되는 모습 관련 CT 자료분석, 시뮬레이션, 추상화 < 개요 > 선생님 원형 도화지, 컬러콘( 小 ) 26개, 컬러콘( 大 ) 26개, 색 테이프 준비물 실생활의 많은 상황은 네트워크 형태나 혹은 다양한 종류의 그래프로 추상화될 수 있습니다. 네크워크는 실생활에 유용한 알고리즘 개발을 위한 많은 기회를 제공하고 보다 효율적인 방법을 고민하게 합니다. 이번 주제에서는 집들을 연결한 마을 학생 색연필 지도 그래프에서 주요정점(노드)을 몇 개 표시해서 다른 모든 정점이 각 주요정점들과 한 구간 떨어지게 만드는 것입니다. 다시 말해 지배집합을 만들고 최소지배집합을 이루는 주요정점을 찾아 최소한의 자원으로 최대의 효과를 내는 방법을 구안하게 됩니다. 최소지배집합 문제로 가까운 미래에 실현될 전기차 충전소 설치 문제를 가정하여 그 해결방법을 경험해 보고 최적의 알고리즘을 찾아보는 활동입니다. 하지만 최소 지배 집합을 찾는 알고리즘이 컴퓨터로 해결 가능한 시간동안에 해결하는 방법이 존재하는지 아직 증명하지 못하고 있습니다. 그래서 이런 문제들을 지금은 근사알고리즘 즉, 가장 최적화되는 해결방법은 아니지만 비교적 빠른 시간에, 어느 정도 보장된 해결방법이 되는 알고리즘을 적용하여 풀어야 하는 것입니다. 이와 같은 현재 미결 과제들은 학생들에게 컴퓨터 과학 이 아직 미완성의 세계임을 인식하게 하고 컴퓨터 과학 에 몰입하는 계기가 될 것입니다. 231 CS Unplugged 15. 전기차 충전소 설치 - 지배집합 232
단계 소요 시간 요소 교수 활동 형태 자료 1 동기유발 활동 전기차 충전소 설치 계획 도입 5분 동기유발 - 전기차 충전소 설치 비용이 많이 들어 집마다 설치가 불가함을 이야기하기 - 전기차 충전소를 최소한으로 설치하면서 모든 집에서 충전이 가능한 방법을 탐색하기 전체 전기차 충전소 설치 계획 목표 제시 최적화 문제를 해결하는 다양한 방법이 있음을 알 수 있다. 최적화 문제를 다양한 방법으로 해결할 수 있다. 최적화 방법 탐색 - 환경오염을 줄이는 전기차를 마을 전체 사람들이 탈 수 있게 보급하고자 합니다. - 전기차 충전소가 필요하나 설치 비용이 많이 듭니다. - 마을 전체가 최소한의 비용으로 각자 집에서 전기차를 충전 할 수 있게 하고자 합니다. 15분 활동1 - 전기차 충전소의 설치 조건 제시하기 - 선생님과 함께 전기차 충전소를 다양한 방법으로 설치해보기 - 활동지1의 네 가지 지도 그래프 제시하기 - 모둠별로 최소한의 충전소를 설치하는 방법 탐구하기 - 모둠별로 문제 해결하기 - 모둠별로 탐색한 문제해결 방법 발표하기 모둠 활동 (4인 1조) 활동지1, 색연필 2 문제 제시 전기차 충전소 설치하기 - 문제 상황의 조건 확인하기 전개 20분 활동2 1 각 집에는 한 블록(집과 집사이의 거리) 길이의 전선을 갖고 있음 2 전기 충전소는 집에만 설치할 수 있음 - 모둠별로 최소한의 충전소 설치하기 1 활동지2의 마을 지도를 바닥에 원형 도화지와 색 테이프로 나타낸다. 2 큰 컬러콘은 충전소, 작은 컬러콘은 충전가능한 집, 색 테이프 선은 도로라고 각각 가정한다. 3 충전소 위치에 큰 컬러콘을 세우면 주변에 충전 가능한 집을 표시하기 위해 작은 컬러콘을 세운다. 4 컬러콘은 위치를 옮기거나 제거(선생님에게 전달)할 수 있다. 5 모둠원과 토의하여 문제 조건에 맞게 큰 컬러콘의 개수가 최소가 되게 모둠 활동 (4인 1조) 활동지2, 원형 도화지, 컬러콘( 小 ) 26개, 컬러콘( 大 ) 26개, 색 테이프 3 1. 전기차를 사용하기 위해서는 어떤 준비를 해야 하나요? 2. 최적의 방법으로 충전소를 설치 할 수 있는 방법은 무엇일까요? 3. 문제 상황을 쉽게 해결할 수 있는 방법이 있을까요? 주요 개념 및 용어 정리 한다. 6 큰 컬러콘을 가장 적게 사용한 모둠이 이기게 된다. - 활동으로 문제 상황 해결하기 자신만의 문제 만들기 지배 집합(Dominating sets) 활동2의 지도 제작과정 제시하기 1 전체 지도(활동지2)를 보여준다. 2 각 지배집합을 나누고 선으로 연결된 부분을 지운다. 주어진 그래프에 대하여, 그래프의 정점(vertex)들을 선택하면 이 정점들은 자기 자신과 선(node)으로 연결된 이웃 정점들을 지배한다고 가정할 때, 해당 그래프의 모든 정점들을 지배하는 정점 집합을 그 그래프의 지배 집합이라 합니다. 20분 활동3 3 각각 나누어진 지배집합(선생님자료1)을 제시한다. 4 지배 집합의 주요 정점을 표시한다. 5 최소 지배 집합의 정점이 표시된 전체 지도(선생님자료2)를 다시 보여준다. - 각자 자신만의 지도 제작하기(활동지3 4) 1 6개의 조각 지도를 만든다. 모둠 활동 (2인 1조) 활동지2 3 4, 색연필 최소 지배 집합(Minimal dominating sets) 문제 지배 집합의 원소(정점)의 개수를 그래프의 지배수(domination number)라 하고 해당 그래프 지배수의 최소값을 찾는 문제가 최소 지배 집합 문제입니다. 예를 들어, 골목길에 방범용 CCTV를 설치하거나 복잡한 네트워크 장비를 설치할 때와 같이 효용성을 높일 수 있는 위치를 설계할 때 발생하는 문제들이 이에 해당됩니다. 2 각각의 조각지도는 하나의 충전소만 필요하게(지배집합으로 만들기) 정점과 선을 연결한다. 3 주요 정점 외 나머지 정점은 서로 연결하여 큰 지도를 완성한다. - 짝과 서로 제시하여 해결하고 확인하기 정리 5분 활동 정리 생활속에 적용하기 - 지배 집합과 최소 지배 집합의 개념 알아보기 - 우리 생활주변에서 최소 지배 집합 문제를 찾아보기 전체 233 CS Unplugged 15. 전기차 충전소 설치 - 지배집합 234
4 자 활동 (문제 해결 방법의 예2) < 활동 1 > 최적화 방법 탐색 - 활동 시간 : 15분 - 활동 개요 마을에 전기차 충전소를 설치하기 전에 다양한 해결 방법을 탐구하는 활동입니다. 주어진 지도로 지배집합과 최소 지배 집합의 기초 개념을 배우는 활동입니다. 간단한 지배 집합 찾기 문제를 제시하고 최소한의 주요 정점을 표시하여 문제 상황을 해결합니다. 이를 통해 최소한의 비용으로 최대효과를 낼 수 있는 최소 지배 집합 문제를 해결하는 다양한 방법을 탐구하게 됩니다. - 준비물 : 활동지1, 색연필 - 활동 안내 1. 전기차의 특징과 충전소의 설치 조건에 대해 설명합니다. 1 각 집에는 한 블록 길이(집과 집사이의 거리)의 전선을 갖고 있음 2 전기 충전소는 집에만 설치할 수 있음 1 마을 지도 그래프에서 가장 적은 개수의 선이 연결되어 있는 정점과 연결된, 가장 많은 선들이 연결되어 있는 정점을 찾아 동그라미표를 하고 나머지 주변의 정점을 가위표를 한다. 2 아무 표시가 되어 있지 않는 나머지 정점들 중에 1의 과정을 반복한다. 3 모든 정점이 동그라미표 혹은 가위표가 될 때까지 표시한다. 4 동그라미표가 된 정점이 가장 적을 때를 찾는다. 5. 모둠별로 탐색한 문제 해결 방법을 발표합니다. 지도 Tip 1. 최소 지배 집합 문제의 정확한 해결 알고리즘은 아직 증명되지 않았습니다. 따라서 학생들의 탐구과정에서 합리적인 방법을 찾아 가는 과정을 중시하여야 합니다. 2. 문제 해결 방법의 예1 은 탐욕 알고리즘을 적용한 형태이나 최소 지배 집합 문제를 해결하는 최선의 알고리즘 중 하나입니다. 아래 문제는 탐욕 알고리즘이 가장 합리적인 방법은 아님을 증명하는 예로 위와 같은 문제를 해결하기 위해선 여러 가지 방법을 조합해서 생각해야 한다는 것을 이야기해주면 좋습니다. 탐욕 알고리즘 무작위 알고리즘 2. 선생님과 함께 마을 지도 그래프에서 다양하게 충전소를 설치하는 방법을 찾아봅니다. 1 2 3 3. 최적의 방법은 2번 집에 하나의 충전소를 설치하는 것입니다. 4. 모둠별로 활동지1의 네 가지 마을 지도 그래프에서 최소한의 충전소를 설치하는 방법을 탐구합니다. (문제 해결 방법의 예1) 1 마을 지도 그래프에서 가장 많은 선들이 연결되어 있는 정점을 찾아 동그라미표(충전소 설치 장소)를 하고 인접한 정점은 가위표로 표시한다. 2 아무 표시가 되어 있지 않는 나머지 정점들 중에 1의 과정을 반복한다. 3 모든 정점이 동그라미표 혹은 가위표가 될 때까지 표시한다. 4 동그라미표가 된 정점이 가장 적을 때를 찾는다. 235 CS Unplugged 15. 전기차 충전소 설치 - 지배집합 236
< 활동 2 > 전기차 충전소 설치하기 - 활동 시간 : 20분 - 활동 개요 이전 활동1에서 탐구한 방법을 바탕으로 가상의 마을에 최소의 비용으로 전기차 충전소를 설치하는 활동입니다. 다양하게 찾은 방법을 적용해보고 보다 효율적인 방법에 대한 고민을 해보는 활동입니다. 그리고 학생들의 보다 적극적인 참여 태도를 유도하기 위해 모둠간의 경쟁이 되도록 활동을 진행합니다. - 준비물 : 활동지2, 원형 도화지, 컬러콘( 小 ) 26개, 컬러콘( 大 ) 26개, 색 테이프 - 활동 안내 < 활동 3 > 자신만의 문제 만들기 - 활동 시간 : 20분 - 활동 개요 자신만의 최소 지배 집합 문제를 만들어 짝이 풀어보는 활동입니다. 이런 문제는 만들 때는 쉽게 만들 수 있지만 해결하기는 매우 어려운 문제입니다. 지배 집합 퍼즐 지도들을 모아 하나의 큰 지도로 나타내면서 선생님이 제작한 지도 그래프의 제작과정을 순차적으로 제시하고 이 방법으로 자신만의 문제를 만들어 보는 활동입니다. - 준비물 : 활동지2 3 4, 선생님자료1 2, 색연필 - 활동 안내 1. 문제 상황의 조건을 확인합니다. 1 각 집에는 한 블록 길이(집과 집사이의 거리)의 전선을 갖고 있음 2 전기 충전소는 집에만 설치할 수 있음 2. 모둠별로 모든 집에서 차를 충전할 수 있게 최소한의 충전소를 설치하기 3. 활동지2의 마을 지도에 활동으로 찾은 충전소 설치 위치를 표시하고 칠판에 게시합니다. 4. 모둠별로 탐구한 최소한의 충전소를 설치하기 위한 방법에 대해 설명합니다. 지도 Tip 활동 방법 1 활동지2의 마을 지도를 바닥에 원형 도화지와 색 테이프로 나타낸다. 2 작은 컬러콘은 충전가능한 집, 큰 컬러콘은 충전소, 색 테이프 선은 도로라고 각각 가정한다. 3 충전소 위치에 큰 컬러콘을 세우면 주변에 충전 가능한 집을 표시하기 위해 작은 컬러콘을 세운다. 4 컬러콘은 위치를 옮기거나 제거(선생님에게 전달)할 수 있다. 5 모둠원과 토의하여 문제 조건에 맞게 큰 컬러콘의 개수가 최소가 되게 한다. 6 큰 컬러콘을 가장 적게 사용한 모둠이 이기게 된다. 마을 지도 1. 활동2의 지도 제작 과정을 제시합니다. 1 전체 지도(활동지2)를 보여준다. 2 각 지배집합을 나누고 선으로 연결된 부분을 지운다. 3 각각 나누어진 지배집합(선생님자료1)을 제시한다. 4 지배 집합의 주요 정점을 표시한다. 5 최소 지배 집합의 정점이 표시된 전체 지도(선생님자료2)를 다시 보여준다. 2. 활동지3에 최소 지배 집합을 찾는 자신만의 지도를 제작합니다. 1 6개의 조각 지도를 만든다.(집의 개수는 20개로 제한한다.) 2 각각의 조각지도는 하나의 충전소만 필요하게(지배집합) 정점과 선을 연결한다. 3 주요 정점 외 나머지 정점은 서로 연결하여 활동지4에 큰 지도를 완성한다. 3. 짝에게 자신이 만든 지도(활동지4)를 제시하여 풀어보도록 하고, 추후 정답을 알려줍니다. 4. 활동으로 느낀 점을 발표합니다. 지도 Tip 1. 6개의 조각지도를 만들 때 각 구역을 펜으로 표시하지 않도록 합니다. 만약 구역이 표시되어 있으면 해답을 찾기가 너무 쉬워지기 때문입니다. 2. 선생님이 지도 제작 과정은 프리젠테이션으로 전체지도 연결된 선이 지워지는 장면 지배집합별로 나뉜 지도 퍼즐 지배 집합의 주요정점 표시 주요정점이 표시된 전체 지도 순으로 제시합니다. 3. 활동 시간을 줄일 필요가 있거나 초등학교의 경우는 모둠활동으로 진행해도 좋습니다. 모둠원이 각각 마을지도 퍼즐을 만들고 이를 합쳐서 모둠에서 전체지도 하나를 완성하게 할 수도 있습니다. 4. 이 활동은 암호학과 관련해서 활동을 전개해도 좋습니다. 다른 사람에게 제시하였을 때 해결하기가 매우 어려움을 경험하면서 만든 사람은 해결이 쉬우나 다른 사람들은 풀 수 없는 일방향 함수 에 대해 배우는 활동으로 응용할 수 있습니다. 1. 학생들의 원활한 활동이 진행되게 주요 정점 하나(시작 지배 정점)를 알려주면 좋습니다. 2. 색 테이프 대신 수성펜을 준비하여 큰 컬러콘을 세우면 그 것을 중심으로 지배집합이 되었을 때, 이 지배집합 내부 선과 외부로 연결된 선을 모두 지우면 활동을 보다 쉽게 진행할 수 있습니다. 이때 선을 다시 그리는 번거러움이 생기지 않도록 선생님이 학생들이 정확한 곳에 위치시켰을 때만 선을 지우도록 허락합니다. 3. 작은 컬러콘을 대신하여 페트병( 大, 小 )이나 색지(두 가지색)를 이용해도 좋습니다. 4. 최소 충전소의 수는 6입니다. 하지만 8개 혹은 9개의 위치를 찾은 것도 충분히 칭찬을 해주며 6개로 줄이도록 독려합니다. 5. 초등학생의 경우 모둠 대상이 아닌 반 전체 활동으로 진행하여도 좋습니다. 원형 도화지에 학생이 앉아 있게 하고 주요 정점의 학생은 일어서서 충전소의 위치로 구분되게 활동을 진행할 수 있습니다. 237 CS Unplugged 15. 전기차 충전소 설치 - 지배집합 238
5 자용 워크북 (활동지, 활동 자료) 활동지 1 - 최적화 방법 탐색 활동지 2 - 전기차 충전소 설치하기 1. 전기차의 특징과 충전소의 설치 조건에 대해 알아봅시다. 1 각 집에는 한 블록 길이(집과 집사이의 거리)의 전선을 갖고 있음 2 전기 충전소는 집에만 설치할 수 있음 * 마을 지도 그래프를 보고 충전소 설치 문제 상황을 해결하세요. 2. 선생님과 함께 마을 지도 그래프에서 다양하게 충전소를 설치하는 방법을 찾아봅니다. 1 2 3 3. 네 가지 마을 지도 그래프에서 최소한의 충전소를 설치할 방법을 찾아보세요. 1 2 3 4 4. 모둠별로 토의한 합리적인 해결 방법을 정리해 보세요. 239 CS Unplugged 15. 전기차 충전소 설치 - 지배집합 240
활동지 3 - 자신만의 문제 만들기 활동지 4 - 친구에게 문제 내기 * 자신만의 마을 지도 그래프를 만들어보세요. 마을 지도 그래프 만들기 방법 예 * 완성된 마을 지도 그래프를 그리고, 친구가 주요정점을 찾아보게 하세요. 자신만의 마을 지도 그래프 241 CS Unplugged 15. 전기차 충전소 설치 - 지배집합 242
6 선생님용 워크북 (활동지, 활동 자료) 선생님 자료 1 - 지배집합 선생님 자료 1 - 전체 지도 * 지배 집합으로 구분된 퍼즐 지도 * 최소 지배 집합을 표시한 완성된 지도 243 CS Unplugged 15. 전기차 충전소 설치 - 지배집합 244
7 선생님용 참고자료 8 해답과 힌트 정답 - 활동지 1 컴퓨터도 어려운 문제들 도시 계획을 세울 때, 직면하는 상황이 대략 이런 종류의 문제가 됩니다. 우편함 설치, 주차장 위치, 공원의 위치, 소방소 위치 등 실생활에서 풀어야 하는 문제들이 산재하게 됩니다. 가장 효율적인 방법을 찾기 위해서 매우 간단한 방식이 있습니다. 필요한 것을 배치할 수 있는 모든 가능한 방법을 고려해서 어느 것이 가장 최선인지를 모두 점검하는 것입니다. 마을에는 26개의 집이 있고 따라서 충전소를 배치할 26개의 위치가 있습니다. 26개 모든 가능성을 점검하기는 쉽습니다. 충전소가 두 개 설치 가능할 때, 첫 번째 충전소를 위치 시킬 장소는 26개가 됩니다. 두 번째 충전소를 설치할 장소는 25개가 됩니다. 이럴 때 확인할 경우의 수가 26 25 = 650가지가 생기게 됩니다. 모든 경우의 수를 점검하는 것은 매우 지루한 작업이지만, 어렵지는 않습니다. 사실 경우의 수 중에 절반(325가지)만 점검하기만 하면 됩니다. 왜냐하면 두 개의 충전소를 구분하지 않기 때문입니다. 이런 방식의 문제해결 방법을 무작위 알고리즘(brute-force algorith)이라고 합니다. 정답을 얻기까지 오랜 시간이 걸리는 문제점을 갖고 있습니다. 작업량에 관계없이, 컴퓨터가 너무 빨라서 어떤 문제도 빨리 풀 수 있다는 것은 널리 알려진 오해입니다. 사실 컴퓨터는 그렇지 않습니다. 무작위 알고리즘이 얼마나 시간이 걸릴지는 특정 구성조합이 해답인지 아닌지를 점검하는데 얼마나 빨리 수행하느냐에 달려있습니다. 마을에 충전소를 설치하는 문제의 2^26 모든 경우의 수를 시험하는데 얼마나 오랜 시간이 걸릴까요? 하나의 경우의 수를 확인인 하는데, 1초가 걸린다고 가정하면, 2^26초 약 6,700만초(하루는 86,400초)로 약 777일, 즉 약 2년이 걸립니다. 천배 빠른 컴퓨터를 갖게 되고 집은 10개만 들어난다면 찾는 시간이 얼마나 더 빨리 해결할 수 있을까요? 더 좋은 컴퓨터로 1초 대신에 각 구성조합을 점검하는데 천분의 일초가 걸린다면, 36개 집 마을을 해결하는데 약 2년(2^36은 1024* 2^26 이기 때문)이 소요됩니다. 어떤가요? 여러분의 예상과는 다르죠? 컴퓨터가 백만 배 더 빨라져서 백만 구성조합을 1초에 점검한다고 해도, 46개 집을 점검하려면, 또 2년이 소요됩니다. 46개의 집이 사는 마을은 그다지 큰 마을이 아니죠? 우리는 얼마나 많은 집과 더 복잡한 구조의 마을과 도시에 살고 있는지 생각해보면 해답을 찾는데 시간이 너무 걸리겠죠? 집의 수가 증가함에 따라 무작위 알고리즘을 사용한 시간이 기하급수적으로 증가합니다. 이를 지수시간 알고리즘(exponential time algorithm)이라고 합니다. 무작위 알고리즘은 매우 느려서, 문제를 풀 수 있는 다른 방법이 있을까요? 탐욕 접근법(greedy approach)을 시도해 볼 수도 있습니다. 하지만 이것도 근사 알고리즘이기 때문에 완전한 해를 구할 수 없습니다. 최소 지배 집합 문제에 관한 흥미로운 것 중에 하나는 무작위 알고리즘(brute-force algorithm)보다 훨씬 더 빠르게 최소 배치 위치를 찾는 알고리즘의 존재여부를 어느 누구도 알고 있지도 못하고 있다는 것 입니다. 일부 사람이 매우 열심히 찾으려고 노력을 했고 지금도 하고 있지만, 해결하지 못한 컴퓨터 과학(수학)의 미결과제입니다. 다시 말해 컴퓨터가 알고리즘을 통해 문제를 해결하는데 수백만년이 걸리거나, 알고리즘이 발견되지(존재하지 않는지 증명되지) 않은 미해결 문제입니다. 특정 장소 조합이 최소인지 확인하는 좀 더 쉬운 작업 역시 컴퓨터에게도 어려운 문제입니다. 1 2 3 4 245 CS Unplugged 15. 전기차 충전소 설치 - 지배집합 246
정답 - 활동지 2 247 CS Unplugged
놀이로 배우는 컴퓨터 과학 16. 통신망 구축 스타이너 트리 지도안 16. 통신망 구축 스타이너 트리 목표 1. 스타이너 점을 이용하여 점 3개와 점 4개를 연결하는 가장 짧은 경로를 그릴 수 있다. 2. 스타이너 점을 이용하여 여러 점을 연결하는 가장 짧은 경로를 그릴 수 있다. 방법 게임 소요 시간 60분 적정 연령 13세 이상 사진 이미지가 숫자로 분해되어서 저장장치에 저장되고, 모니터 화면으로 뿌려지면서 사진이 완성되는 모습 관련 CT 자료 분석, 알고리즘과 절차 선생님 세계지도 < 개요 > 준비물 학생 연필, 지우개, 가위, 자 전 세계는 인터넷으로 연결되어 있습니다. 예를 들어 한국과 미국은 인터넷으로 연결되어 있습니다. 다만 먼 거리를 연결하는 광케이블은 가격이 비싸고 한국과 미국은 거리가 아주 멀기 때문에 인터넷 선로를 연결하는 비용이 많이 듭니다. 다행히도 한국과 일본도 인터넷이 연결되어 있고, 거리가 가깝기 때문에 미국과 연결하는 인터넷 선로를 공통으로 사용할 수 있습니다. 이렇게 여러 나라를 인터넷으로 연결하는 데 가장 짧은 인터넷 선로를 이용해서 모든 나라를 연결하기 위해서는 스타이너 트리라는 알고리즘을 이용할 수 있습니다. 248 CS Unplugged 16. 통신망 구축 - 스타이너 트리 249
단계 소요 시간 요소 교수 활동 형태 자료 1 동기유발 활동 동기유발 세계지도에 인터넷 구축하기 - 세계지도에 도시 표시하기 1. 세계 지도를 펼치고 학생들에게 아는 도시의 위치를 물어보고 지도에 표시합니다. - 표시한 도시 연결 기법 아이디어 도입 10분 스타이너 점을 이용하여 점 3개와 점 4개를 연결하는 가장 짧은 경로를 전체 목표 그릴 수 있다. 제시 스타이너 점을 이용하여 여러 지점을 연결하는 가장 짧은 경로를 그릴 수 있다. 삼각형, 사각형 통신망 구축 개인 10분 활동1 - 광케이블 블록 만들기 - 최단 경로 찾아보기 또는 모둠 - 최단 경로 비교하기 활동 여러 점 통신망 구축 개인 전개 15분 활동2 - 모든 지점 연결하기 - 더 짧은 경로 찾기 또는 모둠 15분 활동3 - 스타이너 점의 개수와 길이 측정하여 기록하기 사다리 모양 통신망 구축 - 4개의 지점 연결하기 - 6개의 지점 연결하기 - 8개의 지점 연결하기 - 10개의 지점 연결하기 활동 개인 또는 모둠 활동 2. 인터넷을 구축하기 위해서는 그 도시들을 광케이블로 연결해야 함을 알려주고, 표시한 도시들을 색 테이프로 연결합니다. 그리고 광케이블은 가격이 비싸고 세계 각 도시는 너무 멀어서 가급적 짧은 경로로 연결하면 좋다는 것을 알려주고, 비용을 절약할 수 있는 아이디어를 발표하게 합니다. 스타이너 트리 형성 방식 정리 2 문제 제시 - 삼각형, 사각형에서의 연결 정리 10분 프로젝트 정리 - 다수의 점 연결 스타이너 트리 적용 분야 찾아보기 - 통신 선로, 송유관 전체 1. 여러 지점을 최소한의 길이로 연결하는 방법은 무엇일까요? 2. 스타이너 점이 전체 경로를 줄일 수 있는 이유는 무엇일까요? - 기타 짧은 거리가 필요한 분야 찾아보기 3. 여러 지점을 최소한의 길이로 연결하는 것이 필요한 이유는 무엇일까요? 250 CS Unplugged 16. 통신망 구축 - 스타이너 트리 251
3 주요 개념 및 용어 정리 4 자 활동 스타이너 트리 점을 추가할 수 있는 최소 신장 트리로 모든 노드를 루프 없이 연결하는 것을 트리라 하며 최단 거리로 모든 노드를 연결하기 위해 새로운 노드를 추가 가능한 형태입니다. 스타이너 점 스타이너 트리에서 최단 거리 연결을 위해 추가된 노드입니다. 삼각형 형태의 연결에서는 최단 거리를 찾기 위해 페르마의 점과 같은 의미를 가집니다. 휴리스틱 시간이나 정보가 불충분하여 합리적인 판단을 할 수 없거나, 굳이 체계적이고 합리적인 판단을 할 필요가 없는 상황에서 신속하게 사용하는 어림짐작의 기술 (출처 : http://terms.naver.com/entry.nhn?docid=2070217&cid=41991&categoryid=41991) < 활동 1 > 삼각형, 사각형 통신망 구축 - 활동 시간 : 10분 - 활동 개요 정삼각형과 정사각형 모양의 꼭지점에 해당하는 지점을 연결하는 최단 거리의 스타이너 트리를 구상해보면서 스타이너 트리를 구성하는 가장 기본적인 모양을 눈에 익히도록 합니다. - 준비물 : 활동지1, 가위 - 활동 안내 1. 활동지1의 색깔 블록을 가위로 오립니다. 이는 각 지점을 연결하는 광케이블이 됩니다. 2. 개인별로 정삼각형 모양의 세 지점을 연결하는 가장 짧은 경로를 색깔 블록을 이용해서 만들어봅니다. 여러 블록을 이어붙이는 것도 가능합니다. 3. 각자 찾은 가장 짧은 경로를 서로 비교합니다. 사용한 색깔 블록을 길게 이어 붙여 서로가 사용한 광케이블 길이를 비교하면 됩니다. 4. 정사각형 모양의 네 지점에 대해서도 똑같은 방법으로 반복합니다. (a) (b) (c) (a) (b) (c) (d) 지도 Tip 1. 동기유발 활동으로 선생님과 모든 학생들이 함께 진행해도 좋습니다. 2. 모둠별 활동으로 모둠 내에서 의논하여 발표하는 방식으로 진행해도 좋습니다. 3 활동지의 삼각형, 사각형과 색깔 블록은 정확한 치수를 재단한 것이므로 그대로 출력해서 사용하거나, 비율에 맞추어 제작해야 합니다. 4. 학생들의 활동이 끝나면 가능한 모든 경우의 수를 다 알려주어 비교하도록 합니다. 5. 수학적 이해력이 높은 학생에게는 페르마 점(스타이너 점)의 원리를 설명해주어도 좋습니다. 252 CS Unplugged 16. 통신망 구축 - 스타이너 트리 253
< 활동 2 > 여러 점 통신망 구축 - 활동 시간 : 15분 - 활동 개요 활동1에서 실습한 내용을 바탕으로 좀 더 복잡한 네트워크를 구성해보도록 합니다. 여러 지점을 연결하는 방법을 연구해보는데, 활동1에서 했던 내용을 응용할 수 있습니다. - 준비물 : 활동지2, 연필, 지우개, 자 - 활동 안내 1. 연필로 모든 지점을 연결해보도록 합니다. 2. 더 짧게 연결할 수 있는 방법이 있으면 지우개로 지우고 새로이 연결해보도록 합니다. 3. 활동1에서 했던 방법을 응용해보도록 합니다. 세 개의 점은 삼각형 스타이너 트리, 네 개의 점은 사각형 스타이너 트리의 방식으로 연결할 수 있다는 것을 알려줍니다. 4. 스타이너 트리가 완성되면 스타이너 점의 개수를 세고 연결한 직선의 길이를 하나씩 재서 모두 더해 활동지2에 기록합니다. 그리고 결과를 서로 비교해봅니다. < 활동 3 > 사다리 모양 통신망 구축 - 활동 시간 : 15분 - 활동 개요 사각형 모양의 스타이너 트리가 확장되는 방법을 보여주고 같은 규칙을 사용해서 사다리 모양의 통신망을 스타이너 트리로 구성할 수 있도록 합니다. - 준비물 : 활동지3, 연필, 지우개, 자 - 활동 안내 1. 4개의 지점을 연결하는 최단거리 선로를 그립니다. 선로의 길이를 자로 측정하여 기록합니다. 2. 6개의 지점을 연결하는 최단거리 선로를 그립니다. 4개의 지점을 연결하는 최단거리 선로를 약간 변형하여 합치면 그릴 수 있음을 알려줍니다. 다 그리고 나면 선로의 길이를 자로 측정하여 기록합니다. 3. 8개의 지점, 10개의 지점을 연결하는 최단거리 선로를 마찬가지 방식으로 그리고 선로의 길이를 측정하여 기록합니다. 4. 각자 그린 최단거리 선로의 모양과 길이를 비교합니다. 지도 Tip 1. 모둠별로 서로 의논하면서 작성하도록 합니다. 공간지각력이 좋은 학생들이라면 개별적으로 진행해도 좋습니다. 2. 한 번에 완성하도록 하지 말고 계속적으로 고쳐가며 길이를 줄여나가도록 합니다. 3. 스타이너 트리는 풀기 어려운 문제이므로 직관적으로 추측해가며 만들어가는 것이기 때문에 정답이 어떤 것이라고 단정 지어서는 안 됩니다. 모든 학생들의 답을 인정해주어야 합니다. 지도 Tip 1. 모둠별로 서로 의논하면서 작성하도록 합니다. 공간지각력이 좋은 학생들이라면 개별적으로 진행해도 좋습니다. 2. 한 번에 완성하도록 하지 말고 계속적으로 고쳐가며 길이를 줄여나가도록 합니다. 3. 스타이너 트리는 풀기 어려운 문제이므로 직관적으로 추측해가며 만들어가는 것이기 때문에 정답이 어떤 것이라고 단정 지어서는 안 됩니다. 모든 학생들의 답을 인정해주어야 합니다. 254 CS Unplugged 16. 통신망 구축 - 스타이너 트리 255
5 자용 워크북 (활동지, 활동 자료) 활동지 1 - 삼각형, 사각형 통신망 구축 활동지 2 - 여러 점 통신망 구축 스타이너 점 개수 광케이블 길이 256 CS Unplugged 16. 통신망 구축 - 스타이너 트리 257
6 선생님용 참고자료 활동지 3 - 사다리 모양 통신망 구축 페르마의 점 사다리 네트워크 결과 광케이블 길이 스타이너 점 개수 ABC에서 AP + BP + CP 가 최소가 되는 점 P를 페르마의 점이라고 합니다. ABC 의 각 변을 한 변으로 하는 정삼각형을 그리면 그 정삼각형의 외접원이 한 점에서 만나는데 그 점이 P 입니다. APB = BPC = CPA = 120 입니다. (그림 출처 : http://blog.naver.com/orbis1020/220391837046) 스타이너 트리의 의미 광케이블 길이 스타이너 점 개수 광케이블 길이 통신이나 송유관 건설처럼 먼 곳을 연결해야 하는 분야에서 최단 거리 경로를 계산하는 것은 비용과 직결되는 아주 중요한 문제입니다. 거리가 워낙 멀기 때문에 1967년 이전 미국에서는 전화 네트워크 요금을 회선 사용량이 아닌 회선의 길이에 따라 정하기도 했습니다. 그래서 청구 금액을 계산하는 알고리즘은 최소신장트리를 이용하여 산출하였습니다. 하지만 1967년경 주요 허브 3개를 소유한 항공기 회사 고객은 만약 중간 지점에 4번째 허브가 있다면 전체 네트워크 길이를 줄일 수 있다는 점을 주목하게 되었고, 통신 요금을 낮출 수 있었습니다. 특정 배치 조합에서 최소 스타이너 트리가 최소신장트리보다 짧을 수 있지만 그 차이가 5~10% 정도이므로 금액이 매우 큰 경우에 유의미합니다. 그리고 철저하게 최소 스타이너 트리에 의해 경로를 결정하는 것은 아니고, 지형이라든지, 국가별 여건이라든지, 기 매설된 선로라든지 여러 가지 요소를 고려해야 합니다. 최소 스타이너 트리를 이용하는 다른 사례로는 VLSI 디자인, 송유관 매설, 하수도 배관 등이 있습니다. 스타이너 점 개수 광케이블 길이 (http://www.inews.org/snews/articles how.php?domain=ngoanyang&no=10117) (http://www.submarinecablemap.com/) 스타이너 점 개수 258 CS Unplugged 16. 통신망 구축 - 스타이너 트리 259
7 해답과 힌트 정답 - 활동지 1, 2 비눗방울의 최적화 무작위의 여러 점을 연결하는 최단 거리 경로는 계산하기가 매우 어렵습니다. 이 때 비눗물을 이용하면 자연 현상에 의해 최단 경로 모양으로 비눗방울 막이 형성됩니다. 두 장의 아크릴 판 사이에 무작위의 여러 점을 기둥으로 만들고 비눗방울에 넣었다 꺼내면 됩니다. <활동지1> (a) (b) (c) (b)와 같이 연결할 수도 있지만 (c)와 같이 세 점 가운데에 가상의 점을 만들어 연결하면 더 짧은 경로로 세 점을 연결할 수 있습니다. (a) (b) (c) (d) (b)와 같이 연결할 수도 있지만 (c)와 같이 네 점 가운데에 가상의 점을 만들어 연결하면 더 짧은 경로로 네 점을 연결할 수 있고, (d)와 같이 네 점 가운데에 가상의 점을 두 개 만들어 연결하면 (c)보다 더 짧은 경로로 네 점을 연결할 수 있습니다. <활동지2> 연결해야 할 지점을 삼각형과 사각형 모양으로 구분지은 다음 삼각형과 사각형에서의 스타이너 트리를 그려 연결합니다. (그림 출처 : http://pandasthumb.org/ archives/2006/07/target-target-w-1.html) 스타이너 점 개수 5 비눗방울의 수학적인 성질은 19세기에 물리학자 플라토가 처음 밝혀냈습니다. 거품의 모서리는 세 막으로만 이루어지고, 이웃하는 두 막은 언제나 120 각도를 이루고, 한 점에서는 네 모서리만 만난다는 내용입니다. 비눗방울이 120 로 만나는 이유는 표면적이 최소가 되는 각도이기 때문입니다. 광케이블 길이 (측정하여 기입) 260 CS Unplugged 16. 통신망 구축 - 스타이너 트리 261
정답 - 활동지 3 구분 스타이너 트리 스타이너 점 개수 4점 사다리 네트워크 2 6점 사다리 네트워크 4 8점 사다리 네트워크 6 10점 사다리 네트워크 8 광케이블 길이는 자로 실측하여 기록합니다. 262 CS Unplugged
놀이로 배우는 컴퓨터 과학 17. 비밀 공유 - 정보 은닉 프로토콜 지도안 17. 비밀 공유 - 정보 은닉 프로토콜 목표 1. 정보 은닉의 개념을 이해할 수 있다. 2. 실제 생활의 예를 이용하여 정보 은닉을 활용할 수 있다. 방법 게임 소요 시간 50분 적정 연령 12세 이상 사진 이미지가 숫자로 분해되어서 저장장치에 저장되고, 모니터 화면으로 뿌려지면서 사진이 완성되는 모습 관련 CT 자료 표현, 문제분석, 알고리즘과 절차 선생님 메모지, 투표용지, 투표박스, 투표함 < 개요 > 준비물 학생 필기도구 암호 기법은 다른 사람과 정보를 공유하게 하지만, 놀랍도록 높은 개인정보 보호 수준을 유지합니다. 이번 활동은 정보는 공유되지만, 어떤 정보도 누출되지 않는 상황을 시연합니다. 그룹의 학생들이 평균 몸무게를 계산하는데 누구도 다른 사람에게 몸무게가 얼마인지 말하지 않고도 가능합니다. 263 CS Unplugged 17. 비밀공유 - 정보 은닉 프로토콜 264
단계 소요 시간 요소 교수 활동 형태 자료 사전 준비 사항 집단의 한 달 읽은 책의 수 구하기 - 학생 3명을 나오게 하고 선생님이 난수를 하나 생성하여 귓속말로 학생1에게 알려줌. 도입 5분 동기유발 - 학생1은 알려준 난수에 자신의 한달 독서 수를 더해 학생2에게 알려줌. - 학생2와 3도 1과 같은 방법으로 자신의 한달 독서 수를 학생2는 학생3에게, 학생3은 선생님에게 알려줌. - 선생님은 학생3이 귓속말로 알려준 수에 처음 난수를 빼고 학생 개개인의 한달 동안 읽은 책의 수를 알지 못해도 3명의 집단의 한달 동안 읽은 책의 전체 메모지 - 한 장씩 떼어 낼수 있는 메모지 여러 개와 투표 용지를 학생수 만큼 준비하고 비밀투표가 될 수 있도록 지도한다. - 정보가 노출되지 않도록 개인 정보의 중요성을 강조한다. 수를 알 수 있음을 학생들에게 알려준다. 목표 1. 정보 은닉의 개념을 이해할 수 있다. 제시 2. 실제 생활의 예를 이용하여 정보 은닉을 활용할 수 있다. 집단의 몸무게 평균 구하기 1. 학생들 5명씩 그룹지어 일렬로 앉기 2. 첫 번째 학생 메모지에 난수 적기 15분 활동1 3. 첫 번째 학생 적은 메모지 떼어 내고 난수에 자신의 몸무게를 더한 후 두 번째 학생에게 전달 4. 2번째부터 5번째 학생까지 위와 같이 받은 숫자는 떼어내고 받은 숫자에 자신의 몸무게를 더한 후 옆 사람에게 전달 5. 5번째 학생은 첫 번째 학생에게 전달 모둠 활동 (5인 1조) 메모지 (종이 패드), 펜 6 첫 번째 학생은 받은 숫자에 처음 난수를 빼고 나온 숫자를 선생님에게 전개 전달 7. 최종 숫자를 인원수로 나누면 해당 모둠의 평균 몸무게 임을 확인 킬러 로봇 찬성/반대 비밀 투표 1. 투표소로 학생증을 가지고 이동 10분 활동2 2. 명부에서 인적사항을 확인하고 사인한 후 투표용지를 선거관리위원으로부터 받음 3. 선거함으로 이동하여 찬반투표를 한 후 투표함에 넣기 전체 투표 용지, 펜, 투표함, 투표박스 4. 선거 종료 후 투표함을 열어 투표 결과를 확인 5. 공정한 선거 유무 확인 정리 5분 프로젝트 정리 1. 정보 은닉의 개념 설명 2. 정보 은닉의 중요성 설명 전체 265 CS Unplugged 17. 비밀공유 - 정보 은닉 프로토콜 266
1 동기유발 활동 4 자 활동 2 학생 3명으로 앞으로 나오게 하고 나온 학생들의 한 달 독서 수를 확인하려합니다. 나온 학생들을 일렬로 서게 합니다. 선생님이 먼저 특정한 난수 (예 55)를 학생1에게 귓속말로 알려줍니다. 학생1은 선생님에게 들은 숫자에 자신의 한달 동안 읽은 책 수를 더해 (예 5을 더해 60) 학생2에게 귓속말로 알려줍니다. 학생2도 학생1과 마찬가지로 들은 수에 자신의 읽은 책 수를 더해 (예 12를 더해 72) 학생3에게 귓속말로 알려줍니다. 학생3도 학생2에게 들은 수에 자신의 읽은 책 수를 더해 (예 4을 더해 76) 선생님에게 알려줍니다. 선생님은 들은 수에서 처음 학생1에게 알려준 수(55)를 빼서 남은 수(21)를 반 아이들에게 알려줍니다. 이 활동을 통해 개인 정보를 감추고도 필요한 정보는 알 수 있음을 학생들에게 알려 줄 수 있습니다. 문제 제시 < 활동 1 > 평균 몸무게 구하기 - 활동 시간 : 15분 - 활동 개요 이 활동은 학생들의 개인 몸무게를 누설하지 않은 상태에서 집단의 몸무게 평균을 구하는 게임입니다. 대안으로는 평균 연봉, 평균 키 등으로 대처할 수도 있습니다. - 준비물 : 메모지(종이 패드), 펜 - 활동 안내 1. 학생들에게 어느 누구도 자신의 몸무게를 말하지 않고 모인 그룹의 평균 몸무게를 계산하는 활동을 진행한다고 알려주고 5명씩 그룹을 지어 일렬로 앉게 합니다. (학생수는 더 늘어나도 상관없습니다.) 1. 은닉해야 하는 정보는 어떤 것 들이 있나요? 2. 개인정보를 은닉하지 않으면 어떤 일들이 일어날까요? 3. 어떻게 하면 개인정보를 알려주지 않고 필요한 정보를 공유할 수 있을까? 3 주요 개념 및 용어 정리 2. 첫 번째 학생에게 메모지와 펜을 나눠주고, 종이 위에 3자리 난수를 하나 골라 비밀스럽게 적게 합니다. (예: 613) 개인 정보( 個 人 情 報 )는 개인에 관한 정보 가운데 주민번호 같이 직ㆍ간접적으로 각 개인을 식별할 수 있는 정보를 가리킨다. 3. 첫 번째 학생이 메모지(종이 패드)를 떼어 내고 본인의 몸무게를 난수에 더한 후 그 결과를 두 번 째 종이에 적게합니다. (예 75kg을 더해 688) 떼어낸 종이(613)를 누구에게도 보여주지 않도록 주의시킵니다. 267 CS Unplugged 17. 비밀공유 - 정보 은닉 프로토콜 268
4. 688이 적혀있는 종이패드를 두 번째 학생에게 전달시킵니다. 두 번째 학생은 본인 몸무게를 받은 숫자에 더한 값을, 종이패드를 떼어 내고 다음 페이지에 총합을 적습니다. 떼어낸 종이(688)는 누구에게도 보여주지 않게 합니다. (예) 688 에 본인 몸무게 85를 더해 773이 메모지에 입력됩니다. < 활동 2 > 킬러 로봇 개발 찬성/반대 비밀 투표하기 - 활동 시간 : 15분 - 활동 개요 민주주의의 선거의 원칙 중 비밀 투표의 원칙이 있습니다. 자신이 투표한 것을 다른 사람이 모르게 해야 한다는 것인데, 투표 활동을 통해 정보은닉에 대해 알아보게 됩니다. 자신의 학생증을 가지고 투표장소로 이동하여 선거관리위원 앞의 명부에서 자신의 인적사항을 찾아 사인을 하고 킬러 로봇 개발 찬성/반대 투표 종이를 받아 투표박스로 이동하여 투표를 하고 이를 투표함에 넣음으로 어디에 투표했는지를 알 수 없게 되지만 투표 결과에는 영향을 줌으로써 정보은닉을 배울 수 있습니다. 5. 학생들이 종이패드를 떼어내고 떼어낸 값에 자신의 몸무게를 더하여 다음 페이지에 합을 적는 과정을 모든 학생이 종이패드를 가질 때까지 계속하게 합니다. (예) 773에 3번째 학생의 몸무게 80을 더해 853, 4번째 학생의 몸무게 97을 더해 950, 5번째 학생의 몸무게 63을 더해 1013이 됩니다. - 준비물 : 투표 용지, 펜, 상자(투표함), 투표박스, 인적사항명부 - 활동 안내 1. 학생은 학생증을 들고 선거관리위원 앞으로 이동하여 자신의 인적사항이 적힌 명부에 사인을 한 후 투표 용지를 받습니다. 2. 받은 종이를 가지고 투표박스로 이동하여 아무도 모르게 편지 속지(투표용지)에 찬성/반대 또는 O/X를 적고 접어서 투표함에 넣습니다. 6. 최종 종이패드를 첫 번째 학생에게 전달합니다. 종이패드에 적힌 숫자에서 최초 난수(613)를 첫 번째 학생이 빼서 결과를 종이패드에 적습니다. 적은 숫자를 다시 선생님이 받아 확인합니다. 적은 숫자가 학생들의 몸무게 총합이고 이를 학생 수로 나누면 평균 몸무게가 계산되었음을 알려줍니다. (예) 1013에서 613을 빼면 400이 되고 이를 5로 나누면 80kg이 평균이 됩니다. 또는 3. 모든 학생들이 투표를 마무리할 때까지 1~2 활동을 계속합니다. 지도 Tip 4. 투표가 마무리되면 선거관리위원은 투표함을 개봉하여 결과를 확인합니다. 5. 유권자의 비밀이 보장된 공정한 선거가 되었는지 확인합니다. 1.모든 학생이 종이패드를 파기하고, 두 학생이 공모하지 않는다면, 누구도 개인 나이를 계산할 수 없다는 점을 학생들에게 알려줍니다. 지도 Tip 1. 투표 종이의 결과를 아무도 볼 수 없도록 실제 선거처럼 투표박스를 만들어 이용하는 것이 좋으며 누군가 볼 수 없어야 정보 은닉이 가능하다는 것을 주의시켜줍니다. 269 CS Unplugged 17. 비밀공유 - 정보 은닉 프로토콜 270
5 자용 워크북 (활동지, 활동 자료) 6 선생님용 참고자료 활동지 1 - 킬러 로봇 개발 찬성/반대 비밀 투표하기 킬러 로봇 개발 찬성/반대 투표 용지 - 찬성 입장 킬러 로봇이 위험한 지역의 작전 과정에서 발생할 수 있는 인명 피해를 줄일 수 있다. 킬러 로봇은 전쟁에서 발생하는 민간인들의 희생을 획기적으로 줄일 수 있다 킬러 로봇이 인간보다 공격 목표물을 공격해야 하는지 말아야 하는 지를 더 잘 판단할 수 있다. 실전 배치됐을 때 생길 수 있는 다른 문제들은 국제전시법( 戰 時 法 )으로 충분히 다룰 수 있다. - 반대 입장 이성이 없는 로봇에게 인간의 생사를 판단하도록 하는 게 윤리적으로 정당하지 않다. 사탕을 든 아이와 총을 겨누는 군인을 식별할 수 없는 킬러 로봇에 인간 살상권을 줄 수 없다 오작동할 경우 더 심각한 인명피해를 가져올 것이며 해킹 되었을 때 피해는 상상이상일 것이다. 자동 무기 시스템이 국제법을 준수할 것이라고 어느 누구도 보장할 수 없다 여러분의 선택은? 컴퓨터에는 많은 개인정보가 저장된다: 은행 잔고, 소셜 네트워크, 체납된 세금, 운전면허증 보유기간, 신용정보 이력, 시험 성적표, 의료기록 등. 개인정보는 매우 중요하다! 하지만, 다른 사람과 개인정보 정보 일부를 공유할 필요가 있다. 예를 들어, 은행 직불카드를 사용해서 매점에서 물건값을 계산할 때, 매점에서는 계좌잔고가 충분한지 검증할 필요가 있다는 것을 인식하고 있다. 종종 정말 필요한 것보다 더 많은 정보를 제공한다. 예를 들어, 상점에서 전자상거래를 한다면, 고객이 어느 은행과 거래하며, 계좌번호는 무엇이고, 이름이 무엇인지 상점에서 파악하게 된다. 조금더 나아가, 은행은 고객이 쇼핑하는 장소도 파악한다. 은행은 고객 프로파일을 만들어서, 주유는 어디서 하고, 식료품을 어디서 구입하며, 매번 쇼핑할 때 쇼핑항목별로 얼마를 지불하며, 언제 방문을 했는지도 파악하고 있다. 만약 현금으로 지불한다면, 어떤 정보도 알려지지 않는다. 대부분의 사람들은 공유되는 정보에 대해서 별로 걱정을 하지 않는다. 하지만, 잠재적인 오용 가능성은 충분한다: 타겟 마케팅 (예를 들어, 항공권 구입에 돈을 많이 쓰는 사람에게 여행광고 제공), 차별(은행이 부자 고객에게 고급 서비스를 제공), 심지어 협박(부적절한 거래를 폭로하겠다고 협박). 그밖의 다른 경우라면, 만약 누군가 여러분을 모니터링하고 있다고 생각한다면, 쇼핑하는 방식을 바꿀 수도 있다. 찬성 반대 개인정보의 손실은 꽤 널리 받아들여진다. 하지만, 암호화 프로토콜이 존재해서 현금으로 거래하는 것과 같은 수준으로 개인정보 보호를 전자금융거래에서 가능하게 한다. 은행계좌에서 상점계좌로 돈이 이체되는데 어느 누구도 돈의 출처와 입금된 곳을 알지 못한다는 것을 믿기는 힘들다. 이번 활동은 그런 금융거래가 좀더 그럴듯하게 보이게 기획되었다: 양쪽 상황 모두 제한된 정보 공유만 포함하고, 좀더 똑똑한 프로토콜로 가능하게 만들었다. 271 CS Unplugged 17. 비밀공유 - 정보 은닉 프로토콜 272
놀이로 배우는 컴퓨터 과학 18. 페루 동전 던지기 암호화 프로토콜 지도안 18. 페루 동전 던지기 암호화 프로토콜 목표 1. 암호화의 필요성을 설명할 수 있다. 2. 암호화의 기본 개념을 이해하고 통신망에서 암호화가 이루어지는 방식에 대해 설명할 수 있다. 방법 문제해결 소요 시간 60분 사진 이미지가 숫자로 분해되어서 저장장치에 저장되고, 모니터 화면으로 뿌려지면서 사진이 완성되는 모습 적정 연령 13세 이상 관련 CT 자료 분석, 문제 분해, 알고리즘 및 절차 < 개요 > 우리는 비밀을 이야기할 때 암호를 만들어 사용합니다. 고대에서 현대에 이르기까지 특히 전쟁에 관련되서 많은 암호 방식이 개발되고 사용되었습니다. 하지만, 지금은 전쟁이 아니어도 온라인(컴퓨터 네트워크)를 통해 물건을 구매하고, 은행 업무를 수행 하는 일 등 온라인상에서 우리는 비밀스럽게 전달해야 하는 수많은 정보가 있습니다. 따라서 안전한 전자 이체 및 자신을 인증하는 전자 서명된 문서를 보장하는 것 등 암호화는 컴퓨터 네트워크 상에서 필수적인 분야입니다. 암호화는 바로 이렇게 통신선에서 비공개적으로 소통하는 방법에 관한 것이며, 정보를 비밀스럽게 보내는 것 뿐 아니라 지리적으로 멀리 떨어진 사람들 간에 신뢰를 구축하는 일도 포함합니다. 선생님 준비물 학생 활동지, 500원 짜리 동전 1개 활동지 273 CS Unplugged 18. 페루 동전 던지기 - 암호화 프로토콜 274
단계 소요 시간 요소 교수 활동 형태 자료 1 동기유발 활동 동전던지기 게임 -교사는 학생 중 한명을 불러내어 동전던지기 게임을 실시 동전던지기 게임 동기유발 (서로 등돌리고 전화하며 동전던지는 상황) (단, 앞뒷면인지 학생의 대답과 무관하게 던진 동전의 결과를 자기만 보고 계속 틀렸다고 얘기함) - 교실 앞으로 한 명의 학생을 나오도록 합니다. - 교사는 다음과 같이 상황을 설명합니다. 도입 10분 20분 목표 제시 활동1 - 좀 전의 동전 던지기가 신뢰로웠는지 발문 - (신뢰롭지 않았다면) 왜 그런지 발문 - 통신망에서 신뢰롭게 진행할 수 있는 방법 나누기 암호화의 필요성을 설명할 수 있다. 암호화의 기본 개념을 이해하고 통신망에서 암호화가 이루어지는 방식에 대해 설명할 수 있다. 역사적인 암호 따라잡기 마타하리 암호 - 역사적인 암호에 대한 개략적인 안내를 진행 - 모둠별로 스파이, 정부요원, 적군으로 역할 지정 전체 모둠 활동 (4인 교사 나레이션: 자 여기 두명의 축구팀 대표가 있습니다. 두 팀은 결승전을 치를 축구장을 어디로 할지 결정해야 합니다. 가장 단순한 방법으로 동전 던지기를 생각할 수 있죠. 단, 현재 둘은 아주 먼 거리에 살고 있고 서로 만날 시간적 여유가 없어 전화를 하며 동전던지기를 통해 축구장을 정해야 하는 상황입니다. 한 팀의 대표는 저(교사)이고, 또 한팀의 대표는 이 학생입니다. 상황 설명 후에 교사는 동전을 던지고 전화기 너머의 학생의 맞추도록 함 앞뒷면인지 학생의 대답과 무관하게 던진 동전의 결과를 자기만 보고 계속 틀렸다고 얘기함 그리고 경기장은 자신(교사)의 홈구장에서 실시하자고 함. 전체학생에게 발문 여러분은 지금 학생의 추측에 틀렸다고 한 제 대답을 믿으세요? 전개 - 역할에 따라 마타하리 악보 암호를 이용한 암호문 제작과 해독 실시 페루 동전 던지기 통신망에서 내용이 암호화 되는 과정을 인식할 수 있는 활동 진행 1조) - (신뢰롭지 않았다면) 좀 전의 결과를 왜 그런지 발문하고, 어떻게 하면 믿을 수 있는 결과를 얻을지 이야기를 나누어 봅니다. 이러한 상황에서 공정하고 신뢰롭게 동전던지기(짝수는 앞면, 홀수면 뒷면)를 실시하는 방안에 대해서 토의 후 발표합니다. - 활동을 위한 사전 안내 활동 진행 모둠 25분 활동2 - 각 팀에게 활동지 3(암호화 회로)를 나눠주고 학생 A는 암호를 생성하여 전달 - 학생 B는 받은 자료를 근거로 동전맞추기의 앞/뒤를 추측하여 맞춤 - 학생 A는 결과 확인 및 회로도를 통한 검증 진행- 암호화를 통해 통신망 활동 (2인 1조) 2 문제 제시 상에서 신뢰롭게 데이터를 주고받을 수 있음을 함께 생각함. 정리 5분 프로젝트 정리 - 페루 동전 던지기 활동과 연계하여 통신망에서의 암호화의 필요성 및 원리 정리 - 전자서명의 아이디어 안내 전체 1. 통신망에서 암호는 왜 필요할까요? 2. 0, 1로 이루어진 이진수가 전송되는 통신망에서 어떻게 내용을 암호화 할 수 있을까요? 3 주요 개념 및 용어 정리 암호화 통신할 내용을 일정한 알고리즘 및 절차에 따라 암호로 바꿈. 복호화 암호화된 내용을 암호 해독의 키(key)를 이용하여 다시 원래대로 해독하는 일. 275 CS Unplugged 18. 페루 동전 던지기 - 암호화 프로토콜 276
4 자 활동 < 활동 2 > < 활동 1 > 역사적인 암호 따라잡기 마타하리 암호 - 활동 시간 : 20분 - 활동 개요 역사적으로 사용되었던 암호 중 하나를 선택하여 실제 언플러그드 활동을 통해 암호를 제작 전송하고, 해독해 보는 과정을 통해 암호의 필요성 및 기본 원리를 배우는 활동입니다. 교사는 역사적으로 사용되었던 암호들에 대해 간략히 안내하되 암호를 제작하고 해독하는 정답을 미리 제공하지 않습니다. 2명이 짝을 이루어 진행해도 좋고 더 많은 인원이 함께 생각해 보는 것도 좋습니다. - 준비물 : 활동지1 - 활동 안내 (4인 1모움의 예) 1. 모둠원들의 역할을 정합니다. (1명: 스파이, 1명: 정부요원, 나머지: 적군) 2. 활동지1의 마타하리 악보 암호 해독의 키와 오선지를 스파이 역할 학생에게 나누어 줍니다. 암호해독 키(그림1)는 스파이와 정부요원에게만 제공합니다. 페루 동전 던지기 <통신망에서 나를 인증하는 전자서명 아이디어 찾기> - 활동 시간 : 25분 - 활동 개요 본 활동은 동기 유발 활동에서 제시한 동전던지기를 통신망으로 가져왔을 때의 상황을 보여준다. 2명이 짝을 이루어 진행하며 학생 A가 회로도를 통해 작성한 암호문을 학생 B에게 전달하고 B는 이것이 짝수 인지 홀수인지(짝수이면 동전 앞면, 홀수이면 뒷면) 추측하여 맞춘다. 통신선상에서는 직접 동전의 앞뒷면을 확인할 수 없으나 분명히 B는 자신이 받은 암호문을 통해 추후 학생 A가 진실을 말했는지 여부를 검증 할 수 있게 된다. - 준비물 : 활동지2(페루 동전 던지기 사전 안내), 활동지3(페루 동전 던지기 회로) - 활동 안내 <사전 활동 진행> 전체 으로 페루 동전 던지기 활동을 위한 사전 안내 활동을 진행합니다. - 페루 동전 던지기의 상황 설명, 암호화 회로도 이해를 위한 AND, OR 게이트 설명 1 0 1 0 and or 0 1 악보 암호 해독의 키 암호문 작성을 위한 오선지 1. 2명이 짝을 이룹니다. 2. 각 팀에게 활동지 3(암호화 회로)를 나눠주고 안내합니다. 3. 각 팀은 역할을 나누어 다음과 같이 동전던지기 활동을 진행한다. 단, 동전의 앞면은 짝수로, 뒷면은 홀수로 정의하고 진행한다. 3. 스파이 역할 학생은 악보 암호 키를 활용해 암호문을 작성합니다. 4. 스파이 는 작성된 암호문(오선지에 그린 악보)을 모두에게 전달합니다. 5. 모둠원 들은 암호를 해독해 봅니다. 6. 모둠원들이 함께 암호 해독의 키에 대해 고민해 본 뒤 정부요원 이 해독문과 키를 제공합니다. 지도 Tip 1. 활동을 진행하는 동안 암호 해독의 키를 비밀로 하여 적군이 키를 알 수 없도록 한다. 2. 위와 같은 비밀키 암호화 방식에서 암호 해독의 키가 공개될 경우 발생할 수 있는 상황을 서로 이야기 해본다. 277 CS Unplugged 18. 페루 동전 던지기 - 암호화 프로토콜 278
지도 Tip 1 학생 A는 0, 1로 구성된 임의의 6자리 숫자패를 정하고 비밀로 한다. (짝수 또는 홀수) 예 : 010011 2 회로도를 이용하여 1의 숫자패를 학생 B에게 전달할 암호문으로 변환한다. 예 : 011010 1. 페루 동전던지기 활동을 진행 한 후 반드시 연관된 컴퓨터 사이언스 개념을 안내 합니다. 전자서명도 위의 활동과 비슷한 아이디어에 기반 한다. 알리시아가 선택한 특정 보안 입력 값으로 회로 출력 값을 생성해서 공개함으로써, 효과적으로 그 출력 값을 만든 사람이 본인임을 중명한다. 이는 회로도가 만든 수를 알고 검증은 가능하나, 암호문만 가지고 원문을 역추적하는것이 불가능한 일방향 함수로 어느 누구도 입력 값을 생성할 수 없다. 즉, 어느 누구도 알리시아처럼 가장할 수 없다. 실제 전자 서명을 생성하기 위해서, 좀 더 복잡한 프로토콜이 필요한데, 알리시아가 특정 메시지에 서명하고 다른 사람도 알리시아 본인이 하지 않았다는 부인하지 못하도록 검증도 함께 한다. 실제로 훨씬 복잡한 규칙이 사용된다고 하지만 위의 활동과 원리는 동일하다. 이미지출처 : 교육부 전자서명인증센터 http://www.epki.go.kr/index.do 2. And, Or 게이트를 활용하여 실제 회로를 설계하는 것은 매우 복잡하고 어려운 활동이 될 수 있으니 완성된 회로도를 이용해 입출력 값을 생성하고 동전던지기 활동(짝수, 홀수 등 둘 중 하나의 상황을 맞추는)을 진행할 수 있도록 합니다. 3 학생 B에게 2의 암호문을 전달한다. 4 학생 B는 전달받은 암호문을 보며 고민한 뒤 학생 A에게 앞면(짝수)인지 뒷면(홀수)인지 맞춘다. 5 학생 A는 B가 맞춘 것이 맞는지 아닌지 정답을 말한다. 6 학생 B는 학생 A에게 1의 숫자 패를 알려달라고 하여 검증한다. 5. 짝 활동이 끝나면 전체적으로 동전던지기를 맞춘 팀이 몇팀 정도 되는지 손을 들어 확인한다. 6. 컴퓨터 사이언스의 암호화 프로토콜 의 아이디어와 연관하여 설명한다. - 이때 교사는 이 회로도가 만든 수를 알고 검증은 가능하나, 암호문만 가지고 원문을 역추적하는것이 불가능함(일방향임)을 함께 안내한다. 279 CS Unplugged 18. 페루 동전 던지기 - 암호화 프로토콜 280
5 자용 워크북 (활동지, 활동 자료) 활동지 1 - 역사적인 암호 따라잡기 1. 역사적으로 사용되었던 다양한 암호들 3. 마타하리 악보 암호를 활용한 암호문 만들어보세요. 스키테일 암호 카이사르 암호 에니그마 < 마티하리 악보 암호 > 2. 마타하리 악보 암호 마타하리(Mata Hari, 1876~1917), 그녀는 누구인가? 원문 네덜란드 출신의 무희로 본명은 마르가레타 G.젤러(Margaretha Geertruida Zelle)이다. 네덜란드 출신의 평범한 여성으로 이혼 후 프랑스 파리로 건너와 물랭루주에서 무희로 활동하였다. 제1차 세계대전이 발발한 1914년 베를린에 있던 마타 하리는 암호명 'H21호'로 매혹적인 미모를 이용 연합군 고위 장교들을 유혹, 군사 기밀을 정탐해 독일군에 제공하는 스파이 역할을 했다는 이유로 프랑스 정부에 의해 파리에서 체포되어, 총살형에 처해졌다. 그러나 마타 하리가 실제로 첩자였는지, 아니면 그녀가 뿌린 수많은 헛소문들 중 하나였는지는 영원히 밝혀지지 않았다. 변경 암호문 출처 : 위키백과 281 CS Unplugged 18. 페루 동전 던지기 - 암호화 프로토콜 282
활동지 2 - 페루 동전 던지기 사전 안내 활동지 3 - 페루 동전 던지기 회로 - 페루 동전 던지기 상황 이해 하기 이번 활동은 저작자 중의 한명이 페루에 있는 학생과 함께 작업할 때 최초로 고안되었다. 결승전을 치를 홈구장을 어디로 할지 페루 리마(Lima)와 쿠스코(Cuzco) 축구팀이 결정하려고 한다. 가장 키(key) = 1 = 참(true) = 0 = 거짓(false) 단순한 방법은 동전 던지기다. 하지만 두 도시가 너무 떨어져 있고, 리마팀을 대표하는 알리시아(Alicia)와 쿠스코팀을 대표하는 베니토(Benito)는 동전 던지러 함께 모일 시간과 예산이 없다. 통신선을 통해서 동전 던지기를 할 수 있을까? 알리시아가 동전을 던지고, 베니토가 동전 앞면 혹은 뒷면을 맞춘다. 하지만, 이 방식은 문제가 있다. 만약 베니토가 앞면하면, 알리시아는 간단하게 미안해 친구, 뒷면이야 라고 하면 끝이다. 알리시아가 원래 부정직하지는 않지만, 매우 중요한 경기이고, 유혹을 참을 수는 없을 것이다. 설사 알리시아가 진실된다고 하더라도, 베니토가 불리한 상황이면 동전던지기 결과를 믿을 수 있을까? 자, 이제 두 사람은 공동으로 작업해서, 다음에 설명되는 and-게이트와 or-게이트로 구성된 회로를 설계하여 충분히 복잡하여 암호문으로 원문을 알아낼 수 없으나, 분명히 상대방이 속일 수 없는 확실한 and or and and or 장치를 고안해 내고 통신선을 통해 믿을 수 있는 동전던지기를 실시하게 된다. - AND 게이트, OR 게이트 이해 하기 and-게이트와 or-게이트 규칙은 단순하다. 게이트(gate) 각각은 두개 입력과 한개 출력으로 구성된다. or and and or 각 입력은 0 혹은 1 이 될 수 있고, 거짓(false)과 참(true)으로 각각 해석되며 다음과 같은 입출력 값을 갖는다. or and or and and or or and or and 1 0 1 0 and or 0 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 and and and and or or or 0 0 0 1 0 1 1 1 or 283 CS Unplugged 18. 페루 동전 던지기 - 암호화 프로토콜 284
6 선생님용 참고자료 7 해답과 힌트 정답 - 활동지 3 암호화 프로토콜 최근에 컴퓨터 네트워크를 통한 전자상거래가 범람하고 있다. 따라서, 안전한 전자 이체, 보안 거래, 법적 구속력 있는 학생 A 원문 : 010011 전자서명된 문서를 보장하는 것이 필수적이다. 암호화 분야는 안전하고 비공개 방식으로 커뮤니케이션하는 방법에 관한 것이다. 수십년 전에, 컴퓨터과학 연구원이 특정 정보를 공개하는 기법이 비밀성을 보장하는다는 다소 반직관적인 결과를 발견했다. 활동 19 키드 크립토(Kid Krypto)에서 다룰 공개키 암호시스템(public key cryptosystem)으로 정보를 교환하는데 주된 보안방식으로 널리 사용되고 있다. 예를 들어, 웹브라우져에 있는 SSL(Secure Socket Layer) 혹은 TLS(Transport Layer Security) 같은 설정이 있다; 웹브라우져가 은행같은 웹사이트에 보안 접속을 가능하게 하는 공개키 시스템이다. 누군가 송수신되는 모든 데이터를 도청할 수 있지만 보안에는 문제가 없다. 암호화는 안전하게 보관하는 것 뿐만 아니라, 다른 사람이 찾는 정보에 제한을 가하는 제어 기능과 지리적으로 멀리 떨어진 and or and and or 사람들 간에 신뢰를 구축하는 것도 포함된다. 암호화 거래에 대해서 공식 > 규칙, 즉 프로토콜(protocol)을 고안해서 위조 불가능한 전자 서명도 하고, 비밀번호를 직접 말하지 않고도 비밀정보(예를 들어, 패스워드)를 다른 사람에게 전달할 수 있게 한다. 동전던지기는 > 좀더 단순하지만, 처음 직면하면 불가능한 것처럼 보이지만, 유사한 문제다. 실제 상황에서, 알리시아와 베니토는 스스로 회로설계를 하지 않고 내부적으로 동작하는 컴퓨터 프로그램을 구입할 것이다. 아마도 누구도 컴퓨터 소프트웨어 내부에는 관심이 없을 것이다. 하지만, > 컴퓨터 기술이 얼마나 좋은지에, 얼마나 노력을 열심히 하는데 관계없이, 둘다 의사결정 결과에 어느 쪽도 영향을 주지 못하게 확인하고 싶을 것이다. or and and or 원칙적으로, 중립적인 판사에게 분쟁을 주장해서 해결해야 한다. 판사는 회로, 알리시아의 원래 입력 이진수, 베니토에게 보낸 출력, 베니토가 답변으로 보낸 추측값을 입수한다. 정보 교환이 완료되면, 이 모든 것은 공개 정보가 된다. 따라서, 쌍방 모두 결과가 무엇인지에 대해서 합의해야 한다. 판사가 알리시아의 원래 입력 숫자를 회로에 얺고 출력값을 점검하고 의사결정이 공정했는지 결정한다. 말할 것도 없이, 규칙대로 수행되었는지 점검하는 명확한 절차가 있어서 분쟁이 일어날 것 같지 않다. 이 상황을 알리시아가 실제 동전을 던지고 베니토가 앞면 혹은 뒷면을 맞추는 상황과 비교하자 어떤 판사도 이 사건을 수임하지 않을 것이다. 사례로 보여준 작은 회로는 실무에서 사용되지 않는데 이유는 표로 되어 있고, 속이기 쉽기 때문이다. 실무에서 사용되는 방법은 큰 자연수를 인수분해하는 방법에 의존한다. 한 숫자가 다른 숫자의 소인수인지 점검하는 것은 쉽지만, 매우 큰 숫자의 소인수를 찾아내는 것은 시간이 많이 걸린다. 알리시아와 베니토 (그리고 판사)가 손으로 작업하게 되면 매우 복잡하다. 실무에서 소프트웨어를 구매해서 작업한다. 또 다른 응용사례는 통신선을 통해서 포커 게임을 하는 것이다. 카드를 돌리고 게임 참여자 양손에 든 패를 기록할 판사 같은 주심이 없는 상황이다. 모든 것이 게임 참여자 스스로 수행해야 하고, 분쟁이 있는 경우에 게임이 끝난 뒤에 판사에게 의지한다. 비슷한 상황이 진지한 계약협상에서도 일어난다. 분명하게도 참여자는 게임을 진행하는 동안에 카드 보안을 유지해야 한다. 하지만, 게임 참여자는 정직해야한다 에이스패를 갖지 않았는데 에이스패를 가졌다고 주장하지 말아야 한다. 게임이 종료되길 기다리다, 각 게임 참여자가 다른 참여자가 가진 카드패와 게임 진행 상황을 점검하고 나서야 확인될 수 있다. 또다른 문제는 게임이 끝날 때까지 다른 게임참여자가 든 패를 비밀로 하고 카드를 돌리는 문제다. 놀랍게도, 동전 던지기와 다르지 않는 암호화 프로토콜을 사용해서 작업을 수행한다. 암호화 프로토콜은 전자 거래에서 매우 중요하다. 직불카드 소유자를 확인하고, 전자우편 발신자를 인증하고, 핸드폰 사용권한을 부여하는 등 다양하다. 이와 같은 활동을 신뢰성 있게 수행할 수 있는 능력이 전자 상거래 성공에 매우 중요하다. or 제작된 암호문 : 011010 and or and and or or and or and 285 CS Unplugged 18. 페루 동전 던지기 - 암호화 프로토콜 286
놀이로 배우는 컴퓨터 과학 19. 키드 크립토 공개키 암호화 지도안 19. 키드 크립토 공개키 암호화 목표 1. 비밀키 암호화 방식과 공개키 암호화 방식의 차이점을 이해한다. 2. 공개키 암호화 방식으로 암호 및 해독 알고리즘을 경험해본다. 방법 협동, 게임 소요 시간 60분 적정 연령 12세 이상 사진 이미지가 숫자로 분해되어서 저장장치에 저장되고, 모니터 화면으로 뿌려지면서 사진이 완성되는 모습 관련 CT 자료 표현, 문제분석, 알고리즘과 절차 선생님 메시지함, 번호 열쇠 1개, 자물쇠 열쇠 2개, 동영상, 프리젠테이션 자료, 활동지 < 개요 > 준비물 학생 활동지, 필기도구 고대부터 양피지나 종이로만 사용되된 암호가 제 2차 세계 대전에서 독일군이 사용한 에니그마(enigma) 이후 컴퓨터를 이용한 자동 암호화 방식으로 발전하게 되었습니다. 인터넷 통신이 발전하면서 암호의 중요성은 날로 커져가고 있습니다. 하지만, 컴퓨터의 성능이 발전하면서 예전 방식들은 쉽게 암호가 해독되면서 더욱 안전한 암호 시스템을 사용해야 합니다. 현재 인터넷, 은행, 보안 시스템에 사용되는 암호 방식은 어떤 것이 있을까요? 287 CS Unplugged 19. 키드 크립토 - 공개키 암호화 288
단계 소요 시간 요소 교수 활동 형태 자료 사전 준비 사항 카이사르 비밀키 암호화 도입 10분 동기유발 - 카이사르 암호화 설명 - 카이사르 암호화 해독 이미테이션 영화 예고편 감상(에니그마 관련) 전체 - 교실에서 인터넷 활용 불가시 동기 유발용 동영상을 미리 다운로드한다. 목표 제시 비밀키 암호화 방식과 공개키 암호화 방식의 차이점을 이해한다. 공개키 암호화 방식으로 암호 및 해독 알고리즘을 경험해본다. - 지를 학생의 숫자만큼 출력하고, 메시지함에 들어갈 간식을 미리 준비한다. 비밀키 암호화 방식 - 전체 진행, 4명 학생 보조요원 10분 활동1 - 비밀번호(비밀키)를 알려주고, 메시지함에 메시지 넣기 - 메시지 전달 전체 메시지함, 초콜릿, 번호 열쇠 1개 - 비밀키로 암호해독 - 비밀키 암호화 방식의 단점 발표 공개키 암호화 방식 - 전체 진행, 4명 학생 보조요원 10분 활동2 - 공개키 암호화 방식에 대한 대략적 설명 - 송신자가 수신자에게 공개키 요청 - 메시지함에 메시지를 넣고 암호화 진행 - 메시지 전송 전체 메시지함, 초콜릿, 자물쇠 열쇠 1개 (혹은 2개) - 수신자 비밀키 암호 해독 - 비밀키 암호화 방식과 공개키 암호화 방식 비교 전개 키드 크립토(Kid Krypto) - <키드 크립토 공개지도>의 공개키와 <키드 크립토 비밀지도>의 비밀키 설명 교사자료1) - <키드 크립토 공개지도 암호화 과정> 설명 (교사자료2) 30분 활동3 - <키드 크립토 암호화된 공개지도> 설명 (교사자료3) - <키드 크립토 암호회된 공개지도 복호화>를 통해 복호화 과정 설명 (교사자료4) - <키드 크립토> 암호 해독 과정 상세 설명 (교사자료5) - <키드 크립토> 암호화 방식의 해킹 가능성 설명 - 2인 1조 모둠 - 친구에게 전달하고 싶은 숫자 선정 전체, 모둠 활동 (2인 1조) 교사자료1~5, 활동지1, 연필, 지우개 - <공개지도>에 암호화 과정 - <암호화된 공개지도> 친구에게 전달하며, 전달 받은 친구는 암호해독 (이때, 성공하지 못하면 <키드 크림토 개인지도>를 나눠주고 올바르게 해독하는 지 확인) 공개키 암호화 방법 정리 5분 프로젝트 정리 - 비밀키 암호화와 공개키 암호하 비교 설명 - 암호화의 중요성 및 미래 발전성 설명 전체 - 공개키 암호화 후 소감 발표하기 289 CS Unplugged 19. 키드 크립토 - 공개키 암호화 290
1 동기유발 활동 2 문제 제시 과거의 암호 기법들 1. 다음은 로마시대에 카이사르가 사용했던 암호문이다. 카이사르는 알파벳을 3개만큼 뒤로 이동시켜 암호를 만들었습니다. 1. 암호를 이용하지 않고 인터넷을 사용하면 어떤 문제가 발생할까요? 2. 어떻게 하면 암호가 해독되지 못하는 방법을 만들 수 있을까요? 평문 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 암호문 D E F G H I J K L M N O P Q R S T U V W X Y Z A B C 다음 암호를 해독해봅니다. 3 주요 개념 및 용어 정리 QHYHU WUXVW EUXWXV 2. 2차 세계 대전 당시 독일군의 암호였던 에니그마와 관련된 동영상을 시청하겠습니다. 송신자 정보를 제공하기 위한 사람이나 컴퓨터를 가리킵니다. 수신자 정보를 제공받기 위한 사람이나 컴퓨터를 가리킵니다. 평문 암호를 하지 않는 보내고자 하는 메시지입니다. 암호문 평문을 암호화 과정을 통해 생성된 암호 문장입니다. 암호화 평문을 암호문으로 변경하는 기법 또는 알고리즘입니다. 출처) https://youtu.be/3yixsc6j8cm 3. 다음 내용을 설명합니다. - 고전에 종이로 사용하는 것과 다르게 에니그마 이후부터 컴퓨터와 인터넷의 발달로 암호의 중요성이 대두되었습니다. - 하지만, 과거의 암호화 방식인 비밀키 암호화 방식은 컴퓨터가 발전하면서 빠르게 계산을 수행함으로써 쉽게 암호가 풀리는 문제가 발생하였습니다. 또한, 해킹 기법의 발달로 비밀키가 유출될 가능성이 높아지만서 비밀키 암호화 방식은 더 이상 사용할 수 없게되었습니다. - 따라서, 최근에는 공개키 암호화 방식을 사용하여 은행, 인터넷 보안, 컴퓨터 통신등에 사용되고 있습니다. 4. 이제부터 공개키 암호화 방식에 대해 알아보도록 합니다. 복호화 암호문을 평문으로 해독하는 기법 이나 알고리즘입니다. 비밀키 암호화 미리 정해놓은 비밀 키를 이용하여 암호화하고, 수신자는 같은 비밀키를 이용하여 복호화하는 방식의 암호방법입니다. 공개키 암호화 누구나 암호화를 할 수 있는 공개키와 공개키로 만든 암호문만 해독할 수 있는 비밀키를 이용해서 암호화하는 방법으로 비밀키 암호화 방법과 다르게 공개키를 이용해서 암호를 해독할 수 없습니다. 따라서, 공개키가 유출되어도 아무런 문제가 발생하지 않습니다. 291 CS Unplugged 19. 키드 크립토 - 공개키 암호화 292
4 자 활동 3. 송신지와 수신자에게만 자물 열쇠의 비밀번호를 알려주고, 송신자가 메시지함에 초콜릿(메시지)를 넣습니다. < 활동 1 > 비밀키 암호화 방식 - 활동 시간 : 10분 - 활동 개요 송신자와 수신자 간에 메시지함을 주고받게 되는데. 이때 번호키 열쇠를 이용합니다. 번호키 열쇠가 비밀키가 되어 비밀키 암호화 방식 설명하게 됩니다. 이 과정을 통해 비밀키 암호화 방식을 이해하고 단점을 파악할 수 있습니다. - 준비물 : 메시지함, 초콜릿, 번호 열쇠 1개 - 활동 안내 (4인 1모듬의 예) 1. 학생들에게 상황을 설명하고, 4명의 학생을 불러냅니다. 지금부터 암호 방식에 대해 알아보려고 합니다. 먼저 비밀키 암호화 방식에 대해 알아보겠습니다. 이를 위해 학생 4명이 앞으로 나와 주시기 바랍니다. - 비밀키(번호키의 비밀번호)를 송신자와 수신자에게만 알려준다. - 송신자는 메시지함에 수신자에게 전달할 메시지(여기에서는 사탕, 초콜릿이지만 실제는 문자, 숫자 등의 메시지이다.)를 넣고 비밀키를 이용해서 메시지함을 잠근다. 2. 다음 그림과 같이 학생들을 배치합니다. 4. 송신자가 해커들을 거쳐 수신자에게 메시지를 보냅니다. - 송신자 : 메시지를 생성해서 전달하려는 사람이나 컴퓨터로 메시지를 생성한다. - 수신자 : 메시지를 받게 되는 사람이나 컴퓨터로 암호를 해독해서 메시지 함의 메시지를 얻는다. - 해커1, 해커2 : 송신자에서 수신자로 메시지가 전달되는 경로 중간에 불법으로 메시지함을 열어 메시지를 노리는 사람이다. - 해커1, 해커2는 메시지함을 전달하는 과정에서 비밀번호를 추측해서 메시지함을 열어보려고 시도한다. 만약 성공하지 못하면 수신자에게 전달한다. 293 CS Unplugged 19. 키드 크립토 - 공개키 암호화 294
5. 수신자는 비밀키를 넣고 암호를 해독하여 초콜릿(메시지)을 맛있게 먹습니다. < 활동 2 > 공개키 암호화 방식 - 활동 시간 : 10분 - 활동 개요 공개키 암호화 방식을 학생 앞에서 설명하는 활동입니다. 비밀키 암호화와 비슷하지만 열쇠키 2개를 이용하여 비밀키 암호화 방식보다 안전하게 암호화 및 복호화가 나타나게 됩니다. 이 과정을 통해 공개키 암호화 방식의 개념을 이해하게 됩니다. - 준비물 : 메시지함, 초콜릿, 자물쇠 열쇠 1개 (혹은 2개) - 활동 안내 - 송신자에서 해커들을 거쳐 수신자에게 메시지함이 도착하면 수신자는 비밀키를 이용해서 메시지함을 풀고 메시지를 확인한다(사탕이나 초콜릿은 맛있게 먹고, 메시지면 읽어준다.) 6. 이렇게 비밀키로 잠그면서 암호화를 하고, 비밀키로 열쇠를 풀면서 암호를 해독하는 복호화 하는 과정이 비밀키 암호화 방식입니다. 이 방식의 단점은 어떤 것이 있습니까? - 비밀키가 쉽게 유출 될 수 있다. - 암호를 하는 과정과 암호를 해독하는 과정이 단순 역순관계라서 비밀키를 알면 쉽게 메시지를 풀 수 있다. 지도 Tip 1. 메시지함의 초콜릿은 보내고자 하는 메시지로 초콜릿이 준비되지 않았으면 포스트잇 메모에 사랑해, 우리반 짱 등의 메시지를 넣어도 좋습니다. 또는 초콜릿 포장지 안에 비밀 스런 메시지를 넣어도 좋습니다. 1. 학생들에게 상황을 설명하고, 학생 4명을 일렬로 배치합니다. 이번에는 왠만해서는 뚤리지 않는 공개키 암호화 방식에 대해 알아보겠습니다. 2. 공개키 암호화 방식에 대해 설명합니다. - 비밀키 암호화 방식은 번호키를 사용했지만, 공개키 암호화 방식은 열쇠키를 사용합니다. - 그리고, 공개키 암호화 방식은 공개키와 비밀키로 두 개가 있습니다. - (열쇠를 들어 보이며) 이 열쇠를 열 때는 반드시 키가 필요하지만, 닫을 때는 그냥 누르면 됩니다. - 이 특징을 이용해서 공개키는 열쇠가 열려있는 상태, 암호화는 열려있는 열쇠를 잠그는 과정이며, 암호를 해독할 때는 비밀키를 이용하게 됩니다. - 공개키 암호화 방식으로 활동을 진행하겠습니다. 3. 다음 그림과 같이 학생들을 배치합니다. - 잠글 때는 열쇠 없이 밀어 넣으면 자동으로 잠김 - 송신자 : 메시지를 생성해서 전달하려는 사람이나 컴퓨터로 메시지를 생성한다. - 수신자 : 메시지를 받게 되는 사람이나 컴퓨터로 암호를 해독해서 메시지 함의 메시지를 얻는다. - 해커1, 해커2 : 송신자에서 수신자로 메시지가 전달되는 경로 중간에 불법으로 메시지함을 열어 메시지를 노리는 사람이다. 295 CS Unplugged 19. 키드 크립토 - 공개키 암호화 296
4. 송신자가 수신자에게 공개키를 달라고 요청합니다. 수신자는 열쇠로 푼 열린 상태의 열쇠를 송신자에게 줍니다. 6. 수신자는 비밀키로 열쇠를 풀면서 암호를 해독하고, 초콜릿을 맛있게 먹습니다. - 송신자에서 해커들을 거쳐 수신자에게 메시지함이 도착하면 수신자는 비밀키를 이용해서 메시지함을 풀고 메시지를 확인한다. (사탕이나 초콜릿은 맛있게 먹고, 메시지면 읽어준다.) - 송신자 : 수신자에게 공개키를 달라고 요청합니다. 공개키는 수신자에게만 암호를 할 수 있는 키로 누구에게나 공개가 가능합니다. - 수신자 : 메시지 송신자에게 자물쇠 열쇠를 열어 자물쇠만 전달합니다. 해당 공개키로 암호된 메시지를 수신자가 가진 비밀키로만 암호를 해독할 수 있습니다. - 해커1, 해커2 : 송신자에서 수신자로 메시지가 전달되는 경로 중간에 불법으로 메시지함을 열어 메시지를 노리는 사람입니다. 5. 송신자가 메시지함에 초콜릿(메시지)를 넣고, 열쇠키를 눌러 암호화 합니다. 그리고, 해커들을 거쳐 수신자에게 메시지를 보냅니다. (해커들을 중간에 암호를 해독해도 됩니다.) 7. 비밀키 암호화 방식과 공개키 암호화 방식은 어떤 차이가 있는지 발표해봅니다. - 비밀키 암호화 방식은 송신자ㆍ수신지가 동일한 비밀키를 사용하나 공개키 암호화 방식은 송신자ㆍ수신자가 서로 다른 키를 이용하여 암호화 및 복호화를 하며, 공개키는 모두 동일하여 공개되나, 비밀키는 공개되지 않는다. - 비밀키 암호화 방식에서 복호화 알고리즘은 항상 암호화 알고리즘의 역이고 동일한 키를 사용하므로 누구든지 암호 알고리즘과 키를 알면 복호화 알고리즘과 키를 추측할 수 있게 되므로, 은행 같은 곳에서 사용할 수가 없다. 하지만, 공개키 암호화 방식은 누구든지 정보를 암호화 할 수는 있지만, 권한이 있는 수신자만 복호화를 할 수 있으므로 해독하는데 시간은 오래 걸리자만, 훨씬 안전하다. 실제로 공개키 방식 중 RSA방식은 해독하는데 몇 년에서 몇 십년이 걸린다. 지도 Tip 1. 메시지함의 초콜릿은 보내고자 하는 메시지로 초콜릿이 준비되지 않았으면 포스트잇 메모에 사랑해, 우리반 짱 등의 메시지를 넣어도 좋습니다. 또는 초콜릿 포장지 안에 비밀 스런 메시지를 넣어도 좋습니다. - 송신자는 메시지함에 수신자에게 전달할 메시지(여기에서는 사탕, 초콜릿이지만 실제는 문자, 숫자 등의 메시지이다.)를 넣고 공개키(자물쇠 열쇠를 누름)로 메시지함을 암호화 한다. - 해커1, 해커2는 메시지함을 전달하는 과정에서 비밀번호를 추측해서 메시지함을 열어보려고 시도한다. 만약 성공하지 못하면 수신자에게 전달한다. 297 CS Unplugged 19. 키드 크립토 - 공개키 암호화 298
< 활동 3 > 키드 크립토(Kid Krypto) - 활동 시간 : 30분 - 활동 개요 '전기차 충전소 설치 - 지배집합'의 최소지배 집합 맵을 이용하여 공개키 암호화 방식으로 메시지를 암호화하고 복호화하는 과정을 체험하는 활동입니다. 계속된 알고리즘과 수학계산으로 집중력이 요구됩니다. 처음에는 전체으로 진행되며, 두 번째 부터는 2인 1모둠으로 상호간의 메시지를 보낼 수 있습니다. 활동2에서 설명한 공개키 암호화 방식과는 약간 다를 수 있지만, 학생들이 이해할 수 있도록 각색하였습니다. 이 활동에서는 보내고자 하는 메시지가 숫자 한 개(예, 66)입니다. 공개키는 공개지도이며, 비밀키는 개인지도 또는 몇 개의 점이 됩니다. - 준비물 : 교사자료1~5, 활동지1, 연필, 지우개 4. 다음을 설명하면서 괄호부분만 남긴 암호지도를 수신자에게 보냅니다. - 괄호 밖의 숫자는 모두 더하면 보내고자 한 메시지 66이 되므로 모두 삭제합니다. - 괄호 밖의 숫자를 모두 지우거나, 괄호 안의 숫자를 새로 작성해서 송신자에게 메시지를 보냅니다. 5. 교사자료3의 <키드 크립토 암호화된 공개지도>를 보여주면서 학생들이 해독할 수 있는지 물어봅니다. 19 13 18 8 15 13 18 10 - 활동 안내 1. 다음을 안내합니다. 12 18 22 18 22 공개키 암호화 방식을 실제로 체험해보도록 하겠습니다. 이번 활동에서는 공개키가 공개된 지도이며, 비밀키는 13 20 25 지도안에 포함되어 있습니다. 그리고, 메시지는 한 번에 숫자 한 개만 보낼 수 있습니다. 먼저 공개지도입니다. 2. 교사자료1의 <키드 크립토 공개 지도>와 <키드 크립토 비밀 지도>를 보여주고 설명합니다. 6. 교사자료4의 <키드 크립토 암호화된 공개지도 복호화>를 보여주면서 복호화하는 과정을 설명합니다. <키드 크립토 공개지도> <키드 크립토 비밀지도> 다음은 공개키인 키드 크립토 공개지도과 비밀지도입니다. 공개지도는 누구나 암호화할 수 있으며 유출되도 상관이 없습니다. 단, 비밀지도는 공개되면 안됩니다. 8 12 15 13 18 19 22 13 18 18 10 18 22 - 암호화된 공개지도 위에 비밀지도에서 특별히 확대된 점을 표시해본다. - 표시된 점의 숫자만 모두 더하면 13+13+22+18 = 66이 된다. 13 20 25 3. 다음을 설명하면서 교사자료2의 <키드 크립토 공개지도 암호화 작업>을 보여줍니다. - 보내고자 하는 메시지를 결정해야 하는데, 이번 예제에서는 66으로 결정하도록 하겠습니다. - 임의의 수(난수)를 공개지도 16점에 씁니다. 16점의 모든 숫자를 합치면 66이 되어야 합니다. (괄호 부분이 아닌 숫자) - 그리고, 송신자가 수신자에게 보낼 숫자를 괄호 안에 계산해야 합니다. 계산방법은 자기 자신과 연결된 점들의 숫자를 모두 더해서 괄호 안에 넣으며 됩니다. 예) 6번 점은 1번, 4번, 11번점과 연결되어 있으므로 6+1+4+11 = 22가 됩니다. 3 (8) 2 (13) 1 (15) 5 (12) 6 (13) 4 (18) 3 (20) 2 (19) 11 (25) 8 (13) 2 (18) 5 (22) 4 (18) 3 (10) 1 (18) 6 (22) 7. 교사자료5을 보면서 암호 해독 과정을 설명합니다. - 공개지도는 특별히 제작된 지도로 비밀지도의 표식이 된 점과 연결된 점들을 따로 떼어놓으면 모두 떨어지게 된다. - 따라서, 표식된 점들은 조각난 그래프에서 연결된 점들의 합이 되므로 표식된 점들만 합하면 모든 점의 합이 된다. - 이러한 방법을 일방향 함수(one-way function)이라고도 하며 퍼즐을 만들기는 쉽지만, 풀기는 쉽지 않다. 3 1 5 2 (13)=2+3+5+3 3 4 2 6 (13)=6+1+2+4 11 8 2 5 4 (22)=5+4+2+11 1 (18)=1+8+3+6 3 6 299 CS Unplugged 19. 키드 크립토 - 공개키 암호화 300
5 자용 워크북 (활동지, 활동 자료) 8. <키드 크립토> 암호화 방식에 대한 해킹 가능성을 설명합니다. 얼핏 보면 숫자들의 덧셈과 조합으로 해킹할 수 있어보인다. 그렇지만, 실제로 공개키 암호화 방식에서는 점을 2 512 개 (약 10 155 개; 우주의 모든 원자의 합보다 큰 수)를 사용하므로 해독하는 방법을 알고 있어도 엄두를 내지 못한다. 현대의 빠른 컴퓨팅 능력으로도 몇 년에서 수십년이 걸린다고 한다. 9. 2인 1조로 활동지1의 <키드 크립토 공개지도>에 친구에게 보낼 메시지를 골라, 공개키 암호화하고 친구에게 전달합니다. 친구는 해독을 시도해보고, 성공하지 못하면 <키드 크립토 개인지도>를 나눠주고 올바르게 해독하는지 살펴봅니다. 활동지 1 - 키드 크립토 1. <키드 크립토 공개지도>에 친구에게 보낼 메시지(숫자 한 개, 초등학생이면 50이하의 수)를 선택하고, 암호화 작업을 합니다. 암호화 과정 1 각 점에 임의의 수를 적는다. 보낼 메시지의 합 2 자신과 연결된 모든 점의 합을 괄호 안에 적어 넣는다. 3 괄호 안의 숫자만 <다음 페이지>에 <키드 크립토 암호화된 공개지도>에 적어 넣고, 친구에게 해석하라고 전달한다. 3 (8) 1 (18) 2 8 (19) (13) 8 19 13 3 1 6 2 (10) (15) (13) (18) 15 13 18 10 18 5 4 5 4 (12) (18) (22) (18) 6 12 18 22 18 (22) 22 2 3 11 (13) (20) (25) 13 20 25 <키드 크립토 공개지도> <키드 크립토 비밀지도> 301 CS Unplugged 19. 키드 크립토 - 공개키 암호화 302
6 선생님용 참고자료 활동지 1 - 키드 크립토 교사자료 1 - 키드 크립토 2. 친구가 전달해준 <키드 크립토 암호>를 해독해보세요. - 활동 3 <키드 크립토 공개지도> <키드 크립토 암호화된 공개지도> 해석된 숫자는? 3. <키드 크립토> 암호의 해독이 어려우면 친구에게 <키드 크립토 비밀지도>를 받아 해석해보세요. <키드 크립토 비밀지도> 303 CS Unplugged 19. 키드 크립토 - 공개키 암호화 304
교사자료 2 - 키드 크립토 교사자료 3 - 키드 크립토 - 활동 3 <키드 크립토 공개지도 암호화 작업> - 활동 3 <키드 크립토 암호화된 공개지도> 3 (8) 2 (19) 8 (13) 1 (18) 8 19 13 18 1 (15) 6 (13) 2 (18) 3 (10) 15 13 18 10 5 (12) 4 (18) 5 (22) 4 (18) 6 (22) 12 18 22 18 22 2 (13) 3 (20) 11 (25) 13 20 25 305 CS Unplugged 19. 키드 크립토 공개키 암호화 306
교사자료 4 - 키드 크립토 교사자료 5 - 키드 크립토 - 활동 3 <키드 크립토 암호화된 공개지도 복호화> - 활동 3 <키드 크립토 공개지도 조각화> 19 13 18 8 2 8 1 (18)=1+8+3+6 15 13 18 10 3 1 6 (13)=6+1+2+4 2 3 12 18 22 18 22 5 4 4 5 (22)=5+4+2+11 6 13 20 25 2 (13)=2+3+5+3 3 11 307 CS Unplugged 19. 키드 크립토 공개키 암호화 308
7 선생님용 참고자료 8 해답과 힌트 RSA RSA는 대표 공개키 암호화 방식으로 3명의 수학자(리베스트(Rivest), 셰미르(Shamir), 아델만(Adelman))이 소인수분해의 원리를 이용하여 1977년에 발표되어 현재까지 사용되고 있습니다. 공개키 암호화 방식 뿐만 아니라 전자서명이 가능한 최초의 알고리즘으로 이 세 발명자는 2002년에 튜링상을 수상하기도 했습니다. 두 수를 알면 곱을 쉽게 할 수 있지만, 두 수의 곱만으로 원래의 숫자를 알기 어렵다는 원리를 이용합니다. RSA 방식을 이용한 예를 살펴봅니다. 1) 공개키, 비밀키 생성 방법 키 생성 알고리즘 1 두 소수 p, q를 이용하여 n을 구한다. (n = p * q) 2 를 구한다. ( = (p-1) * (q-1)) 3 공개키(e)는 와 e의 최대공약수가 1인 서로 중 하나를 지정한다. 예시 p = 3, q = 5이라 가정한다. n = p * q = 3 * 5 = 15 이다. = (p-1) * (q-1) = 2 * 4 = 8 공개키(e) = gcd(e, ) = gcd(e, 8) 24과 서로소 : 3, 5, 7 등 e = 7로 결정 gcd는 최대공약수 정답 - 동기 유발 활동 <카이사르 암호 해독> QHYHU WUXVW EUXWXV 암호 및 복호화 방식 평문 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 암호문 D E F G H I J K L M N O P Q R S T U V W X Y Z A B C 4 비밀키(d)는 e * d의 값을 로 나눴을 때 나머지가 1이 나오는 d를 선택한다. - 공개키 : (e, n) = (7, 15) / 비밀키 : (d) = (7) 2) 암호화 방법 비밀키(d) : ( e * d ) mod = 1 ( 7 * d ) mod 8 = 1 d = 7 선정 (7*7=49, 49 mod 8*6 = 1) http://blog.naver.com/moonv11/220433626853 - 암호화 방식 A (평문) 암호화(3만큼 뒤로) D (암호문) - 암호해독(복호화) 방식 D (암호문) 복화화(3만큼 앞으로) A (평문) 암호화 알고리즘 암호문(c) = p e mod n (c : 암호문, p : 평문) 예시 p = 7이라고 가정하자. (c) = p e mod n = 7^7 mod 77 7^7 = 823543 823543 mod 15 = 나머지 13 -> c = 13 해석된 암호문 NEVER TRUST BRUTUS 3) 복호화 방법 복호화 알고리즘 평문(p) = C d mod n (c : 암호문, p : 평문) c = 13이므로, (p) = C d mod n = 13^7 mod 15 = 62748517 mod 15 = 7 -> p = 7 예시 위의 문장은 카이사르가 키케로에게 보낸 암호 편지이다. 카이사르가 가장 아끼는 로마의 2인자 브루투수가 암사자들의 우두머리 임을 알고 키케로에게 도움을 보낸 것이었다. - 참고 : 역사속에 숨겨진 코드 암호 이야기(박영수 저, 북로드) 이 예에서는 p=3, q=5로 설정했지만, 실제 RSA암호화에서는 보통 p, q를 140자리수 이상을 사용하므로 암호화 및 복호화 과정은 공개되어 있지만, 개인키의 암호를 해독하려면 슈퍼컴퓨터로도 수천년이 소요되므로 암호해독이 어렵습니다. 하지만, 최근에는 이런 문제를 해결하기 위해 타원곡선 알고리즘이 등장했습니다. 309 CS Unplugged 19. 키드 크립토 - 공개키 암호화 310