Loading...

Home > なぜ今、プログラミング学習? > プログラミング的思考

プログラミング的思考

6月 26日, 2023 - 読み終える時間: 6 分

前回は、生活で身近な家電・IT 機器からプログラミングを考えてみました。
が、これではあまりにプログラミング内容が高度すぎて、学校で学べるプログラミングってどんなもの?…が、わからないままです😅

今回はもう少し理解を進めるため、”私たちが使える・使えそうなプログラミング”を考えたいと思います。

目次

「プログラミング的思考」の育成

まずは原点に帰ってもう一度、文部科学省プログラミング概要 の他の部分を確認してみましょう。
すると、プログラミング教育のねらいとして

「プログラミング的思考」を育成すること。

という一文を発見!
さらに、

なお、プログラミングに取り組むことを通じて、児童がおのずとプログラミング言語を覚えたり、プログラミングの技能を習得したりするといったことは考えられますが、それ自体をねらいとしているのではありません。

ともありました。

プログラミングの言葉を覚えたりするのがねらいではないって、どういうこと?
「プログラミング的思考」って言葉がカギになりそう!

さらに文部科学省プログラミング概要 を読み進めると、

「プログラミング的思考」とは

自分が意図する一連の活動を実現するために、

どのような動きの組み合わせが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか記号の組み合わせをどのように改善していけば、より意図した活動に近づくのか、

といったことを論理的に考えていく力

ともありました!

「自分が意図する一連の活動を実現する」というのは、

  • 自分がやりたいこと・目標叶えること

ということだと、とらえてみます。
すると、「プログラミング思考」を学ぶということは、自分がやりたいことや目標をクリアするために

  • どんなもの・ことが必要か?
  • それらの仕組みは?
  • 解決しないといけない問題点は?

など、問題解決策を考えるときの頭の使い方を学ぶことにつながりそうです。

”プログラミングを考えているとき”を、想像してみる

問題解決したい時、私たちはどんなふうに解決策を考えているんでしょう…?

子どもとプログラミングについて話そうとすると

ゲームに使われてるよ!

という返事が返ってきましたので、「プログラミング思考」っぽく子どもと一緒にゲーム風問題解決方法を考えてみることにしました。

ゲーム風問題解決

ゲームの主人公(キャラクター)は

  • 目的地にたどり着きたい
  • でも、目の前に大きな、大きな岩がある
    • 岩がジャマで、進めない😭

…という、なんだかよくありそうな場面(問題)があるとします。

さて、どうしようか?

1. よじ登って前に進む!
2. 爆発させて壊す!
3. 回り道して進んだらいいよ!

おぉ、いろんな方法が出てきました😀

思いついた方法と解決策を、より具体的に考えてみる

それぞれ、どうやったら解決できそうかな?
ひとつひとつ、ゲームの中でできそうな解決方法を考えてみます。

方法その 1

冒険の過程努力を大切に、考えてみます。

がんばってよじ登ったらいいよ!

かなり腕力・体力・がんばる力が必要かもね。

● 主人公は力が強いのかな?大きな岩をよじ登るときに重要なことって、なんだろう?
● 着ているものや装備、体格を考えたら面白そうだね。

方法その 2

冒険の発想力型破りな物語を大切にする。

爆発させて壊しちゃえ!

バクダン使わないと壊れなさそうだよね😅

● バクダンは自分で作るのかな?お店で買うのかな?それとも何かの特殊能力を使う?!
● バクダンの材料やその金額、特殊能力の設定をどうするのか?で、色んな世界が広がりそうだね。

方法その 3

冒険の安全性命を大切にする。

回り道して進もう!

急がば回れって言うもんね。

● そもそも、大きな岩ってどのくらいの大きさなんだろう?
● 1日かかっても回れないくらい大きな岩だったら、面白そうだね。

問題解決方法は、千差万別

こんなふうに、最終目的(岩向こうの目的地へ行きたい)が同じでも

  • 主人公にどの方法を取らせようか?
  • どんな仕組みがあったらおもしろいかな?

を考えていると、こんなにたくさんの選択肢が出てきました😀

大人目線だと一番ムダなく効率良い方法を考えたいところですが…
ぜひ、自由な発想を活かしたいものですね。

”実生活で活かせる”プログラミング的思考

こんなふうに(今回はお母さんが方法や解決策を考えてしまいましたが)、自分の設定した目標(やりたいこと)や見つけた問題に対して、子どもが自分で

  1. 一番「効率的・ムダを省いた・楽しくできる…等」の方法はなにか?を考え
  2. 実行し、
  3. トライ&エラーを繰り返して
  4. 目標を達成させる

…という考え方・問題解決の練習ができれば、それは日常のいろいろなことに活用できそうです。

それが「プログラミング的思考」の育成 → やりたいこと・目標を達成するために考えるチカラを身につけることなのかな?

問題解決の”問題”も、ゲーム風だったら楽しく学べそうです😀