149
알고리즘? 알고리즘! 소프트웨어 교육 연구소 송상수 ( [email protected] )

[소프트웨어교육] 알고리즘 교사 연수 자료

Embed Size (px)

DESCRIPTION

광주_전남 지역 초/중/고 교사분들을 대상으로 한 소프트웨어 교사 연수중 알고리즘 파트 부분입니다. Computational Thinking의 핵심인 알고리즘을 다양한 예를 들어 쉽게 설명하고자 애썼습니다. SW교육을 하시는 분들께 도움이 되길^^;

Citation preview

Page 1: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘? 알고리즘!

소프트웨어 교육 연구소

송상수 ( [email protected] )

Page 2: [소프트웨어교육] 알고리즘 교사 연수 자료

1) govote.at 접속

2) 79 26 93입력

Page 3: [소프트웨어교육] 알고리즘 교사 연수 자료

3) 설문 문항 ‘2문항’ 응답하기

Page 4: [소프트웨어교육] 알고리즘 교사 연수 자료

목차

02 알고리즘 살펴보기 2-1 알고리즘 살펴보기

03 알고리즘 표현하기 3-1 다양한 알고리즘 표현법

3-2 순서도로 표현하기

01 SW교육 단계와 도구 소개 1-1 SW교육 이란?

1-2 SW교육 단계와 도구 소개

04 알고리즘 만들고 실행하기 4-1 알고리즘 만들어 보기

4-2 엔트리를 통한 알고리즘 시뮬레이션

05 도구를 이용한 알고리즘 학습 5-1 Code.org를 통한 알고리즘 학습

5-2 보드게임을 통한 알고리즘 학습

Page 5: [소프트웨어교육] 알고리즘 교사 연수 자료

SW교육 단계와 도구 소개 01

Page 6: [소프트웨어교육] 알고리즘 교사 연수 자료

SW교육 이란? 1-1

Page 7: [소프트웨어교육] 알고리즘 교사 연수 자료

SW교육 이란? 1-1

Page 8: [소프트웨어교육] 알고리즘 교사 연수 자료

SW교육 이란? 1-1

Page 9: [소프트웨어교육] 알고리즘 교사 연수 자료

SW교육에 대한 오해들

Page 10: [소프트웨어교육] 알고리즘 교사 연수 자료

왜 SW교육을 하는가?

Page 11: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 12: [소프트웨어교육] 알고리즘 교사 연수 자료

상상력 창의력

Page 13: [소프트웨어교육] 알고리즘 교사 연수 자료

논리적사고 문제해결능력

Page 14: [소프트웨어교육] 알고리즘 교사 연수 자료

Computational Thinking

=

Page 15: [소프트웨어교육] 알고리즘 교사 연수 자료

1) 생각한 것을 표현하는 도구 2) 문제를 해결하는 도구 3) 고등 사고력 향상 4) SW중심 사회로의 변화

Page 16: [소프트웨어교육] 알고리즘 교사 연수 자료

SW교육 단계와 도구 소개 1-2

• CS 놀이 활동 • 보드게임

• Light-Bot • Kodable • CODE.org • 엔트리학습모드

• 스크래치 • 엔트리 • 앱인벤터 • Kodu • Alice

• MakeyMakey • 아두이노 (S4A/엔트리) • 레고 마인드스톰

Page 17: [소프트웨어교육] 알고리즘 교사 연수 자료

SW교육 단계와 도구 소개 1-2

Page 18: [소프트웨어교육] 알고리즘 교사 연수 자료

팀별 전략수립(토론)

연습과 수정

발표와 피드백

컴퓨터과학,

실생활 적용

Page 19: [소프트웨어교육] 알고리즘 교사 연수 자료

보드 게임으로 배우는 프로그래밍

- sw교육 기관/학교에서 사용

- 입문 단계에서 많이 사용

Page 20: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 21: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 22: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 23: [소프트웨어교육] 알고리즘 교사 연수 자료

기초과정

•프로그래밍 기초

•인터페이스 익히기

예제 익히기

•게임

•애니메이션

•미디어아트

•응용프로그램

문제 해결 과정

•기능 추가하기

•기능 수정하기

•오류 수정

프로젝트형 수업

•프로젝트 계획하기

•프로젝트 만들기

•프로젝트 평가하기

기초 기능 학습 단계

블록 탐색과 간단한 예제

다양한 영역 예제 만들기

예제를 통한 알고리즘 학습

주어진 상황의 문제 해결하기

문제 해결 능력 향상

스스로 문제를 정의하고 해결

협업과 피드백 경험

Page 24: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 25: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 26: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 27: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 28: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 29: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 30: [소프트웨어교육] 알고리즘 교사 연수 자료

자유로운 질문4

1) govote.at 접속

2) 59 86 83입력

Page 31: [소프트웨어교육] 알고리즘 교사 연수 자료

CODE.ORG

Page 32: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 살펴보기

02

Page 33: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 살펴보기 2-1

알고리즘 하면 떠오르는 단어, 생각

1. 알고리즘 이란?

Page 34: [소프트웨어교육] 알고리즘 교사 연수 자료

튜링 (Alan Turing) 1912-1954

Page 35: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 살펴보기 2-1

주어진 문제를 해결하기 위한 일련의 방법 및 절차

일/문제 - 해결법을 순서대로 잘 나열해 놓은 것

1. 알고리즘 이란?

Page 36: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 37: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 38: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 39: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 40: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 살펴보기 2-1

컴퓨터 알고리즘

컴퓨터를 사용하여 (프로그래밍)

문제를 해결하는 방법을 순서대로 잘 나열해 놓은 것

1. 알고리즘 이란?

Page 41: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 살펴보기 2-1

2. 컴퓨터와 알고리즘

Page 42: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 살펴보기 2-1

알고리즘 = 설계도

Page 43: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 살펴보기 2-1

하나의 문제

여러가지 해결 방법

3. 알고리즘의 성능

Page 44: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 살펴보기 2-1

3. 알고리즘 이건 기억하자

효율적인 알고리즘을 찾고, 사용하기

- 빠르게(시간복잡도) - 값싸게(공간복잡도)

Page 45: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 살펴보기 2-1

조건 순차적 실행 반복 함수 재귀

4. 어디까지 다룰 것인가?

• 알고리즘 기본 개념

• 컴퓨터과학 기본 개념

배열 변수 자료구조 (스택/힙)

트리 그래프

• 알고리즘 응용

정렬 (버블/삽입/선택)

검색 (선형/이진)

자료구조 (스택/힙)

트리 그래프

Page 46: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 47: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 표현하기

03

Page 48: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 표현하기 3-1

알고리즘의 특성 1) 입력(Input) - 자료가 외부에서 제공될 수 있다. 2) 출력(Output) - 적어도 하나 이상의 결과를 내야 한다. 3) 명확성(Definiteness) - 각 명령어들은 명확하고 모호하지 않아야 한다. 4) 유한성(Finiteness) - 알고리즘의 명령어대로 수행했을 때 유한번의 수행 후에 마쳐야 한다. 5) 효과성(Effectiveness) - 알고리즘의 모든 연산들은 사람이 종이와 연필을 이용하여 유한한 시간 안에 정확하게 수행할 수 있을 정도로 충분히 단순해야 함.

Page 49: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 표현하기 3-1

입력

출력

일련의 절차

Page 50: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 표현하기 3-1

<워밍업 문제>

똑같이 생긴 당구공 7개가 있다. 6개는 무게가 같은데, 하나는 무게가 적게 나간다. 당구공을 얼마든지 올릴 수 있는 양팔 저울이 있다. 이 저울을 이용하여 무게가 적게 나가는 당구공을 찾아내야 한다. 단, 저울을 가장 적게 사용해야 한다. 저울을 몇 번 이용해야 하는가?

Page 51: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 표현하기 3-1

1번 비교

2번 비교

Page 52: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 표현하기 3-1

추상화 시키기(일반화 시키기)

똑같이 생긴 당구공 N개가 있다. N-1개는 무게가 같은데, 하나는 무게가 적게 나간다. 당구공을 얼마든지 올릴 수 있는 양팔 저울이 있다. 이 저울을 이용하여 무게가 적게 나가는 당구공을 찾아내야 한다. 단, 저울을 가장 적게 사용해야 한다. 저울을 몇 번 이용해야 하는가?

Page 53: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 표현하기 3-1

공의 개수

최소 횟수

일련의 절차

Page 54: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 표현하기 3-1

표로 나타내기

2개 3개 4개 5개 6개 7개 8개 9개 10개

1번 1번 2번 2번 2번 2번 2번 2번 3번

Page 55: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 표현하기 3-1

수식으로 추론하기

2개 3개 4개 5개 6개 7개 8개 9개 10개

1번 1번 2번 2번 2번 2번 2번 2번 3번

𝐥𝐨𝐠𝟐 𝒏 ? ? 𝐥𝐨𝐠𝟑 𝒏 ? ?

𝐥𝐨𝐠𝟑 𝒏 의 올림

Page 56: [소프트웨어교육] 알고리즘 교사 연수 자료

3-1

1. 공의 개수를 입력 받아 N에 저장한다. 2. 𝐥𝐨𝐠𝟑 𝒏 을 해서 𝑆에 저장한다. 3. S를 올림한다. 4. S를 출력한다.

숫자 공간 N,S 준비 N = 키보드 입력값 S = 𝐥𝐨𝐠𝟑 𝒏 S = 올림(S) 출력(S) Int n = 0;

Int s = 0; N = Consol.read(); S = math.log(3,n); S = math.ceiling(S); Consol.writeline(S);

자연어로 표현

순서도로 표현 의사코드로

표현

프로그래밍 언어로 표현

Page 57: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 58: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 표현하기 3-1

1. 어떻게 표현할 것인가?

Page 59: [소프트웨어교육] 알고리즘 교사 연수 자료

1. 어떻게 표현할 것인가?

순서도로 표현하기

자연어로 표현하기

의사코드로 표현하기

프로그래밍 언어로 표현하기

알고리즘 표현하기 3-1

Page 60: [소프트웨어교육] 알고리즘 교사 연수 자료

자연어로 표현하기

1. 한글이나 영어를 사용하여 알고리즘을 표현

2. 쉽게 표현 할 수 있지만

3. 모호해서 명확성 유지의 어려움이 있다.

1. 어떻게 표현할 것인가?

알고리즘 표현하기 3-1

Page 61: [소프트웨어교육] 알고리즘 교사 연수 자료

자연어로 표현하기

라면 끓이는 방법 알고리즘 ① 냄비에 물을 넣는다. ② 냄비를 불에 올려놓는다. ③ 물이 끓으면 라면과 수프를 넣는다. ④ 맛있게 먹는다.

1. 어떻게 표현할 것인가?

알고리즘 표현하기 3-1

순차

Page 62: [소프트웨어교육] 알고리즘 교사 연수 자료

자연어로 표현하기

이 닦는 알고리즘 ① 칫솔을 든다 ② 치약을 든다 ③ 치약 뚜껑을 연다 ④ 치약을 짠다

1. 어떻게 표현할 것인가?

알고리즘 표현하기 3-1

순차

Page 63: [소프트웨어교육] 알고리즘 교사 연수 자료

자연어로 표현하기

이 닦는 알고리즘 ① 칫솔을 든다 ② 치약을 든다

③ (만약에 뚜껑이 닫혀 있으면) 치약 뚜껑을 연다 ④ 치약을 짠다

1. 어떻게 표현할 것인가?

알고리즘 표현하기 3-1

조건

Page 64: [소프트웨어교육] 알고리즘 교사 연수 자료

자연어로 표현하기

이 닦는 알고리즘 ① 칫솔을 든다 ② 치약을 든다 ③ (만약에 뚜껑이 닫혀 있으면) 치약 뚜껑을 연다 ④ 치약을 짠다 ⑤ 치약이 묻은 칫솔을 입 속에 넣는다 ⑥ 칫솔을 치아에 대고 2초동안 위아래로 한번 칫솔질 한다.

1. 어떻게 표현할 것인가?

알고리즘 표현하기 3-1

순차, 조건

Page 65: [소프트웨어교육] 알고리즘 교사 연수 자료

자연어로 표현하기

이 닦는 알고리즘 1~5… ⑥ 칫솔을 치아에 대고 2초동안 위아래로 한번 칫솔질 한다. ⑦ 칫솔을 치아에 대고 2초동안 위아래로 한번 칫솔질 한다. ⑧ 칫솔을 치아에 대고 2초동안 위아래로 한번 칫솔질 한다. ⑨ 칫솔을 치아에 대고 2초동안 위아래로 한번 칫솔질 한다. … … …

1. 어떻게 표현할 것인가?

알고리즘 표현하기 3-1

순차, 조건

Page 66: [소프트웨어교육] 알고리즘 교사 연수 자료

자연어로 표현하기

이 닦는 알고리즘 ① 칫솔을 든다 ② 치약을 든다 ③ (만약에 뚜껑이 닫혀 있으면) 치약 뚜껑을 연다 ④ 치약을 짠다 ⑤ 치약이 묻은 칫솔을 입 속에 넣는다

⑥ (1분이 될 때 까지) 칫솔을 치아에 대고 2초동안 위아래로 한번 칫솔질 한다.

1. 어떻게 표현할 것인가?

알고리즘 표현하기 3-1

반복

Page 67: [소프트웨어교육] 알고리즘 교사 연수 자료

자연어로 표현하기

이 닦는 알고리즘 1~5

⑥ (1분이 될 때 까지) 칫솔을 치아에 대고 2초동안 위아래로 한번 칫솔질 한다.

⑥ (30번 반복) 칫솔을 치아에 대고 2초동안 위아래로 한번 칫솔질 한다.

1. 어떻게 표현할 것인가?

알고리즘 표현하기 3-1

반복

Page 68: [소프트웨어교육] 알고리즘 교사 연수 자료

자연어로 표현하기

이 닦는 알고리즘 ① 칫솔을 든다 ② 치약을 든다 ③ (만약에 뚜껑이 닫혀 있으면) 치약 뚜껑을 연다 ④ 치약을 짠다 ⑤ 치약이 묻은 칫솔을 입 속에 넣는다 ⑥ (1분이 될 때 까지) 칫솔을 치아에 대고 2초 동안 위아래로 한번 칫솔질 한다.

1. 어떻게 표현할 것인가?

알고리즘 표현하기 3-1

순차, 조건, 반복

Page 69: [소프트웨어교육] 알고리즘 교사 연수 자료

자연어로 표현하기

전화를 걸어 친구와 통화하는 알고리즘 ① 친구의 전화번호를 확인한다. ② 전화기를 든다. ③ 번호를 입력한다. ④ (통화 중이면) 끊고 잠시 기다린 후 ② 부터 다시 시작한다. ⑤ 통화 중이 아니면 통화한다. ⑥ 통화가 끝나면 수화기를 놓는다.

1. 어떻게 표현할 것인가?

알고리즘 표현하기 3-1

Page 70: [소프트웨어교육] 알고리즘 교사 연수 자료

자연어로 표현하기

1과 2를 더해서 그 결과를 출력하는 알고리즘 ① 변수 A,B,C를 만든다. ② 정수값 1을 A 변수에 대입한다. ③ 정수값 2를 B 변수에 대입한다. ④ A 변수의 값과 B 변수의 값을 더해서 C 변수에 대입한다. ⑤ C 변수의 값을 출력한다.

1. 어떻게 표현할 것인가?

알고리즘 표현하기 3-1

변수

Page 71: [소프트웨어교육] 알고리즘 교사 연수 자료

1 + 2 = ?

Page 72: [소프트웨어교육] 알고리즘 교사 연수 자료

메모리 = 실행중인 프로그램,

정보(숫자,문자)를 저장하는 곳

40억

비교 횟수

당구공 개수

더한 값 철수

몸무게

변수 = 정보(숫자,문자)를 컴퓨터에서 저장, 수정, 사용하기 위해 이

름 붙인 공간 1) 한 변수에는 하나의 값만 들어간다.

2) 변수 안에 들어간 값은 수정 할 수 있다.

Page 73: [소프트웨어교육] 알고리즘 교사 연수 자료

1과 2를 더해서 그 결과를 출력하는 알고리즘

① 변수 A,B,C를 만든다. ② 정수값 1을 A 변수에 대입한다. ③ 정수값 2를 B 변수에 대입한다. ④ A 변수의 값과 B 변수의 값을 더해서 C 변수에 대입한다. ⑤ C 변수의 값을 출력한다.

A B C

Page 74: [소프트웨어교육] 알고리즘 교사 연수 자료

1과 2를 더해서 그 결과를 출력하는 알고리즘 ① 변수 A,B,C를 만든다.

② 정수값 1을 A 변수에 대입한다. ③ 정수값 2를 B 변수에 대입한다. ④ A 변수의 값과 B 변수의 값을 더해서 C 변수에 대입한다. ⑤ C 변수의 값을 출력한다.

A B C

A B C

1

Page 75: [소프트웨어교육] 알고리즘 교사 연수 자료

1과 2를 더해서 그 결과를 출력하는 알고리즘 ① 변수 A,B,C를 만든다. ② 정수값 1을 A 변수에 대입한다.

③ 정수값 2를 B 변수에 대입한다. ④ A 변수의 값과 B 변수의 값을 더해서 C 변수에 대입한다. ⑤ C 변수의 값을 출력한다.

A B C

A B C

1

2 1

Page 76: [소프트웨어교육] 알고리즘 교사 연수 자료

1과 2를 더해서 그 결과를 출력하는 알고리즘 ① 변수 A,B,C를 만든다. ② 정수값 1을 A 변수에 대입한다. ③ 정수값 2를 B 변수에 대입한다.

④ A 변수의 값과 B 변수의 값을 더해서 C 변수에 대입한다. ⑤ C 변수의 값을 출력한다.

A B C

A B C

1 2

1 2 1 2

3

Page 77: [소프트웨어교육] 알고리즘 교사 연수 자료

1과 2를 더해서 그 결과를 출력하는 알고리즘 ① 변수 A,B,C를 만든다. ② 정수값 1을 A 변수에 대입한다. ③ 정수값 2를 B 변수에 대입한다. ④ A 변수의 값과 B 변수의 값을 더해서 C 변수에 대입한다.

⑤ C 변수의 값을 출력한다.

A B C

A B C

1 2 3

1 2 3 3

Page 78: [소프트웨어교육] 알고리즘 교사 연수 자료

자연어로 표현하기

자연어로 알고리즘 만들기 활동

1. 어떻게 표현할 것인가?

알고리즘 표현하기 3-1

Page 79: [소프트웨어교육] 알고리즘 교사 연수 자료

http://tinyurl.com/swteacher

Page 80: [소프트웨어교육] 알고리즘 교사 연수 자료

https://www.lucidchart.com

Page 81: [소프트웨어교육] 알고리즘 교사 연수 자료

자연어로 알고리즘 만들기 활동

문제1) 1. 자신이 제일 잘 할 수 있는 요리 알고리즘을 만드세요. 2. 50과 60을 더해서 평균을 구하는 알고리즘을 만드세요.

Page 82: [소프트웨어교육] 알고리즘 교사 연수 자료

1. 어떻게 표현할 것인가?

순서도로 표현하기

자연어로 표현하기

의사코드로 표현하기

프로그래밍 언어로 표현하기

알고리즘 표현하기 3-1

Page 83: [소프트웨어교육] 알고리즘 교사 연수 자료

순서도로 표현하기

1. 정해진 기호로 알고리즘을 표현

2. 명확하게 표현 할 수 있지만

3. 규모가 큰 알고리즘은 그리기 어렵다.

1. 어떻게 표현할 것인가?

알고리즘 표현하기 3-1

Page 84: [소프트웨어교육] 알고리즘 교사 연수 자료

순서도 기호

단말(Terminal) - 작업의 시작과 끝을 나타내는 기호

알고리즘 표현하기 3-1

Page 85: [소프트웨어교육] 알고리즘 교사 연수 자료

흐름선 - 작업의 흐름을 명시함

순서도 기호

알고리즘 표현하기 3-1

Page 86: [소프트웨어교육] 알고리즘 교사 연수 자료

준비(Preparation) - 작업을 하기 위한 준비로 필요한 기억장소의 확보 및 배열확보 또는 초기값 을 정해 주는데 사용.

순서도 기호

알고리즘 표현하기 3-1

K L

0 0

Page 87: [소프트웨어교육] 알고리즘 교사 연수 자료

입출력(I/O symbol) - 일반적인 데이터의 입력 또는 결과의 출력

순서도 기호

알고리즘 표현하기 3-1

K

5 5

5

Page 88: [소프트웨어교육] 알고리즘 교사 연수 자료

처리(Process) - 자료의 이동 이나 연산내용, 행동을 기호내에 서술.

순서도 기호

알고리즘 표현하기 3-1

A B

3

3

Page 89: [소프트웨어교육] 알고리즘 교사 연수 자료

판단(Decision) - 조건에 따라 흐름선을 선택함

순서도 기호

알고리즘 표현하기 3-1

Page 90: [소프트웨어교육] 알고리즘 교사 연수 자료

프린트 - 프린터를 이용한 출력(서류 등의 지면에 출력)

순서도 기호

알고리즘 표현하기 3-1

Page 91: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 92: [소프트웨어교육] 알고리즘 교사 연수 자료

순서도의 유형 – 순차적 개념

처리 1

처리 2

처리 3

START

A = 10

B = 20

T = AxB

Write T

END

알고리즘 표현하기 3-1

Page 93: [소프트웨어교육] 알고리즘 교사 연수 자료

순서도의 유형 – 조건 개념

알고리즘 표현하기 3-1

Page 94: [소프트웨어교육] 알고리즘 교사 연수 자료

순서도의 유형 – 반복 개념

알고리즘 표현하기 3-1

Page 95: [소프트웨어교육] 알고리즘 교사 연수 자료

1. 어떻게 표현할 것인가?

순서도로 표현하기

자연어로 표현하기

의사코드로 표현하기

프로그래밍 언어로 표현하기

알고리즘 표현하기 3-1

Page 96: [소프트웨어교육] 알고리즘 교사 연수 자료

의사코드로 표현하기

1. 프로그래밍 언어와 비슷하게 자연어로 표현 2. 실제 프로그래밍에서 다시 코딩을 해야함

1. 어떻게 표현할 것인가?

알고리즘 만들기 2-2

Page 97: [소프트웨어교육] 알고리즘 교사 연수 자료

의사코드로 표현하기

1. 어떻게 표현할 것인가?

알고리즘 만들기 2-2

Page 98: [소프트웨어교육] 알고리즘 교사 연수 자료

의사코드로 표현하기

1부터 10까지 숫자를 더하도록 하는 의사코드 sum ← 0 i ← 1 begin sum ← sum + i i = i + 1 if i is not 11 goto begin print sum

1. 어떻게 표현할 것인가?

알고리즘 만들기 2-2

Page 99: [소프트웨어교육] 알고리즘 교사 연수 자료

프로그래밍언어로 표현하기

1부터 10까지 숫자를 더하도록 하는 C코드 #include <stdio.h> Int main(void) { int I, sum; sum = 0; for( I = 1; I < 11; I++); { sum = sum + i; } printf(“1부터 10까지의 합 : %d \n”, sum); retrun 0; }

1. 어떻게 표현할 것인가?

알고리즘 만들기 2-2

Page 100: [소프트웨어교육] 알고리즘 교사 연수 자료

1. 어떻게 표현할 것인가?

순서도로 표현하기

순서도로 알고리즘 만들기 활동

순서도로 알고리즘 표현하기 3-2

Page 101: [소프트웨어교육] 알고리즘 교사 연수 자료

문제2) A라는 공간에 1을 넣고 B라는 공간에 2를 넣고 C라는 공간에 A와 B를 더해서 출력하는 알고리즘 (보통은 1과 2를 더해서 출력하는 알고리즘을 순서도로 표현하시오)

순서도로 알고리즘 표현하기 3-2

Page 102: [소프트웨어교육] 알고리즘 교사 연수 자료

문제3) ‘한 변의 길이’와 ‘넓이’라는 공간을 만들고 사람들이 한 변의 길이를 입력하면 넓이(정사각형)를 출력해주는 알고리즘

순서도로 알고리즘 표현하기 3-2

Page 103: [소프트웨어교육] 알고리즘 교사 연수 자료

문제4) ‘점수’라는 공간을 만들고 사람들이 점수를 입력하면 100점이면 ‘대단합니다!’ 60점 이상이면 ‘훌륭해요!’ 60점 미만이면 ‘좋습니다!’라고 출력해주는 알고리즘

순서도로 알고리즘 표현하기 3-2

Page 104: [소프트웨어교육] 알고리즘 교사 연수 자료

문제5) 1에서 부터 n까지의 자연수를 순차적으로 출력(인쇄)하는 알고리즘 만들기

순서도로 알고리즘 표현하기 3-2

Page 105: [소프트웨어교육] 알고리즘 교사 연수 자료

문제6) 정사각형 / 마름모 / 평행사변형 / 사다리꼴을 구분해 주는 알고리즘 (프린트와 판단기호만을 이용하여 작성)

순서도로 알고리즘 표현하기 3-2

Page 106: [소프트웨어교육] 알고리즘 교사 연수 자료

예비문제) - 자연수 1에서 100까지의 짝수의 합계를 구하여 출

력하는 알고리즘 만들기

- n!(1×…n-3×n-2×n-1…×n)의 결과를 구하는 알고리즘 만들기

순서도로 알고리즘 표현하기 3-2

Page 107: [소프트웨어교육] 알고리즘 교사 연수 자료

알고리즘 만들고 실행하기

04

Page 108: [소프트웨어교육] 알고리즘 교사 연수 자료

실제로 작동하는 것을 보고 알고리즘을 만들고 시뮬레이션 해보기

Page 109: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 110: [소프트웨어교육] 알고리즘 교사 연수 자료

문제7) 로봇청소기 알고리즘 만들기

알고리즘 만들고 실행하기 4-1

Page 111: [소프트웨어교육] 알고리즘 교사 연수 자료

자판기

Page 112: [소프트웨어교육] 알고리즘 교사 연수 자료

문제8) 자판기 알고리즘 만들기 (링크주소 – 구글닥스) (시뮬레이션 주소 이따가 닥스) - 실행 시켜보기 - 입력 / 출력 값 찾기 (시작과 끝) - 모든 경우의 수 찾아보기 - 알고리즘 만들기 (어떤 변수, 입력/출력값, 흐름,

동작) - 실제로 만들어 보기

알고리즘 만들고 실행하기 4-1

Page 113: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 114: [소프트웨어교육] 알고리즘 교사 연수 자료

문제9) 암호 풀기 알고리즘 (도어락/자물쇠) (링크주소 – 구글닥스) (시뮬레이션 주소 이따가 닥스) - 실행 시켜보기 - 입력 / 출력 값 찾기 (시작과 끝) - 모든 경우의 수 찾아보기 - 알고리즘 만들기 (어떤 변수, 입력/출력값, 흐름,

동작) - 실제로 만들어 보기

알고리즘 만들고 실행하기 4-1

Page 115: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 116: [소프트웨어교육] 알고리즘 교사 연수 자료

우와 어떻게 이게 가능하지?

Page 117: [소프트웨어교육] 알고리즘 교사 연수 자료

문제10) 지니 알고리즘 사람들에게 ‘김태희, MC몽, 신해철, 유재석, 짱구’ 중에서 한 명을 생각하게 하고 질문 몇 개를 통해서 답을 찾아내는 알고리즘 (최소한의 질문 으로)

알고리즘 만들고 실행하기 4-1

Page 118: [소프트웨어교육] 알고리즘 교사 연수 자료

업 다운 게임

Page 119: [소프트웨어교육] 알고리즘 교사 연수 자료

문제11) 업 다운 게임 (링크주소 – 구글닥스) (시뮬레이션 주소 이따가 닥스) - 실행 시켜보기 - 입력 / 출력 값 찾기 (시작과 끝) - 모든 경우의 수 찾아보기 - 알고리즘 만들기 (어떤 변수, 입력/출력값, 흐름,

동작) - 실제로 만들어 보기

알고리즘 만들고 실행하기 4-1

Page 120: [소프트웨어교육] 알고리즘 교사 연수 자료

앞에서 만들었던 알고리즘 구현해 보기

Page 121: [소프트웨어교육] 알고리즘 교사 연수 자료

도구를 이용한 알고리즘 학습

05

Page 122: [소프트웨어교육] 알고리즘 교사 연수 자료

1. CODE.ORG

CODE.ORG를 이용한 알고리즘 학습 5-1

Page 123: [소프트웨어교육] 알고리즘 교사 연수 자료

2. 네이버 SW야 놀자

엔트리를 이용한 알고리즘 학습 5-1

Page 124: [소프트웨어교육] 알고리즘 교사 연수 자료

2. 네이버 SW야 놀자

엔트리를 이용한 알고리즘 학습 5-1

Page 125: [소프트웨어교육] 알고리즘 교사 연수 자료

보드게임으로 배우는 알고리즘 기본 원리 5-2

• 프로그래밍 교육용 보드게임

• ‘순차’ , ‘함수’, ‘반복’ 학습 가능

Page 126: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 127: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 128: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 129: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 130: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 131: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 132: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 133: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 134: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 135: [소프트웨어교육] 알고리즘 교사 연수 자료

3

1 2

4 5

6 7

Page 136: [소프트웨어교육] 알고리즘 교사 연수 자료

3

1 2

4 5

6 7 8 9

10 11 12

13 14

Page 137: [소프트웨어교육] 알고리즘 교사 연수 자료

2. 네이버 SW야 놀자

엔트리를 이용한 알고리즘 학습 4-2

로봇청소기 알고리즘

Page 138: [소프트웨어교육] 알고리즘 교사 연수 자료

2. 네이버 SW야 놀자

엔트리를 이용한 알고리즘 학습 4-2

문제를 분해 / 추상화 (행동을 추상화)

Page 139: [소프트웨어교육] 알고리즘 교사 연수 자료

2. 네이버 SW야 놀자

엔트리를 이용한 알고리즘 학습 4-2

여러가지 문제 해결 알고리즘 생각하기

Page 140: [소프트웨어교육] 알고리즘 교사 연수 자료

2. 네이버 SW야 놀자

엔트리를 이용한 알고리즘 학습 4-2

설계하기

Page 141: [소프트웨어교육] 알고리즘 교사 연수 자료

2. 네이버 SW야 놀자

엔트리를 이용한 알고리즘 학습 4-2

시뮬레이션 해보기

Page 142: [소프트웨어교육] 알고리즘 교사 연수 자료

2. 네이버 SW야 놀자

엔트리를 이용한 알고리즘 학습 4-2

자동문 알고리즘

Page 143: [소프트웨어교육] 알고리즘 교사 연수 자료

2. 네이버 SW야 놀자

엔트리를 이용한 알고리즘 학습 4-2

문제를 분해 / 추상화 (행동을 추상화)

Page 144: [소프트웨어교육] 알고리즘 교사 연수 자료

2. 네이버 SW야 놀자

엔트리를 이용한 알고리즘 학습 4-2

여러가지 문제 해결 알고리즘 생각하기

Page 145: [소프트웨어교육] 알고리즘 교사 연수 자료

2. 네이버 SW야 놀자

엔트리를 이용한 알고리즘 학습 4-2

설계하기

Page 146: [소프트웨어교육] 알고리즘 교사 연수 자료

2. 네이버 SW야 놀자

엔트리를 이용한 알고리즘 학습 4-2

시뮬레이션 해보기

Page 147: [소프트웨어교육] 알고리즘 교사 연수 자료

감사합니다.

Page 148: [소프트웨어교육] 알고리즘 교사 연수 자료
Page 149: [소프트웨어교육] 알고리즘 교사 연수 자료

http://www.exploringcs.org/ http://scratched.gse.harvard.ed

u/