"요거트 먼저, 그다음 과일, 마지막에 꿀을 위에." 아이가 요리법대로 만들 때마다 아이는 알고리즘을 따르고 있습니다. 처음에 있는 것을 마지막 결과로 바꿔 주는, 순서가 정해진 분명한 단계의 목록이지요.
그게 바로 컴퓨터 프로그램입니다. 이 생각을 가르치는 데 화면은 필요 없어요. 부엌은 이것을 탐구하기 가장 좋은 곳 중 하나입니다. 단계가 진짜이고, 결과가 눈에 보이며, 실수도 대개 웃기고 (먹을 수도) 있으니까요.
요리법은 프로그램과 같은 부분으로 되어 있다
요리하기 전에 함께 요리법을 읽고 각 부분에 이름을 붙여 보세요.
| 요리법에서 | 프로그램에서 |
|---|---|
| 재료 | 입력: 처음에 가진 것 |
| 순서대로 번호를 붙인 단계 | 명령, 하나씩 차례로 실행 |
| "10번 젓기" | 반복: 한 단계를 되풀이 |
| "너무 되면 우유 한 숟가락 넣기" | 조건: 만약 ~일 때만 하기 |
| 다 만든 음식 | 출력: 결과 |
어린아이에게 "입력"이나 "반복" 같은 말을 쓸 필요는 없습니다. "뭐가 필요해?", "먼저 뭘 할까?", "마지막에 뭐가 나와야 해?" 같은 질문이면 충분해요.
간단하고 안전한 요리를 고르고, 뜨겁거나 날카로운 건 모두 어른이 맡으세요. 과일 요거트 컵, 샌드위치, 스무디, 불을 쓰지 않는 간식 같은 것이 좋습니다.
순서가 중요할까?
생각하기 좋은 질문이 있습니다. 어떤 단계는 자리를 바꿔도 되고, 어떤 단계는 안 될까?
요거트 컵을 예로 들어 볼게요.
- 컵에 요거트를 담는다.
- 잘게 썬 과일을 넣는다.
- 위에 꿀을 뿌린다.
- 먹는다.
2단계와 3단계는 바꿔도 될까요? 아마 괜찮을 거예요. 모양이 조금 달라질 뿐이지요. 1단계와 4단계는요? 절대 안 되지요! 짝마다 이야기해 보세요. "이걸 먼저 하면 어떻게 될까?"
아이는 순서를 바꿔도 결과가 별로 달라지지 않는 따로 노는 단계와, 다른 단계 다음에만 할 수 있는 이어진 단계가 있다는 걸 발견합니다. 이것은 계획 세우기와 프로그래밍의 핵심 생각 가운데 하나입니다.
"로봇 부모" 놀이
이 놀이는 정말 인기가 많습니다. 부모가 들은 말을 한 글자도 빼지 않고 그대로만 하는 로봇이 됩니다.
아이가 샌드위치 만드는 방법을 지시합니다. "빵에 잼을 올려"라고 하면, 뚜껑이 닫힌 잼 병을 빵 위에 올려놓습니다. "칼을 들어"라고 하는데 어느 손인지 말하지 않으면, 어리둥절한 표정을 짓습니다.
- 즐거운 분위기를 지키고, 아이가 짜증 나기 전에 멈추세요.
- 한바탕 웃고 나서, 더 정확하게 지시하도록 도와주세요. "병뚜껑을 열어. 숟가락으로 잼을 조금 떠. 빵 한 장에 발라."
- 역할을 바꿔 아이가 로봇이 되게 해 보세요.
배울 점은 컴퓨터도 로봇처럼 시킨 것만 한다는 것입니다. 분명하고 정확한 단계가 중요하지요.
반복과 조건 넣기
순서대로 하는 단계에 익숙해지면, 요리법 속 특별한 단계 두 가지를 찾아보세요.
- 반복: "10번 젓기." "그릇이 가득 찰 때까지 한 숟가락씩 넣기." 단계를 되풀이하며 함께 세어 보세요.
- 조건(만약 ~면): "바나나가 너무 크면 반으로 자르기." "반죽이 마르면 물을 조금 넣기." 물어보세요. "이번에는 그 단계가 필요할까?"
일상의 설명 속에서 "반복"과 "만약"을 찾아내는 것은 모든 프로그램을 이루는 기본 조각을 부드럽게 만나는 길입니다.
나만의 요리법 쓰기
마지막으로, 다른 사람이 따라 할 요리법을 아이가 써 보게(또는 그려 보게) 하세요.
- 단계마다 네모 칸 하나에 그리고, 칸 사이를 화살표로 잇기.
- 단계에 번호 붙이기.
- 요리법 시험하기: 어른이 적힌 그대로 따라 해 보고, 결과가 맞는지 보기.
- 뭔가 잘못되면 고쳐야 할 단계 찾기. 프로그래머들은 이것을 디버깅이라고 부릅니다.
아직 글을 못 쓰는 아이는 단계마다 그림을 그리고 말로 설명하면 됩니다.
Dologi의 "자동차 운전하기" 퍼즐도 같은 방식입니다. 아이가 명령을 순서대로 놓아 자동차를 미로 속 별까지 움직이는데, 명령 하나만 자리를 잘못 잡아도 자동차는 엉뚱한 곳에 도착하지요.
정리하면
- 요리법은 알고리즘입니다. 재료가 들어가고, 순서대로 단계를 거쳐, 음식이 나옵니다.
- 어떤 단계는 자리를 바꿀 수 있고 어떤 단계는 먼저 해야 하는지 물어보세요.
- "로봇 부모" 놀이로 설명이 왜 정확해야 하는지 보여 주세요.
- 반복과 "만약" 단계를 찾고, 아이가 자기 요리법을 직접 쓰고 시험해 보게 하세요.
함께 읽기: 큰일을 작은 단계로 나누기: 아이의 단계별 사고
