プログラミングとは?『あるべき姿』に向けて『動作』と『判断』を並べること

プログラミング基礎

お疲れ様です。YUmarunosuke(ゆーまるのすけ @YUmaru16061307)です。

プログラミングって難しいんじゃないの?

よく分からない画面を見てカタカタ打っているイメージ・・・。

「プログラミング」はとても難しくてとっつきにくいものと思っていませんか?

今回は、自己紹介でも記載したとおり、
プログラミングに対する苦手意識を少なくするための考え方
についてご説明します。

この記事はこんな人に読んでもらいたい
  • 「プログラミングって難しい・難しそう」と思った方
  • 「子供にどうプログラミングを教えればよいのだろう?」と思った方
この記事を読めばこんなことがわかる
  • プログラミング=『あるべき姿』に向けて『動作』と『判断』を並べること
  • プログラミング=コンピュータに指示すること・コードを書くこと では不充分

プログラミングとはコードを書くことではない?

皆さん、『プログラミング』って聞くと、何をイメージされるでしょうか?

世の中にあるプログラミングの解説には、

プログラミング=コンピュータに指示すること、指示するコードを書くこと

と書かれていることが大半だと思います。

もちろん合っていますが、将来求められる様々な課題に対応するには不充分です。

じゃあ、結局『プログラミング』って何なの?

どんな職業・仕事にも共通するプログラミングの定義は次のとおりです。

プログラミング=『あるべき姿』に向けて『動作』と『判断』を並べること

・・・何が違うの?と思われる方もいらっしゃるかもしれませんね。

違いは、プログラミング と コンピュータ を結びつけていない ことにあります。

プログラミングとは『あるべき姿』に向けて『判断』と『動作』を並べること

世の中には「プログラミング」と明確に定義されていないながら、
仕掛人(プログラマー)が人の行動を決める仕組みを作っています。

動かしたいように人を動かすために必要な要素として、以下の3つが必要です。

ヒト・モノの行動を決める要素3つ
  1. あるべき姿
  2. 判断
  3. 動作

具体的な例でご説明しましょう。

コンピュータに指示しないプログラミング例:スーパーマーケットのレジ待ち

必要な要素の整理

1. あるべき姿

客がソーシャルディスタンスを守って並びレジ前までたどり着く

2. 必要な『判断』
  1. どの客の後ろに並ぶのか?
  2. どのくらいの距離をとるのか?
  3. 前の客が進んだか?
  4. 前に並んでいるお客がいるか?
  5. レジが空いているか
3. 必要な『動作』
  1. すでに並んでいる客の後ろに移動させる
  2. すでに並んでいる客と距離を保って立たせる
  3. すでに並んでいる客が進んだら列を詰める
  4. レジ前に客がいないか確認する
  5. レジまで進む

プログラミングの具体的な流れ

客が並ぶレジを選ぶ

[判断1] 客がレジ待ちをしているか? → (No)店員前に移動に移動する
↓(Yes)
[動作1] すでに並んでいる客の後ろに移動させる

[判断2] ソーシャルディスタンスを保っているか →(Yes)判断3へ 
↓(No)
[動作2] すでに並んでいる客とソーシャルディスタンスを保てる場所に立つ

[判断3] 前の客が動いたか? →(No)動くまで待つ
↓(Yes)
[動作3] 前の客がいた場所に移動する

[判断4] 前に並んでいるお客がいるか? →(No)判断3に戻る
↓(Yes)
[動作4] レジ前に客がいないか確認する

[判断5] レジが空いているか →(No)動作4に戻る
↓(Yes)
[あるべき姿] ソーシャルディスタンスを守って並びレジ前までたどり着く

コンピュータに指示することなく、『あるべき姿』になっていますよね?

このように『手順』と『判断』を並べて『あるべき姿』へ導いていく
これがプログラミングです。

ただし、このように手順・判断を並べる『だけ』では、実際のお客さん(ヒト)はこのように動いてくれません。

具体的には、『ソーシャルディスタンスを保った位置に止まってくれない』という問題が生じます。

じゃあ、どうすればお客様がちゃんと止まってくれるのか?

ちょっとスクロールを止めて、ご自身の考えを思い浮かべてください。

このご時世、皆さんなら見たことがあるでしょう。

床に足跡マークがついていたり、進むルートが記載されているのを見たことがあるはずです。

引用元:飲食店用品.jp 見かけたらちゃんとソーシャルディスタンスを守りましょうね。

これは、お客さんを先ほどの手順のとおりに動かすため、店員さんが工夫して見える化したものです。

このように工夫をすること、『手順』と『判断』を見える化することこそが、
みなさんが思い浮かべる一般的なプログラミングのコード作成にあたります。

パソコンについて知らない、コードが書けない人でも、プログラミングってできるんですね。

お子さんほどプログラミング教育に触れない親御さんでも、
プログラミングに対して不安に思う必要はないんですよ。

まとめ

この記事では、プログラミングに対するそもそもの考え方から変えることができないか提案してみました。

プログラミングとは?まとめ
  • プログラミング=『あるべき姿』に向けて『動作』と『判断』を並べること
  • プログラミング=コンピュータに指示すること・コードを書くこと では不充分

色々なご意見があるかもしれません。

もしかしたら、このような考え方がしっくりくる方が少しでもいらっしゃるのではないかと思っています。

お子さんと接する際のご参考になれば幸いです。

では、次の記事までごきげんよう。

コメント

タイトルとURLをコピーしました