先日、小学校の保護者会があって夏休みの宿題の話を聞いてきました。どんな自由研究をやるのか、そろそろ本腰を入れて考えないといけない時期にきましたね。子どもの宿題なので子どもに任せておけばいいのでしょうが、興味を持ちそうなアイデアを出すくらいはしてもいいかなーと思います
先日はアナログな形式で提出できるプログラミングをテーマにした自由研究について考えました

今回も引き続き、プログラミングに関連した夏休みの自由研究を考えてみました
身近にあるコンピューターを調べる
身の回りにある、プログラムで自動制御されているものを探して、その動きを調べてみてはどうでしょう。先日放送されたWhy!?プログラミングの「ジェイソンはココにいる」はまさにそれですね
Why!?プログラミング第11回 「ジェイソンはココにいる」
冷蔵庫だと・・・
ドアを開ける → ライトをつける
ドアを閉める → ライトを消す
設定温度より温度が高い場合 → 冷やす
設定温度より温度が低い場合 → 冷やすのをやめる
これらのプログラムの動作を調べて、Scratchでのビジュアルプログラミング風に置き換えてみると面白そうです。最近の冷蔵庫は性能がいいので、もっと色々なプログラムが見つかると思います
キッチンタイマー、洗濯機、テレビ、信号機、自動販売機などなど・・・コンピューターが組み込まれている機器は身の回りにいっぱいあります。これらを調べてみると面白いと思います
料理をプログラミング
随分昔ですが、コピーライターの糸井重里さんが、プログラマーの知り合いに「料理の鉄人」という番組が好きな人が多いという話をされていました。料理とプログラミングが似ているからだそうです
確かに料理はプログラミングと似ています。作りたい料理を分析して、必要な食材を準備したり、調理の手順を考えたりというのは、まさにプログラミング的思考です。効率よく作ろうと思ったら2つの作業を同時進行させる並列処理も必要です。市販のカレールーやだしの素など、あらかじめ用意されている材料はプログラムでいうライブラリ(汎用性の高いプログラムを再利用可能な形でまとめたもの)とそっくりです
カレーの手順を少し考えてみました
同じ処理が複数出てくるので、その部分は別に関数を作ってしまいたくなりますね。また、じゃがいもを水にさらす10分を待ち続けるのは非効率です。普通なら他の作業に移りますね。なので水にさらす部分は並列処理にした方が良さそう。こんな感じで、料理をプログラムに置き換えることで、効率良いプログラムを作る勉強にもなりそうです
ブロック画像はこちらのサイトの素材を利用させていただきました
Vector Scratch Blocks | ScratchEd