お料理レシピをプログラムに!みんなで協力して作る体験型プログラミング
日常の中にあるプログラミング思考
プログラミングと聞くと、コンピューターや難しいコードをイメージされるかもしれません。しかし、プログラミング的な考え方、すなわち「プログラミング思考」は、特別な技術の世界だけにあるものではありません。私たちは日々の生活の中で、無意識のうちにこの考え方を使っています。
例えば、朝起きてから外出するまでの手順、何かを作るためのレシピ、目的地までの道のり。これらはすべて、特定の目的を達成するための「手順」や「ルール」の集まりです。プログラミングもまた、コンピューターに何かを実行させるための手順を指示することに他なりません。
身近な活動を通して、子供たちが遊び感覚でプログラミング思考の入り口に触れることは十分に可能です。今回は、お料理を題材にしたグループ活動のアイデアをご紹介します。
なぜ料理がプログラミング学習につながるのか
お料理は、まさにプログラミング思考を育むのに適した活動です。その理由はいくつかあります。
- 順序が重要: 料理は手順の順番を守ることが非常に大切です。材料を切る前に火にかけるわけにはいきません。これはプログラミングにおける「順次処理」(命令を一つずつ順番に実行すること)と同じ考え方です。
- 具体的な指示が必要: レシピには、「材料を5mm角に切る」「弱火で3分炒める」のように、具体的で曖昧さのない指示が書かれています。コンピューターへの指示も、あいまいさをなくし、正確に伝える必要があります。
- 繰り返し: 「玉ねぎが透き通るまで炒める」「泡立て器でツノが立つまで混ぜる」など、特定の状態になるまで同じ作業を繰り返すことがあります。これはプログラミングの「反復処理」(ループ)にあたります。
- 条件に応じた変化: 「焦げ付きそうなら火を弱める」「味が薄ければ塩を足す」など、状況に応じて判断し、次の行動を変えることがあります。これはプログラミングの「条件分岐」(もし〜なら〜する、そうでなければ〜するという判断)に近い考え方です。
- 問題解決(デバッグ): レシピ通りに作ったはずなのに味が違う、形が崩れてしまった、といった「バグ」(エラー)が発生することがあります。原因を突き止め、修正する作業は、プログラミングにおけるデバッグそのものです。
料理レシピで体験するグループプログラミング
ここでは、簡単なお料理(例えば、おにぎり、ホットケーキ、簡単なスープなど)のレシピを使って、子供たちがグループでプログラミングの考え方を体験する活動をご紹介します。
準備するもの
- 簡単なお料理のレシピ(文字が大きく分かりやすいもの)
- 大きめの紙(模造紙など)またはホワイトボード
- ペン、付箋やカード(手順を書く用)
- タイマー
- 必要であれば、お料理を作るための材料と調理器具(火を使わない、簡単なものが望ましいです)
活動の手順
-
目標共有とレシピの確認:
- 今回の目標が、レシピという「プログラム」を理解し、協力してお料理という「成果物」を完成させることであることを子供たちに伝えます。
- 使用するお料理のレシピをみんなで一緒に読みます。どんな料理を作るのか、完成形を共有します。
-
レシピを「命令」に分解する:
- レシピに書かれている一つ一つの工程を、より具体的で短い「命令」に分解します。
- 例えば、「玉ねぎをみじん切りにする」という工程があれば、「玉ねぎの皮をむく」「玉ねぎを半分に切る」「断面を下にして置く」「縦に切り込みを入れる」「横に切り込みを入れる」「端から細かく切る」のように、さらに細かく分けます。
- 分解した命令を、付箋やカードに一つずつ書き出します。このとき、命令は「〜する」という動詞で明確に示すことがポイントです。
- 疑問符を投げかけながら進めると、子供たちの思考が深まります。「『混ぜる』って、どうやって混ぜるのかな?」「どれくらいの大きさに切るって書いてある?」
-
命令カードを並べて「プログラム」を作る:
- 分解してカードに書き出した命令を、お料理の正しい手順になるように並べます。
- 大きめの紙やホワイトボードの上で、カードを順番に配置していきます。矢印などで流れを示すと分かりやすくなります。これはプログラミングにおける「フローチャート」を簡易的に作る作業とも言えます。
- グループで話し合いながら、「この命令は次かな?」「この作業はどのタイミングでするんだろう?」と相談し、協力して正しい手順を見つけ出します。
-
グループで役割分担して「プログラム」を実行する:
- 並べた命令カードを見ながら、実際にお料理を作ってみます。
- グループ内で役割分担をします。例えば、「プログラムリーダー(手順を読む係)」「材料担当」「調理担当」などです。
- プログラムリーダーは、並べたカードの命令を一つずつ読み上げ、担当者がその通りに実行します。
- もし可能であれば、実際に火や包丁を使わない範囲(材料を混ぜる、盛り付けるなど)で試してみると、より実践的な学びになります。紙粘土やブロックなどで模擬的に行うのも良いでしょう。
-
うまくいかない部分を見つける(デバッグ):
- もし、レシピ通りに進まない部分や、出来上がりが想定と違う場合、どこがおかしかったのかをみんなで考えます。
- 「この命令の順番が間違っていた」「この指示が曖昧だったから、どうすれば良いか分からなかった」「一つの命令に時間がかかりすぎた」など、原因を探ります。
- 原因が見つかったら、命令カードの順番を入れ替えたり、命令の内容をより具体的に修正したりします。これが「デバッグ」の体験です。
-
完成と振り返り:
- お料理が完成したら、みんなで味わったり(模擬調理の場合は完成を祝ったり)、活動全体を振り返ります。
- 「どの命令が難しかったか?」「協力してどんな工夫をしたか?」「プログラム(手順)を正確に作ることの大切さが分かったか?」などを話し合います。
この活動で育まれる力
このお料理レシピを使った活動を通して、子供たちはプログラミング思考の基礎だけでなく、様々な力を育むことができます。
- 論理的思考力: 物事を順序立てて考え、手順を組み立てる力が養われます。
- 問題解決力: 想定通りに進まない時に、原因を探り、解決策を見つけ出す力が育まれます。
- 協調性・コミュニケーション能力: グループで協力し、話し合いながら一つの目標に向かうことで、他者と協力する大切さや、自分の考えを伝え、相手の意見を聞く力が身につきます。
- 抽象化・分解: 複雑なレシピを、より小さく具体的な命令に分解する過程で、物事を要素に分けて考える練習になります。
- 段取り力: 完成までの道のりを予測し、必要な準備や手順を考える力が養われます。
指導する大人は、「なぜこの手順が必要だと思う?」「もし順番を逆にしたらどうなるだろう?」「この命令、もっと分かりやすくするにはどう書けば良いかな?」といった問いかけをすることで、子供たちの思考をさらに引き出すことができます。
まとめ
プログラミング学習は、必ずしもコンピューターの前だけで行うものではありません。今回ご紹介したお料理のような、身近な活動の中にも、プログラミング思考につながるヒントはたくさん隠されています。
準備も手軽で、グループでも取り組みやすいため、お孫さんや地域の子どもたちと一緒に、楽しみながら論理的な考え方を育むきっかけとして、ぜひ試してみてはいかがでしょうか。協力しておいしいものを作り上げる体験は、子供たちにとって忘れられない学びとなるはずです。