5. Yes or No!
【언플러그드 활동】
1. Yes or No 게임하기
2. 순서도 만들기
1알고리즘에 대해 알아볼까요?
가. 알고리즘
알고리즘이란 컴퓨터가 따라 할 수 있도록 문제를 해결하는 절차나 방법을 자세히 설명하는 과정이다. 이는 컴퓨터를 활용한 문제 해결 과정에서 주어진 문제를 해결하는 일련의 방법 또는 절차이며, 문제 해결 방법을 순서대로, 절차대로 나열한 것이라고 볼 수 있다.
우리가 배우고 있는 SW교육의 언플러그드 활동에서 말하는 알고리즘은 컴퓨터가 과제를 해결하기 위한 명령어들의 집합이다. 컴퓨터 명령어의 집합으로 나타나는 알고리즘은 컴퓨터과학의 핵심으로, 컴퓨터가 문제를 어떻게 해결하는지를 나타내는 방법이다. 즉 정보를 어떻게 입력하고 처리하며 데이터를 표시하는지를 나타내는 것이라 할 수 있다.
나. 알고리즘 표현 방법
알고리즘을 표현하는 방법에는 여러 가지가 있는데 그 중에서 손쉽게 사용할 수 있는 방법으로 알려진 것이 바로 자연어로 표현하는 방법이다. 자연어 알고리즘을 다른 말로 자연어 표현법, 일상 언어 표현법이라고도 한다. 이 방법은 일상적으로 사용하는 말로써 문제를 해결하는 과정을 순서대로 나열하는 것이다. 자연어는 일상적인 언어를 사용하기 때문에 매우 쉽게 표현할 수 있지만 모호하게 표현하기 쉽다는 단점이 있다.
2.입속에 칫솔을 넣는다.
3.양치질을 한다.
4.입을 헹군다.
[그림] 자연어 알고리즘 예시
순서도는 약속된 기호를 사용하여 알고리즘을 표현하는 방법이다. 순서도 표현 방식에서는 일련의 수행과정을 공용의 약속 기호로 표시하고, 화살표로 수행과정을 순서대로 연결하여 알고리즘을 표현한다. 순서도 방식은 수행과정을 전체적으로 쉽게 펴볼 수 있다는 장점이 있지만 복잡한 알고리즘이나 블록형 언어를 표현하기 어렵다는 단점을 가지고 있다.
| 기호 | 이름 | 역할 |
|---|---|---|
|
단말 | 순서도의 시작과 끝 |
|
흐름선 | 작업 흐름을 명시 |
|
준비 |
작업 단계 시작 전 준비 (변수 및 초기치 선언 등) |
|
처리 |
처리해야 할 작업을 명시 (변수에 계산값 입력 등) |
|
입출력 | 일반적인 데이터의 입력 또는 결과의 출력 |
| 기호 | 이름 | 역할 |
|---|---|---|
|
판단 |
조건에 따라 흐름선을 선택 (일반적으로 참, 거짓 구분) |
|
수동입력 | 키보드를 통한 입력 |
|
서브루틴 | 미리 정의해 둔 부프로그램 호출 |
|
프린트 |
프린터를 이용한 출력 (서류 등의 지면에 출력) |
|
화면표시 | 처리결과 또는 메시지를 모니터를 이용하여 출력 |
알고리즘을 컴퓨터에서만 사용하고 우리 생활과 큰 관련이 없는 것으로 생각할 수 있다. 하지만 우리가 생활하는 모든 행동은 알고리즘과 관련이 있다고 할 수 있다. 아침에 일어나서 학교에 가기 위해 행동하는 모든 과정, 라면을 끓이기 과정, 버스를 타고 이동하는 모든 과정들 속에 알고리즘이 활용되고 있다. 하지만 너무 빠르게 일어나는 과정 속에서 익숙하고 자연스럽게 여겨지기 때문에 특별한 알고리즘의 절차가 이루어진다고 생각하지 못하는 것이다. 따라서 생활 속에서 알고리즘을 찾아보고 그 절차를 인식함으로써 생활과 알고리즘의 관계를 이해하는 것이 중요하다.

다. 알고리즘 익히기
아래 <보기>를 통해 일상생활 속에서 알고리즘이 어떻게 활용되는지 생각해보고 집에서 학교까지 오는 과정을 자연어 알고리즘으로 만들어 보자.


2Yes or No 알고리즘 게임 활동을 체험해 보자
활동1
Yes or No 게임하기
Yes or No 게임 활동을 통해 알고리즘의 개념을 이해할 수 있다.
Yes or No 게임을 하고, 만들어봄으로써 알고리즘의 개념을 이해하는 활동이다.
1.알고리즘에 대해 알고, 알고리즘을 표현하는 방법을 알아보자.
2.자연어 알고리즘 표현 방법을 익힌다.
3.Yes or No 동물 게임 순서도를 보고, 빈칸에 들어갈 알맞은 동물을 찾아 적는다.
4. Yes or No 순서도를 보고, 빈칸에 들어갈 알맞은 말을 적고, 이와 유사한 순서도를 만들어보자.
5.친구가 만든 순서도와 내가 만든 순서도를 비교해보고, 논리적으로 잘못된 부분은 없는지 찾는다. 잘못된 부분이 있다면 수정한다.
Yes or No 활동지
1.알고리즘을 알고, 알고리즘을 표현하는 방법에 익숙해질 수 있도록 지도한다. 이때 처음부터 순서도를 작성하기에는 어려움이 있으므로 Yes or No 게임 형태의 순서도를 먼저 익혀 익숙해지게 한 뒤 순서도를 직접 만들어보는 경험을 할 수 있도록 안내한다.
2.학생들이 주어진 도식에 맞춰서 알고리즘을 작성하는 데 어려움을 느낀다면 도식은 논리적 순서에 따라 얼마든지 바꿔서 활용할 수 있게 지도한다. 단, 변형된 도식에 오류가 있지는 않은지 반드시 확인하도록 한다.
3. 같은 주제여도 다양한 형태의 순서가 나올 수 있음을 놀이를 하는 과정에서 자연스럽게 알 수 있도록 한다. 이 과정에서 보다 명확하고 간단한 순서도가 무엇인지 찾아보게 함으로써 효율적으로 순서도를 작성하는 방법을 익힐 수 있다.
5-1
Yes or No 게임 1
다음 Yes or No 게임 순서도에 따라 움직여보고 빈칸에 들어갈 수 있는 동물을 생각해 적어보자.
동물 예시
5-2
Yes or No 게임 2
다음 Yes or No 게임 순서도에 따라 움직여보고 빈칸에 들어갈 수 있는 동물을 생각해 적어보자.
활동2
순서도 만들기
순서도 만들기 활동을 통해 알고리즘의 개념을 이해할 수 있다.
문제 상황을 읽고, 문제를 해결하기 위한 알고리즘을 만들어봄으로써 알고리즘의 개념을 이해하는 활동이다.
1.문제 상황을 읽고, 해당 문제를 해결하기 위한 순서도가 어떻게 표현되었는지 이야기해 보자.
2.새로운 문제 상황을 읽는다.
3. Yes or No 동물 게임 순서도를 보고, 빈칸에 들어갈 알맞은 동물을 찾아 적는다.
4.Yes or No 순서도를 보고, 빈칸에 들어갈 알맞은 말을 적고, 이와 유사한 순서도를 만들어보자.
5.친구가 만든 순서도와 내가 만든 순서도를 비교해보고, 논리적으로 잘못된 부분은 없는지 찾는다. 잘못된 부분이 있다면 수정한다.
순서도 활동지
1.알고리즘을 알고, 알고리즘을 표현하는 방법에 익숙해질 수 있도록 지도한다. 이때 처음부터 순서도를 작성하기에는 어려움이 있으므로 Yes or No 게임 형태의 순서도를 먼저 익혀 익숙해지게 한 뒤 순서도를 직접 만들어보는 경험을 할 수 있도록 안내한다.
2.학생들이 주어진 도식에 맞춰서 알고리즘을 작성하는 데 어려움을 느낀다면 도식은 논리적 순서에 따라 얼마든지 바꿔서 활용할 수 있게 지도한다. 단, 변형된 도식에 오류가 있지는 않은지 반드시 확인하도록 한다.
3. 같은 주제여도 다양한 형태의 순서가 나올 수 있음을 놀이를 하는 과정에서 자연스럽게 알 수 있도록 한다. 이 과정에서 보다 명확하고 간단한 순서도가 무엇인지 찾아보게 함으로써 효율적으로 순서도를 작성하는 방법을 익힐 수 있다.
5-3
순서도 만들기 1
다음 예시를 참고하여 문제 상황을 어떻게 순서도로 표현했는지 이야기 나눠 보자.
길을 따라 걷고 있다. 횡단보도가 나올 때까지 직진하다가 횡단보도가 나오면 신호등의 색을 확인한다. 신호등의 색이 초록색일 때는 건너고, 초록색이 아닐 때는 기다린다.
자판기에서 음료수를 사서 먹어야 한다. 원하는 음료수가 있는지 확인 후 있으면 동전을 넣고, 없으면 다른 자판기로 간다. 음료수를 뽑을 수 있을 만큼 동전을 넣고, 원하는 음료수를 선택하여 꺼낸다. 거스름돈이 있는 경우 거스름돈을 꺼낸다.
5-4
순서도 만들기 2
다음 문제 상황을 순서도로 표현해 보자. 그리고 해결하고 싶은 문제 상황을 직접 작성하고 순서도로도 표현해 보자.
라면을 끓여야 한다. 냄비에 물을 붓고 물을 끓인다. 물이 끓는다면 냄비에 면과 스프를 넣는다. 3분 동안 물을 더 끓인 후불을 끈다.