てっぱんにいちゃーん!!
プログラミングの基礎を教わったけど、やっぱりよくわかんないよー!ボクってダメなやつなのかな
全然、そんなことないよ!
プログラミングってのは日常的なことであるものの理解するっていうのは案外難しい分野なんだ。
だから僕に聞いてくれれば何度だって噛み砕いて説明するよ。
じゃあ今回は、前回やったプログラミングの基礎をより噛み砕いて、もっと簡単に例を上げながら説明していくね。
う、うー、もしこれでもわからなかったらボクは本当にダメなやつなのかなぁ
大丈夫!
僕の説明が下手なだけだし、僕の説明との相性が悪いってだけでプログラミングが向いていないわけでもバカなわけでも絶対ないから。
とりあえず聞いてわからないところをまずは明確にしていこう!
わからないところを潰していけば、きっとわかるが繋がってきてプログラミングの面白さに気づけると思うよ!
プログラミングとは、プログラムを書くこと
たこが例えば、お絵かきをするとき
どんな絵を描くかを決めて、色鉛筆や絵の具を使って絵を描くよね。
それと同じように、プログラミングっていうのは、どんな動きをコンピュータにさせるかを考えて、「プログラム」という設計図を作ることなんだ。
プログラムとは?
プログラムっていうのは、コンピュータにどう動いて欲しいかを教える命令のこと。
例えば、プログラムを使って「おはよう」というメッセージを画面に表示させることもできるし、足し算や引き算をさせることもできる。
命令次第で複雑に、いろいろなことをさせることができるんだ。
AIもこのWebサイトもみーんなコンピュータへの命令をまとめたプログラムによって実現しているんだよ。
ここ!命令!命令ってのがいまいちよくわからないんだよ。命令って何?
いいね~!そうやって止めてくれると僕も教えやすい。
命令っていうのはコンピュータに〇〇してねという指示を表しているよ。
僕たちの実生活の中にも命令になるうることはあって、例えばクラスの目標に「教室に入ったら大きな挨拶をしよう」というものがあるとする。
この目標もまたコンピュータからすると命令になるわけだ。
①教室に入った場合
②大きな声で挨拶をする
という二つの動作をプログラムすることで実現することができるよね?
うーん、命令って、やることって感じなのかな?
そうだね。
やること、実行すること、コンピュータにやってもらいたいことの最小単位が命令ってことになるね。
最小単位ってことは、
あ!そういうことか。命令を集めるとプログラムになるってことだね?
そう!
プログラムっていうのは命令が集まったものだよ。
プログラム一つで「クラスの仲を深める」というのがあったとしたら命令に「教室に入ったら挨拶をする」「困っている人がいたら声をかける」とかがあるイメージだよ。
おー、なんとなくわかってきた!
あとは命令の中身だなぁ。今のところなんでもいいってのが命令だっていう理解だけど…
命令って聞くといろいろなのを想像するけど実は三つの種類しかないんだ。
命令は3種類「条件分岐」「繰り返し」「計算」
プログラムの命令は大きく分けて3つの種類がある「条件分岐」「繰り返し」「計算(演算)」だ。
「条件分岐」は、もし~ならば~というような指示を表しているよ。
例えば、「もし外が雨なら傘を持って出かける」というのが人間の条件分岐の例だ。
「繰り返し」は、同じことを何回も繰り返す指示。
例えば、「ジャンプを10回繰り返す」や「こんにちはと5回言う」などがこれにあたるね。
そして「計算(演算)」は、足し算や引き算、掛け算などの計算を行う指示。
例えば、「3+5の計算をする」というのがこれにあたるよ。
他にも計算(演算)はいろんなことが含まれていて、画面に文字を出力させる命令も計算(演算)に含まれているんだ。
条件分岐でも、繰り返しでもないものは基本、計算(演算)という分類ができる。
この3種類さえ、覚えておけば何がどの命令かわかって、プログラムを読むときにもわかりやすくなるはずだ。
プログラムは組みわせ
プログラムを作るときは、「条件分岐」「繰り返し」「計算(演算)」の命令を組み合わせて、コンピュータに複雑な動きをさせることができるんだ。
例えば、「もしスコアが100点以上なら、”You win!”と表示し、それを10回繰り返す」というように、条件分岐と繰り返しと計算を組み合わせて動きを作り出すことができるんだ。
プログラムは三つの命令の組み合わせって、本当に?
なんとなくもっとすごい難しい気がしていたんだけど…
本当に三つの命令の組み合わせって理解で問題ないよ。
正確なことを言うと「計算(演算)」ってのはもう少し込み入ってくるんだけど、とにかく三つに大まかに分類できてその組み合わせってのがプログラムの本質っていうのをわかってほしい。
プログラミングは組み合わせを考えて問題解決すること
プログラミングとは、「条件分岐」「繰り返し」「計算(演算)」の命令をどう組み合わせて作り上げるプログラムを書くことを表しているんだ。
プログラム自体は何か問題を解くときに使われて。
例えば、お母さんが「部屋の掃除をして、それが終わったらゲームをして良い」と言ったときを想像してみる。
これは「部屋の掃除(繰り返し・計算)」と「それが終わったら(条件分岐)」、「ゲームをする(計算)」という命令を組み合わせたプログラムと同じなんだ。
日常的なこと全部がプログラムで表すことができて、プログラミングを学ぶ意味としても日常的な問題をプログラムの視点で解けるようになると、大人になったとき役に立つっていうのがあるんだ。
一見難しいような問題も、「条件分岐」「繰り返し」「計算(演算)」を組み合わせることで、コンピュータにもできちゃう簡単な作業に置き換えられちゃうってことさ。
一見難しいような問題って例えばどんなの?
学校のテストで良い点数を取るなんて例はどうかな?
!確かに難しそう、というかそれ知れればボクも良い点取れるじゃん!
学校の理科の授業で良い点数を取るという問題を噛み砕くとこんな感じの命令の羅列になる。
①:良い点数か確認して良い点ならば②へ、悪い点であれば③へ
②:良い点数だった問題は特に何もしない⑤へ
③:悪い点数だった問題をピックアップしてノートに書き出して④へ
④:ノートに書き出した悪い点数だった問題をもう一度解き直して正しい解き方を覚える⑤へ
⑤:テスト日であれば前日であれば⑥へ、そうでなければ①に戻る
⑥:テスト前にノートにピックアップした問題を解き直しテストへ挑む⑦へ
⑦:テスト結果を確認して①へ
みたいな①~⑦に噛み砕くことができる!
おーー、確かにこれなら良い成績が取れる気がする!!
ってけどこれじゃ覚えるとかの作業が必要になってくるじゃん。
単純にこれに沿えば良い点取れるとは限らないじゃん!!
そうだね。
僕たちの記憶能力には限界はあるし、いくら解き直しても忘れちゃうことはあるから完璧なプログラムとは言えないけど、最善のプログラムではあると思うよ。
まとめ
こんな感じで世の中の多くのことをプログラムとして「条件分岐」「繰り返し」「計算(演算)」に噛み砕くことができるってことがわかってくれればいい。
どうだったかな?
うーん、やっぱりなんとなくって感じかな。
色々な例をもっとやればわかってくるような気もしなくもなくもなくもなくもない!!
なくもなくも、んー~ーどっちだよ!!!
まぁ、なんとなくわかっていけば、そのうち理解の線が繋がると思うから、わからないところは何度も読むか、わからないところをピックアップして僕に聞いてくれてもいいよ!
うん!!!ありがとう!てっぱんにいちゃん♪