8. 절차와 오류 검출을 활용한 그림 완성하기
1절차와 오류를 검출하면서 그림 그리는 순서 알아보기
알고리즘은 주어진 어떤 문제를 해결하기 위한 절차, 방법, 명령어들의 집합을 의미하며, 넓게는 사람 손으로 해결하는 것, 컴퓨터로 해결하는 것, 수학적인 것, 비수학적인 것을 모두 포함한다.
알고리즘은 어떻게 구성하는가에 따라 같은 문제를 풀더라도 오래 걸릴 수도 있고, 오류가 생길 수도 있으므로 효율적이고, 명확하게 만드는 것이 중요하다. 따라서 절차대로 문제를 해결하다가 오류가 발생하면 그 오류를 찾아 해결하고 절차를 진행한다면 쉽게 문제를 풀 수 있게 된다.
컴퓨터가 그림을 그리기 위해서는 절차나 방법을 제시해주어야 한다.
위와 같은 그림을 그리기 위해서는 다음과 같은 절차가 필요하다.
색칠한다. → 오른쪽으로 한 칸 이동한다. → 오른쪽으로 한 칸 이동한다. → 색칠한다. → 아래 칸으로 이동한다. → 왼쪽으로 한 칸 이동한다. → 왼쪽으로 한 칸 이동한다. → 오른쪽으로 한 칸 이동한다. → 색칠한다. → 오른쪽으로 한 칸 이동한다. → 아래 칸으로 이동한다. → 왼쪽으로 한 칸 이동한다. → 왼쪽으로 한 칸 이동한다. → 색칠한다. → 오른쪽으로 한 칸 이동한다. → 오른쪽으로 한 칸 이동한다. → 색칠한다.
위와 같은 절차를 통해 그림을 그리다가 오류가 생기면 수정을 하고 올바른 절차를 입력해주면 올바르게 그림을 그릴 수가 있다.
이를 게임 형태로 알아보자.
2친구와 함께 오류를 검출하면서 그림 그리는 절차 표시하기
그림을 보고 그림을 그릴 수 있는 절차를 표시할 수 있다.
A학생은 파란색으로 절차를 표시
B학생은 빨간색으로 절차를 표시
절차가 끝나면 반대로 절차대로 그림을 그려보는 활동을 해서 절차가 올바른지? 오류는 없는지? 다시 한번 확인할 수 있도록 한다.
활동지, 학용품, 싸인펜
1.처음에는 3X3 활동지로 활동을 구성해서 여러 번 하게 한 후 5X5판을 활용하여 학생들이 좋아하는 그림을 그려서 활동을 하도록 한다. 2.위의 활동을 할 때 가장 주의해야 할 점은 항상 시작은 왼쪽에서 해야 한다는 점이다. 첫 번째 줄에서 오른쪽 끝까지 절차가 끝나면 두 번째 줄 역시 내려와서 왼쪽 끝으로 다시 이동한 후 시작하면서 색칠을 해야한다는 점을 학생들에게 알려주어야 한다. 이렇게 하는 이유는 이미지판이 홀수일 때와 짝수일 때 끝나는 지점이 다를 수 있으므로 시작과 끝을 유지하기 위해서이다.
3보조활동
그림을 보고 그림을 그릴 수 있는 절차를 표시할 수 있다.
활동지, 색연필 또는 싸인펜
그림을 보고 그림을 그릴 수 있는 절차를 표시할 수 있도록 한다.
색상을 다양하게 해서 색상이 그려지는 순서를 살펴볼 수 있도록 한다.
8-1
절차 표시하기
그림을 보고 그림을 그릴 수 있는 절차를 표시할 수 있다.
8-2
절차 표시하기
그림을 보고 그림을 그릴 수 있는 절차를 표시할 수 있다.
더 알아보기
1알고리즘은 어떻게 표현할까?
가. 자연어 알고리즘(자연어 표현법, 일상 언어 표현법)
자연어 알고리즘을 쉽게 표현하면 자연어 표현법, 일상 언어 표현법이라고도 한다. 이 방법은 일상적으로 사용하는 말로써 문제를 해결하는 과정을 순서대로 나열하는 것이다. 자연어는 일상적인 언어를 사용하기 때문에 매우 쉽게 표현할 수 있지만 모호하게 표현하기 쉽다는 단점이 있다.
나. 순서도로 표현
순서도는 약속된 기호를 사용하여 알고리즘을 표현하는 방법이다. 순서도 표현 방식에서는 일련의 수행과정을 공용의 약속 기호로 표시하고, 화살표로 수행과정을 순서대로 연결하여 알고리즘을 표현한다. 순서도 방식은 수행과정을 전체적으로 쉽게 살펴볼 수 있다는 장점이 있지만 복잡한 알고리즘이나 블록형 언어를 표현하기 어렵다는 단점을 가지고 있다.
기호 | 이름 | 역할 |
---|---|---|
단말 | 순서도의 시작과 끝 | |
흐름선 | 작업 흐름을 명시 | |
준비 |
작업 단계 시작 전 준비 (변수 및 초기치 선언 등) |
|
처리 |
처리해야 할 작업을 명시 (변수에 계산값 입력 등) |
|
입출력 | 일반적인 데이터의 입력 또는 결과의 출력 |
기호 | 이름 | 역할 |
---|---|---|
판단 |
조건에 따라 흐름선을 선택 (일반적으로 참, 거짓 구분) |
|
수동입력 | 키보드를 통한 입력 | |
서브루틴 | 미리 정의해 둔 부프로그램 호출 | |
프린트 |
프린터를 이용한 출력 (서류 등의 지면에 출력) |
|
화면표시 | 처리결과 또는 메시지를 모니터를 이용하여 출력 |