有識者会議「議論の取りまとめ」において「プログラミング的思考」は、「自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」と説明されています。文科省としての定義ではありませんが、他に文章はありません。言葉通り「論理的に考えていく力」と解釈すると「論理的思考力」と同じように感じますが、それだけではないことがわかります。
「プログラミング的思考を働かせるイメージ」(手引より)
第二版までは「プログラミング的思考」だった図に注釈が加わりました。
下記、事例の中でもあるように、試行錯誤する「行動」「活動」をプログラミング的思考と呼んでいます。
児童は、生活の中での経験を基に、自動販売機はどのような手順で動作しているのか、それを再現するには命令(記号)をどのように組み合わせればよいかを考え、試行錯誤します(プログラミング的思考)表現をすっきり、改変しました。
その際、このような音楽を、このようにしてつくりたいという自分の考えをもち、音楽の仕組みを意識しながら、プログラミング言語又は創作用ソフト等を用いて様々なリズム・パターンの組み合わせ方を試し、更に工夫を重ねて試行錯誤し(プログラミング的思考)、音楽をつくっていきます。
「プログラミング的思考とは?」
「組み合わせる」=「動きに対応した命令にする」一緒なので集約(コンピューターに対する命令には、マシン語からAI判定などまで抽象度レベルは様々)。 試行錯誤とは継続的に改善することなので短縮。 私が最初聞いたときの印象で思った「狭義のプログラミング的思考」と、一般の人が誤解しがちな「狭義のプログラミング」を注釈として追記。
「プログラミングとは?」(小学校プログラミング教育の手引(第三版) 図4を改変)
プログラミング的思考、我々エンジニアが考えるいわゆる普通の「プログラミング」だと思うとしっくりきます。
「やることが決まっていて、それを単純に打ち込むだけ」の狭義のプログラマーという職業と思われてしまわれないようにという配慮だったのでしょう。
課題に対して、知識技能とコンピューターを使って、あれこれ好きなだけ試行錯誤して、解決に導く。プログラミングの醍醐味です!
「プログラミング的思考」が1つ減ったポイントはこちら。「プログラミング的思考」を育むではなく、全体のねらいの達成が強調される形に改訂されました。
こどもの頃、紙のノートに書いて遊んだり、巨大迷路を駆け巡ったり、ダンジョンゲームで迷ったり、迷路に関する楽しい思い出。
「迷路を自分で作りたい」という課題に対するアプローチは様々ですが、IchigJam 1.4の新コマンド、DRAW、SIN、COSを使った短い迷路作成法を紹介します。(RUN on IchigoJam web)
角度をランダムに決めて、上下左右どちらかに倒す、いわゆる棒倒し法で描く、たった1行のプログラム。もちろん分けて分かりやすく書くこともできますが、まずはシンプルにワオと思うこと、大事です。
もちろん、他にもいろいろな作り方がありますし、いろんなプログラミング言語で作れます。既知の知識をあえて見ずに自分なりに試行錯誤するのも楽しいです。
今回は、Twitterで見かけた1行迷路プログラムにヒントをもらいました!
外周付きの自動生成迷路を1行で書いたのじゃー٩( 'ω' )و#petitcom pic.twitter.com/yKVweVq5LM
— neko800 (@nekohachi1) February 18, 2020
今回の手引第3版の目玉は「企業との連携」。ただし、プログラミングが得意な企業が近くにある学校ばかりではありません。KDDIx磐梯町のように、大企業による地域遠征と、その地域内でのPCN的活動や、Hana道場的活動として根付くかどうかが重要です。
6. NPO等との連携地域に高専あり!
プログラミング教育の推進に取り組んでいる NPO などに協力を依頼して各教科等の授業やクラブ活動など、幅広く関わってもらう例もあります。事前の授業設計に当たって教師と議論を重ね、基本となるプログラム例を作成するなど、授業の流れを一緒につくっていきます。状況に応じて、専門家に協力を依頼するなどのコーディネーターの役割も担ったり、授業の際にメンターとしてサポート役に入ったりすることもあります。
当初はクラブ活動のサポートから始め、徐々に各教科等におけるプログラミング教育に取組を広げてきた例もあります。また、IT 企業との連携を NPOが担い、プログラミングを体験するだけでなく、社会におけるプログラミング技術の意義や自らのキャリアについても子供たちに考えさせるといった、特徴のある取組を実施した例もあります。さらに、学校における土曜学習のほか、学校や適応指導教室とも連携しながら、公民館等の社会教育施設を会場として不登校の子供を含む幅広い層の子供たちにプログラミング体験の機会を提供している例などもあります。
このほか、主に教師を対象として、プログラミング体験を含む研修等を開催したり、授業で使いやすいプログラミング教材を開発・普及したりしている団体もあります。
宮城県の事業として行われている「KCみやぎ」という取組があります。もともとは教育を目的とした事業ではなく、地域企業が抱える技術的な課題に対し、地域の学術機関(大学や高専など)が協力して相談を受け、金融・支援機関とともに、解決策を模索するというものです。地域の未来は、地域のみんなで創りましょう!
links
- 小学校プログラミング教育の手引:文部科学省
- 小学校プログラミング教育の手引(第三版)
- 「小学校プログラミング教育の手引」の改訂(第三版)【令和2年2月】について