🚀
뚜이 지니어스
코딩으로 별까지
블록을 끼우고, 코드를 읽고, 별까지 날아가는
생쥐 뚜이와 아이들의 10주 코딩 이야기
박영기 (춘천교육대학교)
어릴 때 코딩을 하다가 심장이 너무 두근거린 적이 있습니다.
그 두근거림을 전해주고 싶어서
Tooee Genius를 만들고, 이 책을 썼습니다.
이 책에 대하여
이 책은 Tooee Genius와 함께 사용하는 코딩 교재입니다.
블록을 끼우면 파이썬 코드가 만들어지고,
그 코드가 실행되는 모습을 직접 볼 수 있습니다.
Week 0
먼 별의 이야기
프롤로그
이건 먼 우주에서 일어난 이야기예요.
아주아주 먼 별에, 작은 생쥐들이 살고 있었어요.
그 별의 생쥐들은 호기심이 아주 많았어요.
무엇이든 만들고, 뜯어보고, 다시 조립하는 걸 좋아했죠.
그 별에서 가장 호기심이 많은 생쥐 한 마리가 있었어요.
늘 반짝이는 눈으로 세상을 둘러보는 아이.
이름은 아직 비밀이에요.
이건 그 생쥐가 겪은 이야기예요.
"컴퓨터"라는 신기한 기계를 처음 만나고,
그 기계와 대화하는 법을 배우게 된 이야기.
Week 0
1장. 전기 상자
어느 날, 그 별의 과학자들이 신기한 기계를 만들었어요.
커다란 상자처럼 생긴 기계. 이름은 "컴퓨터".
"이 기계는 뭘 할 수 있는데요?"
어린 생쥐가 과학자에게 물었어요.
"계산! 글쓰기! 그림 그리기! 뭐든 할 수 있어!"
"우와! 그러면 이 기계한테 '안녕'이라고 말해 보고 싶어요!"
과학자가 난처한 표정을 지었어요.
"그게... 이 기계는 우리 말을 못 알아들어."
"네?!"
"이 기계는 '전기'로 움직여.
전기가 흐르거나, 안 흐르거나. 딱 두 가지만 알아."
과학자가 교실 벽의 스위치를 가리켰어요.
"전등 스위치 있지?
스위치를 올리면 — 불이 켜져. 이게 1.
스위치를 내리면 — 불이 꺼져. 이게 0."
"스위치 하나로는 1 아니면 0밖에 못 하잖아요.
그걸로 어떻게 글자를 만들어요?"
"스위치가 하나면 0 아니면 1, 두 가지야.
그런데 스위치가 두 개면?"
"00, 01, 10, 11... 네 가지!"
"세 개면?"
"000, 001, 010, 011, 100, 101, 110, 111... 여덟 가지!"
"스위치 8개를 모으면 256가지를 표현할 수 있거든.
'ㄱ'은 10110100 10000000,
'ㄴ'은 10110100 10000010,
이런 식으로 글자를 만들 수 있어."
"이 컴퓨터 안에는 아주아주 작은 스위치가 들어있어.
손가락 끝보다도 훨씬 작은 스위치가."
"여기 안에 스위치가 수십억 개라고요?!"
"응. 그 수십억 개의 스위치가 엄청나게 빠르게 켜졌다 꺼졌다 하면서
계산을 하고, 글자를 만들고, 그림을 그리는 거야."
💡 핵심 개념: 컴퓨터는 아주 단순한 일만 해요. 스위치를 켜고, 끄고. 그것뿐이에요. 그 대신, 수십억 개가 1초에 수십억 번 하니까, 우리 눈에는 마법처럼 보이는 거예요.
"컴퓨터는 정말 바보인데... 엄청나게 빠른 바보인 거네요."
"정확해!"
"그러면... 컴퓨터한테 '안녕'이라고 말하려면,
0과 1로 말해야 한다는 거예요?"
"그래."
"진짜요?!"
Week 0
2장. 0과 1로 말하기
과학자가 컴퓨터 앞에 앉았어요.
화면에는 까만 바탕에 깜빡이는 커서만 있었어요.
"자, 이 컴퓨터한테 'HELLO'라고 말하게 해볼게."
과학자가 키보드를 두드리기 시작했어요.
그런데... 나오는 건 0과 1뿐이었어요.
기계어01001000 01000101 01001100 01001100 01001111
HELLO
"......이게 뭐예요?"
"이게 컴퓨터가 알아듣는 말이야. 기계어라고 해."
"우와! 'HELLO'가 나왔어요!
그런데... 'HELLO' 다섯 글자를 쓰려고, 0과 1을 마흔 개나 입력했어."
"눈이 빙글빙글 돌아요..."
"맞아. 사람이 이걸로 프로그래밍하는 건 거의 불가능에 가까워.
그래서 과학자들이 더 쉬운 언어를 만들기 시작했어."
얼마 뒤, 과학자들이 "어셈블리어"를 만들었어요.
어셈블리어MOV AH, 09
LEA DX, MSG
INT 21H
MSG DB 'HELLO$'
그리고 "C 언어"가 만들어졌어요.
C 언어#include <stdio.h>
int main() {
printf("HELLO");
return 0;
}
"HELLO를 보여주고 싶은 건데, 왜 이렇게 많이 써야 해요?"
"좀 더 쉬운 건 없어요?"
"있지."
Week 0
3장. 마법의 통역사
과학자가 새 화면을 열었어요. 그리고 단 한 줄을 적었어요.
Pythonprint("HELLO")
"끝이에요?!" 어린 생쥐가 소리쳤어요.
"이 한 줄이 아까 그 0과 1 마흔 개랑 같은 거예요?!"
"응. 파이썬이라는 언어야. 이 한 줄을 '통역사'가 0과 1로 바꿔서 컴퓨터에게 전달해."
"통역사요?"
"우리 말을 컴퓨터 말로 바꿔주는 프로그램이야.
사람은 쉬운 말로 쓰고, 통역사가 알아서 0과 1로 바꿔주는 거지."
HELLO
| 언어 | 코드 |
| 기계어 | 01001000 01000101 01001100 ... |
| 어셈블리어 | MOV AH,09 / LEA DX,MSG / ... |
| C 언어 | #include <stdio.h> int main() { ... } |
| 파이썬 | print("HELLO") |
💡 핵심 개념: 컴퓨터는 여전히 0과 1밖에 몰라요. 통역사가 사람의 말을 0과 1로 바꿔서 전달해 줘요. 프로그래밍 언어가 쉬워진 게 아니라, 통역사가 점점 똑똑해진 거예요!
Week 0
3장. 블록의 시대
"그런데 선생님, 파이썬도 영어잖아요.
영어를 모르면 쓸 수 없는 거예요?"
"짜잔!" 과학자가 새 화면을 열었어요. 이번에는 달랐어요.
까만 화면에 글자가 아니라, 색색깔의 블록들이 있었어요.
과학자가 블록 하나를 끌어다 놓았어요.
HELLO
💡 핵심 개념: 블록을 끼우면 → 통역사가 파이썬으로 → 또 다른 통역사가 0과 1로 → 컴퓨터가 실행!
통역사가 릴레이하는 거예요!
"그러면... 블록을 끼웠을 때 파이썬 파일이 생기는 도구가 있다면,
그 파일을 보면서 '이 블록이 이런 글자 코드였구나!' 하고 알 수 있겠다!"
(이 별에서 실제로 그런 도구가 만들어졌는지는... 나중에 알게 될 거예요.)
Week 0
4장. 블록의 세계 — 스크래치 체험
함께 해봐요 — 스크래치 체험
① scratch.mit.edu 에 접속 → ② "만들기" 클릭 → ③ 블록을 끼워 보세요!
⚑ 클릭했을 때
안녕! 나는 스크래치 고양이야! 을(를) 말하기
초록색 깃발 ⚑ 을 눌러 보세요! 고양이가 말풍선으로 인사해요!
Week 0
6장. 글자의 세계 — 파이썬 체험
함께 해봐요 — Google Colab 체험
① colab.research.google.com 에 접속 → ② "새 노트" 클릭 → ③ 빈 칸에 입력:
Pythonprint("안녕! 나는 파이썬이야!")
▶ 버튼을 누르면 결과가 바로 나타나요!
💡 print는 "말해라" / input은 "물어봐라" / =는 "기억해라"
Week 0
7장. 두 세계의 만남 — Tooee Genius
어린 생쥐가 물었어요.
"블록을 끼웠을 때 파이썬 파일이 생기는 도구가 있다면,
그 파일을 보면서 '이 블록이 이런 글자 코드였구나!' 하고 알 수 있겠다!"
과학자가 환하게 웃었어요.
"실은... 그런 도구가 있어. 이름은 Tooee Genius!"
블록을 끼웠을 때 파이썬 파일이 생기는 도구. 그런 도구가 진짜 있어요.
이름은 "Tooee Genius".
Tooee Genius 설치
① 다운로드 방법은 뚜이 지니어스를 가르쳐 주시는 선생님께 문의해 주세요.
가르쳐 주시는 선생님이 안 계시면 ypark@cnue.ac.kr 로 문의해 주세요.
② 비밀번호: tooee.org 입력
③ 설치 완료!
④ 바탕화면에 TooeeGenius 아이콘이 생겨요. 이 아이콘을 더블클릭하면 실행!
메뉴 알아보기
Tooee Genius 왼쪽 위에는 메뉴 버튼들이 있어요.
📁 파일
새로 만들기블록을 모두 지우고 처음부터 새로 시작해요.
불러오기저장해 둔 .tg 파일을 열어요. 이 책의 예제 파일도 이렇게 열어요!
저장하기지금 만든 블록을 .tg 파일로 저장해요. 다음에 이어서 할 수 있어요!
실행 파일 만들기내가 만든 프로그램을 .exe 파일로 만들어요!
Tooee Genius가 없는 컴퓨터에서도 실행할 수 있어요.
🔍 확대 / 축소
확대블록이 너무 작아서 안 보일 때! 누를 때마다 블록이 커져요.
축소블록이 너무 많아서 한눈에 보고 싶을 때! 누를 때마다 블록이 작아져요.
💡 실행 파일 만들기가 특히 신기해요! 내가 블록으로 만든 프로그램이 진짜 .exe 파일이 돼요.
친구에게 보내주면, 친구는 Tooee Genius를 설치하지 않아도 실행할 수 있어요!
⚑ 클릭했을 때
안녕! 나는 Tooee Genius야! 말하기
안녕! 나는 Tooee Genius야!
💡 ⚑ 버튼 클릭!
① 블록 → 파이썬 파일로 변환 (C:\TooeeGenius\Code\에 저장)
② 그 파일이 자동으로 실행 → 까만 창에 결과 출력!
⚑ 클릭했을 때
네 이름이 뭐야? 라고 묻고 기다리기
대답야, 반가워! 말하기
네 이름이 뭐야? 뚜이
뚜이야, 반가워!
Week 0
8장. 여행의 시작
어린 생쥐는 모든 걸 배우고 나서, 조용히 결심했어요.
시간이 흘렀어요. 어린 생쥐는 이제 제법 멋진 프로그래머가 되었어요.
별에서 이상한 신호가 왔어요. "지구"라는 이름의 작은 별에서.
"갈게. 내가 도와줄게."
3... 2... 1...
부르르르르르르———
그때. 경고음이 울렸어요.
[경고! 소행성대 진입!]
[충돌 위험!]
[통신 장치 — 고장]
[판단 장치 — 고장]
[반복 엔진 — 고장]
[오락 장치 — 고장]
[도구 제작기 — 고장]
[화물 관리 — 고장]
[항법 데이터베이스 — 고장]
[암호 해독기 — 고장]
[자동 조종 — 고장]
[기억 장치 — 고장]
[전 시스템 고장]
[에너지: 0%]
화면이 꺼졌어요. 생쥐의 눈도 스르르 감겼어요.
기억이 흐려졌어요. 키보드만 꼭 안은 채.
우주선은 힘없이 떠다녔어요. 어둠 속을 한참 떠다니다가...
어느 별의 하늘로 떨어지기 시작했어요.
파란 하늘. 하얀 구름. 그리고 아래에는... 시소가 있는 놀이터가 보였어요.
우주선 상태
0%
다음 주, 놀이터에서 만나요.
Week 1
뚜이를 만나다
1장. 시소 밑의 생쥐
화요일 오후.
학교가 끝나고 놀이터에 갔을 때였어요.
시소 밑에 뭔가 작은 게 쓰러져 있었어요.
아이들이 다가가자, 작은 생쥐 한 마리가 보였어요.
그런데 보통 생쥐가 아니었어요.
한 손에 키보드를 꽉 쥐고 있었거든요.
자기 몸만 한 커다란 키보드를 양 손으로 꼬옥 안고 있는 모습이
마치 아기가 인형을 안고 자는 것 같았어요.
"생쥐가... 키보드를 들고 있어?"
"장난감 아니야?"
"아니, 진짜 키보드잖아. 버튼이 다 있어!"
아이들이 쑥덕거리자, 생쥐가 눈을 떴어요.
까만 눈이 동그랗게 아이들을 올려다봤어요.
"!"
생쥐가 벌떡 일어나더니 입을 벌렸어요.
하지만 아무 소리도 나오지 않았어요.
"......"
"......"
생쥐가 다시 입을 벌렸어요. 이번에도 소리가 안 났어요.
점점 표정이 다급해졌어요.
입을 크게 벌리고, 손을 흔들고, 발을 동동 굴렀어요.
"말을 하고 싶은 것 같은데..."
"소리가 안 나나 봐."
생쥐가 키보드를 내려놓더니, 모래 위에 손가락으로 글씨를 쓰기 시작했어요.
아주 느리게, 한 글자씩.
나는 뚜이
지니우스 별에서 왔어
통신 장치 고장
말 못해
도와줘
"뚜이?"
"지니우스 별?"
"우와! 우주에서 온 생쥐야?!"
뚜이가 고개를 끄덕이며 키보드를 가리켰어요.
그리고 모래 위에 또 썼어요.
코딩으로 고칠 수 있어
블록 조립하면
내가 키보드로 실행해
한 아이가 컴퓨터실에서 봤던 코딩 프로그램을 떠올렸어요.
"그 블록! 드래그해서 끼워 넣는 거!"
"마우스로 블록을 조립하면..."
뚜이가 환하게 웃으며 자기 자신을 가리켰어요.
"아! 마우스로 블록을 조립하고, 키보드로 실행하는 거구나!
마우스가 뚜이고, 키보드는..."
"뚜이가 항상 들고 다니는 키보드!"
뚜이가 팔짝팔짝 뛰었어요.
"말하기" 블록을 사용해서 뚜이가 말할 수 있게 해주세요!
안녕, 나는 뚜이야!
아이들이 초록색 깃발을 누르자,
뚜이가 키보드를 톡톡 두드렸어요.
키보드에서 파란 빛이 번쩍!
소리가 났어요!
뚜이의 입에서 처음으로 소리가 나온 거예요!
뚜이가 자기도 놀란 듯 눈을 크게 떴어요.
"나... 나 말할 수 있어?!"
"됐다! 소리 나온다!"
"우와!"
아이들과 뚜이가 함께 환호했어요.
뚜이의 눈에 눈물이 살짝 맺혔어요.
"뚜이야, 다른 말도 할 수 있어?"
"그럼! 말하기 블록에 다른 말을 넣으면 돼!"
⚑ 클릭했을 때
안녕! 말하기
나는 뚜이야. 말하기
지니우스 별에서 왔어! 말하기
안녕!
나는 뚜이야.
지니우스 별에서 왔어!
"우와! 세 줄이 나왔어!"
"블록 하나가 한 줄인 거구나."
뚜이가 고개를 끄덕였어요.
⚑ 클릭했을 때
빨간색 ▼ 으로 경고! 연료 부족! 말하기
파란색 ▼ 으로 충전 중... 말하기
초록색 ▼ 으로 충전 완료! 말하기
경고! 연료 부족!
충전 중...
충전 완료!
"색깔이 바뀐다!"
"빨간색이면 진짜 경고 같다!"
뚜이가 웃었어요.
"우주선에서도 경고 메시지는 빨간색이야.
색깔 하나로 느낌이 완전 달라지지?"
Week 1
2장. 네 이름이 뭐야?
뚜이가 아이들을 돌아보며 말했어요.
"그런데... 나는 너희 이름을 아직 몰라."
"아, 나는—"
"잠깐!"
뚜이가 손을 들어 아이들을 막았어요.
"코딩으로 물어볼래. 통신 장치 연습도 할 겸!"
⚑ 클릭했을 때
네 이름이 뭐야? 라고 묻고 기다리기
대답 말하기
네 이름이 뭐야? 민수
민수
"오! 내가 쓴 이름이 나온다!"
"'대답' 블록이 내가 입력한 걸 기억하는 거구나."
"뚜이야, 나이도 물어봐! 이름이랑 나이 둘 다!"
"좋아!"
뚜이가 블록을 추가했어요.
⚑ 클릭했을 때
네 이름이 뭐야? 라고 묻고 기다리기
몇 살이야? 라고 묻고 기다리기
대답 말하기
네 이름이 뭐야? 민수
몇 살이야? 11
11
"어?! 이름이 아니라 나이가 나왔어!"
"분명히 이름을 먼저 물어봤는데..."
뚜이가 고개를 끄덕였어요.
"맞아. 대답은 가장 마지막에 입력한 것 하나만 기억해.
이름을 물어봤을 때의 '민수'는 나이를 입력하는 순간 사라져 버리거든."
"그러면... 이름을 어딘가에 따로 저장해 놓아야 하는 거야?"
"바로 그거야! 그게 바로 '변수'야!"
💡 변수는 이름이 적힌 상자예요. 대답이 사라지기 전에 상자에 옮겨 담는 거예요!
⚠ 변수를 사용하려면 먼저 만들어야 해요!
① 블록 목록에서 "변수" 카테고리 클릭 → ② "변수 만들기" 버튼 → ③ 이름 입력 후 확인
⚠ [이름]과 [나이] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
네 이름이 뭐야? 라고 묻고 기다리기
이름 ▼ 을(를) 대답 로 정하기
몇 살이야? 라고 묻고 기다리기
나이 ▼ 을(를) 대답 로 정하기
이름 말하기
나이 말하기
네 이름이 뭐야? 민수
몇 살이야? 11
민수
11
"이번엔 이름이 제대로 나왔어!"
"대답이 사라지기 전에 상자에 넣어 뒀으니까!"
뚜이가 무릎을 탁 쳤어요.
"맞아! 대답은 금방 사라지는 메모지야.
변수는 서랍이고. 오래 두고 싶은 건 서랍에 넣어야 해!"
"근데... '민수'랑 '11'이 따로따로 나오네.
'민수야, 반가워! 11살이구나!' 이렇게 한 줄로 나오면 좋겠는데..."
뚜이가 블록 목록에서 새로운 블록을 꺼냈어요.
두 칸이 나란히 붙어 있는 블록이었어요.
"이 블록 왼쪽 칸이랑 오른쪽 칸에 각각 넣으면...
둘이 하나로 붙어서 나와!"
Week 1
3장. 뚜이의 통역기
⚑ 클릭했을 때
네 이름이 뭐야? 라고 묻고 기다리기
이름 ▼ 을(를) 대답 로 정하기
이름야, 반가워! 말하기
네 이름이 뭐야? 민수
민수야, 반가워!
"한 줄에 나왔다!"
"두 칸에 넣으면 그냥 딱 붙는 거구나!"
뚜이가 박수를 쳤어요.
"이제 너희 이름도 알겠고, 인사도 제대로 할 수 있어!"
⚠ [내년] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
몇 살이야? 라고 묻고 기다리기
나이 ▼ 을(를) 대답 로 정하기
내년 ▼ 을(를) 나이 + 1 로 정하기
내년에는 내년살이네! 말하기
몇 살이야? 11
내년에는 12살이네!
"맞다! 11 + 1 = 12!"
"연산 블록으로 계산하고, 두 칸짜리 블록으로 문장에 넣는 거구나."
두 칸짜리 블록 안에 또 두 칸짜리 블록을 넣을 수도 있어요.
마치 상자 안에 상자를 넣는 것처럼요!
뚜이가 갑자기 신난 표정을 지었어요.
"그럼 내 나이도 계산해 줄래?
나는 지니우스 별에서 350살이야.
근데 지구에서 32년이 지니우스 별에서는 딱 1년이거든!
지구 나이로 바꾸면 몇 살인지 계산해 줘!"
⚠ [별나이]와 [지구나이] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
뚜이의 나이를 입력하세요 (지니우스 별 기준): 라고 묻고 기다리기
별나이 ▼ 을(를) 대답 로 정하기
지구나이 ▼ 을(를) 별나이 ÷ 32 로 정하기
지구 나이로 약 지구나이살! 말하기
뚜이의 나이를 입력하세요 (지니우스 별 기준): 350
지구 나이로 약 10.9375살!
"거의 11살!"
"뚜이야, 너 우리랑 동갑이야!"
뚜이가 깜짝 놀랐어요.
"진짜? 나 350살인데 너희랑 동갑이라고?!"
모두 깔깔 웃었어요.
⚑ 클릭했을 때
이름을 입력하세요: 라고 묻고 기다리기
이름 ▼ 을(를) 대답 로 정하기
이름님, 반갑습니다! 말하기
지니우스 별의 뚜이가 이름님을 환영합니다! 말하기
이름을 입력하세요: 뚜이
뚜이님, 반갑습니다!
지니우스 별의 뚜이가 뚜이님을 환영합니다!
"우와! 이름만 바꾸면 인사말이 달라진다!"
"변수가 진짜 편리하다!"
뚜이가 웃으며 말했어요.
"어떤 이름을 넣어도 다 작동해!
변수 덕분이야."
Week 1
3장. 우주 프로필 카드
"뚜이야, 통신 장치 거의 다 고친 거야?"
"응! 마지막으로 큰 프로그램 하나만 만들면 돼!"
뚜이가 제안했어요.
"우주 프로필 카드를 만들자!
이름, 나이, 좋아하는 것, 특기를 물어보고,
멋지게 카드처럼 출력하는 거야!"
⚠ [좋아하는것], [특기], [별나이] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
파란색 ▼ 으로 ★★★ 우주 프로필 카드 ★★★ 말하기
======================== 말하기
이름이 뭐야? 라고 묻고 기다리기
이름 ▼ 을(를) 대답 로 정하기
몇 살이야? 라고 묻고 기다리기
나이 ▼ 을(를) 대답 로 정하기
좋아하는 것은? 라고 묻고 기다리기
좋아하는것 ▼ 을(를) 대답 로 정하기
특기가 뭐야? 라고 묻고 기다리기
특기 ▼ 을(를) 대답 로 정하기
초록색 ▼ 으로 ======================== 말하기
이름: 이름 말하기
나이: 나이살 말하기
좋아하는 것: 좋아하는것 말하기
특기: 특기 말하기
======================== 말하기
별나이 ▼ 을(를) 나이 × 32 로 정하기
노란색 ▼ 으로 지니우스 별 나이로 약 별나이살! 말하기
이름! 지니우스 별에 오면 장수 어르신이야! 말하기
★★★ 우주 프로필 카드 ★★★
========================
이름이 뭐야? 민수
몇 살이야? 11
좋아하는 것은? 게임
특기가 뭐야? 달리기
========================
이름: 민수
나이: 11살
좋아하는 것: 게임
특기: 달리기
========================
지니우스 별 나이로 약 352살!
민수! 지니우스 별에 오면 장수 어르신이야!
"ㅋㅋㅋ 지니우스 별에서 352살!"
"어르신이래!"
아이들이 서로의 프로필을 만들어 보며 웃었어요.
친구 이름을 넣기도 하고, 선생님 이름을 넣기도 하고.
프로젝트를 완성한 아이들이 결과를 보여줬어요.
뚜이가 모든 카드를 읽고 나서 말했어요.
뚜이가 손가락을 펴며 하나씩 세었어요.
"'말하기'로 뚜이의 말문을 열었고,
'색상'으로 예쁘게 꾸몄고,
'묻고 기다리기'로 대화할 수 있게 했고,
'변수'에 기억을 저장했고,
두 칸짜리 블록으로 문장을 결합했어!"
"다섯 가지나!"
"이걸로 카드도 만들었잖아!"
그때, 뚜이의 키보드 화면이 환하게 빛났어요.
📝 WEEK 1 정리
<깃발> 클릭했을 때프로그램의 시작!
(내용) 말하기화면에 글자를 출력해요
(색깔 ▼) 으로 (내용) 말하기색깔과 함께 출력해요
(질문) 라고 묻고 기다리기질문하고 답을 기다려요
(대답)마지막에 입력한 답
(변수 ▼) 을(를) (값) 로 정하기변수에 저장해요
(A)(B)두 값을 하나로 붙여요
+ - × ÷사칙연산
다음 주 예고: 판단 장치
뚜이의 판단 장치가 고장났어요. 뜨거운 것과 차가운 것도 구별 못해요!
다음 주에는 "만약"이라는 마법 같은 블록을 배울 거예요.
실전 프로젝트 (선택)
⚠ [날짜], [요일], [담당자] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
오늘 날짜를 입력하세요 (예: 3월 15일) 라고 묻고 기다리기
날짜 ▼ 을(를) 대답 로 정하기
오늘 요일은? 라고 묻고 기다리기
요일 ▼ 을(를) 대답 로 정하기
방송 담당자 이름은? 라고 묻고 기다리기
담당자 ▼ 을(를) 대답 로 정하기
━━━━━━━━━━━━━━━━━━ 말하기
파란색 ▼ 으로 좋은 아침입니다! 날짜 요일 말하기
초록색 ▼ 으로 오늘의 방송 담당은 담당자입니다. 말하기
즐거운 하루 보내세요! 말하기
━━━━━━━━━━━━━━━━━━ 말하기
오늘 날짜를 입력하세요 (예: 3월 15일) 3월 15일
오늘 요일은? 화요일
방송 담당자 이름은? 김민준
━━━━━━━━━━━━━━━━━━
좋은 아침입니다! 3월 15일 화요일
오늘의 방송 담당은 김민준입니다.
즐거운 하루 보내세요!
━━━━━━━━━━━━━━━━━━
⚠ [물건], [장소], [신고자] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
분실물 접수 프로그램 말하기
분실물 이름은? 라고 묻고 기다리기
물건 ▼ 을(를) 대답 로 정하기
발견 장소는? 라고 묻고 기다리기
장소 ▼ 을(를) 대답 로 정하기
신고자 이름은? 라고 묻고 기다리기
신고자 ▼ 을(를) 대답 로 정하기
━━━━━━━━━━━━━━━━━━ 말하기
빨간색 ▼ 으로 분실물 안내 말하기
물건이(가) 장소에서 발견되었습니다. 말하기
찾아가실 분은 교무실로 오세요. (신고: 신고자) 말하기
━━━━━━━━━━━━━━━━━━ 말하기
분실물 접수 프로그램
분실물 이름은? 텀블러
발견 장소는? 운동장 벤치
신고자 이름은? 박서연
━━━━━━━━━━━━━━━━━━
분실물 안내
텀블러이(가) 운동장 벤치에서 발견되었습니다.
찾아가실 분은 교무실로 오세요. (신고: 박서연)
━━━━━━━━━━━━━━━━━━
Week 2
뚜이의 선택
1장. 놀이공원 가는 길
화요일 오후.
놀이터에 도착하니 뚜이가 벤치 위에 앉아 있었어요.
그런데 뭔가 이상했어요. 뚜이의 오른손이 빨갛게 부어 있었거든요.
뚜이가 울상을 지으며 키보드를 안았어요.
"이 위에 있던 통... 만졌더니 앗뜨거..."
벤치 위에 누군가 놓고 간 보온병이 있었어요.
아직도 김이 나고 있었어요.
"그건 보온병이야! 뜨거운 물이 들어있다고!"
뚜이가 고개를 갸우뚱했어요.
"나는 뜨거운 건지 차가운 건지 몰랐어..."
뚜이가 풀이 죽어 말했어요.
"판단 장치가 고장나서... 뜨거운지, 차가운지, 위험한지, 안전한지 구별할 수 없어."
아이들이 걱정스러운 표정을 지었어요.
"그러면 위험하잖아!"
"자동차가 오는데 피할지 말지도 모르는 거야?"
뚜이가 고개를 끄덕였어요.
"일단 보온병이 뜨거운지 판단하는 프로그램부터 만들어 보자!"
뚜이가 생각하더니 말했어요.
"60보다 크면 뜨거운 거야. 그 아래면 괜찮고."
"그러면 딱 두 가지네! 60보다 크거나, 아니거나."
"맞아! 딱 두 가지로 나뉠 때는 '만약'이랑 '아니면'을 쓰면 돼!"
💡 "만약" 블록은 조건이 맞으면 실행해요.
"아니면" 블록은 조건이 틀렸을 때 실행해요.
딱 두 가지로 나뉠 때 이 둘을 함께 써요!
⚑ 클릭했을 때
보온병 온도를 입력하세요: 라고 묻고 기다리기
만약 대답 > 60 (이)라면
빨간색 ▼ 으로 뜨거워! 만지면 안 돼! 말하기
아니면
보온병 온도를 입력하세요: 80
뜨거워! 만지면 안 돼!
보온병 온도를 입력하세요: 40
괜찮아, 만져도 돼!
"60보다 크면 뜨겁고, '아니면' 괜찮은 거구나!"
뚜이가 고개를 끄덕였어요.
"이제 보온병을 잘못 만지는 일은 없겠지!
그런데... 뜨거운 것만 위험한 게 아니잖아.
너무 차가운 것도 위험할 수 있어."
"그러면 조건이 세 가지네.
너무 뜨겁거나, 너무 차갑거나, 딱 좋거나!"
"세 가지 '만약'을 나란히 쓰면 되겠다!"
"그런데 '딱 좋다'는 조건이 두 개잖아. 10보다 크고 60보다 작아야 하니까."
"두 조건이 동시에 맞아야 하면... '그리고' 블록을 쓰면 돼!"
"그런데... 딱 10도면? 딱 60도면?"
"음... 그건 나중에 해결해 보자! 일단 지금은 이렇게!"
⚑ 클릭했을 때
보온병 온도를 입력하세요: 라고 묻고 기다리기
만약 대답 > 60 (이)라면
빨간색 ▼ 으로 뜨거워! 만지면 안 돼! 말하기
만약 대답 < 10 (이)라면
파란색 ▼ 으로 너무 차가워! 조심해! 말하기
만약 대답 > 10 그리고 대답 < 60 (이)라면
보온병 온도를 입력하세요: 80
뜨거워! 만지면 안 돼!
보온병 온도를 입력하세요: 5
너무 차가워! 조심해!
보온병 온도를 입력하세요: 40
적당해, 괜찮아!
"'만약' 블록 세 개가 나란히 있어!"
"세 번째 조건에 '그리고'가 나왔네. 두 조건이 동시에 맞아야 하니까!"
뚜이가 판단 장치를 고치고 나서 환하게 웃었어요.
"고마워! 이제 뜨거운 것도 차가운 것도 구별할 수 있어."
"그러면 이제 놀이공원 갈 수 있겠다!"
"놀이공원? 그게 뭐야?"
"엄청 신나는 곳이야! 같이 가자!"
Week 2
2장. 놀이공원 도착
놀이공원에 도착하자마자 아이들은 롤러코스터 앞에 섰어요.
그런데 입구에 표지판이 붙어 있었어요.
"뚜이, 키가 몇이야?"
"145cm."
"나이는?"
"음... 모르겠어. 기억이 안 나."
"일단 코딩으로 확인하는 프로그램 만들어 보자!"
이번엔 조건이 두 개예요. 키도 맞아야 하고, 나이도 맞아야 해요.
두 조건이 동시에 맞아야 할 때 '그리고' 블록을 써요!
⚠ [키] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
키가 몇 cm야? 라고 묻고 기다리기
키 ▼ 을(를) 대답 로 정하기
몇 살이야? 라고 묻고 기다리기
나이 ▼ 을(를) 대답 로 정하기
만약 키 > 130 그리고 나이 > 10 (이)라면
아니면
키가 몇 cm야? 145
몇 살이야? 11
탑승 가능!
키가 몇 cm야? 125
몇 살이야? 12
아직 탈 수 없어요!
"키가 커도 나이가 어리면 못 타는 거네!"
"'그리고'는 둘 다 맞아야 하는 거구나."
뚜이가 나이를 입력하지 못하고 멈춰 있었어요.
한참 신나게 놀다가 갑자기 안내 방송이 나왔어요.
"잠깐! 안내 방송이 나오고 있어!"
"기온이 35도를 넘거나, 풍속이 15를 넘거나, 미세먼지가 150을 넘으면 야외 놀이기구는 운행을 중단합니다."
"하나만 걸려도 멈추는 거야?"
"그럼! 하나라도 위험하면 안 되니까 '또는' 블록을 쓰면 돼!"
⚠ [기온], [풍속], [미세먼지] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
기온: 라고 묻고 기다리기
기온 ▼ 을(를) 대답 로 정하기
풍속: 라고 묻고 기다리기
풍속 ▼ 을(를) 대답 로 정하기
미세먼지: 라고 묻고 기다리기
미세먼지 ▼ 을(를) 대답 로 정하기
만약 기온 > 35 또는 풍속 > 15 또는 미세먼지 > 150 (이)라면
빨간색 ▼ 으로 운행 중단! 실내로 이동하세요! 말하기
아니면
초록색 ▼ 으로 운행 가능! 신나게 놀자! 말하기
기온: 28
풍속: 5
미세먼지: 60
운행 가능! 신나게 놀자!
기온: 28
풍속: 20
미세먼지: 60
운행 중단! 실내로 이동하세요!
"풍속만 높아도 바로 중단이네!"
"'또는'은 하나만 걸려도 참인 거구나."
다행히 오늘 날씨는 괜찮아서 계속 놀 수 있었어요.
"휴, 괜찮네! 그나저나 배고파. 과자 먹자!"
Week 2
3장. 놀이공원에서 놀기
돌아다니다가 아이들이 과자를 꺼냈어요.
뚜이의 눈이 반짝였어요.
"과자가 17개인데, 4명이 나눠 먹으면 몇 개씩?"
"17 ÷ 4 = 4개씩, 그리고 1개 남아!"
"그 1개는 누가 먹어?"
"뚜이 줘!"
⚠ [과자], [사람], [몫], [나머지] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
과자가 몇 개야? 라고 묻고 기다리기
과자 ▼ 을(를) 대답 로 정하기
몇 명이 나눠 먹어? 라고 묻고 기다리기
사람 ▼ 을(를) 대답 로 정하기
몫 ▼ 을(를) 과자 ÷ 사람 로 정하기
나머지 ▼ 을(를) 과자 나누기 사람 의 나머지 로 정하기
한 명당 몫개! 말하기
과자가 몇 개야? 17
몇 명이 나눠 먹어? 4
한 명당 4.25개!
1개가 남아... 뚜이 줘!
뚜이가 과자를 받아들고 행복한 표정을 지었어요.
"= 블록이 처음 나왔어. 나머지가 0과 같은지 확인하는 거구나."
한쪽 구석에서 게임 부스가 보였어요.
총으로 과녁을 맞히는 게임이었어요.
점수에 따라 경품이 달라졌어요.
"각 등급의 범위를 그대로 조건으로 쓰면 되겠다!"
"90점 이상은... 90보다 크거나, 90이랑 같거나!"
"'크거나'는 >, '같거나'는 =, 그리고 둘 중 하나니까 '또는'으로 연결하면 되겠다!"
⚠ [점수] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
점수를 입력하세요: 라고 묻고 기다리기
점수 ▼ 을(를) 대답 로 정하기
만약 점수 > 90 또는 점수 = 90 (이)라면
만약 점수 > 80 또는 점수 = 80 그리고 점수 < 90 (이)라면
만약 점수 > 70 또는 점수 = 70 그리고 점수 < 80 (이)라면
점수를 입력하세요: 90
금상! 대형 인형!
점수를 입력하세요: 85
은상! 중형 인형!
점수를 입력하세요: 65
참가상! 스티커!
"90을 넣었더니 금상이 나왔어! 경계값도 딱 맞네."
"80이 은상인 것도 확인됐어!"
뚜이가 게임을 해봤어요.
아이들이 와아— 환호했어요.
Week 2
3장. 집에 가는 길
놀이공원을 나오는데 입구 옆에 작은 부스가 하나 있었어요.
"오, 성격 테스트다! 뚜이가 직접 만들어 보는 건 어때?"
뚜이가 눈을 반짝였어요.
"좋아하는 숫자를 넣으면 성격 유형을 알려주는 프로그램!"
"숫자를 4로 나눈 나머지는 항상 0, 1, 2, 3 중 하나야.
'만약' 블록 네 개를 나열하면 되겠다!"
⚠ [유형번호] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
노란색 ▼ 으로 ★ 뚜이의 성격 테스트 ★ 말하기
======================== 말하기
이름이 뭐야? 라고 묻고 기다리기
이름 ▼ 을(를) 대답 로 정하기
좋아하는 숫자를 입력해: 라고 묻고 기다리기
유형번호 ▼ 을(를) 대답 나누기 4 의 나머지 로 정하기
======================== 말하기
파란색 ▼ 으로 이름의 성격 유형! 말하기
만약 유형번호 = 0 (이)라면
리더형! 앞장서서 이끄는 걸 좋아해요! 말하기
만약 유형번호 = 2 (이)라면
친화형! 친구를 잘 사귀고 배려심이 넘쳐요! 말하기
만약 유형번호 = 3 (이)라면
탐구형! 궁금한 게 많고 깊이 생각해요! 말하기
======================== 말하기
이름! 멋진 성격이야! 말하기
★ 뚜이의 성격 테스트 ★
========================
이름이 뭐야? 민수
좋아하는 숫자를 입력해: 7
========================
민수의 성격 유형!
탐구형! 궁금한 게 많고 깊이 생각해요!
========================
민수! 멋진 성격이야!
아이들이 서로 좋아하는 숫자를 넣어보며 깔깔 웃었어요.
"나는 리더형이래!"
"나는 창의형이다! 딱 맞아!"
"뚜이는 몇 번이야?"
뚜이가 숫자를 입력했어요.
"탐구형! 궁금한 게 많고 깊이 생각한대."
"뚜이한테 딱 맞는 성격이다!"
뚜이가 환하게 웃었어요.
놀이공원을 나서는데 뚜이가 말했어요.
"오늘 너무 재미있었다! 내일도 오자!"
"잠깐, 월요일은 쉬는 날이래."
"그러면 내일이 월요일인지만 확인하면 되겠다!"
"'월요일이다'의 반대니까... '이(가) 아니다' 블록을 쓰면 돼!"
⚠ [요일] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
내일 무슨 요일이야? 라고 묻고 기다리기
요일 ▼ 을(를) 대답 로 정하기
만약 요일 = 월요일 이(가) 아니다 (이)라면
초록색 ▼ 으로 내일도 놀이공원 갈 수 있어! 말하기
내일 무슨 요일이야? 화요일
내일도 놀이공원 갈 수 있어!
내일 무슨 요일이야? 월요일
(아무 말 없음)
"내일은 화요일이니까 갈 수 있어!"
"'이(가) 아니다'를 쓰면 조건을 뒤집을 수 있구나!"
"'만약'은 정말 강력해.
같은 프로그램인데, 조건에 따라 완전히 다르게 행동하잖아.
그리고 조건을 정확하게 쓸수록 코드가 더 읽기 쉬워져!"
오늘 하루 뚜이의 판단 장치는 정말 바쁘게 일했어요.
보온병도 판단하고, 롤러코스터도 확인하고, 날씨도 점검하고,
과자도 나누고, 경품 등급도 알아내고, 내일 올 수 있는지도 확인했어요.
📝 WEEK 2 정리
만약 (조건) (이)라면조건이 맞으면 실행
아니면조건이 틀리면 실행
= > <같은지, 큰지, 작은지 비교
그리고 / 또는여러 조건 결합
이(가) 아니다참↔거짓 뒤집기
나누기 의 나머지나눗셈의 나머지
다음 주 예고: 반복 엔진
같은 일을 100번 해야 한다면? "반복"을 쓰면 한 방에!
실전 프로젝트 (선택)
⚠ [경고] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
오늘의 급식 알레르기 확인 말하기
경고 ▼ 을(를) 0 로 정하기
계란 알레르기가 있나요? (네/아니오) 라고 묻고 기다리기
만약 대답 = 네 (이)라면
빨간색 ▼ 으로 주의! 오늘 급식에 계란이 포함되어 있습니다! 말하기
경고 ▼ 을(를) 경고 + 1 로 정하기
우유 알레르기가 있나요? (네/아니오) 라고 묻고 기다리기
만약 대답 = 네 (이)라면
빨간색 ▼ 으로 주의! 오늘 급식에 우유가 포함되어 있습니다! 말하기
경고 ▼ 을(를) 경고 + 1 로 정하기
땅콩 알레르기가 있나요? (네/아니오) 라고 묻고 기다리기
만약 대답 = 네 (이)라면
빨간색 ▼ 으로 주의! 오늘 급식에 땅콩이 포함되어 있습니다! 말하기
경고 ▼ 을(를) 경고 + 1 로 정하기
만약 경고 = 0 (이)라면
초록색 ▼ 으로 안심하세요! 오늘 급식은 안전합니다. 말하기
아니면
오늘의 급식 알레르기 확인
계란 알레르기가 있나요? (네/아니오) 네
주의! 오늘 급식에 계란이 포함되어 있습니다!
우유 알레르기가 있나요? (네/아니오) 아니오
땅콩 알레르기가 있나요? (네/아니오) 네
주의! 오늘 급식에 땅콩이 포함되어 있습니다!
총 2개 항목에 주의하세요!
⚠ [위험] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
집에서 혼날 확률 측정기! 말하기
위험 ▼ 을(를) 0 로 정하기
숙제 다 했어? (네/아니오) 라고 묻고 기다리기
방 정리했어? (네/아니오) 라고 묻고 기다리기
오늘 몇 시간 놀았어? 라고 묻고 기다리기
======================== 말하기
만약 위험 > 2 (이)라면
빨간색 ▼ 으로 폭풍이 온다! 도망쳐! 말하기
만약 위험 > 0 그리고 위험 < 3 (이)라면
노란색 ▼ 으로 조심! 눈치 봐야 해... 말하기
집에서 혼날 확률 측정기!
숙제 다 했어? (네/아니오) 아니오
방 정리했어? (네/아니오) 아니오
오늘 몇 시간 놀았어? 4
========================
폭풍이 온다! 도망쳐!
숙제 다 했어? (네/아니오) 네
방 정리했어? (네/아니오) 네
오늘 몇 시간 놀았어? 1
========================
오늘은 칭찬 받겠다!
Week 3
반복의 힘
1장. 뚜이의 벌 서기
아이들이 놀이터에 도착하자, 이상한 광경이 펼쳐져 있었어요.
뚜이가 모래밭에 쪼그려 앉아서 뭔가를 열심히 적고 있었어요.
키보드는 옆에 내려놓고, 모래 위에 손가락으로 글씨를 빼곡하게 적고 있었어요.
나는 반성합니다 나는 반성합니다 나는 반성합니다...
뚜이가 고개를 들었어요. 눈이 빙글빙글 돌고 있었어요.
"나... '나는 반성합니다'를 100번 써야 해..."
"왜?!"
"어제 우주선 안에서 장난치다가 버튼을 잘못 눌렀거든...
우주선이 스스로 벌을 내렸어. '반성문 100번 쓰기'..."
뚜이가 울상을 지었어요.
"지금 47번째인데... 손이 아파... 더 못 쓰겠어..."
한 아이가 말했어요.
"잠깐, 이거 코딩으로 하면 안 돼?"
"코딩으로?"
"응! '말하기' 블록을 100개 연결하면 되잖아!"
뚜이가 눈을 반짝였어요.
그런데 잠시 후, 뚜이가 다시 풀이 죽었어요.
"이것도 손으로 쓰는 거랑 다를 게 없잖아!"
"그래서 '반복하기' 블록이 있는 거야!
안에 넣은 코드를 위에서 아래로 실행하고, 다시 위로 돌아가서 또 실행해.
이걸 정해진 횟수만큼 되풀이하는 거지!"
💡 "반복하기" 블록은 안에 있는 코드를 위→아래로 실행한 뒤, 다시 위로 돌아가서 또 실행해요.
이걸 정해진 횟수만큼 되풀이해요. 100번이든 1000번이든 블록은 하나면 충분해요!
나는 반성합니다
나는 반성합니다
... (100번!)
"우와!" 눈 깜짝할 사이에 100줄이 쭉 나왔어요.
뚜이가 벌떡 일어났어요.
"야호! 100번을 1초 만에! 이게 반복의 힘이야!"
"근데 그냥 똑같은 말만 100번 나오잖아. 몇 번째인지도 모르겠어."
"번호를 붙이면 되지! 1번째, 2번째, 3번째..."
"그러면 매번 번호가 1씩 올라가야 하는데?"
"지난주에 '(경고) 을(를) (경고 + 1) 로 정하기'로 숫자를 올렸잖아?
그걸 한 블록으로 줄인 게 '(1) 만큼 바꾸기'야!"
⚠ [번호] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
번호 ▼ 을(를) 1 로 정하기
5 번 반복하기
번호번째: 나는 반성합니다 말하기
번호 ▼ 을(를) 1 만큼 바꾸기
1번째: 나는 반성합니다
2번째: 나는 반성합니다
3번째: 나는 반성합니다
4번째: 나는 반성합니다
5번째: 나는 반성합니다
| 회차 | 번호 값 | 출력 | 1 만큼 바꾸기 후 |
| 1회차 | 1 | 1번째: 나는 반성합니다 | 번호 → 2 |
| 2회차 | 2 | 2번째: 나는 반성합니다 | 번호 → 3 |
| 3회차 | 3 | 3번째: 나는 반성합니다 | 번호 → 4 |
| 4회차 | 4 | 4번째: 나는 반성합니다 | 번호 → 5 |
| 5회차 | 5 | 5번째: 나는 반성합니다 | 번호 → 6 (끝!) |
💡 반복할 때마다 번호가 1씩 올라가는 거예요! 반복이 끝나면 번호는 6이 되어 있지만, 이미 5번 반복이 끝났으니 더 실행되지 않아요.
"오! 번호가 올라간다!"
"100번째까지 자동으로!"
"뚜이야, 벌 받을 짓을 안 하면 되잖아."
"...다시는 버튼 안 누를게."
"벌은 끝났으니, 이제 우주선 수리 시작하자!"
"먼저 카운트다운부터! 수리 시작 전에 항상 카운트다운을 하거든."
"10부터 1까지 숫자가 줄어드는 건데... 아까 번호가 올라간 거랑 반대네?"
"맞아! '(1) 만큼 바꾸기'에서 1 대신 -1을 넣으면 1씩 줄어들어!"
"그리고 숫자 사이에 1초씩 쉬어야 하잖아. 그건 '초 기다리기' 블록이야!"
⚠ [숫자] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
숫자 ▼ 을(를) 10 로 정하기
10 번 반복하기
숫자 말하기
1 초 기다리기
숫자 ▼ 을(를) -1 만큼 바꾸기
초록색 ▼ 으로 발사!!! 말하기
10 → 9 → 8 → ... → 1
발사!!!
"카운트다운 완성! 이제 진짜 수리를 시작하자."
"부품이 9개인데, 하나 수리하는 데 걸리는 시간을 알면 전체 일정을 짤 수 있어!"
"부품 하나당 걸리는 시간 × 번호 = 누적 시간이네. 반복으로 일정표를 만들자!"
⚠ [시간], [누적] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
부품 하나 수리에 몇 분 걸려? 라고 묻고 기다리기
시간 ▼ 을(를) 대답 로 정하기
번호 ▼ 을(를) 1 로 정하기
9 번 반복하기
누적 ▼ 을(를) 시간 × 번호 로 정하기
파란색 ▼ 으로 번호번째 부품까지: 누적분 말하기
번호 ▼ 을(를) 1 만큼 바꾸기
부품 하나 수리에 몇 분 걸려? 15
1번째 부품까지: 15분
2번째 부품까지: 30분
...
9번째 부품까지: 135분
Week 3
2장. 언제 멈춰야 할지 모르는 뚜이
수리 일정표를 다 만들고 나서, 뚜이가 우주선 문을 바라보며 말했어요.
"아까 버튼을 잘못 눌러서 벌 받았잖아...
다시는 그런 일이 없도록 우주선에 비밀번호 잠금을 걸어야겠어."
한 아이가 물었어요.
"비밀번호를 맞출 때까지 계속 물어보는 프로그램?"
뚜이가 고개를 끄덕였어요. 그런데 금방 표정이 어두워졌어요.
"그런데... 몇 번 만에 맞출지 모르잖아."
"'(10) 번 반복하기'로 하면 안 돼?"
"10번 안에 못 맞추면? 11번째에 맞추면 어떡해?"
아이들이 고개를 끄덕였어요. 1장에서 배운 '(횟수) 번 반복하기'는 횟수를 미리 정해야 하는데, 비밀번호는 몇 번째에 맞출지 아무도 모르니까요.
"몇 번 반복할지 미리 정할 수 없는 거구나..."
뚜이가 키보드를 들며 말했어요.
"그럴 때 쓰는 게 '무한 반복하기'야!
끝없이 반복하다가, 조건이 맞으면 '반복 그만하기'로 탈출하는 거지."
💡 "무한 반복하기"는 끝없이 반복해요.
"반복 그만하기"는 반복을 완전히 탈출해요. 이 둘은 항상 짝꿍이에요!
⚠ [비밀번호] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
비밀번호 ▼ 을(를) tooee 로 정하기
무한 반복하기
비밀번호를 입력하세요: 라고 묻고 기다리기
만약 대답 = 비밀번호 (이)라면
초록색 ▼ 으로 정답! 접속 성공! 말하기
반복 그만하기
아니면
빨간색 ▼ 으로 틀렸어요. 다시 해보세요! 말하기
비밀번호를 입력하세요: abc
틀렸어요. 다시 해보세요!
비밀번호를 입력하세요: 1234
틀렸어요. 다시 해보세요!
비밀번호를 입력하세요: tooee
정답! 접속 성공!
아이들이 박수를 쳤어요. 비밀번호가 틀리면 계속 물어보고, 맞으면 딱 멈추는 프로그램이 완성됐어요.
뚜이가 우주선 안을 둘러보다가 부서진 부품들을 가리켰어요.
"이제 수리를 시작해야 하는데... 부품을 사면서 가격을 하나씩 더해야 해.
근데 부품을 몇 개 쓸지 미리 모르잖아."
한 아이가 손을 들었어요.
"그것도 무한 반복으로 하면 되지 않아?
가격을 하나씩 입력하다가, 다 끝나면 0을 눌러서 합계를 보는 거야."
뚜이가 눈을 반짝였어요.
"맞아! 아까 비밀번호랑 같은 구조야. 끝날 때까지 무한 반복!"
⚠ [합계] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
합계 ▼ 을(를) 0 로 정하기
숫자를 입력하세요. 0을 누르면 끝! 말하기
파란색 ▼ 으로 합계: 합계 말하기
숫자를 입력하세요. 0을 누르면 끝!
숫자: 10
숫자: 20
숫자: 30
숫자: 0
합계: 60
합계가 딱 나오자, 아이들이 감탄했어요.
"0을 누르기 전까지 계속 더하다가, 0을 누르면 멈추는 거구나!"
뚜이가 고개를 갸우뚱했어요.
"그런데 '반복 그만하기'는 반복을 완전히 탈출하는 거잖아.
만약 부품 20개를 점검하다가, 이미 교체한 부품은 건너뛰고 싶으면 어떡해?
멈추는 게 아니라, 그 차례만 넘기고 다음으로 가고 싶어."
한 아이가 대답했어요.
"그게 '반복 건너뛰기'야!
이번 차례만 패스하고 다음 반복으로 넘어가는 거지."
💡 "반복 건너뛰기"는 이번 차례만 넘기고 다음 반복으로 가요.
"반복 그만하기"와 헷갈리지 마세요! 그만하기는 완전히 탈출, 건너뛰기는 다음 차례로!
⚑ 클릭했을 때
3번, 6번, 9번... 3번째마다 교체 완료! 나머지만 점검합니다. 말하기
번호 ▼ 을(를) 0 로 정하기
20 번 반복하기
번호 ▼ 을(를) 1 만큼 바꾸기
만약 번호 나누기 3 의 나머지 = 0 (이)라면
번호번 부품 점검! 말하기
3번, 6번, 9번... 3번째마다 교체 완료! 나머지만 점검합니다.
1번 부품 점검!
2번 부품 점검!
(3번 건너뜀!)
4번 부품 점검!
5번 부품 점검!
(6번 건너뜀!)
...
"3, 6, 9, 12... 3번째마다 깔끔하게 건너뛰었어!"
"나머지 연산이 또 나왔네. 지난주에 배운 게 여기서도 쓰이는구나!"
Week 3
3장. 에너지 충전
부품 점검이 끝나자, 뚜이가 계기판을 확인했어요.
"에너지가 거의 바닥이야! 충전해야 해."
"충전되는 걸 눈으로 볼 수 있으면 좋겠는데..."
뚜이가 종이에 그림을 그렸어요.
"이런 로딩 바를 만들고 싶어!
█░░░░░░░░░ → ██░░░░░░░░ → ... → ██████████
한 칸씩 채워지는 걸 보여주는 거야."
한 아이가 고개를 갸우뚱했어요.
"그런데 매번 █ 개수가 달라지잖아. 1칸일 때는 █ 하나, 3칸일 때는 █ 세 개...
'반복 안에 반복'이 필요한 거 아니야?"
"맞아! 바깥 반복이 칸 수를 정하고, 안쪽 반복이 █를 그만큼 찍는 거야."
💡 반복 안에 반복을 넣을 수 있어요!
바깥 반복이 한 번 돌 때마다, 안쪽 반복이 처음부터 다시 실행돼요.
⚠ [칸], [채움], [빈칸], [퍼센트] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
파란색 ▼ 으로 에너지 충전 시작! 말하기
칸 ▼ 을(를) 0 로 정하기
10 번 반복하기
칸 ▼ 을(를) 1 만큼 바꾸기
채움 ▼ 을(를) 로 정하기
빈칸 ▼ 을(를) 로 정하기
퍼센트 ▼ 을(를) 칸 × 10 로 정하기
채움빈칸 퍼센트% 말하기
0.5 초 기다리기
초록색 ▼ 으로 충전 완료! 말하기
에너지 충전 시작!
█░░░░░░░░░ 10%
██░░░░░░░░ 20%
... (0.5초 간격)
██████████ 100%
충전 완료!
화면에 로딩 바가 천천히 채워지는 걸 보며, 아이들이 환호했어요.
"우와! 진짜 충전되는 것 같아!"
"바깥 반복이 10번 도는 동안, 안쪽 반복이 █를 1개, 2개, 3개... 점점 더 찍는 거구나!"
Week 3
3장. 반복 엔진 복구!
에너지 충전이 끝나자, 뚜이가 진지한 표정으로 말했어요.
"반복 엔진 수리가 거의 끝났어! 마지막 최종 점검만 통과하면 돼."
"최종 점검?"
"5개 항목의 수치를 입력해서, 전부 기준치(50)를 넘겨야 해.
하나라도 미달이면 처음부터 다시!"
"그러면... 전부 통과할 때까지 무한 반복, 5개 항목은 5번 반복!
반복 안에 반복이네!"
⚠ [통과], [번호] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
파란색 ▼ 으로 우주선 발사 최종 점검! 말하기
======================== 말하기
무한 반복하기
통과 ▼ 을(를) 0 로 정하기
번호 ▼ 을(를) 1 로 정하기
5 번 반복하기
번호번 항목 수치: 라고 묻고 기다리기
만약 대답 > 50 (이)라면
초록색 ▼ 으로 ✓ 번호번 통과! 말하기
통과 ▼ 을(를) 1 만큼 바꾸기
아니면
번호 ▼ 을(를) 1 만큼 바꾸기
======================== 말하기
5개 중 통과개 통과! 말하기
만약 통과 = 5 (이)라면
초록색 ▼ 으로 전 항목 통과! 발사 준비 완료! 말하기
반복 그만하기
아니면
노란색 ▼ 으로 미달 항목이 있어요. 다시 점검합니다! 말하기
1 초 기다리기
우주선 발사 최종 점검!
========================
1번 항목 수치: 80
✓ 1번 통과!
2번 항목 수치: 30
✗ 2번 미달!
3번 항목 수치: 90
✓ 3번 통과!
4번 항목 수치: 60
✓ 4번 통과!
5번 항목 수치: 75
✓ 5번 통과!
========================
5개 중 4개 통과!
미달 항목이 있어요. 다시 점검합니다!
... (다시 시작) ...
========================
5개 중 5개 통과!
전 항목 통과! 발사 준비 완료!
아이들이 환호했어요.
뚜이가 활짝 웃었어요.
"반복은 코딩의 핵심이야.
같은 일을 여러 번 하는 건 컴퓨터가 가장 잘하는 일이거든!"
📝 WEEK 3 정리
(횟수) 번 반복하기안쪽 코드를 정한 횟수만큼 반복!
무한 반복하기멈출 때까지 영원히 반복!
반복 그만하기반복을 완전히 멈추고 탈출!
반복 건너뛰기이번 차례만 패스!
(변수 ▼) 을(를) (숫자) 만큼 바꾸기지금 값에 그 숫자를 더하기
(숫자) 초 기다리기정한 시간만큼 멈추기
다음 주 예고: 오락 장치
다음 주에는 진짜 게임을 만들 거예요! 주사위, 가위바위보, 숫자 맞히기...
실전 프로젝트 (선택)
⚠ [남은시간] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
시험 시간은 몇 분인가요? 라고 묻고 기다리기
남은시간 ▼ 을(를) 대답 로 정하기
파란색 ▼ 으로 시험을 시작합니다! 말하기
남은시간 번 반복하기
만약 남은시간 < 6 (이)라면
빨간색 ▼ 으로 남은시간분 남았습니다! 말하기
아니면
60 초 기다리기
남은시간 ▼ 을(를) -1 만큼 바꾸기
빨간색 ▼ 으로 시험이 종료되었습니다! 말하기
시험 시간은 몇 분인가요? 10
시험을 시작합니다!
남은 시간: 10분
남은 시간: 9분
...
남은 시간: 6분
5분 남았습니다!
...
1분 남았습니다!
시험이 종료되었습니다!
💡 수업 시간에는 (60) 초 기다리기를 (1) 초 기다리기로 바꿔서 테스트해 보세요.
⚑ 클릭했을 때
몇 단 시험지를 만들까요? 라고 묻고 기다리기
단 ▼ 을(를) 대답 로 정하기
파란색 ▼ 으로 ━━━ 단 단 시험지 ━━━ 말하기
번호 ▼ 을(를) 1 로 정하기
9 번 반복하기
단 × 번호 = ___ 말하기
번호 ▼ 을(를) 1 만큼 바꾸기
━━━━━━━━━━━━━━ 말하기
노란색 ▼ 으로 정답은 뒤집어서 확인! 말하기
번호 ▼ 을(를) 1 로 정하기
9 번 반복하기
결과 ▼ 을(를) 단 × 번호 로 정하기
단 × 번호 = 결과 말하기
번호 ▼ 을(를) 1 만큼 바꾸기
몇 단 시험지를 만들까요? 7
━━━ 7 단 시험지 ━━━
7 × 1 = ___
7 × 2 = ___
...
7 × 9 = ___
━━━━━━━━━━━━━━
정답은 뒤집어서 확인!
7 × 1 = 7
7 × 2 = 14
...
7 × 9 = 63
Week 4
게임의 세계
1장. 뚜이의 심심병
"뚜이야, 오늘은 뭘 고쳐?"
뚜이가 한숨을 푹 쉬었어요.
"오락 장치... 우주 여행은 수백 년이 걸릴 수도 있어.
그동안 심심하면 미쳐버려! 오락 장치가 꼭 필요해!"
"오락이면... 게임?"
"맞아! 게임! 근데 게임에는 '예측할 수 없는 것'이 필요해.
매번 같으면 재미없잖아. 그래서 필요한 게... 난수!"
💡 "난수" 블록은 범위 안에서 무작위 숫자를 만들어줘요.
(1) 부터 (6) 사이의 난수 → 실행할 때마다 다른 숫자!
⚠ [주사위] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
주사위 ▼ 을(를) 1 부터 6 사이의 난수 로 정하기
나온 숫자는 주사위! 말하기
나온 숫자는 4!
나온 숫자는 1!
나온 숫자는 6!
여러 번 눌러 보세요! 매번 다른 숫자가 나오나요?
"진짜 매번 달라!"
"주사위 없이도 주사위 게임 할 수 있겠다!"
⚠ [동전] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
동전 ▼ 을(를) 1 부터 2 사이의 난수 로 정하기
앞면!
— 또는 —
뒷면!
Week 4
2장. 숫자 맞히기
"이제 진짜 게임을 만들어 보자!"
뚜이가 신이 나서 키보드를 들었어요.
"내가 1부터 20까지 숫자 하나를 생각할 테니, 맞혀 봐!
5번 안에 못 맞추면 내가 이기는 거야!"
⚠ [정답] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
정답 ▼ 을(를) 1 부터 20 사이의 난수 로 정하기
1~20 숫자를 맞혀 보세요! 5번의 기회! 말하기
1~20 숫자를 맞혀 보세요! 5번의 기회!
숫자는? 10
더 큰 수야!
숫자는? 15
더 작은 수야!
숫자는? 13
정답!
"우와! 진짜 게임이다!"
"힌트가 있으니까 좁혀갈 수 있어!"
⚠ [나], [컴퓨터번호], [컴퓨터] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
가위, 바위, 보 중 하나를 입력하세요: 라고 묻고 기다리기
나 ▼ 을(를) 대답 로 정하기
컴퓨터번호 ▼ 을(를) 1 부터 3 사이의 난수 로 정하기
컴퓨터: 컴퓨터 말하기
만약 나 = 가위 그리고 컴퓨터 = 보 (이)라면
만약 나 = 바위 그리고 컴퓨터 = 가위 (이)라면
만약 나 = 보 그리고 컴퓨터 = 바위 (이)라면
만약 나 = 가위 그리고 컴퓨터 = 바위 (이)라면
만약 나 = 바위 그리고 컴퓨터 = 보 (이)라면
만약 나 = 보 그리고 컴퓨터 = 가위 (이)라면
가위, 바위, 보 중 하나를 입력하세요: 바위
컴퓨터: 가위
이겼다!
Week 4
3장. 친구와 함께!
뚜이가 가위바위보를 하다가 갑자기 멈췄어요.
"재밌긴 한데... 컴퓨터랑 하니까 좀 외로워."
"친구랑 할 수 있으면 좋겠는데..."
"근데 내 프로그램이랑 친구 프로그램이랑 어떻게 연결해?"
뚜이가 키보드를 톡톡 두드렸어요.
"☁️ 클라우드 변수! 구름 변수라고도 해.
보통 변수는 내 컴퓨터에만 있잖아.
근데 클라우드 변수는 하늘 위 구름에 저장돼서,
다른 사람 컴퓨터에서도 볼 수 있어!"
"우와! 진짜?"
"내가 값을 바꾸면, 친구 화면에서도 바로 바뀌어!"
💡 ☁️ 클라우드 변수는 인터넷을 통해 다른 사람과 실시간으로 공유되는 변수예요.
변수 목록에서 구름(☁️) 아이콘이 붙어 있어요.
⚠ [☁️ 메시지] 클라우드 변수를 먼저 만들어 두세요.
[보내는 쪽]
⚑ 클릭했을 때
친구에게 보낼 메시지: 라고 묻고 기다리기
☁️ 메시지 ▼ 을(를) 대답 로 정하기
보냈어! 말하기
[받는 쪽]
☁️ 메시지 ▼ 가 바뀌었을 때
친구가 보냄: ☁️ 메시지 말하기
(A 컴퓨터) 친구에게 보낼 메시지: → 안녕!
보냈어!
(B 컴퓨터) 친구가 보냄: 안녕!
"우와!!! 내가 쓴 게 진짜 저쪽 화면에 떴어!"
"마법 같다!"
뚜이가 웃었어요.
"이게 클라우드의 힘이야. 인터넷을 통해 데이터가 공유되는 거지."
"그러면 아까 가위바위보도 친구랑 할 수 있어?"
"당연하지!"
⚠ [나] 변수와 [☁️ 선택] 클라우드 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
가위, 바위, 보: 라고 묻고 기다리기
나 ▼ 을(를) 대답 로 정하기
☁️ 선택 ▼ 을(를) 대답 로 정하기
냈어! 결과를 기다려 보세요! 말하기
☁️ 선택 ▼ 가 바뀌었을 때
만약 나 = 가위 그리고 ☁️ 선택 = 보 또는 나 = 바위 그리고 ☁️ 선택 = 가위 또는 나 = 보 그리고 ☁️ 선택 = 바위 (이)라면
초록색 ▼ 으로 나 vs ☁️ 선택 이겼다! 말하기
만약 나 = 가위 그리고 ☁️ 선택 = 바위 또는 나 = 바위 그리고 ☁️ 선택 = 보 또는 나 = 보 그리고 ☁️ 선택 = 가위 (이)라면
빨간색 ▼ 으로 나 vs ☁️ 선택 졌다! 말하기
가위, 바위, 보: 가위
냈어! 결과를 기다려 보세요!
가위 vs 보 이겼다!
가위 vs 바위 졌다!
가위 vs 가위 비겼다!
"반 친구들이 다 같이 가위바위보를 내면 결과가 바로 나와! 이게 온라인 게임의 원리구나!"
Week 4
3장. 최고 기록에 도전!
"우리 아까 만든 숫자 맞히기 게임, 기억나?"
"1부터 20까지, 5번 안에 맞히는 거!"
"그걸 업그레이드해 보자! 범위를 1부터 100까지로 넓히고,
기회 제한도 없애고, 대신 몇 번 만에 맞히는지 세는 거야!"
뚜이의 눈이 반짝였어요.
"그리고... 클라우드 변수로 반 최고 기록을 공유하면 어떨까?
누가 가장 적은 시도로 맞히는지 겨루는 거야!"
⚠ [정답], [시도] 변수와 [☁️ 최소시도] 클라우드 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
정답 ▼ 을(를) 1 부터 100 사이의 난수 로 정하기
시도 ▼ 을(를) 0 로 정하기
1~100 숫자를 맞혀 보세요! 말하기
무한 반복하기
숫자는? 라고 묻고 기다리기
시도 ▼ 을(를) 1 만큼 바꾸기
초록색 ▼ 으로 시도번 만에 맞혔어! 말하기
만약 ☁️ 최소시도 = 0 또는 시도 < ☁️ 최소시도 (이)라면
☁️ 최소시도 ▼ 을(를) 시도 로 정하기
새 기록! 반에서 1등! 말하기
아니면
1~100 숫자를 맞혀 보세요!
숫자는? 50
DOWN!
숫자는? 25
UP!
숫자는? 37
DOWN!
숫자는? 31
UP!
숫자는? 34
DOWN!
숫자는? 33
6번 만에 맞혔어!
새 기록! 반에서 1등!
"6번! 빠르다!"
"나는 몇 번에 맞힐 수 있을까?"
프로젝트를 완성한 아이들이 UP & DOWN 기록 경쟁을 하며 깔깔 웃었어요.
뚜이가 말했어요.
"게임에는 세 가지가 필요해.
'난수'로 예측할 수 없게 만들고,
'조건'으로 승패를 정하고,
'반복'으로 계속 도전할 수 있게 하는 거야.
너희는 이미 세 가지를 다 알고 있어!"
📝 WEEK 4 정리
(1) 부터 (숫자) 사이의 난수무작위 숫자 만들기!
☁️ 클라우드 변수다른 사람과 실시간 공유!
☁️ 변수 ▼ 가 바뀌었을 때상대가 값을 바꾸면 실행!
다음 주 예고: 도구 제작기
같은 코드를 반복해서 쓰는 건 귀찮아요.
한 번 만들어 놓고 이름만 부르면 되는 "나만의 블록"!
실전 프로젝트 (선택)
"수학여행 어디 갈래?" 같은 질문에 반 전체가 실시간으로 투표!
⚠ [☁️ 경주], [☁️ 제주도], [☁️ 전주] 클라우드 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
수학여행 장소 투표! 말하기
1. 경주 2. 제주도 3. 전주 말하기
몇 번을 선택하나요? 라고 묻고 기다리기
투표 완료! 현재 결과: 말하기
경주: ☁️ 경주표 말하기
제주도: ☁️ 제주도표 말하기
전주: ☁️ 전주표 말하기
💡 ☁️ 클라우드 변수라서 반 전체 학생이 동시에 투표하면 실시간으로 숫자가 올라가요!
선생님 화면에서 결과를 띄워 놓으면 개표 방송처럼 됩니다!
Week 5
나만의 도구
1장. 축제 안내문
지난주에 게임을 만들면서, 뚜이는 한 가지를 느꼈어요.
코드가 점점 길어진다는 거예요.
"구분선 코드를 벌써 5번이나 똑같이 썼어.
프로그램이 길어지면 10번, 20번도 써야 해..."
"3주차에 배운 반복 쓰면 안 돼?"
"구분선만 계속 나오는 게 아니잖아.
구분선 → 제목 → 구분선 → 메뉴 → 구분선...
중간중간에 다른 내용이 끼어 있어서 반복으로는 안 돼."
"그러면... 그 긴 코드를 짧은 이름으로 부를 수 있으면?
'별줄!'이라고 하면 알아서 ★★★★★★이 나오는 거."
뚜이가 우주선 쪽을 쳐다봤어요.
"사실 우주선에 도구 제작기라는 장치가 있어.
자주 쓰는 코드를 도구로 만들어서, 이름만 부르면 실행되는 장치야.
그것도 고장 나 있거든."
"그러면 도구 만드는 법을 배우면서 같이 고치면 되겠다!"
마침 선생님이 말했어요.
"다음 주에 학교 축제가 있어요!
우리 반 부스를 꾸밀 사람?"
뚜이가 손을 번쩍 들었어요.
"저요! 부스 안내문을 코딩으로 만들어 볼게요!"
선생님이 웃으며 고개를 끄덕였어요.
쉬는 시간에 친구들이 뚜이 주변으로 모였어요.
"안내문에는 구분선이 많이 필요할 텐데, 어떻게 할 거야?"
"걱정 마! '나만의 블록'으로 도구를 만들 수 있어.
한 번 만들어 놓으면, 이름만 불러서 쓰는 거야!"
💡 "나만의 블록"은 두 부분으로 나뉘어요.
"정의하기"로 도구를 만들고, 이름을 불러서 사용해요!
별줄 정의하기
★★★★★★★★★★★★ 말하기
⚑ 클릭했을 때
별줄
우리 반 축제 부스 말하기
별줄
메뉴: 솜사탕, 팝콘 말하기
시간: 10시 ~ 2시 말하기
별줄
★★★★★★★★★★★★
우리 반 축제 부스
★★★★★★★★★★★★
메뉴: 솜사탕, 팝콘
시간: 10시 ~ 2시
★★★★★★★★★★★★
"'별줄'이라고만 쓰면 알아서 별이 나와!"
"'정의하기'에서 한 번만 만들어 두면,
이름을 부를 때마다 그 코드가 실행돼.
마치 리모컨 버튼처럼!"
박수 정의하기
짝짝짝! 축하합니다! 말하기
⚑ 클릭했을 때
달리기 1등: 민수 말하기
박수
그림 1등: 지은 말하기
박수
노래 1등: 하준 말하기
박수
달리기 1등: 민수
짝짝짝! 축하합니다!
그림 1등: 지은
짝짝짝! 축하합니다!
노래 1등: 하준
짝짝짝! 축하합니다!
"도구를 두 개나 만들었어! 별줄이랑 박수!"
"도구는 원하는 만큼 만들 수 있어.
자주 쓰는 코드가 있으면 도구로 만들어 두면 편해!"
Week 5
2장. 환영 인사
안내문이 완성되자, 뚜이가 새로운 고민에 빠졌어요.
"부스에 손님이 오면 이름을 불러서 환영하고 싶어.
'민수야 환영해!', '지은아 환영해!', '하준아 환영해!'..."
"그런데 그거, 이름만 다르고 나머지는 똑같잖아.
그러면 '환영민수' 도구, '환영지은' 도구, '환영하준' 도구...
사람마다 도구를 따로따로 만들어야 해?"
"그건 너무 귀찮아! 도구 하나만 만들고,
부를 때마다 다른 이름을 넣을 수 있으면 좋겠어."
"그게 바로 '매개변수'야!
도구에 '이름표'를 달아서, 부를 때마다 다른 값을 넣는 거야."
환영하기 이름 정의하기
어서 오세요, 이름! 우리 부스에 온 걸 환영해! 말하기
⚑ 클릭했을 때
환영하기 민수
환영하기 지은
환영하기 하준
어서 오세요, 민수! 우리 부스에 온 걸 환영해!
어서 오세요, 지은! 우리 부스에 온 걸 환영해!
어서 오세요, 하준! 우리 부스에 온 걸 환영해!
"'환영하기 민수', '환영하기 지은'...
이름만 바꿔서 부르면 되는 거구나!"
마침 축제 날이 지은이의 생일이래요! 생일 축하 도구도 만들어 볼까요?
생일축하 이름 정의하기
★ 이름아, 생일 축하해! ★ 말하기
오늘의 주인공은 바로 이름! 말하기
⚑ 클릭했을 때
생일축하 지은
★ 지은아, 생일 축하해! ★
오늘의 주인공은 바로 지은!
"매개변수에 뭘 넣느냐에 따라 결과가 달라져!"
"환영하기, 생일축하 — 도구가 점점 늘어나고 있어!"
Week 5
3장. 먹거리 메뉴판
환영 인사까지 만들었어요. 이제 부스에서 팔 간식 메뉴판이 필요해요.
"메뉴판에는 음식 이름이랑 가격이 같이 나와야 해.
두 가지를 넘겨야 하는데, 어떻게 하지?"
"매개변수를 두 개 쓰면 되지!"
"아, 그리고 메뉴판 위아래에 별줄도 넣고 싶어.
아까 만든 별줄 도구를 메뉴판 도구 안에서 부르면 안 될까?"
"도구 안에서 다른 도구를 부른다고?"
"응! 작은 도구를 큰 도구 안에 넣는 거야."
별줄 정의하기
★★★★★★★★★★★★ 말하기
메뉴판 음식 가격 정의하기
별줄
메뉴: 음식 말하기
가격: 가격원 말하기
별줄
⚑ 클릭했을 때
메뉴판 솜사탕 500
메뉴판 팝콘 1000
메뉴판 주스 800
★★★★★★★★★★★★
메뉴: 솜사탕
가격: 500원
★★★★★★★★★★★★
★★★★★★★★★★★★
메뉴: 팝콘
가격: 1000원
★★★★★★★★★★★★
★★★★★★★★★★★★
메뉴: 주스
가격: 800원
★★★★★★★★★★★★
"메뉴판 안에서 별줄을 불렀어! 도구 안에서 다른 도구를 부르는 거구나!"
"맞아! 작은 도구를 먼저 만들어 놓으면,
나중에 큰 도구를 만들 때 가져다 쓸 수 있어."
부스에서 파는 음식의 맛을 평가하는 도구도 만들어 봐요! 음식 이름과 점수를 넣으면 평가가 나와요.
맛평가 메뉴 점수 정의하기
음식: 메뉴 말하기
⚑ 클릭했을 때
맛평가 솜사탕 9
맛평가 팝콘 5
음식: 솜사탕
맛 점수: 9점 → 정말 맛있어요!
음식: 팝콘
맛 점수: 5점 → 아쉬워요...
"도구 안에 '만약' 블록이 들어갔어!"
"2주차에 배운 '만약' 블록이잖아! 도구 안에서도 쓸 수 있구나."
"응. 도구 안에는 뭐든 넣을 수 있어.
조건, 반복, 변수... 전부 다."
Week 5
3장. 도구 제작기 복구!
드디어 축제 당일이에요.
뚜이가 키보드 앞에 앉으며 말했어요.
"오늘은 진짜야.
앞에서 만든 도구들을 한 파일에 모아서,
손님 맞이부터 축하까지 전부 자동으로 돌릴 거야."
"지금까지 만든 도구를 전부 쓰는 거네!"
"응. 별줄, 박수, 환영하기, 생일축하, 메뉴판, 맛평가...
여섯 개 도구가 전부 들어가."
⚠ [손님이름], [먹은음식] 변수를 먼저 만들어 두세요.
별줄 정의하기
★★★★★★★★★★★★ 말하기
박수 정의하기
짝짝짝! 축하합니다! 말하기
환영하기 이름 정의하기
어서 오세요, 이름! 우리 부스에 온 걸 환영해! 말하기
생일축하 이름 정의하기
★ 이름아, 생일 축하해! ★ 말하기
오늘의 주인공은 바로 이름! 말하기
메뉴판 음식 가격 정의하기
별줄
메뉴: 음식 말하기
가격: 가격원 말하기
별줄
맛평가 메뉴 점수 정의하기
음식: 메뉴 말하기
⚑ 클릭했을 때
별줄
뚜이네 축제 부스! 말하기
별줄
무한 반복하기
손님 이름을 입력하세요, 0이면 종료: 라고 묻고 기다리기
손님이름 ▼ 을(를) 대답 로 정하기
별줄
환영하기 손님이름
오늘 생일이에요? 예=1 아니오=0 라고 묻고 기다리기
오늘의 메뉴: 말하기
메뉴판 솜사탕 500
메뉴판 팝콘 1000
메뉴판 주스 800
어떤 음식을 드셨나요? 라고 묻고 기다리기
먹은음식 ▼ 을(를) 대답 로 정하기
맛 점수는? 1~10: 라고 묻고 기다리기
맛평가 먹은음식 대답
감사합니다, 또 오세요! 말하기
별줄
★★★★★★★★★★★★
뚜이네 축제 부스!
★★★★★★★★★★★★
손님 이름을 입력하세요, 0이면 종료: → 민수
★★★★★★★★★★★★
어서 오세요, 민수! 우리 부스에 온 걸 환영해!
오늘 생일이에요? 예=1 아니오=0 → 0
오늘의 메뉴:
★★★★★★★★★★★★
메뉴: 솜사탕
가격: 500원
★★★★★★★★★★★★
★★★★★★★★★★★★
메뉴: 팝콘
가격: 1000원
★★★★★★★★★★★★
★★★★★★★★★★★★
메뉴: 주스
가격: 800원
★★★★★★★★★★★★
어떤 음식을 드셨나요? → 솜사탕
맛 점수는? 1~10: → 9
음식: 솜사탕
맛 점수: 9점 → 정말 맛있어요!
감사합니다, 또 오세요!
★★★★★★★★★★★★
손님 이름을 입력하세요, 0이면 종료: → 지은
★★★★★★★★★★★★
어서 오세요, 지은! 우리 부스에 온 걸 환영해!
오늘 생일이에요? 예=1 아니오=0 → 1
★ 지은아, 생일 축하해! ★
오늘의 주인공은 바로 지은!
오늘의 메뉴:
★★★★★★★★★★★★
메뉴: 솜사탕
가격: 500원
★★★★★★★★★★★★
★★★★★★★★★★★★
메뉴: 팝콘
가격: 1000원
★★★★★★★★★★★★
★★★★★★★★★★★★
메뉴: 주스
가격: 800원
★★★★★★★★★★★★
어떤 음식을 드셨나요? → 팝콘
맛 점수는? 1~10: → 5
음식: 팝콘
맛 점수: 5점 → 아쉬워요...
감사합니다, 또 오세요!
★★★★★★★★★★★★
손님 이름을 입력하세요, 0이면 종료: → 0
축제 끝! 수고했어요!
"여섯 개 도구가 전부 들어갔어!
변수, 조건, 반복, 그리고 나만의 블록까지."
"작은 도구들이 모여서 이렇게 큰 프로그램이 된 거구나."
축제가 끝나고, 뚜이가 하늘을 올려다봤어요.
우주선의 불빛이 하나 더 켜져 있었어요.
📝 WEEK 5 정리
정의하기 [이름]나만의 도구 만들기!
매개변수도구에 값을 넘겨서 다르게 동작!
도구 안에서 도구 부르기작은 도구를 모아 큰 프로그램!
다음 주 예고: 우주 배낭
변수가 너무 많아지면 어떻게 할까요?
여러 값을 하나의 "배낭"(리스트)에 담아 보아요!
실전 프로젝트 (선택)
축제가 끝나고 시상식! 이름, 상 이름, 사유를 입력하면 자동으로 상장이 출력돼요.
별줄 정의하기
★★★★★★★★★★★★ 말하기
박수 정의하기
짝짝짝! 축하합니다! 말하기
상장 이름 상이름 사유 정의하기
별줄
상 장 말하기
별줄
이름: 이름 말하기
상: 상이름 말하기
사유: 사유 말하기
박수
별줄
⚑ 클릭했을 때
상장 민수 친절상 매일 친구를 도와줌
상장 지은 노력상 매일 일기를 빠짐없이 씀
★★★★★★★★★★★★
상 장
★★★★★★★★★★★★
이름: 민수
상: 친절상
사유: 매일 친구를 도와줌
짝짝짝! 축하합니다!
★★★★★★★★★★★★
★★★★★★★★★★★★
상 장
★★★★★★★★★★★★
이름: 지은
상: 노력상
사유: 매일 일기를 빠짐없이 씀
짝짝짝! 축하합니다!
★★★★★★★★★★★★
💡 매개변수가 3개! 이름, 상 이름, 사유를 넣으면 자동으로 상장이 완성돼요.
별줄과 박수 도구를 안에서 불러서 더 멋진 상장을 만들었어요.
축제가 끝났어요! 우리 부스에서 간식을 얼마나 팔았는지 정산해 볼까요?
본문에서 만든 메뉴(솜사탕 500원, 팝콘 1000원, 주스 800원)를 그대로 사용해요.
⚠ [총매출], [소계] 변수를 먼저 만들어 두세요.
별줄 정의하기
★★★★★★★★★★★★ 말하기
메뉴정산 메뉴 가격 수량 정의하기
소계 ▼ 을(를) 가격 × 수량 로 정하기
메뉴: 수량개 × 가격원 = 소계원 말하기
총매출 ▼ 을(를) 소계 만큼 바꾸기
⚑ 클릭했을 때
총매출 ▼ 을(를) 0 로 정하기
별줄
축제 수익 정산! 말하기
별줄
메뉴정산 솜사탕 500 12
메뉴정산 팝콘 1000 8
메뉴정산 주스 800 15
별줄
총 매출: 총매출원 말하기
별줄
★★★★★★★★★★★★
축제 수익 정산!
★★★★★★★★★★★★
솜사탕 12개 × 500원 = 6000원
팝콘 8개 × 1000원 = 8000원
주스 15개 × 800원 = 12000원
★★★★★★★★★★★★
총 매출: 26000원
★★★★★★★★★★★★
💡 메뉴정산 도구 안에서 곱셈(가격 × 수량)과 누적(총매출에 더하기)이 일어나요.
실전 ①(상장)은 출력만 했지만, 이번엔 도구 안에서 계산까지 해요!
Week 6
우주 배낭
1장. 변수가 너무 많아!
뚜이가 우주 여행 준비를 하고 있었어요.
종이에 짐 목록을 적다가 머리를 싸매고 있었어요.
"물, 산소통, 에너지바, 도구상자, 우주복..."
"뚜이야, 뭐 해?"
"짐을 넣고 빼고, 뭐가 있는지 확인하는 프로그램을 만들고 싶어."
"오! 그럼 변수에 넣으면 되지 않아?"
"그래서 해봤는데... 짐1 변수에 물, 짐2 변수에 산소통, 짐3 변수에 에너지바..."
"어? 벌써 3개나 만들었어?"
"응, 근데 아직 2개 남았어. 짐이 5개니까 변수도 5개야."
"만약에 짐이 100개면...?"
"변수도 100개... 생각만 해도 끔찍해."
"학교 출석부처럼 한 줄에 쫙 쓸 수 있으면 안 돼?
한 장의 종이에 이름을 쭉 쓰는 것처럼?"
"그게 바로 '리스트'야!
리스트는 칸이 여러 개인 긴 상자야.
하나의 이름으로 여러 값을 저장할 수 있어!"
💡 리스트는 여러 데이터를 하나로 묶어 관리하는 도구예요.
추가, 삭제, 검색, 정렬까지! 변수 카테고리에서 "리스트 만들기"를 눌러 만들어요.
⚠ [배낭] 리스트를 먼저 만들어 두세요.
⚑ 클릭했을 때
물 을(를) 배낭 ▼ 에 추가하기
산소통 을(를) 배낭 ▼ 에 추가하기
에너지바 을(를) 배낭 ▼ 에 추가하기
도구상자 을(를) 배낭 ▼ 에 추가하기
우주복 을(를) 배낭 ▼ 에 추가하기
짐 개수: 배낭 ▼ 의 길이 말하기
짐 개수: 5
"변수 5개가 리스트 1개로!"
"100개여도 리스트 1개면 되는 거야?"
"맞아! 1000개여도!"
⚠ [배낭] 리스트를 먼저 만들어 두세요.
⚑ 클릭했을 때
물 을(를) 배낭 ▼ 에 추가하기
산소통 을(를) 배낭 ▼ 에 추가하기
에너지바 을(를) 배낭 ▼ 에 추가하기
첫 번째 짐: 배낭 ▼ 리스트의 1 번째 항목 말하기
세 번째 짐: 배낭 ▼ 리스트의 3 번째 항목 말하기
총 개수: 배낭 ▼ 의 길이 말하기
첫 번째 짐: 물
세 번째 짐: 에너지바
총 개수: 3
"번호만 알면 바로 꺼낼 수 있구나! 세 번째 짐이 뭐였지? 하면 바로 답이 나오네!"
Week 6
2장. 배낭 관리 프로그램
배낭에 짐을 잔뜩 넣은 뚜이가 갑자기 불안한 표정을 지었어요.
"잠깐, 혹시 산소통 넣었나? 기억이 안 나..."
"배낭을 다 뒤져봐야 해?"
"아니! 프로그램한테 물어보면 되지! '이거 있어?' 하고!"
⚠ [배낭] 리스트를 먼저 만들어 두세요.
⚑ 클릭했을 때
배낭에 짐 3개를 넣어 보세요! 말하기
3 번 반복하기
짐 이름: 라고 묻고 기다리기
대답 을(를) 배낭 ▼ 에 추가하기
대답 추가! 말하기
짐 싸기 완료! 총 배낭 ▼ 의 길이개! 말하기
찾을 짐: 라고 묻고 기다리기
만약 배낭 ▼ 이(가) 대답 을(를) 포함하는가? (이)라면
아니면
배낭에 짐 3개를 넣어 보세요!
짐 이름: 물
물 추가!
짐 이름: 산소통
산소통 추가!
짐 이름: 에너지바
에너지바 추가!
짐 싸기 완료! 총 3개!
찾을 짐: 물
[O] 있어요!
"산소통 있어? '있어요!' 라고 바로 찾아준다!"
"이게 바로 검색이야. 리스트 안에 있는지 확인하는 거지."
"일일이 뒤질 필요 없이 한 번에 알 수 있으니까 진짜 편하다!"
Week 6
3장. 랜덤 뽑기
점심시간이 다가오자 아이들 사이에서 논쟁이 벌어졌어요.
"오늘 뭐 먹지?"
"맨날 고민만 하다가 시간 다 가잖아!"
"그러면 컴퓨터가 골라 주면 되잖아! 리스트에 메뉴를 넣어 두고, 난수로 하나 뽑는 거야!"
"오! 뽑기 프로그램이다!"
⚠ [메뉴] 리스트, [번호] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
김치볶음밥 을(를) 메뉴 ▼ 에 추가하기
돈까스 을(를) 메뉴 ▼ 에 추가하기
떡볶이 을(를) 메뉴 ▼ 에 추가하기
비빔밥 을(를) 메뉴 ▼ 에 추가하기
스파게티 을(를) 메뉴 ▼ 에 추가하기
번호 ▼ 을(를) 1 부터 메뉴 ▼ 의 길이 사이의 난수 로 정하기
오늘의 메뉴: 메뉴 ▼ 리스트의 번호 번째 항목 말하기
오늘의 메뉴: 떡볶이!
"매번 다른 메뉴가 나와! 이거 당번 뽑기에도 쓸 수 있겠다!"
"리스트에 넣어 두고 하나만 뽑으면 되니까, 뭐든 응용할 수 있어."
"운세도 뽑을 수 있지 않을까?"
⚠ [운세] 리스트, [번호] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
대박! 오늘은 최고의 하루! 을(를) 운세 ▼ 에 추가하기
소소한 행운이 찾아올 거예요. 을(를) 운세 ▼ 에 추가하기
조심! 계단에서 미끄러질 수 있어요. 을(를) 운세 ▼ 에 추가하기
친구에게 좋은 소식이! 을(를) 운세 ▼ 에 추가하기
오늘은 조용히 쉬는 게 좋겠어요. 을(를) 운세 ▼ 에 추가하기
뜻밖의 선물이 올 수도?! 을(를) 운세 ▼ 에 추가하기
번호 ▼ 을(를) 1 부터 운세 ▼ 의 길이 사이의 난수 로 정하기
오늘의 운세: 말하기
운세 ▼ 리스트의 번호 번째 항목 말하기
오늘의 운세:
뜻밖의 선물이 올 수도?!
"내 운세는 '대박'이래! 뚜이 너는?"
"나는 '계단 조심'... 지니우스 별에는 계단이 없는데?"
"하하! 리스트에 넣어 두면 뭐든 랜덤으로 뽑을 수 있어. 제비뽑기, 자리 배치, 팀 나누기..."
Week 6
3장. 점수와 평균
뚜이가 시험지 5장을 들고 왔어요.
"국어 85점, 수학 92점, 과학 78점... 평균이 몇 점이지?"
"다 더해서 과목 수로 나누면 돼!"
"근데 점수가 많아지면 헷갈리잖아. 리스트에 넣으면서 자동으로 계산하면 안 될까?"
"좋은 생각이야! 넣을 때마다 합계를 더하고, 마지막에 나누면 돼!"
⚠ [점수] 리스트, [합계], [평균] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
합계 ▼ 을(를) 0 로 정하기
5 번 반복하기
점수를 입력하세요: 라고 묻고 기다리기
대답 을(를) 점수 ▼ 에 추가하기
합계 ▼ 을(를) 대답 만큼 바꾸기
평균 ▼ 을(를) 합계 ÷ 점수 ▼ 의 길이 로 정하기
합계: 합계 말하기
평균: 평균 말하기
점수를 입력하세요: 90
점수를 입력하세요: 85
점수를 입력하세요: 92
점수를 입력하세요: 78
점수를 입력하세요: 95
합계: 440
평균: 88.0
"5과목 평균이 바로 나오다니! 과목이 10개여도 되겠다!"
"리스트의 '의 길이'를 쓰니까 몇 개든 상관없어. 자동으로 세거든."
"리스트에 넣으면 저장도 되고, 계산도 되고, 진짜 만능이네!"
Week 6
4장. 화물 관리 복구!
"최종 테스트! 리스트를 활용한 게임을 만들어 봐!
단어 리스트에서 랜덤으로 하나 뽑고, 맞추는 거야!"
⚠ [단어장] 리스트, [점수], [번호], [정답] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
사과 을(를) 단어장 ▼ 에 추가하기
코딩 을(를) 단어장 ▼ 에 추가하기
우주선 을(를) 단어장 ▼ 에 추가하기
키보드 을(를) 단어장 ▼ 에 추가하기
지니우스 을(를) 단어장 ▼ 에 추가하기
점수 ▼ 을(를) 0 로 정하기
5 번 반복하기
단어장: 사과, 코딩, 우주선, 키보드, 지니우스 말하기
번호 ▼ 을(를) 1 부터 단어장 ▼ 의 길이 사이의 난수 로 정하기
정답 ▼ 을(를) 단어장 ▼ 리스트의 번호 번째 항목 로 정하기
이 중에서 하나를 뽑았어! 맞혀봐! 라고 묻고 기다리기
만약 대답 = 정답 (이)라면
맞았어! 말하기
점수 ▼ 을(를) 1 만큼 바꾸기
아니면
최종 점수: 5문제 중 점수문제 정답! 말하기
단어장: 사과, 코딩, 우주선, 키보드, 지니우스
이 중에서 하나를 뽑았어! 맞혀봐! 코딩
맞았어!
단어장: 사과, 코딩, 우주선, 키보드, 지니우스
이 중에서 하나를 뽑았어! 맞혀봐! 사과
아쉽다! 정답은... 키보드!
단어장: 사과, 코딩, 우주선, 키보드, 지니우스
이 중에서 하나를 뽑았어! 맞혀봐! 우주선
맞았어!
단어장: 사과, 코딩, 우주선, 키보드, 지니우스
이 중에서 하나를 뽑았어! 맞혀봐! 지니우스
맞았어!
단어장: 사과, 코딩, 우주선, 키보드, 지니우스
이 중에서 하나를 뽑았어! 맞혀봐! 코딩
아쉽다! 정답은... 사과!
최종 점수: 5문제 중 3문제 정답!
"리스트 + 난수 + '만약에' 블록이 합쳐진 게임이다!"
뚜이가 웃으며 말했어요.
"리스트는 프로그래밍에서 가장 많이 쓰는 도구 중 하나야.
여러 개의 데이터를 하나로 묶고, 추가하고, 검색하고, 뽑고...
데이터를 다루는 기본이야.
삭제는 이번 주 실전 프로젝트에서 도전해 보고, 정렬은 다음 주에 배울 거야!"
📝 WEEK 6 정리
(값) 을(를) (리스트 ▼) 에 추가하기항목 넣기
(리스트 ▼) 리스트의 (번호) 번째 항목해당 번째 꺼내기
(리스트 ▼) 의 길이개수 세기
(리스트 ▼) 이(가) (값) 을(를) 포함하는가?있는지 확인
다음 주 예고: 항법 데이터베이스
별의 위치를 찾으려면, 데이터를 정렬하고 검색해야 해요!
리스트를 더 깊이 다뤄 볼 거예요.
실전 프로젝트 (선택)
💡 실전 프로젝트에서는 삭제하기 블록을 새로 사용해요!
(번호) 번째 항목을 (리스트 ▼) 에서 삭제하기 - 번호를 지정하면 해당 항목이 리스트에서 빠져요.
실전 ① 급식실 줄 서기 (대기열) 프로그램 📎 week6-8.tg
⚠ [목록] 리스트를 먼저 만들어 두세요.
⚑ 클릭했을 때
급식실 대기 관리 말하기
무한 반복하기
1.줄서기 2.다음사람 3.종료 라고 묻고 기다리기
만약 대답 = 1 (이)라면
이름은? 라고 묻고 기다리기
대답 을(를) 목록 ▼ 에 추가하기
대답 대기 등록! 현재 목록 ▼ 의 길이명 대기 중 말하기
만약 대답 = 2 (이)라면
만약 목록 ▼ 의 길이 > 0 (이)라면
[알림] 목록 ▼ 리스트의 1 번째 항목 님, 입장하세요! 말하기
1 번째 항목을 목록 ▼ 에서 삭제하기
아니면
급식실 대기 관리
1.줄서기 2.다음사람 3.종료 → 1
이름은? → 민수
민수 대기 등록! 현재 1명 대기 중
1.줄서기 2.다음사람 3.종료 → 1
이름은? → 서영
서영 대기 등록! 현재 2명 대기 중
1.줄서기 2.다음사람 3.종료 → 1
이름은? → 준호
준호 대기 등록! 현재 3명 대기 중
1.줄서기 2.다음사람 3.종료 → 2
[알림] 민수 님, 입장하세요!
1.줄서기 2.다음사람 3.종료 → 2
[알림] 서영 님, 입장하세요!
1.줄서기 2.다음사람 3.종료 → 3
실전 ② 도서관 책 대출/반납 프로그램 📎 week6-9.tg
⚠ [목록] 리스트를 먼저 만들어 두세요.
💡 이번 프로젝트는 나만의 블록을 3개 사용해요! [목록출력], [책대출], [책반납]. 복잡한 프로그램도 블록으로 쪼개면 한눈에 보여요.
목록출력 정의하기
--- 목록 --- 말하기
번호 ▼ 을(를) 1 로 정하기
목록 ▼ 의 길이 번 반복하기
번호. 목록 ▼ 리스트의 번호 번째 항목 말하기
번호 ▼ 을(를) 1 만큼 바꾸기
책대출 정의하기
만약 목록 ▼ 의 길이 = 3 (이)라면
빨간색 ▼ 으로 대출 한도는 3권입니다! 말하기
아니면
대출할 책 제목은? 라고 묻고 기다리기
만약 목록 ▼ 이(가) 대답 을(를) 포함하는가? (이)라면
빨간색 ▼ 으로 이미 대출된 책입니다! 말하기
아니면
대답 을(를) 목록 ▼ 에 추가하기
초록색 ▼ 으로 [O] 대답 대출 완료! 말하기
책반납 정의하기
반납할 책 제목은? 라고 묻고 기다리기
번호 ▼ 을(를) 1 로 정하기
목록 ▼ 의 길이 번 반복하기
만약 목록 ▼ 리스트의 번호 번째 항목 = 대답 (이)라면
번호 번째 항목을 목록 ▼ 에서 삭제하기
초록색 ▼ 으로 [O] 대답 반납 완료! 말하기
반복 그만하기
번호 ▼ 을(를) 1 만큼 바꾸기
⚑ 클릭했을 때
도서관 대출/반납 시스템 말하기
무한 반복하기
1.대출 2.반납 3.목록보기 4.종료 라고 묻고 기다리기
만약 대답 = 4 (이)라면
도서관 시스템을 종료합니다. 말하기
반복 그만하기
도서관 대출/반납 시스템
1.대출 2.반납 3.목록보기 4.종료 → 1
대출할 책 제목은? → 해리포터
[O] 해리포터 대출 완료!
1.대출 2.반납 3.목록보기 4.종료 → 1
대출할 책 제목은? → 해리포터
이미 대출된 책입니다!
1.대출 2.반납 3.목록보기 4.종료 → 1
대출할 책 제목은? → 어린왕자
[O] 어린왕자 대출 완료!
1.대출 2.반납 3.목록보기 4.종료 → 3
--- 목록 ---
1. 해리포터
2. 어린왕자
1.대출 2.반납 3.목록보기 4.종료 → 2
반납할 책 제목은? → 해리포터
[O] 해리포터 반납 완료!
1.대출 2.반납 3.목록보기 4.종료 → 4
도서관 시스템을 종료합니다.
💡 이 프로그램 하나에 지금까지 배운 거의 모든 것이 들어있어요!
리스트, 조건, 반복, 포함, 길이, 추가, 삭제...
Week 7
항법 데이터베이스
1장. 엉망진창 별 지도
지난주 화물 관리까지 고치고 나니, 우주선 안이 한결 정돈되어 보였어요.
뚜이가 콘솔 옆자리로 옮겨 앉으며 큰 버튼을 톡 짚었어요.
"오늘은 항법 데이터베이스야. 이게 고쳐지면... 별 지도가 다시 켜져.
내가 어디서 왔는지, 어디로 가야 하는지, 다 보일 거야."
뚜이가 버튼을 누르자 화면에 별 데이터가 좌라락 떴어요.
별 이름과 거리가 한꺼번에 쏟아져 나왔는데, 순서가 뒤죽박죽이었어요.
★ 베가 12.4 광년
★ 시리우스 8.6 광년
★ 알타이르 16.8 광년
★ 프로키온 11.4 광년
★ 폴라리스 433.0 광년
[정렬 안 됨]
"으아아... 뒤섞여 있어!"
"왜 그래, 뚜이?"
"별 이름이랑 거리가 다 따로 흩어져 있어.
가까운 별부터 들러야 연료를 아끼는데,
이렇게 순서가 없으면 어느 별이 가까운지 한눈에 안 들어와!"
한 아이가 손을 번쩍 들었어요.
"줄 세우면 되는 거 아니야? 작은 수부터!"
"줄 세우기?"
"응. 시험 점수 줄 세울 때처럼."
"오! 그런 게 코드에도 있어?"
"있지! 리스트를 한 줄에 정렬하는 블록이 있거든.
별 데이터는 항목이 많으니까 — 먼저 익숙한 시험 점수로 원리부터 익혀 볼까?"
⚠ [점수] 리스트, [번호] 변수를 먼저 만들어 두세요.
💡 친구 5명의 점수를 직접 입력해 봐요!
점수출력 정의하기
번호 ▼ 을(를) 1 로 정하기
점수 ▼ 의 길이 번 반복하기
점수 ▼ 리스트의 번호 번째 항목 말하기
번호 ▼ 을(를) 1 만큼 바꾸기
⚑ 클릭했을 때
5 번 반복하기
친구 점수는? 라고 묻고 기다리기
대답 을(를) 점수 ▼ 에 추가하기
정렬 전: 말하기
점수출력
점수 ▼ 작은 ▼ 수부터 나열하기
정렬 후: 말하기
점수출력
친구 점수는? → 85
친구 점수는? → 92
친구 점수는? → 78
친구 점수는? → 95
친구 점수는? → 88
정렬 전:
85
92
78
95
88
정렬 후:
78
85
88
92
95
"우와! 작은 것부터 큰 것 순서로!
한 줄이면 정렬이 끝나네!"
그런데 정렬된 점수를 들여다보던 한 아이의 표정이 갸우뚱해졌어요.
"잠깐... 78점, 85점, 88점, 92점, 95점.
점수는 정렬됐는데 — 이게 누구 점수인지 모르겠어!"
"어?"
"점수 리스트만 정렬한 거잖아. 이름은 어디 갔어?"
뚜이가 콘솔을 톡 두드렸어요.
"맞아, 그게 함정이야.
점수는 [점수] 리스트, 이름은 [이름] 리스트 — 따로 있잖아.
점수만 정렬하니까 이름은 그대로야. 짝이 다 어긋난 거지."
"그럼 이름도 같이 움직여야 하는 거 아니야?"
"바로 그거! 이름 리스트를 점수 리스트랑 묶어서 같이 정렬하는 거.
이걸 '쌍정렬'이라고 해."
⚠ [이름] 리스트, [점수] 리스트, [번호] 변수를 먼저 만들어 두세요.
💡 친구 5명의 이름과 점수를 한 번에 입력해요!
순위출력 정의하기
번호 ▼ 을(를) 1 로 정하기
점수 ▼ 의 길이 번 반복하기
이름 ▼ 리스트의 번호 번째 항목 - 점수 ▼ 리스트의 번호 번째 항목점 말하기
번호 ▼ 을(를) 1 만큼 바꾸기
⚑ 클릭했을 때
5 번 반복하기
친구 이름은? 라고 묻고 기다리기
대답 을(를) 이름 ▼ 에 추가하기
점수는? 라고 묻고 기다리기
대답 을(를) 점수 ▼ 에 추가하기
정렬 전: 말하기
순위출력
점수 ▼ 작은 ▼ 수부터 나열하기 이름 ▼ 도 같이
정렬 후: 말하기
순위출력
친구 이름은? → 민수
점수는? → 85
친구 이름은? → 서영
점수는? → 92
친구 이름은? → 준호
점수는? → 78
친구 이름은? → 유나
점수는? → 95
친구 이름은? → 지호
점수는? → 88
정렬 전:
민수 - 85점
서영 - 92점
준호 - 78점
유나 - 95점
지호 - 88점
정렬 후:
준호 - 78점
민수 - 85점
지호 - 88점
서영 - 92점
유나 - 95점
"점수가 정렬되니까 이름도 같이 움직였어!
준호가 78점으로 1번, 유나가 95점으로 5번! 순위표를 만들 수 있겠다!"
이름과 점수에 했던 그대로 — 별 이름과 거리에도 똑같이 쌍정렬을 적용해 봤어요.
짝을 맞춘 채로 가까운 순서로 가지런히 정리되었어요.
★ 시리우스 8.6 광년
★ 프로키온 11.4 광년
★ 베가 12.4 광년
★ 알타이르 16.8 광년
★ 폴라리스 433.0 광년
[가까운 순서대로 정렬됨]
"우와! 시리우스가 가장 가깝네!
이렇게 정리되니까 어느 별부터 들러야 할지 한눈에 보여."
"두 리스트가 짝을 이뤄 같이 움직이는 거 — 이거 진짜 편리한데?
한쪽에서 위치를 알면, 같은 자리의 다른 리스트에서 정보가 바로 나와."
Week 7
2장. 사전 만들기
"두 리스트가 짝을 이뤄 같이 움직인다"는 말이 머릿속에 맴돌았어요.
한 아이가 가방에서 영어 사전을 꺼냈어요.
페이지를 펼치니 왼쪽에는 단어가 쭉, 오른쪽에는 뜻이 쭉 적혀 있었어요.
"뚜이야, 이거 봐. 사전도 두 줄로 짝을 이루고 있어!
'apple'을 찾으면, 같은 줄에 '사과'가 있잖아."
뚜이가 사전을 들여다보더니 눈이 반짝였어요.
"진짜네! 우리가 방금 한 거랑 똑같아.
이름 리스트의 3번 자리에서 누군가를 찾으면, 점수 리스트의 3번 자리가 그 사람의 점수.
한 줄에서 위치를 알면, 같은 자리의 다른 줄에서 답이 나와 — 사전처럼."
"오! 그러면 우리 반 친구들 생일 사전도 만들 수 있겠다!"
"이름 리스트랑 생일 리스트를 짝지어 두면, 이름만 입력해도 생일이 나오는 거야!"
⚠ [이름] 리스트, [생일] 리스트, [번호] 변수를 먼저 만들어 두세요.
💡 친구 5명의 이름과 생일을 입력하면 사전이 만들어져요!
검색은 무한 반복이라 계속 찾을 수 있어요. 그만 찾고 싶으면 창을 닫으면 돼요.
⚑ 클릭했을 때
5 번 반복하기
친구 이름은? 라고 묻고 기다리기
대답 을(를) 이름 ▼ 에 추가하기
생일은? 라고 묻고 기다리기
대답 을(를) 생일 ▼ 에 추가하기
무한 반복하기
누구의 생일을 찾을까요? 라고 묻고 기다리기
번호 ▼ 을(를) 1 로 정하기
이름 ▼ 의 길이 번 반복하기
만약 이름 ▼ 리스트의 번호 번째 항목 = 대답 (이)라면
대답의 생일: 생일 ▼ 리스트의 번호 번째 항목 말하기
번호 ▼ 을(를) 1 만큼 바꾸기
친구 이름은? → 민수
생일은? → 3월 15일
친구 이름은? → 서영
생일은? → 7월 22일
친구 이름은? → 준호
생일은? → 5월 8일
친구 이름은? → 유나
생일은? → 11월 30일
친구 이름은? → 지호
생일은? → 9월 4일
누구의 생일을 찾을까요? → 유나
유나의 생일: 11월 30일
누구의 생일을 찾을까요? → 지호
지호의 생일: 9월 4일
누구의 생일을 찾을까요? → 민수
민수의 생일: 3월 15일
... (창을 닫을 때까지 계속)
💡 도전! 등록되지 않은 이름(예: "영희")을 입력하면 아무 메시지도 안 나와요.
"등록되지 않은 이름이에요!" 메시지가 나오게 만들어 보세요.
힌트: (이름 ▼) 이(가) (대답) 을(를) 포함하는가? 블록을 활용해 보세요!
"이름을 넣으면 생일이 나와!
한 줄에서 위치를 알면, 같은 자리의 짝이 따라 나오네!"
"이게 사전처럼 짝지은 두 리스트의 진짜 힘이야.
이름 리스트랑 생일 리스트는 항상 같은 자리끼리 짝이 되어 있거든."
Week 7
3장. 수도 퀴즈!
한참 데이터를 정리하고 나니, 모두 살짝 지친 표정이었어요.
한 아이가 가방에서 사회 교과서를 꺼내 책상 위에 펼쳤어요.
"휴, 머리 좀 식힐 겸... 나 다음 주에 사회 시험 있는데, 수도 외워야 돼."
"수도? 한국=서울, 영국=런던, 그런 거?"
"응. 근데 그냥 외우니까 자꾸 까먹어."
뚜이가 옆에서 듣고 있다가 갑자기 키보드를 꼭 안았어요.
표정이 환해졌어요.
"잠깐, 그거... 사전 구조로 딱이잖아!"
"엥?"
"'나라' 리스트랑 '수도' 리스트를 짝지어 두면, 한국 옆에 서울, 영국 옆에 런던...
거기에 난수로 무작위로 하나 뽑으면 — 퀴즈 게임이지!"
"우와! 외우는 것보다 게임이 훨씬 재밌어!"
"그치? 5문제 내고, 맞으면 +1점, 틀리면 정답 알려주고.
지난주에 만든 단어 섞기 게임이랑 비슷한데, 이번엔 사전을 쓰는 거야."
⚠ [나라] 리스트, [수도] 리스트, [점수], [번호] 변수를 먼저 만들어 두세요.
💡 1단계: 친구와 함께 5쌍의 나라-수도를 등록 (예: 한국-서울, 영국-런던, 호주-캔버라, 브라질-브라질리아, 캐나다-오타와)
2단계: 다른 친구가 와서 5문제를 무작위로 풀어요!
⚑ 클릭했을 때
[1단계] 5쌍의 나라와 수도를 등록하세요! 말하기
5 번 반복하기
나라 이름은? 라고 묻고 기다리기
대답 을(를) 나라 ▼ 에 추가하기
그 나라의 수도는? 라고 묻고 기다리기
대답 을(를) 수도 ▼ 에 추가하기
점수 ▼ 을(를) 0 로 정하기
[2단계] 수도 퀴즈! 5문제! 말하기
5 번 반복하기
번호 ▼ 을(를) 1 부터 나라 ▼ 의 길이 사이의 난수 로 정하기
나라 ▼ 리스트의 번호 번째 항목의 수도는? 라고 묻고 기다리기
만약 대답 = 수도 ▼ 리스트의 번호 번째 항목 (이)라면
정답! [O] 말하기
점수 ▼ 을(를) 1 만큼 바꾸기
아니면
오답! 정답은 수도 ▼ 리스트의 번호 번째 항목! 말하기
최종 점수: 점수/5 말하기
[1단계] 5쌍의 나라와 수도를 등록하세요!
나라 이름은? → 한국
그 나라의 수도는? → 서울
나라 이름은? → 영국
그 나라의 수도는? → 런던
나라 이름은? → 호주
그 나라의 수도는? → 캔버라
나라 이름은? → 브라질
그 나라의 수도는? → 브라질리아
나라 이름은? → 캐나다
그 나라의 수도는? → 오타와
[2단계] 수도 퀴즈! 5문제!
한국의 수도는? → 서울
정답! [O]
호주의 수도는? → 시드니
오답! 정답은 캔버라!
영국의 수도는? → 런던
정답! [O]
캐나다의 수도는? → 토론토
오답! 정답은 오타와!
브라질의 수도는? → 브라질리아
정답! [O]
최종 점수: 3/5
🌟 도전! 다른 분야로 바꿔도 같은 코드! 한국사 퀴즈, 영단어 퀴즈, 과학 퀴즈 등 자기만의 퀴즈를 만들어 보세요!
또는: 같은 문제가 두 번 나올 때가 있어요. 이미 푼 문제는 다시 안 나오게 만들어 볼까요?
한 아이가 5문제를 다 풀고 신난 표정으로 친구를 돌아봤어요.
"5점 만점! 너는 몇 점 받았어?"
"3점... 다음엔 더 잘할 거야!"
"근데 사전이 진짜 편하다. 한국, 영국, 호주... 어떤 나라를 물어봐도 수도가 바로 나와!"
Week 7
3장. 데이터를 지키자
퀴즈를 한참 풀던 한 아이가, 갑자기 표정이 굳었어요.
"잠깐... 그러면 우리가 직접 입력한 친구들 점수, 친구들 생일,
방금 만든 수도 퀴즈 5쌍 — 이거 다 컴퓨터 끄면 사라지는 거야?"
"어?"
"내일 다시 켜면... 또 처음부터 입력해야 해? 5명, 5개, 5쌍을 또?!"
아이들이 동시에 뚜이를 봤어요. 뚜이가 천천히 고개를 끄덕였어요.
"맞아. 지금까지는 프로그램이 끝나면 리스트가 다 날아갔어.
변수도, 리스트도, 메모리에만 잠깐 있었던 거야.
너희가 입력한 거, 정말 한순간이면 사라져."
"으아아... 그럼 친구 생일 사전을 매일 새로 만들어야 한다고?!"
뚜이가 진정시키듯 손을 내저었어요.
"걱정 마. 저장하기 블록이랑 불러오기 블록을 쓰면 돼.
저장하기 = 컴퓨터 안에 파일로 적어 두기. 불러오기 = 그 파일을 다시 읽어 오기."
"파일? 어떤 파일?"
"리스트 이름이 곧 파일 이름이야.
예를 들어 [좋아하는별] 리스트를 저장하면 — C:\TooeeGenius\Data\좋아하는별.txt 파일이 만들어져.
다음에 [좋아하는별] 리스트를 만들고 불러오기를 하면, 그 파일에서 읽어와!"
"오! 그러면 윈도우 탐색기로 그 폴더를 직접 열어볼 수도 있어?"
"가능해. 메모장으로 열어보면 리스트 내용이 보여. 진짜 파일이거든."
"먼저 가볍게 해보자.
좋아하는 별 3개를 입력 → 저장 → 프로그램 끄고 → 다시 켜서 불러오기.
정말 그대로 살아있는지 확인하는 거야!"
⚠ [좋아하는별] 리스트, [번호] 변수를 먼저 만들어 두세요.
💡 저장하기 / 불러오기 첫 체험!
두 개의 프로그램을 차례대로 만들어요.
① 먼저 [저장 프로그램]을 만들고 ⚑ 클릭 → 좋아하는 별 3개 입력 → 저장!
② 그 다음 코드를 [불러오기 프로그램]으로 바꾸고 ⚑ 클릭 → 어제 입력한 별이 그대로 등장!
① [저장 프로그램]
⚑ 클릭했을 때
좋아하는 별 3개를 등록할게요! 말하기
3 번 반복하기
좋아하는 별 이름은? 라고 묻고 기다리기
대답 을(를) 좋아하는별 ▼ 에 추가하기
좋아하는별 ▼ 리스트 저장하기
[O] 저장 완료! 말하기
좋아하는 별 3개를 등록할게요!
좋아하는 별 이름은? → 시리우스
좋아하는 별 이름은? → 베가
좋아하는 별 이름은? → 폴라리스
[O] 저장 완료!
② [불러오기 프로그램] — 코드를 위 [저장 프로그램]에서 아래로 바꿔서 ⚑ 클릭!
⚑ 클릭했을 때
좋아하는별 ▼ 리스트 불러오기
[★] 저장된 별: 말하기
번호 ▼ 을(를) 1 로 정하기
좋아하는별 ▼ 의 길이 번 반복하기
★ 좋아하는별 ▼ 리스트의 번호 번째 항목 말하기
번호 ▼ 을(를) 1 만큼 바꾸기
[★] 저장된 별:
★ 시리우스
★ 베가
★ 폴라리스
🌟 도전! 윈도우 탐색기에서 C:\TooeeGenius\Data 폴더를 열어보세요.
좋아하는별.txt 파일이 보이나요? 메모장으로 열면 리스트 내용이 그대로 적혀 있어요!
"우와! 어제 저장 프로그램으로 입력한 별이,
오늘 불러오기 프로그램으로 그대로 나와!"
"맞아. 저장하기 블록은 데이터를 파일에 적고,
불러오기 블록은 그 파일을 다시 읽어 와.
한 번 저장하면 다음에도, 다음 다음에도 살아 있어!"
뚜이가 다시 콘솔을 봤어요. 별 지도가 깜빡깜빡 신호를 보내고 있었어요.
"이제 진짜 별 지도를 복구할 차례야.
정렬, 사전, 저장 — 다 모이면 항법 데이터베이스가 돼."
Week 7
4장. 항법 데이터베이스 복구!
한 아이가 화면을 빤히 보다가, 손가락으로 항목들을 하나씩 짚었어요.
"근데 우리... 이미 도구는 다 모은 거 아니야?"
"무슨 말이야?"
"1장에서 별 거리 정렬하고, 2장에서 사전처럼 짝짓고,
3장에서 퀴즈로 사전을 활용하고, 4장에서 별 카탈로그를 저장하고 불러왔잖아."
뚜이가 천천히 고개를 끄덕였어요.
"맞아. 이제 그걸 하나로 합쳐서 진짜 항법 데이터베이스를 만들 차례야!"
"별 카탈로그?"
"별마다 이름과 거리를 짝지어 입력하고, 가까운 순으로 자동 정렬해서 저장하는 거야.
한 번 저장해 두면 언제든 불러오기 프로그램으로 가까운 순 카탈로그를 볼 수 있어!"
"이게 별 지도의 본체구나!"
"맞아. 정렬·짝지은 리스트·저장이 한 흐름에 들어가는 마지막 종합 미션!"
⚠ [별이름] 리스트, [별거리] 리스트, [번호] 변수를 먼저 만들어 두세요.
💡 종합 프로젝트! 정렬 · 짝지은 두 리스트 · 저장 — 지금까지 배운 도구가 모두 한 흐름에!
① [저장 프로그램]: 별 5개 입력 → 가까운 순 정렬 → 저장!
② [불러오기 프로그램]: 저장된 카탈로그를 불러와서 화면에 출력!
① [저장 프로그램]
⚑ 클릭했을 때
[★] 별 5개를 등록하고 정렬해서 저장! 말하기
5 번 반복하기
별 이름은? 라고 묻고 기다리기
대답 을(를) 별이름 ▼ 에 추가하기
그 별까지 거리는? 라고 묻고 기다리기
대답 을(를) 별거리 ▼ 에 추가하기
별거리 ▼ 작은 ▼ 수부터 나열하기 별이름 ▼ 도 같이
별이름 ▼ 리스트 저장하기
별거리 ▼ 리스트 저장하기
[O] 별 카탈로그 저장 완료! 말하기
[★] 별 5개를 등록하고 정렬해서 저장!
별 이름은? → 베가
그 별까지 거리는? → 12.4
별 이름은? → 시리우스
그 별까지 거리는? → 8.6
별 이름은? → 폴라리스
그 별까지 거리는? → 433.0
별 이름은? → 알타이르
그 별까지 거리는? → 16.8
별 이름은? → 프로키온
그 별까지 거리는? → 11.4
[O] 별 카탈로그 저장 완료!
② [불러오기 프로그램] — 코드를 위 [저장 프로그램]에서 아래로 바꿔서 ⚑ 클릭!
⚑ 클릭했을 때
별이름 ▼ 리스트 불러오기
별거리 ▼ 리스트 불러오기
[★] 별 카탈로그 - 가까운 순 말하기
번호 ▼ 을(를) 1 로 정하기
별이름 ▼ 의 길이 번 반복하기
★ 별이름 ▼ 리스트의 번호 번째 항목 — 별거리 ▼ 리스트의 번호 번째 항목 광년 말하기
번호 ▼ 을(를) 1 만큼 바꾸기
[★] 별 카탈로그 - 가까운 순
★ 시리우스 — 8.6 광년
★ 프로키온 — 11.4 광년
★ 베가 — 12.4 광년
★ 알타이르 — 16.8 광년
★ 폴라리스 — 433.0 광년
🌟 도전! 별 개수를 더 늘려 보거나, 2장 생일 사전처럼 "별 이름으로 거리 검색" 기능을 추가해 봐도 좋아요!
"우와! 정렬되고, 짝이 맞춰지고, 저장됐어!
저장 프로그램으로 한 번 정리해 두면, 불러오기 프로그램으로 언제든 가까운 순 카탈로그를 볼 수 있어!"
"이게 진짜 항법 데이터베이스야.
1장 정렬, 2~3장 사전 구조, 4장 저장 — 다 한 흐름에 들어갔네!"
"우주선 어디로든 갈 수 있겠어!"
뚜이가 콘솔로 다가가더니, 깊게 숨을 들이마시고 큰 버튼을 눌렀어요.
화면이 깜빡, 깜빡, 깜빡...
별 지도가 천천히 떠올랐어요.
이번에는 데이터가 살아 움직였어요.
가까운 별부터 차례로 정렬된 거리,
거리 옆에 짝을 맞춰 또렷이 보이는 별 이름,
프로그램을 껐다 켜도 그대로 남아 있는 데이터.
아이들이 직접 만든 카탈로그가, 그대로 진짜 별 지도가 되어 떠올랐어요.
뚜이가 화면 한구석을 손가락으로 가만히 짚었어요.
작은 별 하나가 깜빡, 깜빡 빛나고 있었어요.
뚜이가 키보드를 꼭 끌어안았어요.
까만 눈에 살짝 물기가 차올랐어요.
"고향으로 가는 길이 — 처음으로 보여."
"뚜이야..."
"고마워. 너희가 같이 고쳐 줘서, 진짜로 보여."
아이들이 뚜이의 등을 토닥였어요. 모두 잠깐 말이 없었어요.
화면 속 별 지도가 천천히, 또렷이, 빛나고 있었어요.
🔧 더 알아보기 — '항목 바꾸기' 블록
리스트 관련 블록 중에 (리스트 ▼) 리스트의 (번호) 번째 항목을 (값) 으로 바꾸기 블록도 있어요.
리스트의 한 자리 값을 새 값으로 갱신하고 싶을 때 쓰는 블록이에요.
예: 학급 좌석표에서 한 자리만 바꾸기, 게임 점수판 갱신, 별 카탈로그의 거리 정정 등.
🌟 자기만의 갱신 프로그램을 만들어 보세요!
📝 WEEK 7 정리
(리스트 ▼) (작은 ▼) 수부터 나열하기크기순 정렬
(리스트 ▼) (작은 ▼) 수부터 나열하기 (B ▼) 도 같이쌍정렬
(리스트 ▼) 리스트 저장하기파일에 저장
(리스트 ▼) 리스트 불러오기파일에서 불러오기
다음 주 예고: 암호 해독기
우주선 블랙박스에 암호화된 메시지가 있어요!
고향에서 보낸 메시지를 해독해야 해요!
뚜이가 떨리는 목소리로 말했어요.
"고향에서 보낸 메시지... 해독하면 읽을 수 있는 거야?"
Week 8
고향에서 온 메시지
1장. 신호가 닿았어!
그날, 우주선 통신기에서 작은 빨간 불빛이 깜빡였어요.
오랫동안 꺼져 있던 신호등이었어요.
뚜이가 통신기 앞에 한참 멈춰 섰어요.
화면을 빤히 바라보더니, 떨리는 목소리로 말했어요.
아이들이 모여들었어요. 그런데 화면에 떠오른 메시지는 좀 이상했어요.
━━━ 수신 #0827 ━━━
보름달
고요한
파도
━━━━━━━━━━━━━━━━━
"이게 뭐야? 단어 세 개만?"
"의미가 안 통해. 보름달, 고요한, 파도... 그냥 풍경 단어들이잖아."
뚜이가 화면을 한참 노려봤어요. 그러더니 천천히 입을 열었어요.
"이건 암호야."
"암호? 진짜?"
"우주를 가로지르는 신호는 누구나 가로챌 수 있어. 그래서 고향 사람들은 옛날부터 각 단어의 첫 글자만 진짜 메시지로 쓰는 방식을 써."
"나머지 글자는?"
"그냥 숨김말이야. 진짜를 가려주는 껍데기 글자."
"잠깐... 그럼 첫 글자만 떼어내면?"
한 아이가 손가락으로 화면을 짚었어요.
"보름달, 고요한, 파도... 보. 고. 파. 보고파!"
"...맞아. 고향이 우리한테 짧게 '보고파'라고 보낸 거야."
뚜이가 손등으로 눈가를 살짝 훔쳤어요. 잠시 모두 말이 없었어요.
"답장... 답장을 꼭 보내야겠어. 그러려면 글자를 다루는 도구들이 잔뜩 필요해."
"그럼 받은 메시지부터 차근차근 풀어 보자. 직접 해독기를 만들어 보면서!"
⚠ [단어1], [단어2], [단어3] 변수를 먼저 만들어 두세요.
💡 숨김말 세 개를 입력받아, 각 단어의 첫 글자만 모아 진짜 메시지를 복원해요!
⚑ 클릭했을 때
숨김말 1? (예: 보름달) 라고 묻고 기다리기
단어1 ▼ 을(를) 대답 로 정하기
숨김말 2? (예: 고요한) 라고 묻고 기다리기
단어2 ▼ 을(를) 대답 로 정하기
숨김말 3? (예: 파도) 라고 묻고 기다리기
단어3 ▼ 을(를) 대답 로 정하기
파란색 ▼ 으로 ━━ 해독 결과 ━━ 말하기
진짜 메시지: 단어1 의 1 번째 글자단어2 의 1 번째 글자단어3 의 1 번째 글자 말하기
숨김말 1? (예: 보름달) 보름달
숨김말 2? (예: 고요한) 고요한
숨김말 3? (예: 파도) 파도
━━ 해독 결과 ━━
진짜 메시지: 보고파
"우와! 진짜로 '보고파'가 나왔어!"
"1번째 글자로 각 단어의 첫 자를 꺼내서 셋을 합친 거야. 도구 하나로 진짜 마음을 풀어낸 거지!"
그때 또 신호가 울렸어요. 통신기에 새 메시지가 떠올랐는데, 이번엔 좀 이상했어요.
📡 신호 수신
###보름달 고요한 파도###
"어, 이거 아까 그 단어들이잖아!"
"맞아. 고향이 또 한 번 보냈나 봐. 근데 이번엔 한 줄로 합쳐져서, 양 끝에 빈칸이랑 ### 잡음이 잔뜩 끼었네."
"왜 잡음이 끼지?"
"우주를 가로지르는 신호는 깨끗하게 올 때도 있지만, 잡음이 낄 때도 있어. 우리가 정리해서 핵심만 꺼내면 돼."
"어떻게 정리하지?"
"알고리즘은 간단해. 먼저 양 끝의 공백부터 지우자."
"그 다음은?"
"### 같은 잡음이 있는지 확인해 봐. 깨끗한 메시지일 수도 있으니까."
"있으면?"
"### 사이의 글자만 쏙 빼내면 돼!"
"없으면?"
"그냥 그대로 쓰면 되지!"
⚠ [원본], [정리됨], [길이], [핵심] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
고향에서 받은 메시지를 입력해 봐 라고 묻고 기다리기
원본 ▼ 을(를) 대답 로 정하기
정리됨 ▼ 을(를) 원본 의 앞뒤 빈칸 지우기 로 정하기
만약 정리됨 이(가) ### 을(를) 포함하는가? (이)라면
길이 ▼ 을(를) 정리됨 의 길이 로 정하기
핵심 ▼ 을(를) 정리됨 의 4 ~ 길이 - 3 번째 글자 로 정하기
아니면
받은 신호: 원본 말하기
빈칸 정리 후: 정리됨 말하기
초록색 ▼ 으로 핵심 메시지: 핵심 말하기
━━ 잡음 낀 메시지 ━━
고향에서 받은 메시지를 입력해 봐 ###보름달 고요한 파도###
받은 신호: ###보름달 고요한 파도###
빈칸 정리 후: ###보름달 고요한 파도###
핵심 메시지: 보름달 고요한 파도
[다시 ⚑]
━━ 깨끗한 메시지 ━━
고향에서 받은 메시지를 입력해 봐 보름달 고요한 파도
받은 신호: 보름달 고요한 파도
빈칸 정리 후: 보름달 고요한 파도
핵심 메시지: 보름달 고요한 파도
💡 왜 만약/아니면? ###이 있을 때만 앞 3글자·뒤 3글자를 잘라내야 해요. ###이 없는 깨끗한 메시지에 잘라내기 하면 진짜 글자가 잘려요!
왜 4 ~ (길이-3)인가? 앞 3글자(###)를 건너뛰니까 4번째부터 시작. 뒤 3글자(###)도 빼야 하니까 (전체 길이 - 3)번째에서 끝.
"와, 같은 코드인데 잡음이 있을 때도 없을 때도 다 잘 되네!"
"만약/아니면으로 두 경우를 다 처리한 거야. 고향에서 어떤 형태로 보내든, 우리는 핵심만 꺼낼 수 있어."
그때, 통신기가 또 한 번 깜빡였어요. 다음 메시지가 도착한 거예요.
Week 8
2장. 검색하고 바꾸기
화면에 두 번째 메시지가 떠올랐어요. 이번엔 암호가 아니라 좀 다른 모양이었어요.
글자 곳곳에 'OOO'이라는 빈칸이 뚫려 있었거든요.
OOO에게,
OOO, 우리 별에서 인사 보내요.
지구의 OOO도 잘 지내길 바라요.
다음에 또 연락해요!
편지 끝에 작은 글씨가 한 줄 적혀 있었어요.
「너희 학교 친구들에게도 함께 인사를 전해줘. 양식만 보낸다. 이름은 뚜이가 채워 넣어 줘.」
"어? 이건 첫 글자 암호가 아니네?"
"맞아. 첫 글자 암호는 '보고파' 같은 진짜 마음을 짧게 전할 때만 써. 양식이나 일상 정보는 그냥 평문으로 보내."
"아 그렇구나! 그럼 이건 평문 양식이야?"
"맞아. 고향에서 친구들 한 명 한 명한테 같은 인사를 전하고 싶대. 근데 이름을 모르니까, OOO 자리만 비워서 보낸 거야."
"근데 OOO이 세 군데나 있어. 일일이 바꿔야 해?"
"그게 손으로 하면 귀찮지. 그래서 바꾸기 블록이 있어!"
"바꾸기 블록?"
"예를 들어 (키위)에서 (키)를 (거)로 바꾸기 하면 "거위"가 되는 식이야. 한 번만 쓰면 모든 OOO이 한꺼번에 바뀌어!"
⚠ [템플릿], [완성] 변수를 먼저 만들어 두세요.
💡 친구 한 명을 위해 편지를 채워봐요. OOO이 여러 곳에 있어도 바꾸기 블록 한 번이면 끝!
⚑ 클릭했을 때
템플릿 ▼ 을(를) OOO에게, OOO, 우리 별에서 인사 보내요. 지구의 OOO도 잘 지내길 바라요. 다음에 또 연락해요! 로 정하기
친구 이름을 입력하세요 라고 묻고 기다리기
완성 ▼ 을(를) 템플릿 에서 OOO 를 대답 로 바꾸기 로 정하기
━━ 편지 완성 ━━ 말하기
완성 말하기
친구 이름을 입력하세요 서영
━━ 편지 완성 ━━
서영에게, 서영, 우리 별에서 인사 보내요. 지구의 서영도 잘 지내길 바라요. 다음에 또 연락해요!
"우와! OOO 세 곳이 한 번에 다 '서영'으로 바뀌었어!"
"바꾸기 블록은 그렇게 강력해. 모든 OOO을 다 찾아서 바꿔주거든."
"이거 우리 반 친구 30명한테 다 보낼 수 있겠다!"
"바로 그거야. 친구 이름만 바꿔서 30번 실행하면 30장이 뚝딱!"
Week 8
3장. 모범 학생 상장
편지 30장 만들기를 끝낸 뒤, 한 아이가 학기 말 사진을 보더니 말했어요.
"우리 반 모범상 줄 때, 선생님이 30장을 직접 손으로 다 쓰시잖아.
이름이랑 잘한 과목만 다르고, 나머지는 똑같은데..."
"오! 그것도 양식 만들어서 빈칸만 채우면 되겠다!"
"맞아. 다만 이번엔 받아야 할 정보가 더 많아.
2장 편지는 이름 하나만 받아서 채웠지. 상장은 이름·과목 두 가지를 받아서 각자 자기 빈칸에 채워야 해."
"아, 그러면 묻기도 두 번, 바꾸기도 두 번 쓰는 거구나!"
"정확해. 양식 안 같은 단어가 여러 자리에 있어도 2장에서 본 그대로야. 한 번의 바꾸기가 모든 자리를 채우니까."
⚠ [템플릿], [완성] 변수를 먼저 만들어 두세요.
💡 양식 안에 같은 단어가 여러 자리에 있어도 바꾸기 한 번이면 모두 채워져요!
양식: [이름] 4자리, [과목] 3자리 → 바꾸기 호출 2번으로 모든 자리 완성.
⚑ 클릭했을 때
템플릿 ▼ 을(를) ━━━ 모범 학생 상장 ━━━ / [이름] / 위 학생은 평소 [과목] 시간에 보여 준 노력으로 모범 학생의 모습을 보여 주었기에 이 상을 수여합니다. / [이름] 학생의 [과목] 활동은 우리 반의 자랑이며, 앞으로도 [이름] 학생이 [과목] 시간을 더욱 사랑하기를 바랍니다. / [이름] 학생, 정말 자랑스럽습니다! 로 정하기
학생 이름? 라고 묻고 기다리기
완성 ▼ 을(를) 템플릿 에서 [이름] 를 대답 로 바꾸기 로 정하기
잘한 과목? 라고 묻고 기다리기
완성 ▼ 을(를) 완성 에서 [과목] 를 대답 로 바꾸기 로 정하기
파란색 ▼ 으로 완성 말하기
학생 이름? 김민수
잘한 과목? 수학
━━━ 모범 학생 상장 ━━━
김민수
위 학생은 평소 수학 시간에 보여 준 노력으로 모범 학생의 모습을 보여 주었기에 이 상을 수여합니다.
김민수 학생의 수학 활동은 우리 반의 자랑이며, 앞으로도 김민수 학생이 수학 시간을 더욱 사랑하기를 바랍니다.
김민수 학생, 정말 자랑스럽습니다!
"우와! '김민수'를 한 번만 바꿨는데 양식 안 4자리에 다 들어갔어!"
"그게 바로 바꾸기의 진짜 힘이야. 한 번 호출 → 모든 자리 동시 변경.
빈칸 종류가 2개니까 호출도 2번이면 끝!"
"우리 반 30명한테 다 쓸 수 있겠다. 이름·과목만 30번 입력!"
"맞아. 손으로 30장 쓰는 것보다 훨씬 빠르고, 글자 한 글자도 안 빠뜨려."
Week 8
4장. 맞춤법 간이 검사기
모범 학생 상장이 자동으로 만들어지는 걸 보고, 한 아이가 또 떠올렸어요.
"이거 우리 글쓰기에도 쓸 수 있겠다.
자주 틀리는 맞춤법 자동으로 고쳐주는 거! 그것도 같은 원리 아니야?"
"맞아. 그런데 한 가지가 더 필요해.
'바꾸기'만 쓰면 틀린 부분이 있든 없든 그냥 실행돼. 고쳤다는 알림도 못 띄우고, 몇 종류의 오류를 고쳤는지 셀 수도 없거든.
그래서 검사하는 도구도 같이 써야 해. 그게 포함하는가?야."
"포함하는가?"
"문장에 어떤 단어가 들어있는지 검사해주는 도구야. 예를 들어 (바나나)이(가) (나)을(를) 포함하는가?라고 하면, '나'가 들어있으니까 참이라고 답해.
띄어쓰기나 길이 신경 안 쓰고 그냥 일부만 같으면 잡아내."
흔히 틀리는 맞춤법을 자동으로 잡아주는 도구를 만들어요!
"됬→됐", "몇일→며칠" 같은 흔한 실수를 검사하면서 몇 종류의 오류가 있는지도 함께 세요.
⚠ [문장], [오류수] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
검사할 문장을 입력하세요 라고 묻고 기다리기
문장 ▼ 을(를) 대답 로 정하기
오류수 ▼ 을(를) 0 로 정하기
만약 문장 이(가) 됬 을(를) 포함하는가? (이)라면
오류수 ▼ 을(를) 1 만큼 바꾸기
문장 ▼ 을(를) 문장 에서 됬 를 됐 로 바꾸기 로 정하기
만약 문장 이(가) 몇일 을(를) 포함하는가? (이)라면
오류수 ▼ 을(를) 1 만큼 바꾸기
문장 ▼ 을(를) 문장 에서 몇일 를 며칠 로 바꾸기 로 정하기
만약 오류수 = 0 (이)라면
초록색 ▼ 으로 [O] 맞춤법 오류가 없어요! 말하기
아니면
수정된 문장: 문장 말하기
총 오류수종류의 오류를 고쳤어요. 말하기
검사할 문장을 입력하세요 연락 됬어? 몇일 동안 기다렸어.
수정된 문장: 연락 됐어? 며칠 동안 기다렸어.
총 2종류의 오류를 고쳤어요.
[다시 ⚑]
검사할 문장을 입력하세요 오늘 날씨 진짜 좋다!
[O] 맞춤법 오류가 없어요!
Week 8
5장. 고향에 답장 보내기
모범 학생 상장도, 맞춤법 검사기도. 글자 도구로 만든 것들이 점점 쌓여갔어요.
한참 후, 뚜이가 다시 통신기 앞에 섰어요. 이번엔 표정이 달랐어요. 떨림 대신 잔잔한 웃음이 떠올라 있었어요.
"이제 답장을 보낼 수 있어.
첫 글자 암호도 풀었고, 양식도 채울 수 있게 됐으니까."
"우리도 같이 답장 쓸까?"
"좋아. 한 명씩 자기가 만든 도구로 메시지를 보내자."
아이들이 키보드 앞에 둘러앉았어요.
누군가는 편지 양식에 친구 이름을 채워 넣고,
또 누군가는 추신 끝자리에 첫 글자 암호로 작은 마음을 살짝 숨겨 두었어요.
모두 함께 발송 버튼을 눌렀어요.
화면에 답장이 한 줄씩 떠올랐어요.
겉은 평범한 인사처럼 보였지만, 추신 끝자리에는 1장의 첫 글자 암호로 진짜 마음을 살짝 숨겨 두었어요.
━━━ 발신 #0001 ━━━
고향 친구들에게,
다들 잘 지내요!
지구에서, 사랑을 담아 보냅니다.
함께 인사하는 친구들:
- 김민수 (5학년 3반)
- 박서영 (5학년 3반)
- 이지호 (6학년 2반)
곧 또 연락해요!
[추신] 행운의 복숭아 해바라기.
━━━━━━━━━━━━━━━━━
"진짜 답장이 됐어!"
"우리도 고향처럼 첫 글자 암호로 답장을 보낼 수 있게 됐어."
"그리고 추신 좀 봐. '행운의 복숭아 해바라기'.
고향이 짧게도, 길게도 '보고파'라고 했으니까, 우리는 '행복해'라고 답한 거야!"
"같은 도구로, 짧지만 진짜 마음을 담아서."
뚜이가 통신기 위에 손을 올렸어요. 작은 빨간 불빛이 한 번 깜빡, 두 번 깜빡.
그러더니 초록색으로 바뀌었어요. 발송 완료.
잠시 침묵이 흘렀어요. 모두 화면을 가만히 바라봤어요.
뚜이가 천천히 입을 열었어요.
"고향이 멀어도, 글자를 다루는 도구만 있으면 닿을 수 있어.
오늘 너희가 그걸 증명한 거야."
키보드 소리가 우주선 안에 작게 울려 퍼졌어요.
이번 주 도구로 만들 수 있는 게 정말 많아요. 학교에서, 친구들과, 일상에서. 실전 프로젝트로 더 다양한 응용을 직접 써봐요!
📝 WEEK 8 정리
(보름달) 의 (1) 번째 글자 → "보"해당 자리 글자 하나
(보름달) 의 길이 → 3글자가 몇 개인지
(안녕하세요) 의 (1) ~ (3) 번째 글자 → "안녕하"구간을 통째로 잘라내기
( 안녕 ) 의 앞뒤 빈칸 지우기 → "안녕"양쪽 끝 빈칸 제거
(바나나) 이(가) (나) 을(를) 포함하는가? → 참단어가 들어있는지 검사
(키위) 에서 (키) 를 (거) 로 바꾸기 → "거위"단어를 모두 새 단어로 교체
💡 한 가지 더! 텍스트 카테고리에는 같은 글자가 여러 번 나올 때 몇 번째로 나온 것의 자리를 찾아주는 도구도 있어요.
• (토마토)에서 (1)번째 (토)의 위치 → 1 (첫 번째 '토'는 1번 자리)
• (토마토)에서 (2)번째 (토)의 위치 → 3 (두 번째 '토'는 3번 자리)
• (토마토)에서 (3)번째 (토)의 위치 → 0 (세 번째 '토'는 없음 → 0)
호기심 있는 친구는 직접 실험해 봐요!
다음 주 예고: 자동 조종 장치
우주선이 혼자 날려면 마우스와 키보드를 코드가 대신 조종해야 해요.
다음 주에는 컴퓨터가 스스로 움직이는 걸 보게 될 거예요!
실전 프로젝트 (선택)
실전 ① 리스트로 만드는 맞춤법 검사기 📎 week8-6.tg
4장의 검사기는 한계가 있어요. 새 맞춤법을 추가하려면 만약 블록을 또 늘려야 하거든요.
이번엔 리스트와 반복문, 저장하기·불러오기로, 규칙이 30개든 300개든 코드는 그대로인 검사기를 만들어요!
⚠ [틀린말리스트], [바른말리스트] 리스트 두 개와 [문장], [번호] 변수를 먼저 만들어 두세요.
💡 두 프로그램으로 나누기
한 프로그램에 '규칙 추가'랑 '검사·수정' 둘 다 넣으면 코드가 복잡해져요. 그래서 두 프로그램으로 나눠 만들어요.
① [규칙 추가 프로그램]: 새 맞춤법 규칙을 두 리스트에 한 쌍 추가하고 저장.
② [검사 프로그램]: 저장된 리스트를 불러와 문장을 자동 검사·수정.
두 프로그램이 같은 리스트를 저장·불러오기로 공유해요. 이게 진짜 프로그램의 동작 방식!
① [규칙 추가 프로그램]
⚑ 클릭했을 때
틀린말리스트 ▼ 리스트 불러오기
바른말리스트 ▼ 리스트 불러오기
새 틀린 말? [예: 됬] 라고 묻고 기다리기
대답 을(를) 틀린말리스트 ▼ 에 추가하기
새 바른 말? [예: 됐] 라고 묻고 기다리기
대답 을(를) 바른말리스트 ▼ 에 추가하기
틀린말리스트 ▼ 리스트 저장하기
바른말리스트 ▼ 리스트 저장하기
초록색 ▼ 으로 [저장됨] 규칙이 추가됐어요! 말하기
━━ 규칙 추가 1회차 ━━
새 틀린 말? [예: 됬] 됬
새 바른 말? [예: 됐] 됐
[저장됨] 규칙이 추가됐어요!
━━ 규칙 추가 2회차 ━━
새 틀린 말? [예: 됬] 몇일
새 바른 말? [예: 됐] 며칠
[저장됨] 규칙이 추가됐어요!
② [검사 프로그램] (코드를 위 [규칙 추가 프로그램]에서 아래로 바꿔서 ⚑ 클릭!)
⚑ 클릭했을 때
틀린말리스트 ▼ 리스트 불러오기
바른말리스트 ▼ 리스트 불러오기
검사할 문장을 입력하세요 라고 묻고 기다리기
문장 ▼ 을(를) 대답 로 정하기
번호 ▼ 을(를) 1 로 정하기
틀린말리스트 ▼ 의 길이 번 반복하기
문장 ▼ 을(를) 문장 에서 틀린말리스트 ▼ 리스트의 번호 번째 항목 를 바른말리스트 ▼ 리스트의 번호 번째 항목 로 바꾸기 로 정하기
번호 ▼ 을(를) 1 만큼 바꾸기
초록색 ▼ 으로 결과: 문장 말하기
검사할 문장을 입력하세요 연락 됬어? 몇일 동안 기다렸어.
결과: 연락 됐어? 며칠 동안 기다렸어.
🌟 리스트의 힘! 새 맞춤법은 [규칙 추가 프로그램]을 다시 실행해서 한 쌍씩 늘리면 돼요. 검사 코드는 그대로인데도 자동으로 새 규칙까지 검사해 줘요. 이게 "확장 가능한 프로그램"의 핵심이에요!
Week 9
자동 조종
1장. 뚜이의 키보드를 빌려줄게
고향에 답장을 보낸 다음 날, 뚜이가 평소와 다르게 키보드를 무릎 위가 아니라 책상 한가운데에 내려놓고 있었어요.
늘 꼭 안고 다니던 그 키보드를 말이에요.
"뚜이야? 키보드 왜 거기에 두고 있어?"
"오늘은 이걸 너희한테 빌려줄 거야."
"지금까지는 너희가 블록을 조립하면 내가 키보드를 톡톡 눌러서 코드를 실행했잖아.
근데 오늘은 반대야. 컴퓨터가 키보드와 마우스를 대신 움직이게 할 거야."
"컴퓨터가... 키보드를 친다고?"
"응. 마우스를 움직이고, 키를 누르고, 글자를 입력하고, 화면 색깔까지 보고.
사람이 안 해도 컴퓨터가 혼자 일하는 거야. 이게 바로 '자동화'야."
⚑ 클릭했을 때
x: 100 y: 200 (으)로 마우스 이동하기
실행하면 마우스 커서가 (100, 200) 위치로 순간이동해요!
화면의 왼쪽 위가 (0, 0)이고, 오른쪽으로 가면 X가, 아래로 가면 Y가 커져요.
"우와! 마우스가 혼자 움직였어! 나 안 건드렸는데!"
한 번 클릭하려면 버튼 누르기 → 잠깐 → 버튼 떼기의 세 단계가 필요해요.
그런데 버튼을 누른 채로 마우스를 옮긴 다음 떼면? 그게 바로 드래그! 그림판에서 선을 그리는 그 동작이에요.
⚠ 그림판을 열어 두세요. 5초 안에 그림판 창이 활성화되어야 해요!
⚑ 클릭했을 때
5 초 기다리기
x: 300 y: 300 (으)로 마우스 이동하기
왼쪽 마우스 버튼 누르기
x: 1000 y: 1000 (으)로 마우스 이동하기
마우스 버튼 떼기
그림판 위에 (300, 300)에서 (1000, 1000)까지 사선이 그려짐!
→ 마우스를 누른 채로 끌어서 떼는 = 드래그
💡 "왼쪽 ▼"은 드롭다운이에요 — 클릭하면 "오른쪽"으로도 바꿀 수 있어요. 마우스 우클릭이 필요할 때 쓰면 돼요.
드래그는 그림판뿐 아니라 창 옮기기·파일 끌어 놓기·텍스트 선택 같은 일상 동작에 모두 쓰여요.
Week 9
2장. 타이핑 로봇
"마우스는 됐고, 이번엔 키보드 차례야!
키보드도 컴퓨터가 직접 누를 수 있어."
"그럼 'A' 한 글자씩 한 글자씩 다 누르는 거야?"
"한 글자씩도 가능하고, 긴 문장을 한 번에 입력하는 블록도 있어. 둘 다 보여줄게."
⚑ 클릭했을 때
5 초 기다리기
A 키 누르기
A 키 떼기
5초 안에 메모장을 열어 커서를 놓으세요. 한 글자가 입력돼요!
메모장 (Caps Lock 꺼짐):
a
메모장 (Caps Lock 켜짐):
A
💡 [A] 키 누르기는 실제로 키보드의 'A' 키를 누르는 것이에요. 그래서 결과는 Caps Lock 상태에 따라 달라져요 — 꺼져 있으면 소문자 a, 켜져 있으면 대문자 A. 사람이 직접 누르는 거랑 똑같죠.
⚑ 클릭했을 때
5 초 기다리기
안녕하세요! 저는 뚜이의 자동 타이핑 로봇입니다. 글자 입력하기
5초 안에 메모장에 커서를 놓으세요. 문장이 자동으로 쫘르르 입력돼요!
메모장:
안녕하세요! 저는 뚜이의 자동 타이핑 로봇입니다.
"우와! 글자가 저절로 쳐진다! 유령이 타이핑하는 것 같아!"
💡 "글자 입력하기"는 긴 문장을 한 번에 보내요. 한 글자씩 누를 필요가 없어 빠르고 편해요.
줄을 바꿀 땐 Enter 키를 누르고 → 떼야 해요. 글자 입력과 키 누르기를 번갈아 쓰면 여러 줄 자동 입력이 됩니다.
⚑ 클릭했을 때
5 초 기다리기
1교시: 국어 글자 입력하기
Enter 키 누르기
Enter 키 떼기
2교시: 수학 글자 입력하기
Enter 키 누르기
Enter 키 떼기
3교시: 과학 글자 입력하기
메모장:
1교시: 국어
2교시: 수학
3교시: 과학
Week 9
3장. 단축키와 클립보드
"단축키 알지? Ctrl+A는 전체 선택, Ctrl+C는 복사, Ctrl+V는 붙여넣기.
자동화 블록으로 단축키도 누를 수 있어."
"두 개를 동시에 누르려면 어떻게 해?"
"Ctrl을 먼저 누른 채로 'A'를 누르고, 'A'를 떼고, 마지막에 Ctrl을 떼는 순서야!"
⚑ 클릭했을 때
5 초 기다리기
Ctrl 키 누르기
A 키 누르기
A 키 떼기
Ctrl 키 떼기
메모장에 글이 있는 상태로 5초 안에 그 창에 커서를 놓으세요. 글이 전부 파란색으로 선택돼요!
실행 결과:
메모장 안 모든 글이 파란색으로 선택됨 (Ctrl+A 효과)
💡 순서가 중요해요! Ctrl 누르고 → A 누르고 → A 떼고 → Ctrl 떼기. 사람이 단축키를 누를 때 손가락 순서랑 똑같아요.
메모장에 글을 한 줄 쓰고, 그 글을 자동으로 복사해서 3번 더 붙여넣어 봐요.
⚑ 클릭했을 때
5 초 기다리기
Ctrl 키 누르기
A 키 누르기
A 키 떼기
Ctrl 키 떼기
Ctrl 키 누르기
C 키 누르기
C 키 떼기
Ctrl 키 떼기
3 번 반복하기
Ctrl 키 누르기
V 키 누르기
V 키 떼기
Ctrl 키 떼기
Enter 키 누르기
Enter 키 떼기
0.2 초 기다리기
Ctrl+A(전체 선택) → Ctrl+C(복사) → Ctrl+V+Enter를 3번 반복!
처음 메모장:
안녕하세요
실행 후 메모장:
안녕하세요
안녕하세요
안녕하세요
"3번을 30번으로 바꾸면 30번 되는 거야?" "당연하지!"
"Ctrl+C로 복사하면 컴퓨터가 그 글을 잠깐 기억하고 있잖아. 그 기억을 프로그램도 꺼내 볼 수 있어?"
"응! '복사한 내용' 블록이 그 기억을 꺼내 줘!"
⚑ 클릭했을 때
5초 안에 아무 문장이나 Ctrl+C로 복사하세요! 말하기
5 초 기다리기
복사한 내용: 복사한 내용 말하기
5초 안에 아무 문장이나 Ctrl+C로 복사하세요!
복사한 내용: 오늘은 즐거운 코딩 시간!
Week 9
4장. 화면을 보는 프로그램
"마우스랑 키보드는 알겠어. 근데 컴퓨터가 화면을 보고 반응할 수도 있어?"
"좋은 질문이야! '색깔' 블록이 그 일을 해.
화면의 어떤 점을 가리키면, 그 자리의 색을 알려줘.
우주선의 외부 카메라 같은 거야 — 본 걸 가지고 다음 행동을 정할 수 있어."
"그게 왜 신기해?"
"잘 봐. 이거랑 키보드 자동화를 합치면..."
⚑ 클릭했을 때
5초 안에 화면에 보고 싶은 그림이나 사이트를 띄워 주세요! 말하기
5 초 기다리기
x:500 y:400 자리의 색은: x: 500 y: 400 의 색깔 말하기
x:500 y:400 자리의 색은: #535353
"#535353?" "검은색에 가까운 회색이라는 뜻이야. 이걸 비교해서 화면 상태를 알아낼 수 있어!"
⚠ [배경색], [지금색] 변수를 먼저 만들어 두세요.
크롬 공룡 게임은 인터넷이 끊겼을 때 나오는 작은 게임이에요. 주소창에 chrome://dino를 치고 Space로 시작! 공룡이 달리고, 선인장이 다가오면 점프해야 해요.
우리 프로그램의 작전: 공룡 앞쪽 한 점을 계속 감시 → 색이 바뀌면(=선인장 도착!) → Space 키로 점프!
⚑ 클릭했을 때
5초 안에 크롬 공룡 게임을 띄우고 Space로 시작하세요! 말하기
5 초 기다리기
배경색 ▼ 을(를) x: 400 y: 365 의 색깔 로 정하기
무한 반복하기
지금색 ▼ 을(를) x: 400 y: 365 의 색깔 로 정하기
만약 지금색 = 배경색 이(가) 아니다 (이)라면
💡 좌표 (400, 365)는 예시입니다! 화면 크기와 브라우저 창 크기에 따라 달라요. 공룡 앞쪽의 빈 길에 해당하는 좌표를 골라야 해요.
"내 프로그램이 게임을 한다고?! 내가 안 누르는데 공룡이 점프해!"
"컴퓨터가 화면을 보고, 판단해서, 손가락을 대신 움직여 주는 거야.
이게 진짜 자동화의 힘이지."
Week 9
5장. ☁️ 원격 조종 친구
"이번엔 정말 신기한 미션이야!
한 명은 리모컨 보내는 컴퓨터가 되고, 다른 한 명은 리모컨 받는 컴퓨터가 돼.
A의 키 입력이 ☁️ 클라우드로 날아가서 B의 키보드를 자동으로 누르게 할 거야!"
"진짜 친구 컴퓨터를 내가 조종한다고...?"
"두 우주선이 통신하면서 한 쪽이 다른 쪽을 조종하는 것과 같지!"
⚠ 짝꿍 둘이 똑같이 약속한 클라우드 변수를 각자 만들어 두세요. 예: 민수·지유 짝이면 둘 다 [☁️ 민수지유_선택]. 아래 블록에서는 [☁️ 선택]로 간단히 표시합니다.
[A학생: 리모컨 — 친구에게 키 명령을 보냄]
⚑ 클릭했을 때
짝꿍 둘이 똑같이 약속한 클라우드 변수를 각자 만들어 두세요. 예: 민수·지유 짝이면 둘 다 [☁️ 민수지유_선택]. 아래 블록에서는 [☁️ 선택]로 간단히 표시합니다. 말하기
무한 반복하기
A와 B 중 하나를 입력하세요. 라고 묻고 기다리기
☁️ 선택 ▼ 을(를) 대답 로 정하기
[송신] ☁️ 선택 보냄 말하기
[B학생: 친구 명령에 따라 자기 키보드를 자동으로 누르는 컴퓨터]
⚑ 클릭했을 때
짝꿍 둘이 똑같이 약속한 클라우드 변수를 각자 만들어 두세요. 예: 민수·지유 짝이면 둘 다 [☁️ 민수지유_선택]. 아래 블록에서는 [☁️ 선택]로 간단히 표시합니다. 말하기
☁️ 선택 ▼ 가 바뀌었을 때
[수신] ☁️ 선택 말하기
만약 ☁️ 선택 = A (이)라면
안녕하세요 글자 입력하기
Enter 키 누르기
Enter 키 떼기
만약 ☁️ 선택 = B (이)라면
반갑습니다 글자 입력하기
Enter 키 누르기
Enter 키 떼기
━ A학생 화면 ━
짝꿍 둘이 똑같이 약속한 클라우드 변수를 각자 만들어 두세요. 예: 민수·지유 짝이면 둘 다 [☁️ 민수지유_선택]. 아래 블록에서는 [☁️ 선택]로 간단히 표시합니다.
A와 B 중 하나를 입력하세요. A
[송신] A 보냄
━ B학생 화면 ━
짝꿍 둘이 똑같이 약속한 클라우드 변수를 각자 만들어 두세요. 예: 민수·지유 짝이면 둘 다 [☁️ 민수지유_선택]. 아래 블록에서는 [☁️ 선택]로 간단히 표시합니다.
[수신] A
→ B의 메모장에 "안녕하세요" + 줄바꿈 자동 입력!
"내 컴퓨터에서 누른 키가 친구 메모장에 찍혔어!"
"두 컴퓨터가 인터넷으로 연결돼서, 한 쪽이 다른 쪽 키보드를 조종하는 거야. 진짜 자동 조종이지!"
Week 9
6장. 마지막 시스템...
활동을 모두 마친 뒤, 뚜이가 잠시 책상 가장자리에 앉아 키보드를 가만히 바라봤어요.
"9주 전엔 너희가 '말하기' 블록 하나도 신기해했어.
그런데 오늘은... 컴퓨터가 화면을 보고, 스스로 게임을 플레이하는 프로그램까지 만들었어."
"이 키보드를 잠깐 빌려줬을 뿐인데,
너희가 만든 건 내가 상상한 것보다 훨씬 대단해."
그런데 뚜이의 표정이 갑자기 진지해졌어요.
"마지막 하나가 남았어."
"뭔데?"
뚜이가 잠시 말을 멈추고, 조용히 자기 머리를 가리키며 말했어요.
"...내 기억이야."
"마지막 시스템은 기억 장치.
내 기억이 완전히 돌아와야... 진짜로 집에 갈 수 있어."
"너희라면... 할 수 있을 거야."
📝 WEEK 9 정리 — 자동화 8 블록
x: (숫자) y: (숫자) (으)로 마우스 이동하기마우스를 지정 좌표로 이동
(왼쪽 ▼) 마우스 버튼 누르기마우스 버튼을 누른 상태로 유지
마우스 버튼 떼기눌러둔 마우스 버튼을 뗌
(키 ▼) 키 누르기키보드 키를 누른 상태로 유지
(키 ▼) 키 떼기눌러둔 키를 뗌
(텍스트) 글자 입력하기문장을 한 번에 입력
x: (숫자) y: (숫자) 의 색깔화면 한 점의 색을 알려주는 값
복사한 내용클립보드 글자를 알려주는 값
다음 주 — 마지막: 기억 장치
뚜이의 기억을 되찾아 주세요.
10주간 배운 모든 것이 필요합니다.
Week 10
발사!
1장. 마지막 미션
뚜이가 오늘따라 조용했어요.
평소에 수다쟁이였던 뚜이가, 키보드를 무릎 위에 올려놓고 하늘만 바라보고 있었어요.
"뚜이야? 괜찮아?"
"......"
"오늘이 마지막이야."
"마지막?"
"마지막 시스템. 기억 장치.
이게 고쳐지면 에너지가 100%가 돼. 그러면 나는..."
"집에 가는 거지?"
"...응."
잠시 침묵이 흘렀어요. 그리고 한 아이가 밝게 웃으며 말했어요.
"그러면 빨리 고치자! 뚜이 집에 보내줘야지!"
"맞아! 우리가 고쳐줄게!"
뚜이가 코를 킁킁거렸어요.
"기억 장치를 고치려면, 내 기억을 하나씩 되살려야 해.
지난 9주 동안 배운 것들... 기억하지?"
Week 10
2장. 기억 점검
"좋아! 하나씩 확인해 볼게.
1주차부터 9주차까지 고친 시스템을 점검하자!"
⚠ [문제] 리스트, [정답] 리스트, [점수], [번호] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
문제 ▼ 전체 삭제
정답 ▼ 전체 삭제
1주차: 글자를 화면에 보여주는 블록은? 을(를) 문제 ▼ 에 추가하기
말하기 을(를) 정답 ▼ 에 추가하기
2주차: 조건에 따라 다르게 행동하는 블록은? 을(를) 문제 ▼ 에 추가하기
만약 을(를) 정답 ▼ 에 추가하기
3주차: 같은 코드를 여러 번 실행하는 블록은? 을(를) 문제 ▼ 에 추가하기
반복 을(를) 정답 ▼ 에 추가하기
4주차: 예측할 수 없는 숫자를 만드는 블록은? 을(를) 문제 ▼ 에 추가하기
난수 을(를) 정답 ▼ 에 추가하기
5주차: 코드를 묶어 이름을 붙이는 블록은? 을(를) 문제 ▼ 에 추가하기
나만의 블록 을(를) 정답 ▼ 에 추가하기
6주차: 여러 데이터를 하나로 묶는 것은? 을(를) 문제 ▼ 에 추가하기
리스트 을(를) 정답 ▼ 에 추가하기
7주차: 리스트를 크기순으로 나열하는 것은? 을(를) 문제 ▼ 에 추가하기
정렬 을(를) 정답 ▼ 에 추가하기
8주차: 글자를 밀어서 암호를 만드는 방법은? 을(를) 문제 ▼ 에 추가하기
시저 암호 을(를) 정답 ▼ 에 추가하기
9주차: 컴퓨터가 사람 대신 일하는 것은? 을(를) 문제 ▼ 에 추가하기
자동화 을(를) 정답 ▼ 에 추가하기
점수 ▼ 을(를) 0 로 정하기
번호 ▼ 을(를) 1 로 정하기
뚜이의 기억 점검! 9문제를 맞혀 주세요! 말하기
======================== 말하기
9 번 반복하기
문제 리스트의 번호 번째 항목 ▼ 라고 묻고 기다리기
만약 대답 이(가) 정답 ▼ 리스트의 번호 번째 항목 을(를) 포함하는가? (이)라면
[O] 기억 복구! 말하기
점수 ▼ 을(를) 1 만큼 바꾸기
아니면
정답은 '정답 ▼ 리스트의 번호 번째 항목'였어! 말하기
번호 ▼ 을(를) 1 만큼 바꾸기
======================== 말하기
기억 복구율: 9개 중 점수개 복구! 말하기
뚜이의 기억 점검! 9문제를 맞혀 주세요!
========================
1주차: 글자를 화면에 보여주는 블록은? → 말하기
[O] 기억 복구!
2주차: 조건에 따라 다르게 행동하는 블록은? → 만약
[O] 기억 복구!
...
========================
기억 복구율: 9개 중 9개 복구!
뚜이의 기억이 또렷해지고 있어요!
아이들이 하나씩 맞출 때마다 뚜이의 눈이 밝아졌어요.
"말하기... 맞아, 내가 처음으로 말할 수 있었던 날."
"만약... 뜨거운 보온병을 만진 날."
"반복... 반성문 100번 쓰던 날."
"난수... 가위바위보에서 친구한테 진 날."
"너희와 보낸 시간이... 전부 기억나."
Week 10
3장. 발사 카운트다운 시스템
"진짜 우주선 발사처럼! 10초 카운트다운에
각 시스템이 하나씩 점검되는 발사 시퀀스를 만들자!"
"기억은 돌아왔어! 이제 발사 준비를 해야 해.
카운트다운 시스템을 만들어 줄래?
진짜 우주선 발사처럼!"
⚠ [시스템] 리스트, [번호], [초], [채움], [빈칸], [퍼센트] 변수를 먼저 만들어 두세요.
⚑ 클릭했을 때
=== 뚜이 우주선 발사 시퀀스 === 말하기
1 초 기다리기
시스템 점검 시작... 말하기
1 초 기다리기
시스템 ▼ 전체 삭제
통신 장치 을(를) 시스템 ▼ 에 추가하기
판단 장치 을(를) 시스템 ▼ 에 추가하기
반복 엔진 을(를) 시스템 ▼ 에 추가하기
오락 장치 을(를) 시스템 ▼ 에 추가하기
도구 제작기 을(를) 시스템 ▼ 에 추가하기
화물 관리 을(를) 시스템 ▼ 에 추가하기
항법 DB 을(를) 시스템 ▼ 에 추가하기
암호 해독기 을(를) 시스템 ▼ 에 추가하기
자동 조종 을(를) 시스템 ▼ 에 추가하기
기억 장치 을(를) 시스템 ▼ 에 추가하기
번호 ▼ 을(를) 1 로 정하기
10 번 반복하기
시스템 ▼ 리스트의 번호 번째 항목 ......... OK! 말하기
0.3 초 기다리기
번호 ▼ 을(를) 1 만큼 바꾸기
전 시스템 정상! 말하기
1 초 기다리기
======================== 말하기
카운트다운 시작! 말하기
1 초 기다리기
초 ▼ 을(를) 10 로 정하기
10 번 반복하기
채움 ▼ 을(를) 로 정하기
빈칸 ▼ 을(를) 로 정하기
퍼센트 ▼ 을(를) 10 - 초 × 10 로 정하기
10 - 초 번 반복하기
채움 ▼ 을(를) 채움█ 로 정하기
초 번 반복하기
빈칸 ▼ 을(를) 빈칸░ 로 정하기
만약 초 < 4 (이)라면
빨간색 ▼ 으로 초! 채움빈칸 퍼센트% 말하기
아니면
초 ▼ 을(를) -1 만큼 바꾸기
1 초 기다리기
======================== 말하기
빨간색 ▼ 으로 [로켓] 발사!!! 말하기
=== 뚜이 우주선 발사 시퀀스 ===
시스템 점검 시작...
통신 장치 ......... OK!
판단 장치 ......... OK!
...
기억 장치 ......... OK!
전 시스템 정상!
========================
카운트다운 시작!
10 ░░░░░░░░░░ 0%
9 █░░░░░░░░░ 10%
...
3! ███████░░░ 70%
2! ████████░░ 80%
1! █████████░ 90%
========================
[로켓] 발사!!!
"우와! 진짜 우주선 발사 같아!
시스템 점검에 10주간 고친 것들이 다 나와!"
Week 10
4장. 종합 프로젝트
"발사 준비가 끝나기 전에, 마지막으로 하나만 더 부탁할게.
너희가 직접 만들고 싶은 프로그램을 하나 만들어 줘.
아무거나 좋아. 게임이든, 도구든, 장난이든.
10주 동안 배운 걸 너희 마음대로 합쳐서!"
자유 프로젝트 아이디어
1. "뚜이 기억력 게임" — 리스트에 단어 5개 → 3초간 보여주기 → 맞히기
2. "우주 여행 시뮬레이터" — 행성 3개 중 선택 → 미니 퀴즈 → 점수에 따라 다른 엔딩
3. "자동 일기 작성 도우미" — 날짜/날씨/기분/한 일 입력 → 자동 일기 형식 출력
4. "☁️ 반 친구 추천 시스템" — 좋아하는 것 입력 → ☁️에 저장 → 비슷한 친구 찾기
5. "나만의 게임 센터" — 숫자 맞히기 + 퀴즈 + 가위바위보를 합쳐서!
💡 프로젝트 순서
1. 기획 (5분): 뭘 만들 건지, 어떤 블록이 필요한지 적기
2. 제작 (30분): 만들면서 테스트
3. 테스트 (10분): 친구에게 써보게 하기
4. 발표 (각 2분): 다른 친구들 앞에서 시연!
아이들이 저마다 프로젝트를 만들기 시작했어요.
어떤 아이는 행성 탐험 게임을, 어떤 아이는 자동 시간표 + 알림 시스템을,
어떤 아이는 뚜이와의 추억을 퀴즈로 만들었어요.
뚜이가 모든 발표를 지켜보았어요.
키보드를 꼭 안은 채, 웃으면서, 때때로 눈물을 닦으면서.
Week 10
5장. 뚜이에게 보내는 편지
"나 곧 떠나야 해. 그 전에... 너희한테 부탁이 하나 있어."
뚜이가 빈 화면을 열었어요.
"여기에, 너희가 하고 싶은 말을 한 마디씩 써줘.
☁️ 클라우드로 보내면, 이 화면에 모일 거야.
내가 우주에서도 볼 수 있도록."
⚠ [☁️ 편지] 클라우드 변수를 먼저 만들어 두세요.
[보내는 쪽 — 모든 학생]
⚑ 클릭했을 때
뚜이에게 한 마디: 라고 묻고 기다리기
☁️ 편지 ▼ 을(를) 대답 로 정하기
☁️ 전송 완료! 말하기
[받는 쪽 — 교사 화면]
☁️ 편지 ▼ 가 바뀌었을 때
[편지] ☁️ 편지 말하기
[편지] 뚜이야 고마워!
[편지] 코딩 재밌었어!
[편지] 다음에 또 와!
[편지] 지니우스 별에서도 건강해!
[편지] 내가 만든 게임 기억해줘!
[편지] 우리 반 최고!
[편지] 뚜이 사랑해!
교실이 조용해졌어요. 아이들이 한 명씩 메시지를 보내고,
화면에 편지가 하나씩 쌓이는 걸 보았어요.
Week 10
6장. 기억이 돌아오다
에너지 게이지가 움직이기 시작했어요.
91%... 92%... 95%... 97%... 99%...
뚜이의 눈이 크게 떠졌어요. 머릿속이 환해지는 느낌이었어요.
흐릿하던 것들이 선명해지기 시작했어요.
고향의 하늘. 함께 놀던 친구들. 우주선을 타고 떠나던 날. 그리고—
"잠깐."
뚜이가 두 손으로 머리를 잡았어요. 눈이 크게 크게 떠졌어요.
"지니우스가... 아니었어."
"응?"
뚜이가 천천히 고개를 들었어요.
눈에 눈물이 그렁그렁했어요. 하지만 입가에는 미소가 번지고 있었어요.
"지니... 어스."
"...지니어스?"
"응. Genius. 그게 내 별의 진짜 이름이야."
한 아이가 눈을 크게 떴어요.
"지니어스... 그거 영어로..."
"천재라는 뜻!"
뚜이가 고개를 끄덕였어요.
"10주 동안 나는 '지니우스'라고 잘못 기억하고 있었어.
기억이 흐릿해서. -우스 하니까 행성 이름 같잖아. 비너스, 우라누스처럼.
그래서 나도, 너희도, 아무도 이상하다고 생각 안 했어."
뚜이가 아이들을 천천히 둘러보았어요. 한 명 한 명의 눈을 바라보았어요.
"그리고 그건 별 이름만이 아니야."
"10주 전, 너희는 '말하기' 블록 하나도 몰랐어.
그런데 지금은 게임을 만들고, 암호를 풀고,
컴퓨터를 혼자 움직이게 하고, 친구와 프로그램을 연결해.
처음부터 끝까지, 너희 힘으로."
뚜이가 미소 지었어요.
"지니어스. 천재.
그건 태어날 때부터 뭘 잘하는 사람이 아니야.
포기하지 않고 하나씩 배워서, 결국 해내는 사람.
너희가 바로 지니어스야."
교실이 한동안 고요했어요. 그리고 누군가가 코를 훌쩍였어요.
기억 장치 복구 완료! — 전 시스템 복구 완료!
100%
7장. 발사
뚜이가 자리에서 일어났어요. 키보드를 양 손으로 꼭 안았어요.
"이제... 가야 해."
"정말 가는 거야?"
"응."
"다시 올 수 있어?"
"...모르겠어. 우주는 넓으니까."
아이들의 눈이 붉어졌어요.
"하지만 말이야." 뚜이가 키보드를 툭 쳤어요.
"내가 떠나도 코딩은 남아. 블록은 여전히 너희를 기다리고 있어.
그리고..."
뚜이가 아이들의 손을 가리켰어요.
"키보드는 항상 너희 옆에 있잖아."
뚜이가 하이파이브를 했어요. 한 명 한 명 전부.
작은 손바닥이 아이들의 손바닥에 닿을 때마다 뚜이가 키보드를 꼭 안았어요.
뚜이가 우주선 위로 올라갔어요. 키보드를 꼭 안은 채.
"안녕." 뚜이가 웃었어요. "아니, '안녕'이 아니지."
뚜이가 손을 흔들었어요.
"고마워. 나의 지니어스들."
우주선이 빛나기 시작했어요.
부르르, 부르르, 부르르르르———
하늘 위로 작은 빛이 올라갔어요.
점점 작아지다가, 별이 되었어요.
아이들이 하늘을 올려다보았어요.
반짝이는 별이 하나 더 생긴 것 같았어요.
저녁 바람이 놀이터를 스쳐갔어요.
시소 밑에는, 아무것도 없었어요.
다만 모래 위에,
키보드 자국 하나가 남아 있었어요.
에필로그
다음 날 화요일. 놀이터에 아이들이 다시 모였어요.
시소 밑은 텅 비어 있었어요.
한 아이가 가방에서 노트북을 꺼냈어요.
"...뚜이는 없지만." 키보드 위에 손을 올렸어요. "코딩은 할 수 있잖아."
"뭐 만들 거야?"
"음... 뚜이 게임? 뚜이를 찾아서 우주를 여행하는 거."
"좋다! 나도 같이 만들자!"
아이들이 하나둘 모여들었어요.
놀이터 벤치에서, 키보드를 두드리며, 깔깔 웃으며.
하늘 위 어딘가에서, 작은 별이 반짝였어요.
🎓 10주 마스터 정리 — 너희가 고친 모든 시스템
Week 1 — 통신 장치말하기, 변수 — 컴퓨터가 글자를 보여주고 기억하기
Week 2 — 판단 장치만약 ~ 아니면 — 상황에 따라 다르게 행동하기
Week 3 — 반복 엔진반복하기 — 같은 일을 여러 번 자동으로
Week 4 — 오락 장치난수 — 예측할 수 없는 숫자로 게임 만들기
Week 5 — 도구 제작기나만의 블록 — 코드 묶음에 이름 붙이기
Week 6 — 화물 관리리스트 — 여러 데이터를 하나로 묶어 다루기
Week 7 — 항법 DB정렬 — 크기·이름순으로 자동 줄세우기
Week 8 — 암호 해독기시저 암호 — 글자를 밀어 비밀 만들기 / 텍스트 처리
Week 9 — 자동 조종마우스·키보드·색깔·클립보드 — 컴퓨터가 사람 대신 일하기
Week 10 — 기억 장치종합 — 10주 모든 시스템을 하나로 묶어 발사!
💡 뚜이의 마지막 조언
"어떤 걸 만들든, 중요한 건 세 가지야.
첫째, 진짜 문제를 풀어야 해. 쓸모있는 프로그램을 만들어.
둘째, 작게 시작해. 한 번에 완벽하게 만들지 말고, 하나씩 붙여나가.
셋째, 테스트해. 다른 친구한테 써보게 하고 피드백을 받아."
🚀⭐
뚜이 지니어스 — 코딩으로 별까지
COMPLETE
████████████████████ 100%