190

네이버 SW교육 교사 연수자료_ 송상수

Embed Size (px)

Citation preview

7년

15년

10년

30년

이제, 소프트웨어를 만들어 보자!

그런데 소프트웨어가 뭐지?

소프트웨어 ≒ 프로그램

사람이 하고 싶은것을 컴퓨터에게 일로 시킨 것

프로그래밍 = 코딩 = 프로그램을 만드는것

매달 우리 식구가 돈을 얼마나 쓰는지 쉽게 확인할 수

없을까?

문제상황 문제해결방볍 찾기 알고리즘으로 만들기 프로그래밍 하기

귀찮아..

문제상황 문제해결방볍 찾기 알고리즘으로 만들기 프로그래밍 하기

컴퓨터로 어찌하면 되겠지.

문제상황 문제해결방볍 찾기 알고리즘으로 만들기 프로그래밍 하기

우리가 돈 쓰는건 카드랑, 현금뿐이고. 현금은 항상 현금영수증을 발급하니까 이 두 정보를 받아서 뭐 어떻게 하면 되지 않을까?

문제상황 문제해결방볍 찾기 알고리즘으로 만들기 프로그래밍 하기

문제상황 문제해결방볍 찾기 알고리즘으로 만들기 프로그래밍 하기

좀더 자세히 말해봐요~

알고리즘으로 표현해볼게

문제상황 문제해결방볍 찾기 알고리즘으로 만들기 프로그래밍 하기

알고리즘은 또 뭐에요?

알고리즘은

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

문제상황 문제해결방볍 찾기 알고리즘으로 만들기 프로그래밍 하기

알고리즘은 또 뭐에요?

알고리즘을 나타내는 방법은 여러가지가 있는데

그냥 일상언어로 말하는것과 순서도라고 하는 그림으로 표현하는 것과 프로그래밍 언어와 비슷하게 표현하는 방법이 있어. 난 일상언어로 표현해 볼게

문제상황 문제해결방볍 찾기 알고리즘으로 만들기 프로그래밍 하기

그럼 일상언어로 알고리즘을 표현해

봐요~

일상언어로 알고리즘을 표현해볼게

1. 컴퓨터에 ‘금액’을 저장할 수 있는 공간을 만들고 2. 인터넷 카드사 홈페이지에서 그 달의 우리가족 카드 사용내역을 받아와서 쓴 돈을 ‘금액’을 저장하고. 3. 국세청에서 그 달의 현금영수증 발급금액을 받아와서 기존의 ‘금액’에 더해주고 4. 컴퓨터 화면에 그 ‘금액’을 보여주면 되는거지 뭐~

문제상황 문제해결방볍 찾기 알고리즘으로 만들기 프로그래밍 하기

근데 그걸 컴퓨터가 어떻게 해

요?

프로그래밍 언어로 방금 생각한 것을 표현하기만 하면 돼~

문제상황 문제해결방볍 찾기 알고리즘으로 만들기 프로그래밍 하기

프로그래밍 언어는 또 뭐

에요?

내가 방금 말한걸 컴퓨터가 알아서 하려면 내 말을 알아듣게 해야겠지? 외국인을 만나면 그 나라 언어로 대화하는 것처럼 컴퓨터에게 일을 시키려면 컴퓨터가 알아듣는 말인 ‘프로그래밍 언어’를 쓰면 돼~

문제상황 문제해결방볍 찾기 알고리즘으로 만들기 프로그래밍 하기

뭐 이렇게 검은화면에 흰 글씨 쓰는거 있잖아~ 이런걸 텍스트형 언어라고 해.

다른것도 있어요?

문제상황 문제해결방볍 찾기 알고리즘으로 만들기 프로그래밍 하기

아까처럼 키보드로 뭔가를 치는게 아니라 만들어진 블록을 조립해서 프로그래밍하는 언어가 있는데 ‘비쥬얼(블록)형 언어’라고 해. 요즘 학생들에게 교육용으로 많이 쓰고 있어.

재미있게 생겼네요

문제상황 문제해결방볍 찾기 알고리즘으로 만들기 프로그래밍 하기

사람이 하고 싶은 일

컴퓨터가 자동으로 처리

결국 소프트웨어(프로그램)을 만든다는 것은 사람이 하고 싶은 일을 컴퓨터가 자동으로 처리하도록 컴퓨터에게 일을 시키는 과정이라 할 수 있어

문제상황

문제해결방볍 찾기

알고리즘으로 만들기 프로그래밍 하기

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

- C, Java - 엔트리, 스크래치

프로그램 실행

알고리즘 •문제를 해결하기 위한 방법을

순서대로 나열한 것

•다양한 표현법이 있다.

•실제로 동작하지 않음.

•설계도

프로그램 •프로그래밍 언어로 알고리즘을

표현한 것

•다양한 프로그래밍 언어를 사용

한다.

•실제로 동작함

•시공

프로그래밍(알고리즘 만드는)

원리 알아보기

사람이 하고 싶은것을

컴퓨터에게 일로 시키는것

사람이 하고 싶은것을

컴퓨터에게 일로 시키는것

사람이 하고 싶은것을

컴퓨터에게 일로 시키는것

똑똑하게 생긴 컴퓨터.. 뭐든지 다 잘 할것만 같다.

하지만.. 컴퓨터는 바보와 같다.

컴퓨터는 오직 사람이 시키는 대로만 동작 한다.

컴퓨터는 오직 사람이 시키는 대로만 동작 한다.

컴퓨터는 사람과 달리

안 시킨 일, 애매한 일은 못한다.

프로그램을 잘 만들기 위해서는

컴퓨터에게 일을 잘 시켜야 한다.

컴퓨터에게 일을 시키는 원리 = 알고리즘을 만드는 원리 = 프로그래밍의 기초 원리

오늘의 미션

자동으로 양치질을 해주는 컴퓨터(로봇) 알고리즘

만들기

뭐야~ 쉽네 ㅋ

1. 자동으로 양치질 해줘

[원리1] 컴퓨터에게 일을 시킬 때는

일을 잘게 쪼개자.

[원리2] 잘게 쪼갠 일들을

순서대로 나열하자.

1. 칫솔을 잡아라 2. 치약을 잡아라 3. 치약 뚜껑을 열어라 4. 치약을 짜라 5. 칫솔을 입 속에 넣어라 6. 칫솔을 치아에 대고 위아래로 한번 칫솔질 해라.

하지만.. 치약의 뚜껑이 이미 열려 있을 때는...?

1. 칫솔을 잡아라 (ok) 2. 치약을 잡아라 (ok) 3. 치약 뚜껑을 열어라 …(????) 4. 치약을 짜라 5. 칫솔을 입 속에 넣어라 6. 칫솔을 치아에 대고 위아래로 한번 칫솔질 해라.

컴퓨터는 사람과 달리

안 시킨 일, 애매한 일은 못한다.

기억나니…?

[원리3] 상황에 따라 다른 일을 하도록

조건을 달아주자.

1. 칫솔을 잡아라 2. 치약을 잡아라

3. 뚜껑을 열어라 4. 치약을 짜라 5. 칫솔을 입 속에 넣어라 6. 칫솔을 치아에 대고 위아래로 한번 칫솔질 해라.

1. 칫솔을 잡아라 2. 치약을 잡아라

3. (만약 치약 뚜껑이 닫혀 있다면) 치약 뚜껑을 열어라 4. 치약을 짜라 5. 칫솔을 입 속에 넣어라 6. 칫솔을 치아에 대고 위아래로 한번 칫솔질 해라.

칫솔질은 한 번만 하나..?

1. 칫솔을 잡아라 (ok) 2. 치약을 잡아라 (ok) 3. (만약 치약 뚜껑이 닫혀 있다면) 치약 뚜껑을 열어라 (ok) 4. 치약을 짜라 (ok) 5. 칫솔을 입 속에 넣어라 (ok) 6. 칫솔을 치아에 대고 위아래로 한번 칫솔질 해라. … (???)

1. 칫솔을 잡아라 2. 치약을 잡아라 3. (만약 치약 뚜껑이 닫혀 있다면) 치약 뚜껑을 열어라 4. 치약을 짜라 5. 칫솔을 입 속에 넣어라 6. 칫솔을 치아에 대고 위아래로 한 번 칫솔질 해라. 7. 칫솔을 치아에 대고 위아래로 한 번 칫솔질 해라. 8. 칫솔을 치아에 대고 위아래로 한 번 칫솔질 해라. 9. 칫솔을 치아에 대고 위아래로 한 번 칫솔질 해라. 10. 칫솔을 치아에 대고 위아래로 한 번 칫솔질 해라. ………

[원리4] 반복되는 것은 묶어서

‘반복해라’고 명령하자

1. 칫솔을 잡아라 2. 치약을 잡아라 3. (만약 치약 뚜껑이 닫혀 있다면) 치약 뚜껑을 열어라 4. 치약을 짜라 5. 칫솔을 입 속에 넣어라 6. (100번 반복) 칫솔을 치아에 대고 위아래로 한 번 칫솔질 해라. 6. (30초 동안 반복) 칫솔을 치아에 대고 위아래로 한 번 칫솔질 해라.

그런데 갑자기 엄마가 부른다..

1. 칫솔을 잡아라 (ok) 2. 치약을 잡아라 (ok) 3. (만약 치약 뚜껑이 닫혀 있다면) 치약 뚜껑을 열어라 (ok) 4. 치약을 짜라 (ok) 5. 칫솔을 입 속에 넣어라 (ok) 6. 칫솔을 치아에 대고 위아래로 한번 칫솔질 해라. … (???)

[원리5] 어떤 상황일 때마다

지정된 행동을 하게하려면

이벤트 명령으로 떼어두자

1. 칫솔을 잡아라 2. 치약을 잡아라 3. (만약 치약 뚜껑이 닫혀 있다면) 치약 뚜껑을 열어라 4. 치약을 짜라 5. 칫솔을 입 속에 넣어라 6. (100번 반복) 칫솔을 치아에 대고 위아래로 한 번 칫솔질 해라. [이벤트] (중지 버튼을 누를 때마다) 1. 모든 행동을 멈추어라 2. 칫솔을 입 밖으로 빼라

1. 칫솔을 잡아라 2. 치약을 잡아라 3. (만약 치약 뚜껑이 닫혀 있다면) 치약 뚜껑을 열어라 4. 치약을 짜라 5. 칫솔을 입 속에 넣어라 6. (100번 반복) 칫솔을 치아에 대고 위아래로 한 번 칫솔질 해라. [이벤트] (중지 버튼을 누를 때마다) 1. 모든 행동을 멈추어라 2. 칫솔을 입 밖으로 빼라

치약이 다 떨어졌다. 양치질 로봇의 버튼으로

다른 로봇을 조종하고 싶다..

1. (만약 치약이 남아있다면) 보관함에서 치약 하나를 꺼낸다.

2. 양치질 로봇이 있는 방향을 확인한다. 3. (양치질 로봇과 거리가 10cm가 될 때

까지 반복) 양치질 로봇 방향으로 움직인다.

[이벤트] ~ 를 받을 때 마다

치약을 배달해주는

로봇

[원리6] 내가 다른 대상을 변화시키고

싶을 때는 메시지(신호보내기)

명령을 사용하자

1. 칫솔을 잡아라 2. 치약을 잡아라 3. (만약 치약 뚜껑이 닫혀 있다면) 치약 뚜껑을 열어라 4. 치약을 짜라 5. 칫솔을 입 속에 넣어라 6. (100번 반복) 칫솔을 치아에 대고 위아래로 한 번 칫솔질 해라. [이벤트] (중지 버튼을 누를 때마다) 1. 모든 행동을 멈추어라 2. 칫솔을 입 밖으로 빼라

[이벤트] (배달 버튼을 누를 때마다)

1. ‘배달해줘’ 신호 보내기

1. (만약 치약이 남아있다면) 보관함에서 치약 하나를 꺼낸다.

2. 양치질 로봇이 있는 방향을 확인한다. 3. (양치질 로봇과 거리가 10cm가 될 때

까지 반복) 양치질 로봇 방향으로 움직인다.

[이벤트] 배달해줘 신호를 받을때 마다

• 소프트웨어는 생각보다

생활 속에 많이 쓰이며

우리 생활모습을

빠른 속도로 변화시키고 있다.

• 소프트웨어를 만든다는 것은

사람이 하고 싶은 일을

컴퓨터에게 시키는 것과 같다.

• 사람이 컴퓨터에게 일을 시키

기 위해서는 알고리즘을 생

각해낸 다음, 프로그래밍언어

로 프로그램을 만들어야 한

다.

• 알고리즘(프로그래밍)의 기초 원리

1) 문제를 해결하기 위해 일을 잘게 쪼갠다. 2) 잘게 쪼갠 일들을 순서대로 나열한다. 3) 상황에 따라 다른 일을 할때는 조건을 달아준다.

• 알고리즘과 프로그래밍의 기초 원리 4) 반복되는 명령은 묶어서 명령한다. 5) 특정한 사건이 발생할 때마다 특정 행동을 하게하려면 이벤트를 사용한다. 6) 다른 대상을 변화시키려면 신호보내기를 사용한다.

- 대표적인 언플러그드 활동 - 로봇 강아지 엔트리봇이 필요한 부품을 찾아 떠나는 여행 - 보드게임으로

프로그래밍 기초 원리인 ‘ 순차, 반복, 함수’ 를 배울 수 있다.

컨트롤러

1. 기본 이동 카드

1. 기본 이동 카드

3

1 2

4 5

6 7

3

1 2

4 5

6 7 8 9

10 11 12

13 14

3 4 5

8 1 2

6 7

3. 특수이동카드존

특수이동카드의 무늬와 같은

특수이동카드존에 가게되면

특수이동카드를 한장 뽑을 수 있습니다

4. 해킹카드존

해킹카드의 무늬와 같은

해킹카드존에 가게되면

해킹카드를 한장 뽑을 수 있습니다

시작해보세요!

- 컴퓨팅 놀이활동으로 ‘순차, 반복, 조건, 함수’의 개념을 습득

- 크롬 브라우저를 켜고 사이트 접속

Play-entry.com

•기초 용어 알아보기(SW, HW, 알고리즘, 코딩, 프로그래밍)

•순서대로 나열(순차), 반복되는 것 묶기(반복) 개념 학습 1-2 차시

•순차, 반복 개념을 활용한 문제분석, 알고리즘 만들기

•주어진 알고리즘을 가지고 소프트웨어 만들기 실습 3-4 차시

•이벤트(~를 눌렀을때, 신호보내기) 개념 학습

•이벤트를 이용한 소프트웨어 만들기 실습 (카드 만들기) 5-6 차시

•배운 개념을 모두 사용하여 이야기 소프트웨어 만들기 실습

•이야기를 변형하거나, 나만의 이야기 소프트웨어로 만들기 7-8 차시

•기초 용어 알아보기(SW, HW, 알고리즘, 코딩, 프로그래밍)

•순서대로 나열(순차), 반복되는 것 묶기(반복) 개념 학습 1-2 차시

•순차, 반복 개념을 활용한 문제분석, 알고리즘 만들기

•주어진 알고리즘을 가지고 소프트웨어 만들기 실습 3-4 차시

•이벤트(~를 눌렀을때, 신호보내기) 개념 학습

•이벤트를 이용한 소프트웨어 만들기 실습 (카드 만들기) 5-6 차시

•배운 개념을 모두 사용하여 이야기 소프트웨어 만들기 실습

•이야기를 변형하거나, 나만의 이야기 소프트웨어로 만들기 7-8 차시

개념

실습

개념

실습

•개념 살펴보기 1-2 차시

•배운 개념으로 행동 알고리즘 만들고,

알고리즘대로 행동해보기 3-4 차시

•소프트웨어 알고리즘 만들기 5-6 차시

•알고리즘으로 소프트웨어 만들기 7-8 차시

개념

행동

구상

실습

동기유발 옛날과 오늘날 모습 비교하기

활동1 단어의 뜻과 생활 속 SW알아보기

활동2 순서대로 나열하기

활동3 반복 되는것 찾고 묶어보기

동기유발 옛날과 오늘날 모습 비교하기

활동1 단어의 뜻과 생활 속 SW알아보기

활동1 단어의 뜻과 생활 속 SW알아보기

활동2 순서대로 나열하기

활동2 순서대로 나열하기

활동2 순서대로 나열하기

활동3 반복 되는것 찾고 묶어보기

활동3 반복 되는것 찾고 묶어보기

선택과제 SW야 놀자 3, 16회

동기유발 1~2차시 영상으로 복습

활동1 명령어 만들어서 움직여보기

활동2 명령어대로 움직여 보기

활동3 등장인물 알고리즘 만들기

활동4 컴퓨터로 등장인물 움직여보기

동기유발 1~2차시 영상으로 복습

활동1 명령어 만들어서 움직여보기

활동2 명령어대로 움직여 보자

활동3 등장인물 알고리즘 만들기

활동4 컴퓨터로 등장인물을 움직여보기

- 크롬 브라우저를 켜고 사이트 접속

Play-entry.com

- ‘만들기’ 클릭

- ‘새로운 프로젝트 만들기’ 클릭

- 엔트리 인터페이스

[따라해보기] - 블록 꾸러미에서 블록 조립소로 원하는 명령어를 가지고 와서 조립 해 봅시다.

[따라해보기] - 명령어의 입력칸에 원하는 값을 넣어봅시다.

[따라해보기] - 시작하기 버튼을 눌러서 블록명령어를 실행해 봅시다.

[따라해보기] - 명령어를 삭제하고 싶을 때는 휴지통에 명령어를 끌어서 버려봅시다.

[따라해보기] - 오브젝트 추가하기를 눌러서 다른 등장인물을 추가해 봅시다.

선택과제 SW야 놀자 12회

동기유발 SW야 놀자 4회 동영상 시청

활동1 ~를 눌렀을 때 알아보기

활동2 신호보내기 알아보기

활동3 SW야 놀자 4회 알고리즘 만들기

활동4 SW야 놀자 4회 소프트웨어 만들기

동기유발 SW야 놀자 4회 동영상 시청

활동1 ~를 눌렀을 때 알아보기

활동2 신호보내기 알아보기

활동3 SW야 놀자 4회 알고리즘 만들기

활동4 SW야 놀자 4회 소프트웨어 만들기

동기유발 SW야 놀자 5회 동영상 시청

활동1 SW야 놀자 5회 소프트웨어 만들기

활동2 이야기 변형 시키기

활동3 나만의 이야기 구상하기

활동4 나만의 이야기 소프트웨어로 만들기