プログラミング学習をするときに、ソースコードという言葉を耳にすると思います。
「ソースコード」は「ソース」「コード」と、呼ばれることもあって、いったい何のことか分かりずらいかもしれません。
今回は、プログラミングで使用される「ソースコード」について小学生でも分かるように紹介します。
ソースコードってなに?
ソースコードとは、プログラミング言語で書かれたテキストのことだよ。
テキストというのは、文字で書かれたのもって考えると分かりやすいかな?
basic.forever(function () { basic.showString(“Hello!”) })
私たちの日常でも、言葉をつかって命令(お願い)を伝えることがあるよね?
たとえば、「お腹空いたからオムライス作って」といったお願いをすることがあるよね?
パソコンやスマホ、タブレットなどでプログラムを動かすには、プログラミング言語を使って様々な命令(お願い)を文字で記述するんだよ。
その命令(お願い)が書かれたものが、ソースコードとよばれるんだ。
ソースは上から順に動く
日本語の文字も上から順に、右方向に文字を読むのと同じで、ソースコードも上から1行づつ順良く処理を行っていくんだ。
さきほどの、「お腹空いたからオムライス作って」という命令(お願い)をソースコードにすると
ソースコード
命令1.「お腹が空いた」と私の言葉が聞こえたら
命令2.何を食べたいのか聞く
命令3.冷蔵庫を開け食材を取り出す
命令4.フライパンを取り出す
命令5.料理をする
このようになるね。
このときのポイント!!
処理は出来るだけ細かくする
なぜ細かく書く必要があるか?というとね。
私たちの日常では、多くのことが曖昧な言葉でやり取りしていることが多いんだ。
たとえば、
「ねえ、それ取って」
「僕、オレンジジュース」
「この前買ったのと似たようなもの」
などなどだね。
「ねえ、それ取って」ってどんなこと?
「ねえ、それ取って」って言葉を使う場面ってどんなときかな?
きっと、誰もいないデパートの屋上で一人で発する言葉ではないよね?
それに、おそらく初対面の人に対してではなく、知っている人に対して話しているよね?
だとしたら、家族か友達に言っているのかな?
そして、その人はどんな場所で何をしているのかな?
電話で話してる?
外と中で話してる?
違う部屋にいる?
起きてるの?
寝てるの?
お風呂に入っているの?
立っているの?
座っているの?
そして、「それ」ってなに?
私たちは、何かを言われて物事を正確に把握するときには、過去の経験とか、そのときの相手の様子、自分の状況などをたくさん考えて瞬時に行動を決めているんだ。
でも、プログラムに命令(お願い)を書くときは、過去の経験は全く持っていない。相手の様子も、自分の状況もしっかり文字で伝えないと伝わらないんだ。
だから、プログラムに「それ取って」とお願いしたら、プログラムは永遠に「それ」を探し続けてしまう。
ご主人様の命令(お願い)は絶対だから、気を利かせて「それとは、このテレビのリモコンのことでしょうか?」なんて聞いてはくれない。
ただひたすらに見つかるまで探し続けるんだ。
「僕、オレンジジュース」ってどんなこと?
「僕、オレンジジュース」ってどういう意味かな?
オレンジジュースが「僕、オレンジジュース」って、しゃべっているのかな?
きっと違うよね。
「僕、オレンジジュース」というのは
僕はオレンジジュースが好き
僕はオレンジジュースが飲みたい
僕はオレンジジュースが買いたい
僕はオレンジジュースを作りたい
きっと、これらの中のどれかだ。きっと・・・
そうなんだ、この場合も、言葉だけじゃ伝わらない。
「僕、オレンジジュース」という言葉の前後に、きっともっと会話がある。
友達と、好きなジュースの話をしているときなら「僕はオレンジジュースが好き」になるし、
家族で食事にいったときなら「僕はオレンジジュースが飲みたい」になる
スーパーで飲み物を探しているときなら「僕はオレンジジュースが買いたい」だね。
同じ「僕、オレンジジュース」という言葉でも、そのときの状況や、気持ちによって全然違う意味になってしまうんだ。
それに、
Aさん:僕が好きな遊びは「おにごっこ」
Bさん:私はなわとびが好き
Cさん:俺はドッジボールが好き
Dさん:僕はオレンジジュースが好き
みんな:????
この会話の流れがおかしいことに気づいたかな?
Aさん、Bさん、Cさんは「好きな遊び」について話しているのに、Dさんだけ「好きな飲み物」の話になっちゃった。
たしかに、言葉では「〇〇が好き」という言い方で同じだけど、「おにごっこ」「なわとび」「ドッジボール」は遊びなのに、「オレンジジュール」は遊びじゃないよね。
でも、どうしてDさんは「好きな遊び」じゃなくて「好きな飲み物」を言っちゃったんだろう?
きっと知らなかったんだろうね。もしかしたら、会話の途中から入ってきて「〇〇が好き」という言い方で「好きなものを言えばいい」って勘違いしちゃったのかもしれない。
勘違いは誰にでも起こるんだ。
宿題で、国語のノート3ページって言われてたのに、間違えて算数のノート3ページやってしまうとか、
テストで本当は答えられたはずなのに、数字を書き間違えちゃってバツになる。
そんな経験ないかな?
プログラムを実行するパソコンやタブレットは、命令(お願い)されたことを忠実に実行していく。
でも、私たち人間は機械じゃないから間違えるんだ。間違えて当たり前なんだ。
だからこそ「間違えに早く気づける」ようにしなきゃいけない。
普段の会話ではめんどくさいような言い方もあえてしなきゃいけない。
さっきの会話も
Aさん:僕が好きな遊びは「おにごっこ」
Bさん:私が好きな遊びはなわとびが好き
Cさん:俺が好きな遊びはドッジボールが好き
という言い方なら、途中から会話に参加したDさんでも「好きな遊び」について話しているんだな。って勘違いしないね。
ソースコードを書くときには、知っていることは全部書く、より細かくことが大事なんだよ。
ソースは下から順に考える
さっき、「ソースは上から順に動く」って言ったよね?
でもね、ソースを考えるときは「下から順に考えるんだ」
ソースコードを書く行為は、料理をすることと似ているんだ。
準備
何を作るか決める
必要な材料をそろえる
必要な道具をそろえる
食材
・人参
・ジャガイモ
・玉ねぎ
・牛肉
・カレーのルウ
道具
・鍋
調理行程
1.人参を切る
2.ジャガイモを切る
3.玉ねぎを切る
4.牛肉を切る
5.材料を鍋にいれる
6.鍋の具を炒める(玉ねぎがしんなりするまで)
7.鍋に水を入れる
8.15分煮込む
9.ルウを入れ溶かす
10.煮込む
11.完成♪
これはカレーを作るときのレシピだね。
一言で「料理をする」といっても、何を作るのか決めることから始まって、必要な食材、必要な道具をそろえて、調理スタートとなるんだ。
つまり、料理開始前に、カレーの完成形がすでにイメージ出来ているってことなんだよ。
どういうことかというとね。調理工程の「11.完成♪」となったとき、どんな料理ができているか?は、「何を作るのか決める」最初の段階でイメージできているんだよ。
まだ何も作っていないのにカレーの完成形がイメージできているんだね。
これって、すごく大事なことで、「何を作るのか?」が決まっていないとダメなんだ。
完成形がイメージ出来きた!
↓
どんな具が入っているのか?
どのくらいの量なのか?
どこで売っているのか?
料理時間はどのくらいかかるのか?
↓
準備をして料理スタート
と、実際に動くことを逆算して考えているんだね。
野菜は長く煮込んで、ルウは短く煮込むということだって「カレーに入っている野菜は柔らかい」ってことが分かっていないと決められないよね。
プログラミングも同じなんだ。
最初に完成形をイメージして、そこをゴールと決めて、ゴールに向かって必要なものをそろえていく。
カレーのレシピのように、ソースコードを書くときの基となる資料のことを設計書、または仕様書とよぶんだよ。
まとめ
ソースコードについてまとめるよ
- プログラミング言語で書かれた文章
- ソースは上から順に、右方向に読む
- あいまいな命令(お願い)では伝わらない
- 情報は出し惜しみせず、より細か書く
- ソースコードは逆算して考える
- コードを書くという行為は料理をすることと同じ
コメント