1. にゃおのリテラシーを考えるラジオ
  2. #119 【プログラミング】..
2022-02-27 07:40

#119 【プログラミング】変数で学ぶ論理的思考の話。

プログラミングを学ぶとき、最初に学ぶ概念として、「変数」というものがあります。

この「変数」を通じて、

論理的思考の訓練としてプログラミングが使える

というお話をします。

にゃおの考える現代の基礎的なリテラシーは、ITをきちんと使えることが含まれます。そのためにどのような問題があり、どう解決していったらよいか考えてみるPodcastです。

配信書き起こし
https://note.com/nchiba

twitter
@nchiba

「読書と編集」の活動は、
https://www.nyaos.net/

ストアカの「読書と編集のITリテラシー教室」は、
https://www.street-academy.com/steachers/468576?conversion_name=direct_message&tracking_code=62e788e6ff484f6d2952151bb9c955b4

をご覧ください。

00:12
にゃおのリテラシーを考えるラジオ、読書と編集の千葉直樹です。
このチャンネルでは、読書とIT時代の読み書きソロ版を中心に、様々な話をしています。
今回のタイトルは、「変数で学ぶ論理的思考の話」というものです。
プログラミングといったら、どんなことをイメージしますか?
なんだか難しそうな呪文をたくさん並べる感じですか?
英語ばっかりという印象もあるかもしれませんね。
どれも当たっています。
難しそうな呪文を並べるのはその通りです。
でも、基礎的な道具立ては実は多くはありません。
そのいくつかの道具を組み合わせる方法が無限にあるので、出来上がったものがとても難しそうに見えるし、実際に複雑なものなのです。
スマートな外観の自動車のボンネットを開けてエンジンルームを覗き込んだ時のような感じです。
初めて開けたときは、うわーっと思いますが、しばらく眺めてみると、大きな塊や小さな塊、
パッと見わかりやすそうなタンクがあったり、ベルトがあったり、
仕組みが完全にわからなくても、いろいろな要素から出来ているということがわかってきます。
見えた要素について調べたり、誰かに聞いたりしていって、少しずつ複雑なエンジンの仕組みを知ることは出来るはずです。
紙を乾かす時に使うドライヤーだって、よく観察するとどういう原理で機能しているのかわかってくるし、どんな風に扱うのが良いのかもわかってくるものです。
プログラミングを学ぶのもあまり変わりありません。
英語だから、という人もいるでしょうけど、それだって話す英語と比べたら覚えることは桁違いに少ないです。
何より今はすぐに試せる環境がたくさんあるので、触っているうちにわかってしまうことも多いのです。
ちょっと勇気を出してチャレンジしてみてほしいなぁと思っています。
プログラミングを学ぶ時、大抵一番最初に出てくるのは変数という概念です。
数学でも変数というものが出てきます。
でもこれ結構わかりづらいものかもしれません。
変数は変わる数と書きます。
わかりづらいのはこの変わるという概念です。
変数はよく入れ物と表現されます。
でもそれはあまり良い表現ではなさそうです。
どちらかというと、何かに名前を付けるもののような気がします。
ある数値に名前を付けるのです。
03:02
例えば3.14に円周率という名前を付ける。
その後で円周率を表示しろという命令を書くと、3.14が表示されます。
円周率という入れ物には3.14が入っていると見ることができます。
実はこのような使い方は定数ということが多いです。
もう少し長い円周率の値を使いたくなったとしましょう。
その時は円周率という名前の中身を3.14159に書き換えることができます。
書き換えた時から円周率を表示しろという命令を実行すると、表示されるのは3.14159になります。
円周率という名前に結びついている値が3.14から3.14159に変わりました。
このような名前のことを変数と呼び、変数に値を入れることを代入と呼びます。
プログラムはこのような変数をたくさん定義して、その中身を操作するものと考えることができます。
変数というと中身は数字と思うかもしれませんが、文字列のこともありますし、もっと複雑なものであることもあります。
この数字とか文字列とかもっと複雑なものの種類のことを型と呼んでいます。
変数は一度作ると入れられる型は決まってしまい、違う型を入れることはできないことが多く、
そもそも変数を作るときに、この変数は数値型だけを入れるみたいに厳密に決めることが多いのです。
決める理由は後でその変数を使うときに間違った使い方をするのを防ぐためです。
数値の4を2で割ることはできますが、文字列のaを2で割るとやってしまったら意味がわからないですよね。
実際にやってしまう前に最初から文字列型とわかっていたら、2で割るという処理を書いた段階で文字列は割り算できませんと教えてくれて、自分の間違いに気づくことができます。
こういう仕組みでいわゆるバグを事前に防ぐという仕組みがプログラミング言語には備わっているわけです。
たくさんの変数を定義してガチャガチャ動かすプログラムでは、そういう勘違いから来るバグを作ってしまうことが多いので、そういう仕組みがあるのですね。
このように人が考えていることはとても曖昧で勘違いが多いものなのです。
それを排除するために厳密なルールを適用し、それを機械で検証できるのがプログラミングということになります。
プログラミングは厳密な論理の積み重ねです。
06:00
ということは論理的な思考を学習する機械でもあると考えられるのです。
論理的な思考を冷たいから嫌いという人もいますが、単にそういう世界から目を反らしているだけです。
自動車のエンジンルームを見ないようにすることはできますが、あなたが便利に使っている自動車の中は冷徹な論理で出来上がっているのです。
コンビニの棚に商品がいつもあるのは、そういう論理の積み重ねのおかげです。
論理を操ることを放棄すると、感情だけで反応する疲れる日常になってしまうかもしれません。
そんな意味でもプログラミングを学ぶ価値があると思います。
ぜひチャレンジしてみてくださいね。
読書と編集では、ITを特別なものではなく、常識的なリテラシーとして広める活動をしています。
詳しい内容については、概要欄のリンクから、または、読書と編集と検索して猫がトップページに出てくるホームページをご覧ください。
この配信の書き起こしをnoteで連載しています。
概要欄にリンクがありますので、フォローいただけると嬉しいです。
今日もワクワクする日でありますように。千葉直樹でした。ではまた。
07:40

コメント

スクロール