• 검색 결과가 없습니다.

알고리즘과 절차

N/A
N/A
Protected

Academic year: 2022

Share "알고리즘과 절차"

Copied!
35
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

SW코딩의 기초

1. 소프트웨어 기본 개념 8. 리스트의 이해

2. 컴퓨팅 시스템의 이해 9. 반복문의 이해

3. 프로그래밍의 이해 10. 연산의 이해

4. 교육용 프로그래밍 언어 11. 함수의 이해

5. 소프트웨어와 만나기 12. 입출력의 이해

6. 조건문과 이벤트 이해 13. SW코딩을 통한 학습설계

7. 코딩교육

(2)

소프트웨어와 만나기 5강

소프트웨어와 만나기

알고리즘과 절차

1 차시

엔트리의 기본

2 차시

(3)

알고리즘과 절차

1차시

알고리즘과 알고리즘 설계를

정의하고 그 차이를 이해할 수 있다

알고리즘의 표현방법 3가지를 이해한 후 그 표현방법에 맞춰 알고리즘을 작성할 수 있다

학습 목표

01

02

(4)

알고리즘

알고리즘 설계

자연어 의사코드 순차구조 순서도

선택구조 반복구조

1

1 알고리즘의 이해 1

§

문제들을 해결해 가는 방법, 절차

= 알고리즘

§

방법과 절차를 구체적으로 표현

1) 알고리즘의 정의

(5)

1

1 알고리즘의 이해 1

§

입력 : 외부에서 자료를 입력 받을 수 있어야 한다

§

출력 : 알고리즘이 종료되면 하나 이상의 결과가 나와야 한다

§

명확성 : 알고리즘의 각 단계가 무엇을 하는 것인지 명확해야 한다

§

수행가능성 : 알고리즘의 각 단계는 수행 가능해야 한다

§

유한성 : 알고리즘의 각 단계를 거쳐 반드시 끝나야 한다

2) 알고리즘(컴퓨터과학에서의)의 조건

위의 조건들은 컴퓨터의 실행을 목적으로 두고 만들어진 것입니다

1

1 알고리즘의 이해 1

3) 알고리즘의 표현 방법

• 자연어

• 의사코드

• 순서도

알고리즘의 표현방법

(6)

1

1 알고리즘의 이해 1

3) 알고리즘의 표현 방법

자연어

• 일상의 말과 글로 표현

장점 : 이해가 빠르다

단점 : 내용이 길어진다

알고리즘의 표현방법

신호등이 있는 횡단보도에 선다 신호등이 초록이면 4단계, 아니면 단계로 간다

기다린 후 1단계로 간다 횡단보도를 건넌다

1

1 알고리즘의 이해 1

3) 알고리즘의 표현 방법

의사코드

프로그래밍 언어 형태의 자연어 간략 표현(혼용)

장점: 특정 프로그램 지식이 없어도 이해 가능

알고리즘의 표현방법

신호등이 있는 횡단보도 앞에 선다 WHILE(신호등의 신호가 초록이 아니면)

{

기다리기

(7)

1

1 알고리즘의 이해 1

3) 알고리즘의 표현 방법

순서도

정해진 기호를 이용하여 알고리즘을 알기 쉽게 표현

장점: 글보다 쉽게 이해, 프로그램 설계 시 많이 사용

단점: 기호에 대한 숙지

알고리즘의 표현방법

신호등 앞에 선다

녹색신호?

건넌다 예

아니요 시작

종료

1

1 알고리즘의 이해 1

3) 알고리즘의 표현 방법

종류 이름 기호 의미

자료기호 입출력 자료의 입력 또는 출력

처리기호

처리 자료를 처리 또는 연산

판단(조건) 조건에 따른 처리

선 기호 흐름선 실행 순서,

연결이나 방향을 표시

(8)

1

1 알고리즘 설계 2

• 순차구조

• 선택구조

• 반복구조

알고리즘 설계 구조

§

알고리즘을 프로그래밍으로 구현하기 위해서 설계 구조를 사용

§

설계 구조에는 순차, 선택, 반복 구조가 있고 세 구조를 혼용해서 사용

1

1 알고리즘 설계 2

§

가장 간단하게 표현하는 구조로 시작부터 종료까지 순서대로 처리

1) 순차

전원을 누른다 식빵을 넣는다

시작

(9)

1

1 알고리즘 설계 2

§

주어진 조건에 따라 처리하는 내용이나 순서가 바뀜

§

조건문이라 함

2) 선택

빵을 넣는다

전원 버튼 불이 들어

오는가?예 아니요 시작

종료

1

1 알고리즘 설계 2

§

주어진 조건에 만족할 때까지 반복해서 처리됨

§

반복문이라고 함

3) 반복

Time이 1 감소 Time

숫자가 0인가?

아니요

시작

(10)

핵심 정리

문제들을 해결해 가는 방법, 절차는

알고리즘

이고 방법과 절차를 구체적으로 표현하는 것을

알고리즘 설계

라 한다

1.

알고리즘의 5가지 조건은

입력, 출력, 명확성, 수행가능성, 유한성

이다

2.

핵심 정리

알고리즘의 표현방법으로는

자연어, 의사코드, 순서도

가 있음

3.

알고리즘의 설계 구조로는

순차구조, 선택구조, 반복구조

가 있음

4.

(11)

알고리즘에 대한 설명으로 맞는 것은?

문제를 해결해가는 방식을 알고리즘 설계라 함

알고리즘의 조건 중 유한성은 알고리즘의 각 단계가 무엇을 하는 것인지 명확해야 한다는 것임

문제해결의 방법,절차를 구체적으로 표현한 것이 알고리즘

2

4 3 1

ü

알고리즘의 5가지 조건은 컴퓨터를 기반으로 알고리즘을 진행한다는 전재조건에서 나온 것임

알고리즘의 표현방법에 대한 설명 중 맞는 것은?

1 2 3 4

ü

의사코드는 특정 프로그램 지식 없이도 이해가 가능함 자연어의 단점은 약간의 프로그램 지식이 필요하다는 것임 순서도는 프로그래밍 언어 형태와 자연어를 혼용함

프로그램 설계 시 가장 많이 사용하는 것은 의사코드임

(12)

알고리즘의 구조에 대한 설명 중 틀린 것은?

1 2 3 4

ü

알고리즘 구조는 세가지 중 하나만 사용하는 경우가 대부분 선택구조는 처리 내용이나 순서가 달라질 수 있음

반복구조는 조건이 만족하지 않으면 다시 진행됨 순차구조는 시작부터 종료까지 순서대로 처리함

참고

자료

함께하는 소프트웨어와 창의력 여행.

한국교육학술정보원. 2018. 교육부

아폴로 우주선 설계도

https://commons.wikimedia.org/wiki/

File:Apollo-linedrawing.png

(13)

엔트리 기본

2차시

엔트리의 명령어인 블록을

형태적으로 분류하고 설명할 수 있다

엔트리의 명령어인 블록을

기능적으로 분류하고 설명할 수 있다

학습 목표

01

02

(14)

블록의 형태적 분류 4가지 시작블록

블록의 기능적 분류

1

1 나의 첫 엔트리 작품 만들기 1

1) 에듀넷 티 클리어

§

한국교육학술정보원에서 만든 교육 관련 정보사이트

§

컴퓨팅 사고 외에도

디지털 교과서와 영어교과서 등

http://www.edunet.net

(15)

1

1 나의 첫 엔트리 작품 만들기 1

§

홈 à 소프트웨어 교육교재 à 중학교 소프트웨어와 창의력여행 상, 하

1) 에듀넷 티 클리어

1

1 나의 첫 엔트리 작품 만들기 1

• 프로그래밍 결과물을 만들기 위해서는

언어의 명령어들을 조합해야 함

• 프로그래밍 언어의 명령어 = 엔트리 블록 꾸러미

• 시작, 흐름, 움직임, 생김새, 붓, 소리, 판단, 계산, 자료, 함수, 하드웨어와 관련된 블록을 가지고 있음

§ 엔트리 (https://playentry.org/)

(16)

1

1 엔트리 명령어 블록 형태적 분류 2

§ 모든 코드의 시작을 담당 : 코드의 맨 위

§ 윗 부분이 둥근 모양으로 녹색

윗 부분에 홈이 없는 유일한 블록 1) 시작 블록

출처:https://playentry.org/

1

1 엔트리 명령어 블록 형태적 분류 2

2) 쌓기 블록

§

위 쪽에는 파인 홈이, 아래 쪽에는 돌기가 있는 모양

§

중간을 쌓는 역할을 하는 연결의 명령을 하는 블록들

§

함수에 해당

§

흐름, 움직임, 생김새, 붓, 소리가 여기에 해당됨

(17)

1

1 엔트리 명령어 블록 형태적 분류 2

2) 쌓기 블록

값이 필요하지 않은 동작 지정된 값들 중 하나를 선택

조건에 따라 실행 입력값만큼 동작

출처:https://playentry.org/

1

1 엔트리 명령어 블록 형태적 분류 2

3) 넣기 블록

§ 쌓기 블록이나 시작 블록에 넣어서 작동하도록 만들어진 블록

§ 주로 변수에 해당

§ 판단 블록, 계산 블록이 여기에 해당됨

(18)

1

1 엔트리 명령어 블록 형태적 분류 2

3) 넣기 블록

출처:https://playentry.org/

육각형이 있는 값에 들어가는 블록 타원형이 있는 값에 들어가는 블록

1

1 엔트리 명령어 블록 형태적 분류 2

§ 내부 안에 추가적인 메뉴를 갖추고 있는 블록

§ 추가적인 작업을 진행해야 기능을 사용할 수 있음

§ 자료, 함수, 확장, 하드웨어 블록이 이에 해당

4) 메뉴 블록

(19)

1

1 엔트리 명령어 블록 기능적 분류 3

§ 코드의 시작에 해당

• 입력이 들어오면 시작 블록 (기본:시작하기 버튼)

• 특정 신호로 시작 블록 1) 시작 블록

출처:https://playentry.org/

1

1 엔트리 명령어 블록 기능적 분류 3

§ 동작을 제어해 주는 명령어 블록

• 조건 명령어 블록

• 반복 명령어 블록

2) 흐름 블록

(20)

1

1 엔트리 명령어 블록 기능적 분류 3

§ 오브젝트의 움직임에 관련한 블록

• 이동 명령어 블록

• 방향 명령어 블록 3) 움직임 블록

출처:https://playentry.org/

1

1 엔트리 명령어 블록 기능적 분류 3

§ 오브젝트의 모양, 크기, 색깔, 말하기에 관련한 블록

• 모양 명령어 블록

• 색깔 명령어 블록

• 크기 명령어 블록

• 말하기 명령어 블록

4) 생김새 블록

(21)

1

1 엔트리 명령어 블록 기능적 분류 3

§ 붓으로 그리기, 오브젝트

복사에 관련한 블록

• 붓 명령어 블록

• 붓 속성 명령어 블록

• 복사 명령어 블록(도장찍기) 5) 붓 블록

출처:https://playentry.org/

1

1 엔트리 명령어 블록 기능적 분류 3

§ 소리와 배경음 관련 블록

• 소리 명령어 블록

• 소리 속성 블록

6) 소리 블록

(22)

1

1 엔트리 명령어 블록 기능적 분류 3

§ 마우스 또는 키보드 조작,

비교/논리연산 명령에 관한 넣기블록

• 마우스와 키보드 조작 블록

• 비교/논리연산 블록 7) 판단 블록

출처:https://playentry.org/

1

1 엔트리 명령어 블록 기능적 분류 3

§ 연산, 초시계 명령, 오브젝트의 속성과 문자열 관련 넣기 블록

• +, -, /, x 연산 블록

• 초시계관련 블록

• 오브젝트 속성 블록

• 문자열 관련 블록

8) 계산 블록

(23)

1

1 엔트리 명령어 블록 기능적 분류 3

§ 변수와 리스트

제작 메뉴, 결과값 블록

• 변수 만들기

• 리스트 만들기

• 결과값 관련 블록 9) 자료 블록

출처:https://playentry.org/

1

1 엔트리 명령어 블록 기능적 분류 3

§

함수 제작 메뉴가 있으며, 클릭하면 함수 제작 블록이 열림

10) 함수 블록

(24)

1

1 엔트리 명령어 블록 기능적 분류 3

§ 확장 메뉴가 있으며 클릭하면 확장 세부 선택창으로 이동 11) 확장 블록

출처:https://playentry.org/

1

1 엔트리 명령어 블록 기능적 분류 3

§ 센서보드나 아두이노 등의 하드웨어에 관련된 메뉴를 가짐

12) 하드웨어 블록

(25)

핵심 정리

엔트리의 블록을 형태적 분류하면

시작 블록, 쌓기 블록, 넣기 블록, 메뉴 블록

으로 나눔

1.

핵심 정리

엔트리의 블록을 기능적으로 분류하면

시작 블록, 흐름 블록, 움직임 블록, 생김새 블록, 붓 블록, 소리 블록, 판단 블록, 계산 블록, 자료 블록,

함수 블록, 확장 블록, 하드웨어 블록

으로 나눔

2.

(26)

엔트리 블록의 분류 중 맞는 것은?

1

2

4

쌓기 블록 - 변수의 역할을 하는 것으로

함수, 확장, 하드웨어 블록이 대표적임

넣기 블록 - 함수의 역할을 하는 것으로

붓, 생김새, 흐름 블록이 대표적임

3 메뉴 블록 - 메뉴를 통해 추가적인 선택을 해야 하는 것으로 판단 블록과 계산 블록이 대표적임

ü

시작 블록 - 코드의 시작이 되며 유일하게 형태적, 기능적 분류명이 같음

엔트리 블록의 기능적 분류로 틀린 것은?

1 2

붓 블록 : 붓으로 그리기 기능과 도장찍기 기능이 있음

움직임 블록 : 동작을 제어하는 블록, 조건과 반복 블록이 있음

3 계산 블록 : 연산과 문자열 기능, 초시계 블록이 있음

ü

(27)

참고 자료

에듀넷 티 클리어

http://www.edunet.net

http://www.edunet.net/nedu/swedusvc/selec tSweduBoardForm.do?boardNum=5&menu_

id=661&atclNum=16244#

http://www.edunet.net/nedu/swedusvc/selec tSweduBoardForm.do?boardNum=5&menu_

id=661&atclNum=16245#

함께하는 소프트웨어와 창의력 여행.

한국교육학술정보원. 2018. 교육부

엔트리

https://playentry.org/ws#!/

(28)

블록을 이용한 알고리즘 실습

3차시

엔트리의 블록을 기능적으로

확인하면서 예제를 작성할 수 있다

학습 목표

01

(29)

시작 블록 움직임 블록 흐름 블록 생김새 블록

판단 블록

계산 블록

1

1 블록을 이용한 알고리즘 예제 1

1) 시작 블록 예제

① 엔트리봇 오브젝트를 추가한다

② 시작하기를 클릭하고 엔트리봇을 클릭할 때마다 시계 방향으로 90도씩 돌도록 프로그램 작성한다

§

엔트리 오브젝트를 클릭했을 때 오브젝트가 도는 프로그램 만들기

(30)

1

1 블록을 이용한 알고리즘 예제 1

2) 흐름 블록 예제

엔트리봇 오브젝트에서 시작하기를 누르면 계속 움직이도록 만듦

벽에 닿으면 방향을 바꾸도록 명령어 블록 넣기

엔트리봇이 벽에 부딪히면 뒤집히지 않도록 회전 방식 바꾸기

§

엔트리 오브젝트가 시작하기를 누르면 계속 산책을 하는 프로젝트

출처:https://playentry.org/

1

1 블록을 이용한 알고리즘 예제 1

3) 움직임 블록 예제

꽃게와 무당벌레 오브젝트 추가하기

무당벌레는 3개 더 복사하기

방향키를 따라 오브젝트가 방향을 바꿔가며 움직이도록 설계

§ 방향키로 게가 무당벌레를 잡는 프로그램 만들기

(31)

1

1 블록을 이용한 알고리즘 예제 1

3) 움직임 블록 예제

§ 방향키로 게가 무당벌레를 잡는 프로그램 만들기

출처:https://playentry.org/

1

1 블록을 이용한 알고리즘 예제 1

4) 생김새 블록 예제

독수리 오브젝트 추가하기

시작하기를 클릭하면 x:150, y:50으로 이동

0.3초마다 주기적으로 모양을 바꾸기

§ 독수리가 모양을 바꾸어 날아다니는 프로그램 만들기

(32)

1

1 블록을 이용한 알고리즘 예제 1

5) 판단 블록 예제

나비, 꽃 오브젝트 추가하기

시작하기 클릭 후 x:-170, y:90 이동

오브젝트 클릭 시 나비가 마우스를 따라 움직이면서 꽃에 닿으면

“나는 꽃이 좋아” 라고 말하기

§ 나비가 마우스를 따라 움직이면서 꽃을 찾는 프로그램 만들기

출처:https://playentry.org/

1

1 블록을 이용한 알고리즘 예제 1

6) 계산 블록 예제

변수 A와 변수 B를 만듦

변수 A와 변수 B에 값을 저장한 후 시작하기를 클릭하면 덧셈, 뺄셈, 곱셈, 나눗셈을 한 값을 4초간 출력

§ 두 수를 사칙 연산하는 프로그램을 만들기

(33)

1

1 블록을 이용한 알고리즘 예제 1

6) 계산 블록 예제

§ 두 수를 사칙 연산하는 프로그램을 만들기

출처:https://playentry.org/

1

1 블록을 이용한 알고리즘 실습 2

실습 영상은 강의를 통해 확인해 주세요.

실습 영상은 강의를 통해 확인해 주세요.

(34)

핵심 정리

엔트리는 코드 작성 시

시작 블록

으로 개발 시작을 하고

흐름 블록

으로 조건문과 반복문을 만든 후,

움직임 블록

으로 마우스와 키보드 조작을 만들고 생김새 블록으로 애니메이션 컷을,

계산블록

으로 변수의 사칙연산을 진행함

1.

엔트리 블록 예제 제작 시 내용이 아닌 것은?

1 2

키보드 외에도 마우스를 따라다니게 만들 수 있음 모든 코드의 시작은 무조건 시작 블록임

3 벽에 부딪히면 뒤집히지 않도록 회전방식을 변경했음

ü

(35)

참고

자료

엔트리https://playentry.org

https://playentry.org/ws#!/

참조

관련 문서