記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
(記事内のリンクの一部はアフィリエイトリンクです。詳しくはプライバシーポリシー&免責事項をご覧ください)
「情報1」でプログラミングが出てきてプログラミング的思考とか聞いたけどどうやったら鍛えられるの?
ていうか、そもそもプログラミング的思考と論理的思考ってよく聴くけど何?一緒なの?
違いなんて知らないよ。まずいなぁ…論理的思考も苦手だよ…
という方に向けた記事です!
「情報1」で出てくるプログラミング。プログラムを読み解く時に必要となってくるのが「プログラミング的思考」です。
でも実際のところ、「聴いたことはあるけど、それってどういうものなの?」「そもそも聞いたことないよ」という方もいるでしょう。
どういったものなのかがあまり理解できていなかったり、聞き馴染みがなかったりすれば、鍛え方もわからないですよね。
先に結論を言ってしまうと
プログラミング的思考は論理的思考の一部と言えるでしょう!別々のものであるため鍛え方も異なります
プログラミング的思考と論理的思考が「別物」ということを知ることで、それぞれに適した鍛え方を試すことができます。
さらに言うと、論理的思考を鍛えるための勉強は「最小限で良い」です
この記事では学習塾業界に10年以上勤める筆者が「プログラミング的思考」「論理的思考」の違いとそれぞれの鍛え方を経験に沿って紹介します!
この記事を読めば
なるほど。それぞれに適した鍛え方があるんだね
ということを理解し、プログラミング的思考にも強くなるでしょう!
- 高校の「情報1」でプログラミング的思考を学んだものの理解できていない人
- プログラミング的思考・論理的思考がどういったものか理解できていない人
- プログラミング的思考の鍛え方がわからない人
どれか一つでも当てはまる方はぜひ読んでください
\この記事でわかること/
- プログラミング的思考・論理的思考の違い
- プログラミング的思考の鍛え方
- 論理的思考の鍛え方
なお、この記事では「論理的思考」について以下の書籍を参考にしています。
- 教育業界・学習塾で10年以上勤務。教員免許状所持
- 500人以上の生徒に学習・進路指導:合格率 94.7%
- プロ家庭教師・小学校学習支援サポーター、校内予備校の教室長
- AIツールやオンラインでの豊富な指導経験を持つ
- 不登校傾向のある生徒やギフテッドの特徴を持つ生徒も指導中
なぜ「別物」と言えるのか:プログラミング的思考と論理的思考の違い
先に言うとプログラミング的思考と論理的思考は別物です。細かく言うと、論理的思考の一部がプログラミング的思考と言うことができます
プログラミング的思考は、コンピュータが「こうすればこう動く」という因果関係を成立させるために(プログラムを動かすためのアルゴリズムの要素である)「順次」「繰り返し」「条件分岐」を使って論理的に組み立てることと言えます。
一方、論理的思考とは論理に基づいて思考する能力です。ここでの論理とは関係性を整理することです。また、論理的思考は「複雑な事柄をわかりやすく説明できる能力」とも言われます。
論理的思考は「わかりやすく説明する能力」なのに、その説明がすでに難しくない?
そのツッコミはごもっともだね(笑)。それぞれについて、詳しいことは後述するね
プログラミング的思考も「物事を筋道立てて論理的に展開する」という点で似ていますが、少し似て非なるところもあります。ここでは論理的思考の一つと捉えておきましょう。イメージは下のような感じです。
プログラミング的思考が論理的思考の一部であると考えると、以下のことが言えるでしょう
- プログラミング的思考と論理的思考は別物なので、鍛え方が異なる
- 論理的思考がプログラミング的思考を包含していると考えられるので、論理的思考を鍛えることでプログラミング的思考を鍛えることにもつながる
そのため、プログラミング的思考を鍛えるためには以下を試すことができます
- プログラミング的思考(だけ)を鍛える方法
- 論理的思考を鍛えてプログラミング的思考にも活かす方法
2の方法は「大は小を兼ねる」というイメージに近いですね
なるほど、わかったよ。実際にどう鍛えたら良いの?
鍛える前にそれぞれについてより詳しく知っておこう。それの方が、どの要素(力)を鍛えたら良いかがよりわかりやすくなるよ
プログラミング的思考について知ろう
先ほど、プログラミング的思考について
「こうすればこう動く」という因果関係を成立させるために(プログラムを動かすためのアルゴリズムの要素である)「順次」「繰り返し」「条件分岐」を使って論理的に組み立てること。
と書きましたが、これは筆者なりに「わかりやすく変換した言葉」です。
文部科学省が公表している教育の情報化の手引きによると
自分が意図する一連の活動を実現するために,どのような動きの組合せが必要であり,一つ一つの動きに対応した記号を,どのように組み合わせたらいいのか,記号の組合せをどのように改善していけば,より意図した活動に近づくのか,といったことを論理的に考えていく力
教育の情報化の手引き-追補版-(令和2年6月)第3章
と定義されています。
どういうこと?難しいよ
・「コンピュータに(思うような行動)させるために、
・(アルゴリズムの組合せ)をこういう風にして組み立てました」ということを
・理論的(理にかなった)に説明できるようにすること
と言い換えることができるでしょう。
さらに言うとプログラミングとはコンピュータに指令を与えるときに使う方法なので
端的に言うと、目的(問題解決方法)のために使う「プログラムのフローチャートを描ける力」とも言えるでしょう
そのため、「こうすればこう動く」という因果関係を成立させるためにプログラムを動かすためのアルゴリズムの要素である「順次」「繰り返し」「条件分岐」を使って論理的に組み立てることと言い換えているのです。
プログラミング的思考で鍛えられる5つの要素
プログラミング的思考が鍛えるられると以下の5つの要素(考え方)が身につくと言われています。
逆にいうと、これらの考え方に慣れることがプログラミング的思考を鍛えることにつながるのです。
その力とは以下の通り。
- 分解する力
- 抽象化する力
- 一般化する(規則性を見つける)力
- 順序立てて手順を組み合わせる力
- シミュレーションする力
順に見ていきましょう。
ここでは、例題としてイソップ物語の「金の斧 銀の斧」を取り上げます。
物語として有名なものですが、「どんな話だったかな?」という場合はコチラをご覧ください。(この記事では「鉄の斧」を「普通の斧」と表記しています)
分解する力・抽象化する力
「金の斧 銀の斧」の落とした斧を問う一連の流れは
- 「あなたの落とした斧は金の斧?銀の斧?普通の斧?」と聞く
- 相手が答える
- 答えた内容によって、与える斧を変えるor与えない
というものです。
まず、このように動作や流れを要素に分けて整理するのが「分解する力」です。
さらに、この流れを
- 回答者に質問する
- 質問内容を「金・鉄・普通」と繰り返す
- 答える人が回答する
このように、分解した要素を汎用性のあるかたちにするのが「抽象化」です。
一般化する(規則性を見つける)力・順序立てて組み立てる力・シミュレーション力
斧の種類を尋ねる行為は3回繰り返します。
このように規則性を見つけることを「一般化する力」と言います。
さらにここまで整理した要素を思うように動かすために順序立てて組み立て、フローチャートを描きます。この力が「順序立てて組み立てる力」です。
シミュレーション力は、その名の通り、組み立てたフローチャートで思うような動作になるのか、ということを「シミュレーションする力」です。
プログラミング的思考を鍛えるとこういった力が身に付いていくのです。
論理的思考は3つのチカラ
まず第一に理解しておきたいのが、論理的思考は「相手に正しく伝える」「相手から正しく伝わる」ためにあるということです。
論理的思考は、論理に基づいて思考する能力です。ここでの論理とは関係性を整理することです。そのため、論理的思考は「複雑な事柄をわかりやすく説明できる能力」とも言われます。もっと言うと「因果関係を整理し順序立てて相手に正しく伝える・相手から正しく伝わる力」と言えます。
このとき因果関係や関係性を整理するために必要な力は「言い換える力」「比べる力」「辿る力」です。
日常会話でも「お腹が空いていたから(原因)間食した(結果)」と使うように、わかりやすい例は因果関係を用いる方法ですね
ちなみにこの3つの力が「国語力」を鍛えるにも有効なため、論理的思考を鍛える教科として最適なのが国語なのです
さっきの例は簡単だけど、でもなんか論理的思考って聞くと苦手意識が出るんだけど…?
じゃぁ、論理的思考が苦手な人・できない人の特徴を見て当てはまるか確認してみよう
論理的思考が苦手・できない人の特徴
論理的思考力は「言い換える力」「比べる力」「辿る力」の3つに分類されることは先にも触れました。
ということは論理的思考が苦手な人・できない人というのは、これらの力を伸ばしきれていない人ということとも言えます。
それぞれの力について順に見ていきましょう。
言い換える力が苦手という人に多い特徴は「例え話が下手」ということでしょう。
抽象的なことや具体例を多く言いすぎて、相手に「具体的には?」とか「つまり何?」と言われたことはないですか?
たとえば国語の文章でも「抽象」「具体」を繰り返して展開していて、「抽象」に対応する「具体例」は一つではありません。
この「抽象した物事」を「別の具体例」に置き換えることに慣れていないため「例え話が下手」ということにつながってしまうのです。
言い換える力を鍛えるために「物事を抽象化/具体化」する力を伸ばすようにしましょう
比べる力が苦手だと「事実とそうでないことの判別を付けづらい」ということが起こりえます。
国語の問題で「正しい答え」を選択する際に、二択まで絞れたのにその二択で間違えた。しかも間違っていた原因は、「本文に書いていないことが含まれている選択肢だから」といった経験はありませんか?
これは「事実(本文に書いていること)」と、「そうでないこと(本文に書いていないこと)」の区別がつけられていないことが原因です。
特に、こういった場合には、事実以外のことも含めてしまい、感情的になってしまい「理論」から脱線してしまうことがあります。
だって、主人公が◯◯したら、▲▲になる(本文に書いていない)から可愛そうじゃん!だから選択肢は「(エ)」にしたの!
こういう主張もしたくなる気持ちもありますが、「相手から正しく伝わる」という観点からは逸脱してしまっていますよね。こうなると、感情論も混じってしまい正しい答えに結びつけることが難しくなります。
そのため、冷静に「事実」か「そうでないか」という点に注目する癖をつけるようにしましょう。
辿る力が苦手な人は、論拠を見つけるのが苦手という特徴が多いです。
なんでそうなの?と言われた時に明確な事柄を指せず「なんとなく」という感覚だけで答えてしまう経験はありませんか?
「なんとなく」で答えてしまうのは、ある意味素直で直感的なのですが、それだけでは「相手から正しく伝わっているかわからないと不安を与える」場面も多くなるでしょう。
こういった場合は、「◯◯(原因)だから▲▲(結果)」を意識するようにしておくことで論拠を見つける力が養われていくので心がけましょう。
意外と当てはまっているのが多かったよ…ショックだ…
気持ちはわかるよ。それに気づいたら鍛えれば良いだけ。次から鍛え方を紹介するよ
プログラミング的思考と論理的思考の鍛え方
それではいよいよ鍛える編です。
今回の目的は「プログラミング的思考に強くなること」でした。
プログラミング的思考は論理的思考の一部と考えると、その鍛える方法は以下の2つです。
- プログラミング的思考(だけ)を鍛える方法
- 論理的思考を鍛えてプログラミング的思考にも活かす方法
1はピンポイントにプログラミング的思考を鍛えていく方法、2はボトムアップに近い方法だね
プログラミング的思考(だけ)を鍛える方法
プログラミング的思考を鍛える方法として紹介したいのは
- 身近な出来事をフローチャートにする
- Scratchで視覚的にアルゴリズムを捉えられるようにしよう
ということです。
フローチャートを描けるということは「分解」「抽象」「一般化」ができるということです。
意外と普段何気なく行っている身近なことも、フローチャートにすることができますし、フローチャートにしてみるとシンプルだったという発見もありますよ。
Scratchはビジュアルに特化したプログラミング練習用言語です。
アルゴリズムをブロックに見立て、組み立ていく感じでプログラムを作ることができます。
また「条件」「繰り返し」の詳細についても文字を入力するだけなので、操作も簡単です。
小学生向けのプログラミング教室やさまざまなところで活用されているソフトなんだよ
このソフトを通して視覚的にアルゴリズムを捉えられるので
フローチャートを自分で描くのは苦手
という人でもアルゴリズムを組み立てることができ、プログラミング的思考の5つの要素を鍛えることができます。
論理的思考を鍛えてプログラミング的思考にも活かす方法
一方、ボトムアップの方です。
論理的思考はビジネスのシーンでも重要とされる考え方。受験にとどまらず社会人になってからも必要な能力だから、こちらも鍛えるようにしよう!
論理的思考を鍛えるには、
- 論理的思考の捉え方を問題集で身につけよう
- それぞれの力の「目印」となる言葉を意識する癖をつけよう
というステップを踏みましょう。
特に「思考」というのは一朝一夕には身に付きづらく、ただひたすら問題を解けば良いというものではありません。それよりも普段から意識して癖づける方が身体に馴染ませやすく、問題演習でも活かしやすくなるのです。
これが「論理的思考は最小限の勉強で良い」という理由です。
まずは手始めに論理的思考の捉え方を身につけましょう。
▶︎論理的思考が何かを詳しく知るための本として「「本当の国語力」が驚くほど伸びる本 偏差値20アップは当たり前! 福嶋隆史/著」がオススメです。
▶︎そして、この本の公式問題集「ふくしま式「本当の国語力」が身につく問題集 2[小学生版] 問題のバリエーションがさらに充実! [ 福嶋 隆史 ]」もオススメです。
※冒頭でも紹介している書籍です。
問題集には小学生版って書いてるけど大丈夫なの?
小学生でもわかるくらい、わかりやすく書かれているので初心者にはおすすめだよ。
▶︎この本をオススメする理由は「【国語力を伸ばす】小中学生から高校生、大人まで使える参考書「『本当の国語力』が驚くほど伸びる本」とは」で詳しく紹介しています
論理的思考に必要な関係性を把握し整理するための力。「言い換える力」「比べる力」「辿る力」にはそれぞれ、目印となる言葉があります。
ますはそれを知りましょう。そして文章や会話の中で登場した際に思い出して文章や会話に当てはめ、的確に関係性を把握するようにしましょう。
それぞれの関係性を把握するために目印となる言葉は以下の通りです。
- 「たとえば」
- 「つまり(要するに)」
「たとえば」は抽象→具体。「つまり(要するに)」は具体→抽象するときの目印になるよ
- 「それに対して」
たとえば国語の選択肢でも、「この部分は『事実(本文に書いている)』、それに対してこの部分は…」と「それに対して」と挟む癖をつけてみよう。
- 「だから」
- 「なぜならば」
「だから」は原因(理由)→結果を、「なぜならば」は結果→原因(理由)という順序になるよ
これらの言葉が使われるときには特に注意して前後の文脈がどういう関係性にあるか捉える癖をつけましょう。
普段から意識して訓練することで問題演習する際にも力を発揮することができますし、この論理的思考を鍛えることによってプログラミング的思考における「抽象」「組み合わせ(順序立て)」の力、そしてアルゴリズムにおける「順次」を理解しやすくなるでしょう。
まとめ
「プログラミング的思考」と「論理的思考」が別々であること、そのため鍛え方が違うことを紹介しました。
プログラミング的思考を鍛えるためには
- プログラミング的思考(だけ)を鍛える方法
- 論理的思考を鍛えてプログラミング的思考にも活かす方法
という手法をとることができます。
プログラミング的思考を鍛える方法として
- 身近な出来事をフローチャートにする
- Scratchで視覚的にアルゴリズムを捉えられるようにしよう
こと、そして論理的思考を鍛えるために
- 論理的思考の捉え方を問題集で身につけよう
- それぞれの力の「目印」となる言葉を意識する癖をつけよう
が有効と言えるでしょう。
まだまだ教科として新しい「情報1」。そのため、その中に含まれるプログラミング分野において、プログラミング的思考に慣れていない人も多いはず。だからこそ、これらを通してプログラミング的思考に強くなるようにしましょう!
最後まで読んでいただきありがとうございました。
この記事が少しでも参考になれば幸いです。
それではまたここで会いましょう!
にほんブログ村ブログ村に参加中です。上のバナーをクリックいただくだけで当ブログにポイントが入ります。いつも応援クリックありがとうございます。
Twitter やってます。
新着記事のお知らせをしていますのでぜひフォローしてください!人気の記事
この記事を読んだ人はこちらの記事も読んでいます。
▶︎「【塾長分析】大学入学共通テスト2025「情報」まとめ【難易度・対策】」
共通テスト「情報」対策に必要なことは?塾講師が解説!勉強法と参考書▶︎「【最新】(情報1)共通テスト試作問題 難易度と3つの対策」
【最新】(情報1)共通テスト試作問題 難易度と3つの対策スポンサーリンク