プログラボの試行錯誤を支える工夫

前回の記事では、プログラミングと試行錯誤の関係について解説しました。

前回の記事はこちら「プログラミングと試行錯誤の関係って?」

記事の最後で、

  • 試行錯誤できる力はとても大事!
  • その力を身につけるには、実際に試行錯誤を繰り返すことが重要

と説明しました。

子どもたちが安心して前向きに試行錯誤に取り組み、そこから学んでいくためには、先生たちの関わり方が大きなポイントになります。

どうしたら試行錯誤できる?

今回は、子どもたちが試行錯誤できる力を身につけるために、プログラボの先生たちがどのような指導や声掛けをしているのか紹介していきます。

目次

1. プログラボの子どもたちの試行錯誤

2. 試行錯誤は「情報と情報の関連づけ」

3. 問題を見つけるために”条件統制”をしよう

4. 「失敗しても大丈夫」という安心

1. プログラボの子どもたちの試行錯誤

まずは、子どもたちがプログラボでどんな風に試行錯誤しているのか、ある日の授業の様子を見ていきましょう。

小学校2~3年生を対象にしたこの授業では、モンスターのロボットに赤や青のブロックを食べさせて、色によってモンスターの反応が変わるというプログラム作りに挑戦しています。

はらぺこモンスター

ところが、連続してブロックを食べさせようとすると、口の開き具合が毎回違ってしまうのでうまくいきません。食べさせる前に、いつも同じ口の形にするにはどうしたらいいんだろう・・・?子どもたちは、先生にアドバイスをもらいながらあれこれ試してみます。

そうして、①まずは口を閉じて、②そのあと少しだけ口を開く、という順番にすると、いつも同じ口の形にできることに気付きます。

続いて、1~2年生の授業の様子も紹介します。

ここでは、コントローラーをどのように取り付ければ操作しやすいか、子ども達が何度も作り変えながら理想の形を目指しています。

よこよこ星人

プログラボでは、ロボットを作ってプログラミングしたあと、さらに自分で色々やりたいことを試すための「余白」の時間が設けられています。ロボットの改造も大歓迎!大事な学びのタイミングのひとつです。

このように、子どもたちは問題解決や創意工夫のために、日々楽しみながら試行錯誤をしています。では、子どもたちがのびのびと試行錯誤ができるように、プログラボの先生たちはどんな工夫をしているのでしょうか?

2. 試行錯誤は「情報と情報の関連づけ」

「試行錯誤しよう!」と呼びかけるだけで、誰でもすぐにチャレンジできるわけではありませんよね。やったことがないことに挑戦するのは、誰だって躊躇(ちゅうちょ)するもの。では、子どもたちが最初の一歩を踏み出すために、何ができるでしょうか?

ポイントのひとつは、試行錯誤をするための準備として「段階的なステップ」を設けることです。

たとえば、ロボットに買い物をさせよう、という授業では、バナナを買いたい子はバナナを、クッキーを買いたい子はクッキーを目的地にして、ピタっとロボットが止まれるようなプログラミングに挑戦します。

正確に移動するためには、プログラミングブロックのそれぞれのパラメータがどのような意味をもつのかを知り、それらの組み合わせによって動きがどういう風に変化するのかをイメージする必要があります。あてずっぽうに数字を入れて試すだけでは、やみくもで運任せな「あまりよくない試行錯誤」になってしまいますよね。

先生は、それぞれのパラメータが何を指しているのか、実際に動かして確かめさせたり、繰り返し子どもたちに口にさせたりします。

そうすることで、子どもたちは数値と動きの関係を論理的に考えることができるようになり、失敗を次に活かす意味のある試行錯誤につながっていきます。ある先生は、「試行錯誤とは、情報と情報を関連付けて考えること」と言います。

3. 問題を見つけるために”条件統制”をしよう!

もうひとつ、先生たちが繰り返し伝えるアドバイスとして「条件をそろえて観察しよう」というのがあります。

この授業では、センサーを使って黒い線をなぞって、ボールをつかんで容器に入れる、というプログラミングに挑戦します。黒い線からロボットが外れてしまったり、ボールを落としてしまったりと、いろいろな「うまくいかないこと」が起きます。

その原因を予想してプログラムを修正していくのですが、子どもたちはしばしばプログラムのあちこちを一気に変えてしまいます。これでは、何が問題の原因か分からないままになってしまいます。

「プログラムの一か所だけ変えて、何が変わるか見てみてみよう。ロボットのスタート位置や、アームの開き具合も、いつも同じになるようにして、比べてみよう」

先生は「どこを変えるべき」とは言いません。子どもたち自身が問題を見つけられるように、試行錯誤の方法をアドバイスします。すると、

「あ!いつも同じ場所でうまくいかなくなる。これは〇〇が原因だからだ!」

「じゃあここを直そう!」

という風に、自分で気づいて考えられるようになっていきます。

このように、あることを考えるために、その手前の部分に到達できるようサポートすることを、教育の世界では「足場かけ」と呼んでいます。また、このような「子どもが自分だけではできないけど、他の人の協力があればできるようになることの範囲」を「発達の最近接領域(さいきんせつりょういき)」と呼びます。

発達の最近接領域のイメージ

周囲の人による足場かけがあると、子どもたちは一人では到達できない場所へたどり着くことができます

学びとは、この発達の最近接領域をどんどん外に広げていくことに他ならない。そして、教育とはそのために足場(ステップ)を作る行為に他ならない、と多くの学習や教育の専門家は主張しています。

4. 失敗しても大丈夫という安心感

ロボットが思い通りの動きをしてくれないとき、子どもたちはしばしばパニックになったり、イライラして投げ出しそうになってしまうことがあります。

先に挙げたような具体的なアドバイスの他に、もうひとつ、プログラボの先生たちがとても大事にしていることがあります。それは、成果ではなく過程を尊重し、チャレンジそのものを評価することです

これは、プログラボの教室に飾ってあるスローガンです。

ここで取り上げるのは2つ目の「たくさん失敗しよう」です。

うまくいかないのは、誰だってイヤなものです。ですが、良い失敗を通じて自分が成長することを、プログラボでは子どもたちにロボットプログラミングを通じてくりかえし伝えます。

先生たちは「今のいいチャレンジだね!」「おしい!あとちょっと!」「難しいかもしれないけど、やってみよう、一緒に考えるよ」と日々声掛けをしています。

このような取り組みを通じて、子どもたちはプログラミングの技術だけではなく、ねばり強く取り組む力を身につけていくのです。

自分で試行錯誤して手に入れた学びは、子どもにとってかけがえのないものです。プログラボでは今までもこれからも、子どもたちの試行錯誤を通じた学びを支えていきます。

「プログラボ」の体験会のお申込みはこちらから

プログラミングと試行錯誤の関係って?

プログラミングを学ぶには試行錯誤(=トライアルアンドエラー)が効果的!

そんな風に聞いたことはありませんか?

ですが、専門家の中には「試行錯誤ではプログラミングは身につかない。教えてもらって正解を真似する方が大事」と主張する人もいます。

このような正反対の意見が存在する背景には、そもそも「試行錯誤」という言葉の意味を、人によって違うものとして使っているという事実があります。

この記事では、「学びにつながる良い試行錯誤とは何か?」をテーマに、プログラミング学習との関係性をわかりやすく解説していきます。

目次

1. 試行錯誤=いきあたりばったり?

2. 人間の試行錯誤はどう違う?

3. まとめ:学びにつながる試行錯誤とは

試行錯誤=いきあたりばったり?

心理学には、「試行錯誤学習」という言葉があります。これは「ランダムにいろいろ試してみて、たまたま成功すると、次からはその成功パターンを覚えて短時間でできるようになる」という学習の形です。

20世紀初頭、心理学者ソーンダイクはネコを使った有名な実験を行いました。ネコをパズルのような仕掛けの箱に入れ、脱出できたら餌がもらえるという条件を与えたところ、ネコは回数を重ねるごとに徐々に脱出が早くなるという結果が得られました。

ソーンダイクのパスルボックス(イメージ)

この試行錯誤学習は、近年ではAIの「強化学習」という分野にも応用されています。AIに何度もゲームなどの課題に挑戦させ、成功すると報酬が与えられる仕組みにすると、最初は失敗ばかりでも、徐々に効率よく成功するようになっていくのです。

試行錯誤学習のおかげで、AIは囲碁の世界チャンピオンと戦えるほどに強くなりました

ただし、このような「いきあたりばったりに見える試行錯誤」が効果的なのは、あくまで動物やコンピューターの話。

「プログラミング学習に試行錯誤が効果がなかった」と主張する研究者の指す試行錯誤をよく見てみると、実はこの「いきあたりばったりの試行錯誤」を指していることがほとんどです。

人間の試行錯誤はどう違う?

私たち人間の試行錯誤は、それとは少し違います。単に手当たり次第に試すのではなく、「こうすればうまくいくかも?」といった予測や経験、直感をもとに行動しています。

たとえば、横スクロールのゲームを初めてプレイする場合、キャラクターが最初に向いている方向にゴールがあるだろう、と自然に想像してその方向に進んでみる——そんな行動はまさに人間らしい試行錯誤です。

横スクロールゲーム

こうした予測に基づく行動は、「ヒューリスティック」と呼ばれることもありますが、要するに「直感や経験を頼りに、最も可能性の高い方法を試してみる」姿勢だと言えるでしょう。

さらに、人間は「うまくいかなかった理由」を振り返り、「次はこうしてみよう」と仮説を立てて行動を修正することができます。こうした学びのプロセスは「アブダクション(仮説的推論)」と呼ばれています。アブダクションは、帰納・演繹(えんえき)と並ぶ論理的な思考法と呼ばれ、特に、新しい事実を発見したり、これまでに実現できなかったことを実現したり、という場面でとても重要な考え方です。

まとめ:学びにつながる試行錯誤とは

では、プログラミング学習における「良い試行錯誤」とはどのようなものでしょうか?

それは、単にやみくもにコードを書いて試すのではなく、「なぜこのエラーが出たのか」「どう書き換えたら動くだろうか」と考えながら修正を繰り返すプロセスです。つまり、自分の頭で仮説を立てて、実際に試し、結果を見てまた考える——この繰り返しこそが学びを深めていく鍵なのです。

試行錯誤は、ただの手探りではありません。「考えながら試す」というプロセスを通じて、子どもたちは自分で考える力を身につけていきます。

プログラミングスキルの習得において重要なのはもちろんのこと、この“試行錯誤する力”そのものは、これからの時代に欠かせないスキルでもあります。

そして、その力を育てるには、何より「実際に試行錯誤を重ねること」が必要です。だからこそ、子どもたちが安心して失敗し、チャレンジできる「試行錯誤しやすい環境」を整えてあげることが大切なのです。

次回の記事では、ロボットプログラミング教室「プログラボ」がどのようにしてそのような環境をつくっているのか、実際の授業での子どもたちの様子をご紹介します。

どうぞお楽しみに!

参考

米盛 裕二 『アブダクション: 仮説と発見の論理』

S. Gautam. Thorndike’s Trial and Error Theory. Psychology Discussion

Merisio, C., et. al. There is No Such Thing as a “Trial and Error Strategy”.

Berland, M., et. al. Using Learning Analytics to Understand the Learning Pathways of Novice Programmers