プログラミング的思考とは?

ITと教育

プログラミング的思考とは?プログラマーがわかりやすく解説!

どうも38(さや)です!
以前、小学校におけるプログラミング教育の概要と実際に38が実施した内容をご紹介しました。

プログラミング教育とは?
プログラミング教育とは?手引きを読み解く!

どうも38です! ここ数年、ありがたいことに出前講座の講師として小学生たちにロボットプログラミングを教える機会を何度か頂戴しました。 それらは、今年度(2020年度)まず小学校で必修化されたプログラミ ...

続きを見る

今回は、上記の記事内でも登場する「プログラミング的思考」をプログラマー(自称)が深掘りしちゃいます!

簡単に要約すると、

  • プログラミング的思考は、世界各国で採用されている「コンピューテーショナル・シンキング」をベースに考案された
  • コンピューテーショナル・シンキングとは、コンピューターの有無にかかわらず問題を解決するまでの過程を学ぶこと(問題解決の方法を身につけること)
  • コンピューテーショナル・シンキングには、①アルゴリズム、②分解、③抽象化、④パターン化、⑤評価、⑥論理の6つの要素があること
  • この6つの要素は全て重要であり、どれか一つ欠けてもダメ!


なお、プログラミング的思考は教育用語で、
IT業界では使わない言葉です。

なので、初めてきいたときは「何じゃそりゃ?」ってなりました。
まさに、プログラミング的思考でご飯を食べているハズの人間なのにー(笑)

 

 

スポンサーリンク

 

文部科学省の言う「プログラミング的思考」

文部科学省は、以前の記事でも紹介しましたとおり、プログラミング的思考を次のとおり定義しています。

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


また、『小学校プロラグミング教育の手引き(第三版)』の
P.16の図4において次のように図示されています。

文部科学省「プログラミング的思考」の図

 

この「プログラミング的思考」は、「コンピュテーショナル・シンキング」をベースに考案された日本独自のものだそうです。1)「小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議」の『小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)』によると、「いわゆる「コンピュテーショナル・シンキング」の考え方を踏まえつつ、プログラミングと論理的思考との関係を整理しながら提言された定義である。」と説明されています。

ベースとなったコンピューテーショナル・シンキングとは、どのようなものなのでしょう?
プログラミング的思考をより良く理解するために、概観してみましょう。

 

コンピューテーショナル・シンキングとは?

195060年代頃からある概念ですが、注目を浴びるようになったのは、Jeannette M. Wing氏の論文「Computational Thinking」(2006年、計算機学会誌@アメリカ)がきっかけだそうです。

また、2021年からは、経済協力開発機構(OECD)が3年に一度実施する、国際的な学習到達度調査「PISAの「数学的リテラシー」のカテゴリーにおいて「コンピューテーショナル・シンキング」を測る問題が追加されるそうです。

このことからも世界標準=コンピューテーショナル・シンキングなのに、ガラパゴスなプログラミング的思考を作った意味がわからない意地?

コンピューテーショナル・シンキングを教科内容として取り入れている国はいくつかありますが、今回は、IT教育をいち早く(1995年から)義務教育課程に取り入れたイギリスの教師用教材からコンピューテーショナル・シンキングを概観してみます!

国(Department of Education@UK)などの支援を受け、初等教育の教員向けにIT教育関連の指導案や教材、研修などを提供しているBarefootによるとコンピューテーショナル・シンキングは次のとおり説明されています。

  • コンピューターの有無にかかわらず問題を解決するまでの過程を学ぶこと(問題解決の方法を身につけること)
  • コンピューテーショナル・シンキングには、次の6つの要素がある
    ①アルゴリズムAlgorithms
    ・段取り(ステップ)や命令(ルール)を作成すること
    ・仕事・作業(タスク)をやり遂げるために必要な一連の命令のこと
    (例)料理のレシピ(料理の段取り)
    ②分解Decomposition
    ・解決したい問題や成し遂げたい仕事・作業を取り組みやすい・管理しやすい単位まで分割していくこと
    (例)旅程、ToDo
    ③抽象化Abstraction
    ・何が重要かを特定し、不要な情報を除外すること
    (例)ピクトグラム(トイレの男女別マークなど)
    ④パターン化Pattern
    ・類似点を見つけて使用すること
    ・パターンに気づくことで、次に何が起こるかを予測し、ルールを作成して、他の問題を解決するのに活用できる
    (例)マニュアル、フレームワーク
    ⑤評価Evaluation
    ・何をする必要があるか、何を達成しようとしているのかなど、さまざまな要素・要因に基づいて判断するときに使用する
    (例) テレビを購入するとき
    価格、画面サイズ、音質などの様々な要素を比較、評価し、どのテレビを購入するか判断する
    ⑥論理Logic
    ・事実を確認し、予測を行うのに役立つ
    (例)数独などのロジックパズルをクリアするプロセス

参考:
BarefootWhat is computational thinking?
BarefootQuick guid to computational thinking


私の翻訳スキルの問題で、説明がちょっとわかりづらいかもですが、コンピューテーショナル・シンキングの方が子どもたちに身につけて欲しいスキルが明確で、プログラミング的思考よりかは、わかりやすいかなーと個人的には思っています。

なお、コンピューテーショナル・シンキングの要素は、上記のとおり6つだったり、他の説明では4つだったりしますが、いずれにせよ重要なのは

テーブルの脚と同じようなものです。
もし、一脚でもなければテーブルは倒れてしまうでしょう。

参考:BBC BitesizeIntroduction to computational thinking


6つ全てが重要!ということです。

 

プログラミング的思考とコンピューテーショナル・シンキングの比較!

以上を踏まえ、日本オリジナルの「プログラミング的思考」と国際標準の「コンピューテーショナル・シンキング」を比較表にまとめるとこんな感じですかねー

プログラミング的思考 コンピューテーショナル・
シンキング
(例)ビジュアルプログラミング (例)問題解決
事前作業 ロボットやキャラクターにどのような動作をさせたいか考える 問題を見つける、解決したい問題を決める
必要な動きを分けて考える ②分解、③抽象化 させたい動作を分解する
(例)ロボットにしゃべらせる=ロボットにしゃべるよう命令する+しゃべって欲しい言葉を命令する
なぜなぜ分析などで問題を原因に分解する
動きに対応した命令(記号)にする どの命令ブロックを使うか決める 対策を複数考える
組み合わせる ①アルゴリズム、④パターン化、⑥論理 命令ブロックをどの順番でくっつけるか決める
(直列処理、条件分岐、繰り返し)
どの対策の組み合わせが良いか考える(1つの対策で解決できる場合もある)
いわゆるPDCAのP
試行錯誤しながら継続的に改善する ⑤評価 実行して、期待通り動くか、動かなければそれはなぜかなどを考え、修正する PDCAサイクルを回し、効果がなければ対策を変えるなどして問題が解決するまで繰り返す

 

まとめ

今回は、プログラミング的思考をそのベースとなった「コンピューテーショナル・シンキング」の方向から深堀りしてみました。

以前の記事でも似たようなことを書きましたが、何より解決すべき問題を見つける方が難しいと個人的には思っているので、問題発見力みたいなものも育成すると良いと思うんだけどなー

問題を発見できる人は貴重ですよ。
問題を解決する方法は、三人寄れば文殊の知恵でどーにか見つかるものですが、問題はね、簡単に発見できない。
例えば、「不便だなー」と感じても、大概の人は、不便=当たり前と流してしまう。

自分の中の違和感を大事にして、問題を発見できる人が増えれば、世の中もっと良くなるし、新しいビジネスも生まれて豊かになるかも?
って、スミマセン、最後愚痴っぽくなってしまった(^^;

最後までお読みいただき、ありがとうございました!

References   [ + ]

1. 「小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議」の『小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)』によると、「いわゆる「コンピュテーショナル・シンキング」の考え方を踏まえつつ、プログラミングと論理的思考との関係を整理しながら提言された定義である。」と説明されています。

スポンサーリンク

     

ブログランキングに参加しています!
応援よろしくお願いいたします^^
にほんブログ村 IT技術ブログへ
にほんブログ村


IT・通信業ランキング

-ITと教育
-, , , ,

© 2020 さやログ