소프트웨어야 놀자2
<소프트웨어야 놀자 시즌 2>는 시즌1에서 다루지 못한 컴퓨터 과학의 더욱 많은 이야기를 소개합니다.
컴퓨터 과학에 대해 선행지식이 없는 상태에서 게임과 놀이를 통해 자연스럽게 알고리즘과 절차, 시뮬레이션, 프로그래밍 등과 같은 소프트웨어의 기초 원리를 배워나가며, 아이들 스스로 설계하고, 진행하는 과정을 통해 논리력과 창의력, 문제해결능력을 키워나갈 수 있는 프로그램입니다.
-
01. 소프트웨어란 무엇인가요?
소프트웨어가 중심인 사회, 소프트웨어가 세상을 바꾸는 시대에 우리는 살고 있습니다. 우리 주변에서 소프트웨어는 활발하게 활용되고 있지만 너무 밀접한 나머지 잘 인식하지 못하고 있는 경우도 있습니다. 우리 생활 주변에서 소프트웨어가 쓰이는 사례를 찾아보고 발표를 함으로써 소프트웨어가 우리 생활을 편리하고 즐겁게 해주고 있음을 알 수 있도록 합니다.
2018.10.04visibility3,042 thumb_up_alt12 -
02. 순서대로! 차례대로! 순차
컴퓨터나 로봇과 같은 기계들은 소프트웨어를 통해 사람이 하는 명령을 수행할 수 있습니다. 그렇다면 기계에게 일을 시키는 소프트웨어를 만들려면 어떻게 해야 할까요? 이러한 기계들은 매우 똑똑한 것처럼 보이지만 사람이 시킨 일 이외에는 아무것도 하지 못합니다. 그리고 이들이 할 수 있는 일 또한 매우 제한적이고 분절되어 있습니다. 우리는 이러한 제한적이고 분절된 명령어들을 조합하여 로봇을 걷게도, 뛰게도, 또 춤을 추게도 만들 수 있습니다. 우리가 소프트웨어를 만들어 실행시키면 컴퓨터는 소프트웨어에 있는 명령어들을 순서대로 수행합니다. 따라서 소프트웨어를 만들 때에는 순서를 잘 고려하여 명령어들을 조합하여야 하는데, 그것을 ‘순차 구조’라고 합니다. 이번 주제에서는 ‘순차 구조’를 통해 컴퓨터에게 명령을 내리는 방법에 대해 알아봅시다.
2018.10.04visibility2,015 thumb_up_alt1 -
03. 쉽고 간단하게, 반복!
컴퓨터가 정말 잘하는 일 중 하나는 같은 일을 반복하는 것입니다. 사람은 같은 일을 계속하는 것에 쉽게 지루함을 느낄뿐더러 어떤 일을 매번 똑같이 반복하기도 어렵습니다. 그러나 컴퓨터나 로봇과 같은 기계들은 같은 명령을 지루해하거나 힘들어하지 않고, 조금의 오차도 없이 반복합니다. 바로 이러한 특성 때문에 컴퓨터는 사람이 하기 싫어하는 일을 쉽고 빠르게 대신해줌으로써 우리의 생활을 편리하게 도와줍니다. 이번 주제에서는 프로그램을 쉽고 간단하게 만들어주는 ‘반복’의 개념에 대해 알아봅시다.
2018.10.04visibility1,271 thumb_up_alt0 -
04. 다른 선택, 다른 결과, 분기!
로봇에게 양치질을 시키려고 합니다. ‘칫솔을 잡아라. 치약을 잡아라. 치약 뚜껑을 열어라.’ 로봇이 오류를 일으키며 프로그램을 종료해버리고 맙니다. 치약 뚜껑이 이미 열려있는 상태였기 때문입니다. 이렇듯 프로그램은 우리가 명령한 대로만 작동하기 때문에 상황에 따라 다른 명령을 내리고 싶을 때에는 특수한 명령어를 사용해야 합니다. ‘만약 칫솔 뚜껑이 닫혀있다면 칫솔 뚜껑을 열어.’와 같이 명령을 수행하는 조건을 정해주는 것입니다. 이렇게 상황에 따라 다른 명령을 수행하는 것을 분기(선택)이라고 합니다. 이번 시간에는 ‘분기(선택)’를 통해 상황에 따라 여러 가지 다른 명령을 수행하는 방법에 대해 알아봅시다.
2018.10.04visibility893 thumb_up_alt1 -
05. 정보를 담는 그릇, 변수!
우리는 중요한 정보를 어떻게 기억하나요? 잊어버리지 않기 위해 수첩에 메모를 해두거나 컴퓨터나 스마트폰의 메모장에 기록해둡니다. 또, 기록해 둔 정보를 잘 찾기 위해 제목을 붙이거나 견출지를 붙여두기도 합니다. 그렇다면 프로그램에서 필요한 정보는 어디에 저장할까요? 컴퓨터에는 정보를 저장할 수 있는 ‘메모리’라는 공간이 있습니다. 메모리는 작은 상자와 같은 공간들로 이루어져 있는데, 이러한 상자들에 숫자나 문자와 같은 정보들을 저장할 수 있습니다. 그리고 그 상자에 어떤 정보를 저장하고 있는지 알기 위해 이름을 붙여줍니다. 이렇게 이름을 붙인 상자를 ‘변수’, 그 안에 들어있는 정보를 ‘변숫값’이라고 합니다. 이번 차시에서는 프로그램에서 필요한 정보를 저장하는 ‘변수’에 대해 알아봅시다.
2018.10.04visibility585 thumb_up_alt1 -
06. 요모조모 따져 봐, 조건!
마트에서 물건을 구입할 때 가격이나 양을 기준으로 물건을 구입합니다. 컴퓨터도 우리처럼 어떤 상황에서 판단을 내려 행동을 해야 할 때가 많이 있습니다. 그렇지만 엔트리와 같은 프로그램에서는 참, 거짓으로 나타낼 수 있는 것만 판단할 수 있습니다. 이번 주제에서는 ‘조건’을 통해 컴퓨터들이 어떻게 명령을 판단하는지에 대해 알아봅시다.
2018.10.04visibility426 thumb_up_alt2 -
07. 언제 실행할까? 이벤트!
마우스로 클릭하였을 때 명령이 실행되게 하려면 어떻게 해야 할까요? 마우스를 언제 클릭할지는 알 수 없습니다. 따라서 마우스가 클릭되는 때를 알아채서 그때 명령을 실행되도록 해야 합니다. 이와 같이 가만히 대기하고 있다가 어떤 신호가 발생했을 때 명령을 실행하는 것을 이벤트라고 합니다. 이번 차시에서는 프로그램이 실행될 수 있도록 하는 ‘이벤트’에 대해 알아봅시다.
2018.10.04visibility230 thumb_up_alt0 -
08. 약속대로 불러오기, 함수!
어떤 기능을 수행하기 위한 명령들을 묶어서 이름을 주어 표현하면 그 기능이 필요할 때마다 불러서 사용할 수 있습니다. 이와 같이 이름을 가지고 어떤 기능을 수행하는 명령들의 묶음을 함수라고 합니다. 함수로 만들어두면 필요로 할 때마다 함수의 이름으로 불러서 그 명령들을 실행하게 됩니다. 즉, 사각형을 그리기 위해서는 네 번 움직이고 네 번 회전해야 하지만, 이것을 함수로 정하고 ‘사각형 그리기’로 이름을 붙여두면 언제나 사각형을 그리고 싶을 때 ‘사각형 그리기’라는 이름으로 쉽게 명령어 묶음을 다시 불러 쓸 수 있습니다.
2018.10.04visibility605 thumb_up_alt0 -
09. 정보를 넣어줘, 입력! 결과를 보여줘, 출력!
사람은 오감을 느끼는 감각기관을 이용해서 정보를 받아들입니다. (눈으로 보고, 귀로 듣고, 코로 냄새를 맡고, 혀로 맛을 느끼고, 피부로 접촉을 느끼고) 그리고 다른 사람에게 정보를 표현하기 위해서 입으로 말을 하거나 표정이나 몸짓을 이용합니다. 글씨를 쓰거나 다른 여러 가지 표현으로 정보를 전하기도 하지만 이런 것은 몸짓을 이용하는 것에 다른 도구를 더 사용하는 것입니다. 그렇다면 컴퓨터는 어떻게 정보를 받아들이고 표현할까요?
2018.10.04visibility298 thumb_up_alt1 -
10. 번호로 부르면 편해요, 리스트!
필요한 정보를 저장하는 ‘변수’는 프로그램에서 매우 유용하죠. 이처럼 정보를 저장할 수 있는 것에는 변수 외에도 비슷한 형태의 자료들을 모아서 목록으로 만든 ‘리스트’가 있습니다.
2018.10.04visibility268 thumb_up_alt0 -
11. 어떻게 찾을까? 탐색
우리는 도서관에서 보고 싶은 책을 찾거나 주차장에서 차를 찾는 등 일상생활에서 무언가 필요한 것을 찾는 활동을 자주 합니다. 이와 같이 여러 개체들이 있는 곳에서 원하는 개체가 있는 곳을 찾아가는 것을 탐색이라고 합니다. 또한, 탐색 알고리즘은 필요한 자료를 빠르고 효율적으로 찾는 방법에 관한 알고리즘입니다. 탐색 알고리즘 중에서 자료를 순서대로 찾는 순차 탐색과 정렬된 자료에서 중간부터 탐색하는 이진 탐색을 알아보면 탐색 알고리즘의 의미에 대해서 이해할 수 있을 것입니다. 또한, 순차 탐색을 이용한 도서관 책 탐색 프로그램을 만들어 보겠습니다.
2018.10.04visibility440 thumb_up_alt1 -
12. 줄을 서시오, 정렬!
사람처럼 컴퓨터도 원하는 자료를 더 빨리 찾을 수 있게 됩니다. 이와 같이 자료를 원하는 기준에 따라 줄을 세우는 것, 그것을 바로 ‘정렬’이라고 합니다. 이번 차시에서는 ‘정렬’의 여러 가지 방법에 대해 알아봅시다.
2018.10.04visibility270 thumb_up_alt0 -
13. 투표 프로그램을 만들어라
우리 반 반장을 뽑기 위해서 투표를 해야 합니다. 그런데 매번 종이에 적어서 하니씩 펴보는 방식이 아닌 프로그램으로 간편하게 해결해 봅시다.
2018.10.04visibility403 thumb_up_alt0 -
14. 디지털 스토리북 만들기
아직 글을 읽기 힘든 동생이 동화책을 읽어 달라고 한 경험 있을까요? 처음에는 즐겁게 읽어 주었지만, 매번 똑같은 내용을 읽어 달라고 하니 힘이 들 수 있습니다. 그래서 동생이 언제든 원할 때마다 나의 목소리를 듣을 수 있도록 디지털 스토리북을 만들어 보면 어떨까요?
2018.10.04visibility340 thumb_up_alt0 -
15. 점프 게임을 만들어라
자신만의 게임을 만드는 경험은 프로그래밍에 흥미를 가지게 하는 하나의 계기가 될 수 있습니다. 처음부터 복잡한 게임을 만들기보다는 단순하지만 중독성 있는 점프 게임을 만들어 보면 어떨까요?
2018.10.04visibility300 thumb_up_alt0 -
16. 무작위 수 활용 프로그램을 만들어라!
매번 똑같은 것만 출력하는 프로그램은 재미가 없습니다. 실행할 때마다 결과가 달라지는 프로그램을 만들기 위한 방법 중 하나로 무작위 수를 활용할 수 있습니다.
2018.10.04visibility225 thumb_up_alt0 -
17. 칠교놀이 프로그램을 만들어라!
칠교를 가지고 다양한 문양을 만들어보는 활동을 해본 적이 있나요? 창의성을 발휘할 수 있는 나만의 칠교놀이 프로그램을 만들어 봅시다.
2018.10.04visibility440 thumb_up_alt0 -
18. 데이터를 그림으로 표현해라!
수많은 데이터가 숫자로만 나와 있다면 이해하기 어렵습니다. 데이터를 간단한 막대나 선 그래프 등으로 나타낸다면, 데이터들이 어떤 특성을 가지는지 한눈에 알 수 있습니다. 입력한 데이터를 그림으로 나타내어주는 프로그램을 만들어 봅시다.
2018.10.04visibility264 thumb_up_alt0 -
19. 속력 측정 장치를 만들어라
생활 속에서 우리는 다양한 속력들을 비교하며 살아간다. 대표적인 예로 달리기 경기를 하면서 정해진 거리까지 누가 먼저 도착했는지 시간을 재어 속력을 경쟁한다. 이렇게 속력을 대략적으로 비교하는 경우가 대부분이지만, 때로는 서로 다른 시간, 다른 곳에 있는 물체의 속력을 정확히 측정해야 하는 경우도 있다. 고속도로에서는 무인 속도 측정기와 구간 속도 측정기의 두 가지 방법으로 속도를 측정하여 도로 교통질서를 관리하고 있다. 이 단원에서는 우리 주변 물체의 속력을 자동으로 측정해주는 장치를 만들어봄으로써 실생활의 문제를 해결해보는 경험을 하도록 한다.
2018.10.04visibility227 thumb_up_alt0 -
20. 스마트하우스 만들기
영화에 나오는 것처럼 자동으로 창문이 열리고, 커튼이 켜지는 스마트 하우스를 본 적이 있나요? 영화처럼 복잡하지는 않지만 유사한 과정을 통해서 작동하는 스마트하우스를 시뮬레이션 하는 프로그램을 만들어 봅시다.
2018.10.04visibility687 thumb_up_alt0