プログラミング的思考

プログラミング教材はプログラミング的思考を養えます、というのがうたい文句です。

さて、そのプログラミング的思考って何?と思いますよね。

文部科学省の『小学校段階におけるプログラミング教育の在り方について』より抜粋します。

 

○  子供たちが、情報技術を効果的に活用しながら、論理的・創造的に思考し課題を発見・解決していくためには、コンピュータの働きを理解しながら、それが自らの問題解決にどのように活用できるかをイメージし、意図する処理がどのようにすればコンピュータに伝えられるか、さらに、コンピュータを介してどのように現実世界に働きかけることができるのかを考えることが重要になる。

 

○  そのためには、自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力が必要になる。

 

とのことです…長い(;^_^A)

端的にいうと、コンピュータ世代に必要とされる「考える能力・考え方」ということですね。

これをなるべく簡単に説明する方法がないかなあと思っていたところちょっと思いついたのでご紹介。

こちらは教材メニューの一つ、フォークリフトロボットです。

3つ並んだパレットをフォークリフトで3つ縦に積みましょう、という内容です。

動画をいったんご覧くださいませ。


さあ、この動作を実現するにはどうすればよいか。考えてみましょう。

 

このロボットはサーボモーター(リフトの上下を担うモーター)とDCモーター(車体の前後運動を担うモーター)で動作しています。

動作フローはこんな感じです。

 

①1つめのパレットを2つめのパレットに乗せる

 リフト下降 ➡前進 ➡リフト上昇 ➡前進 ➡リフト下降(中程度)

 

②いったん下がって次のパレット輸送の準備をする

 後退 ➡リフト下降

 

③2つめのパレットを3つめのパレットに乗せる

 前進 ➡リフト上昇 ➡前進 ➡リフト下降(中程度)

 

④パレットから離れて完了

 後退

 

ロボットに動作を達成させるのに必要な操作をイメージし、すじみち立てて考えることが訓練になるのです。

実際には①の半分くらいまでまず作ってみる、そして失敗と調節を繰り返して①を作り終える、という感じでワンステップずつ作っていきます。

最終点の④まで少しずつ目指すわけですね。

①~④までいきなりスパッと作れる人なんてまずいません。

トライアンドエラーを繰り返して目的を達成し、その過程で思考力・判断力・集中力など多くのことを学ぶのです。

 

何をするものなのか、何が学べるのか、ご理解いただけると嬉しいです。