【図解】プログラミング的思考とは?論理的思考との違いや伸ばす能力や要素についても解説!

プログラミング教育
この記事は約6分で読めます。

プログラミング教育の必修化が2020年度にはじまりました。

プログラミング教育の一番のねらいは「プログラミング的思考」を育むことです。

では「プログラミング的思考」とは何なのでしょうか?

文部科学省によると以下のように述べています。

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

出典:文部科学省「小学校段階におけるプログラミング教育の在り方について」より

トトラ

もっとわかりやすく教えて!

えいと
えいと

一言でいうと”深く考える力” だよ

さまざまなサイトで「プログラミング的思考」の解説がなされていますが、一言で表現していることは少ないでしょう。

なぜ一言で表現するのが難しいのか、なぜ一言で表現するなら”深く考える力”になるのかということを踏まえて説明していきます。

サクッとまとめだけ読む!

『プログラミング的思考とは?』を3行で解説!
  • 「プログラミング的思考」は一言で表現すると”深く考える力”!
  • プログライング的思考と論理的思考の違いは”選択”を考慮するかどうか
  • プログラミング的思考には数多くの能力が含まれており、5つの要素に分けられる。

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

プログラミング的思考=論理的思考+α

プログラミング的思考を一言で表現すると、なぜ”深く考える力”になるのか。

それは「プログラミング的思考」が、実に多くの思考に関する力を含む言葉だからです。


最もプログラミング的思考に近い言葉として「論理的思考」があります。

論理的思考とプログラミング的思考の違いを簡単に挙げると、次のようになります。

論理的思考
目的を達成するために道筋を立てて根拠を持って考える思考
プログラミング的思考
目的を達成するために道筋をたてて根拠持って考え、最適な解を導くための思考
えいと
えいと

論理的思考は”最適解の選択”を考慮しないよ

トトラ
トトラ

最適な結果を選ぶのが「プログラミング的思考」ってことか!

つまり「プログラミング的思考」は論理的思考力だけでなく、さらに数ある選択肢の中から最も適したものを選ぶ能力まで含んでいるのです。

また「プログラミング”的”思考」は広義的に考えると「プログラミングをする際に必要となるような思考」のことです。

実際にプログラミングをする際には次のようなことを留意します。

  • どんなプログラムが書きたいのか(創造力)
  • どんなプログラムが必要か(課題解決力)
  • どんな順序でプログラムを並べればよいか(論理的思考力)
  • どう改善すれば実現可能か(試行錯誤力)
  • 改善するために問題になっている原因は何か(課題抽出力)
  • 効率の良いプログラムの書き方はどうすればよいか(最適化力)
  • どれくらいで完成させられるか(計画力)
  • 期日までに完成させなければならない(実行力)
トトラ

めっちゃ考えること多いやん!!

えいと

だから一言で表現できないんだ

まとめるとプログラミング的思考と論理的思考は次の画像のように比較できます。

プログラミング的思考と論理的思考の違い

このように「プログラミング的思考」には様々な能力が含まれていますが、全て「考える力」が共通して必要です。

そのためここでは一言で表現するのが難しい「プログラミング的思考」をあえて「”深く考える力”である」と一言で表現しています。

  • プログラミング的思考と論理的思考の違いは”選択”を考慮するかどうか
  • プログラミング的思考には数多くの能力が含まれている
  • その能力は全て「考える力」が共通して必要になる
    →プログラミング的思考を一言で表現するなら”深く考える力”

プログラミング的思考を5つの要素に分ける

プログラミング的思考の5つの要素

プログラミング的思考には様々な能力が含まれており、一言で言うと”深く考える力”としました。

プログラミング教育を通して、実際はどんなことに取り組めばよいのでしょうか。

ここではプログラミング的思考を大きく5つに分けて、プログラミング教育を行う上で意識すべきことを紹介します。

プログラミング的思考の5つの要素
  • 分解
  • 組み合わせ
  • 一般化
  • 抽象化
  • シミュレーション

これら5つの要素を追及していくことで子どものプログラミング的思考力(”深く考える力”)が伸びていきます。

これらの要素はプログラミング的思考を伸ばしていくために必要なものですが、社会で活躍するためにも必要になってきます。

分解

分解 小さく分けて考える

「分解」はものごとを小さく分けて考えることです。

難しい問題ほど小さく分けて考えることで、課題を解決しやすくなります。

時計のパーツごとに「ボディ、ベル、針」と分解することもできますし、図形としてみれば「丸、四角」に分解することもできます。

組み合わせ

組み合わせ 手順の組み合わせを考える

「組み合わせ」は手順の組み合わせを考えることです。

上の例はリンゴを回収する動きを表しています。

曲がる回数をより少なくしたい場合は、動き方を工夫すればたった1回曲がるだけで完了することができます。

プログラミングの中では「繰り返し」「もし~なら」「もし~でなければ」などを使って様々な組み合わせを考えます。

一般化

一般化 パターンを見つける

「一般化」はものごとのパターンを見つけ出すことです。

ものごとの似ている点や関係性を紐解き、パターンに落とし込むことで別の場面でもそのパターンを利用することができます。

上の例では「右、上を2回繰り返す」ということをしています。

これを一般化の観点でみると「パターンを繰り返す」という操作をしたとみなすことができます。

抽象化

抽象化 大事なものだけ抜き出して考える

「抽象化」は大事なものだけ抜き出して考えることです。

新しいどんぶりを作ろうと思ったときに、どんぶりを抽象化してみると、どんぶりは「深いお皿に白ごはんをいれて主菜を乗せたもの」と3つの性質のみ取り出すことができます。

抽象化すると上に乗せるものは主菜であれば魚でも肉でも構わないという性質が見えてきます。

目的に応じて必要なものだけを抜き出すことが大切です。

シミュレーション

シミュレーション 頭の中で手順をたどる

「シミュレーション」は頭の中で手順をたどることです。

上の例で、最初に右を向いているとすると、最後はどの場所でどっちを向いているでしょうか?


答えは「場所は一番右下で向きは下」です。

左に1歩進むときは向きは変えていません。


このようにものごとの手順を頭で想像しながら正しくたどっていく能力です。

プログラミングではシミュレーションが上手な子ほど完成までのスピードが早くなります。

まとめ

この記事では「プログラミング的思考とは?」をご紹介しました。

まとめは以下の通りです。

「プログラミング的思考とは?」のまとめ
  • 「プログラミング的思考」は一言で表現すると”深く考える力”!
  • プログライング的思考と論理的思考の違いは”選択”を考慮するかどうか
  • プログラミング的思考には数多くの能力が含まれている。
  • プログラミング的思考は5つの要素に分けられる。
    • 分解
    • 組み合わせ
    • 一般化
    • 抽象化
    • シミュレーション
トトラ
トトラ

具体的にはどんなことするんやい?

えいと
えいと

それはまた次の記事で説明するね!

プログラミング教育の実施例はこちら

・小学校のプログラミング教育の授業とは?算数・理科・国語・社会の実施事例を画像付きで紹介!

・小学校のプログラミング教育の授業とは?音楽・図工・家庭・総合の実施事例を画像付きで紹介!

プログラミング教育

今週のピックアップ!!

bibibi

    bibibiは
  • 無料ではじめられる!
  • ミッション形式で学べる!
  • 学習時間60分あたり500円以下も可能!
    ※週3回60分の自主学習+週1回オンライン自習室に90分参加した場合です

bibibiのマイクラプログラミング学習は問題を解くだけでなくミニゲーム形式の挑戦や作品作り、パズル形式の効率化学習もあり、飽きずに学び続けられる教材が取り揃えられています。無料でも中学レベルまで学べるのでマイクラプログラミング学習を探すならまずbibibiを要チェック!

bibibiのマイクラプログラミング学習は問題を解くだけでなくミニゲーム形式の挑戦や作品作り、パズル形式の効率化学習もあり、飽きずに学び続けられる教材が取り揃えられています。無料でも中学レベルまで学べるのでマイクラプログラミング学習を探すならまずbibibiを要チェック!

公式サイトで確認する
みっけ!