安仁のプログラミング教育
安仁十四歳。政治革新が軌道に乗り、部下に任せられる仕事も増えてきた。
すっかりやせ衰え、体力の落ちた安仁だったが、新たに挑戦したいことがあった。
里の工房で一人、複雑な図面と向き合っている老人がいる。移民として里にやってきた河童の技師「川流」である。
「安仁様、今日はどちらから始めましょうか」
川流が、様々な歯車や部品を並べながらにこやかに尋ねた。
このところ、安仁は川流から「からくり」の技術指導を受け始めたのである。
からくりを福祉に活かすことができれば、病床の鬼達の暮らしを支えることができるのではないか。それは、日に日に弱っていく自身にも関わる技術活用であった。
「まず、からくりの基本的な考え方を学びましょう」
川流が説明を始めた。
「からくりとは、決められた手順を正確に実行する仕組みです。例えば、この水車を見てください」
川流は、小さな模型を示した。
「水が流れる→水車が回る→歯車が動く→石臼が回る。これが『手順』です」
安仁は、興味深そうに観察した。
「なるほど。一つ一つの動作が、次の動作を引き起こすのじゃな」
「その通りです。そして、この手順を考えることを『論理的思考』と言います」
川流は、紙に図を描きながら説明した。
「もし〜なら、〜する」
「〜が終わったら、次に〜する」
「〜という条件が揃ったら、〜を実行する」
「これらの組み合わせで、複雑な動作も実現できます」
「それは面白いのう。政治にも似ておる」
「政治に?」
「うむ。『もし税収が増えたら、道路を整備する』『災害が起きたら、救援隊を派遣する』。決められた条件に従って、決められた行動を取る」
川流は、感心した。
「安仁様は、本質を理解されるのが早いですね」
「では、実際に作ってみましょう」
川流が、様々な部品を見せた。
「歯車、滑車、てこ、ばね――これらは基本的な『部品』です。それぞれに決まった働きがあります」
安仁は、歯車を手に取った。
「この歯車は、回転を伝える部品じゃな」
「正解です。そして、大きな歯車と小さな歯車を組み合わせると……」
「力が強くなったり、速度が変わったりする!」
安仁は、目を輝かせた。
「これらの部品を組み合わせることで、新しい機能を作り出せるのです」
「では、安仁様の最初の作品として、何を作りましょうか」
川流が尋ねた。
安仁は、少し考えてから答えた。
「力が弱い者…病人や老人、子供でも重いものを運ぶのを助けるからくりを作りたい」
「良いアイデアですね。では、まず『何をしたいか』を明確にしましょう」
川流は、紙に書き始めた。
「目的:重いものを楽に運ぶ」
「条件:力の弱い者でも使える」
「制約:あまり複雑にしない」
「大きな問題は、小さな問題に分けて考えます」
川流が説明した。
「重いものを運ぶ、という問題を分解してみましょう」
「まず、重いものを持ち上げる」
「次に、目的地まで移動する」
「最後に、正確な場所に置く」
「それぞれの小問題に対して、解決策を考えてみましょう」
「持ち上げる問題は、てこや滑車で解決できそうじゃ」
安仁が提案した。
「移動の問題は、車輪を使えばよい」
「置く問題は……慎重にやるしかないかのう」
川流が頷いた。
「それぞれに対する解決策を考えましたね。次は、これらを組み合わせて、一つのからくりにします」
安仁は、初めて設計図を描いた。
「まず、重いものを乗せる台を作る」
「その台に、持ち上げるためのてこを付ける」
「台の下に車輪を付けて、移動できるようにする」
川流が助言した。
「設計図では、寸法も大切です」
「どのくらいの重さまで対応するか、決めておきましょう」
安仁は、里の鬼達のことを思い浮かべた。
「米俵一俵分、約60kgまで対応したい」
設計図ができると、実際に作り始めた。
「まずは小さな模型で試してみましょう」
川流が提案した。
「プロトタイプ、と言います」
安仁は、木片や竹を使って、小さなからくりを組み立てた。
「ううむ、うまく動かぬ……」
最初の試作は、思うように動かなかった。
「それは当然です」
川流が慰めた。
「一回で完璧に動くからくりはありません。問題を見つけて改良し、問題を見つけて直すことを『デバッグ』と言います」
川流が説明した。
「どこがうまくいかないか、一つずつ確認してみましょう」
安仁は、からくりの動きを注意深く観察した。
「てこの支点の位置が悪いようじゃ」
「歯車の噛み合わせも、スムーズではない」
「車輪の軸が曲がっておる」
「よく観察できています」
川流が感心した。
「では、一つずつ直していきましょう」
安仁は、何度も改良を重ねた。
てこの位置を変え、歯車を調整し、車輪を作り直した。
「今度はどうじゃ?」
五回目の試作で、ようやくスムーズに動いた。
「やったのう!」
安仁は、嬉しそうに手を叩いた。
「これで、重いものも楽に運べる」
川流も微笑んだ。
「安仁様は、改良の才能がありますな。問題を見つけて、解決策を考える力が優れています」
小さな模型が完成すると、実物大のものを作った。
体調の悪い安仁のため、里の職人たちも手伝ってくれた。
「これは面白い仕組みだ!」
「年寄りだけじゃなく、俺たちにも便利だな」
完成したからくりを、実際に里の鬼に使ってもらった。
「おお、これは便利」
「重い米俵も、楽々運べる」
安仁は、大きな達成感を感じた。
「川流、次は何を作ろうか?」
安仁の意欲は、ますます高まった。
「今度は、もう少し複雑なからくりに挑戦してみませんか」
川流が提案した。
「例えば、条件によって動作が変わるもの」
安仁は、目を輝かせた。
「それは面白そうじゃ!例えば、雨が降ったら自動で雨戸が閉まる、などかのう?」
「まさにその通りです。条件によって動作を変えることを『条件分岐』と言います」
川流が新しい概念を教えた。
「もし雨が降っているなら、雨戸を閉める」
「もし晴れているなら、雨戸を開ける」
「これが条件分岐です」
安仁は、自動雨戸のからくりに挑戦した。
「まず、雨を感知する仕組みが必要じゃ」
「水が溜まると重くなる皿を使って、一定量で傾くようにしましょう」
川流がアドバイスした。
「皿が傾いたら、歯車が動いて雨戸が閉まる」
「雨が止んで皿が空になったら、ばねの力で元に戻る」
安仁は、設計図を描きながら考えた。
「これは複雑じゃな……しかし、やってみる価値がある」
自動雨戸システムは、今までで最も複雑だった。
多くの部品が協調して動く必要があった。
「一つの部品が故障すると、全体が動かなくなる」
安仁は、システムの脆弱性を学んだ。
「だから、重要な部分は二重にしておきます」
川流が説明した。
「これを『冗長性』と言います。一つが壊れても、もう一つで動き続けられます」
安仁は、学んだ技術を里の様々な場所で活用した。
水汲みを自動化するからくり。
薬草を一定量ずつ分ける装置。
足の悪い者でも使える昇降機。
「からくりの技術は、こんなにも応用できるのじゃな」
安仁は感嘆した。
「考え方を覚えれば、どんな問題でも解決策が見つかる」
数か月の学習を終えた時、川流が言った。
「安仁様は、からくりの技術を見事に習得されました。しかし、最も大切なのは技術そのものではありません。問題を見つけ、分解し、解決策を考え、実行し、改良する。この『考え方』が一番重要なのです」
安仁は深く頷いた。
安仁が学んだ技術は、里の若者たちにも広まった。
「安仁様が作ったからくりを見て、私たちも学びたくなりました」
若者たちが次々と川流のもとを訪れた。
里に、新しい技術者のコミュニティが生まれた。
安仁は、これを見て満足した。
「知識は共有してこそ、価値がある」
里の未来に、希望が生まれつつあった
技術革新に対応するため、学校でプログラミング教育が行われています。安仁は理系女子。昔からものづくりが大好きで、たびたび猪八戒を困らせていました。体調が心配される安仁ですが、生き生きと主体的に学ぶ姿が印象的です。