今日の授業では、プログラミングとその主要な概念について学びます。プログラム、プログラミング言語、主なプログラミングの方法、演算、条件分岐、ループ、配列、関数について理解し、自分自身でコードを書くことができるようになることが目指すところです。さあ、一緒に学んでいきましょう。
黒板
![](https://joho-terakoya.com/wp-content/uploads/2023/07/19360221eb96be91846562bc5e057082-6-546x1024.png)
授業
プログラミングって何?
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
さて、今日はプログラミングについて学んでいこう。なおや君はプログラミングの経験はあるかな?
![](https://joho-terakoya.com/wp-content/uploads/2023/04/cb0d259219ea5886bfa3891c468ff2a0-1.png)
うーん、中学の授業で少しやったけど、あまり理解できなかったから自信がないです…。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/b75d9d9a6c534b3d25243ac19bc0499d-1.png)
大丈夫だよ。一歩一歩進めていけば難しいことはないよ。プログラミングとは、自分たちが設計したアルゴリズムをコンピュータが理解できる形に書き換えることだよ。その書き換えたものがプログラムというわけさ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/788ba1b9cd590f0d71a03527896754c9-1.png)
なるほど、それでプログラムって言うんですね。だけど、どうやってコンピュータに理解させるんですか?
プログラミング言語とは?
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
いい質問だ!それを可能にするのがプログラミング言語だよ。人間が理解できる文字や数式記号で書かれたプログラムを、コンピュータが処理できる形に翻訳するんだ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/cb0d259219ea5886bfa3891c468ff2a0-1.png)
それってどういうことですか?人間が理解できる言葉と、コンピュータが理解できる言葉って何が違うんですか?
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
人間が理解できる言葉は英語や日本語などだけど、コンピュータが理解できるのは「0」と「1」だけなんだ。それを翻訳するのがプログラミング言語なんだよ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/788ba1b9cd590f0d71a03527896754c9-1.png)
ふーん、コンピュータの言葉に翻訳するのがプログラミング言語なんですね。プログラミング言語ってたくさんあるんですか?
プログラミング言語の種類
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
プログラミング言語にもいろいろな種類があるんだよ。例えば、「C」や「Java」はコンパイラ言語と呼ばれ、命令文のすべてを一度に翻訳してから実行する。一方、「JavaScript」や「Python」、「Scratch」はインタプリタ言語と呼ばれ、命令文を一行ずつ翻訳しながら実行するんだ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/788ba1b9cd590f0d71a03527896754c9-1.png)
そうなんですか。中学の時に少しScratchをやったことあるけど、他の言語もやってみたいな。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
それはいい姿勢だね。各言語にはそれぞれ特性があるから、どれも理解することが大切だよ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/63cef23d2e450e29361ffd9d51963edf-1.png)
それなら、一つ一つ挑戦してみます!
演算とは
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
次に、演算について学ぼう。これは数値や文字列を入れる箱のようなものを変数といって、その中に数値や文字列を入れることを代入というんだよ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/63cef23d2e450e29361ffd9d51963edf-1.png)
あ、それならやったことある。”+”とか”-“とか”*”なんかを使って計算したことあるよ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
そうそう、それが演算だよ。“+”や”-“のように、計算に使う記号を演算子というんだ。さらには、比較演算もあるんだよ。それは2つの値の大小を比較する演算のことだよ。主な演算子を黒板に書いたから、理解しておいてね。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/788ba1b9cd590f0d71a03527896754c9-1.png)
そうそう、変数を比較してもし~ならというプログラムを作った記憶がある。
分岐とループ
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
そうだね、プログラムでは条件によって処理を分岐したり、同じ処理を繰り返したりすることもあるよ。分岐は条件式にあてはまる場合と、あてはまらない場合で処理を変えることができるんだ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/788ba1b9cd590f0d71a03527896754c9-1.png)
それって、ゲームを作るときとかに使うの?
![](https://joho-terakoya.com/wp-content/uploads/2023/04/b75d9d9a6c534b3d25243ac19bc0499d-1.png)
もちろん使うよ。ゲームではプレイヤーの行動によってゲームの進行が変わるから、その制御に分岐は欠かせないんだよ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/788ba1b9cd590f0d71a03527896754c9-1.png)
ゲームでは、分岐のほかにどんなプログラミングをするの?
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
そして、何度も同じ処理を繰り返すことをループというよ。例えば、ゲームの敵が何度も出てくるのも、ループを使って実現するんだよ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/788ba1b9cd590f0d71a03527896754c9-1.png)
なるほど、ループもゲームには重要なんだね。
配列
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
さて、次に配列について学ぼう。配列とは、同じ型の複数のデータを一つの名前で扱うことだよ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/cb0d259219ea5886bfa3891c468ff2a0-1.png)
変数とは違うの?
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
いいところに気が付いたね。変数をたくさん合体させた変数というイメージかな。変数はアルファベット等の記号を使ったけれど、変数はこれに添字と呼ばれる通し番号をつけて使うんだ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/788ba1b9cd590f0d71a03527896754c9-1.png)
配列を使うと何かいいことあるの?
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
多くのデータを扱うときに、一つ一つ変数を作っていたら大変だよね。配列を使えば、まとめて作れるから便利なんだ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/788ba1b9cd590f0d71a03527896754c9-1.png)
なるほどね
プログラミング実践
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
では、今日学んだことをもとに、Pythonを使ってプログラミングをしてみよう
![](https://joho-terakoya.com/wp-content/uploads/2023/04/9133b16db1f00be3a05953573f3dbe28-1.png)
いきなりそういわれても、出来る気がしません・・・
![](https://joho-terakoya.com/wp-content/uploads/2023/04/b75d9d9a6c534b3d25243ac19bc0499d-1.png)
怖がることはないよ、1から5までの数を表示する簡単なものだよ。黒板に解説を記すから、まずはこんなものなのかな?と思うくらいでよいよ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/788ba1b9cd590f0d71a03527896754c9-1.png)
なるほど。pythonのプログラムは初めて見るけれども、ルールさえ覚えれば、自分でも作れるかも。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/b75d9d9a6c534b3d25243ac19bc0499d-1.png)
黒板の下に、実際にPythonを実行できるコードも張り付けておいたよ。「実行」と書かれている青いボタンを押すと、プログラムが実行されるから、試してみてね。またプログラム少し変更する(例えばwhile i <= 5:の「5」の値を「1」にしてみる等)と、結果にどう影響するか試してみると勉強になるよ。
黒板2
![](https://joho-terakoya.com/wp-content/uploads/2023/07/1e747160b568df1ae5b7e89208dffdcd-1-546x1024.png)
1から5までの数を表示するプログラム
まとめ
- プログラミングの概念
アルゴリズムをプログラミング言語で記述することで、コンピュータが実行可能な形にする行為。 - プログラミング言語と種類
人間が理解しやすい形式で命令を表現。主なものにC、Java、JavaScript、Python、Scratchなど。 - プログラムの実行
プログラムとデータはメモリに格納され、CPUはメモリから命令を読み出し、実行する。 - 演算と制御構造
算術演算や比較演算が存在し、条件分岐やループなどの制御構造でプログラムの流れを制御する。 - 配列と関数
配列は同型データの集合を管理し、関数は一連の命令を再利用可能にする機能。
名言解説
The only way to learn a new programming language is by writing programs in it. Brian Wilson Kernighan
ブライアン・ウィルソン・カーニハンは、C言語の共同開発者の1人として知られており、その他にもUNIXオペレーティングシステムの開発にも携わりました。カーニハンは、実際のプログラム開発の経験を豊富に持っており、その知識を広く共有してきました。
この名言の意味は、プログラミング言語を理解するためには、実際にプログラムを書くことが必要だということです。理論を学ぶだけでは言語をマスターできません。実際のコーディング作業を通じて、言語の特徴や振る舞いを直感的に理解する必要があります。
プログラミングは実践的なスキルであり、コードを書くことで理解を深め、才能を伸ばすことができます。エラーや挑戦的な問題に取り組む過程で成長が生まれます。自信を持って新しい言語に挑戦し、努力を惜しまず頑張ってください。
問題
「クイズをスタート」のボタンをクリックすると、5問出題します。さあチャレンジ!
編集者ひとこと
今回は、プログラミングの基本と、実際のコーディングの例も紹介しました。いきなりのPythonコードだったので、戸惑った人もいるかもしれませんが、一回で分からなくても、黒板の内容を読み直して理解してみてください。
また、ブログ上でPythonコードの実行ができるpaizaというサービスも使ってみました。このサイトに行くと、自分で作ったプログラムも、ブラウザだけで試すことができるので、ぜひやってみてください。
なお、このブログでは、プログラム言語はPythonを使います。学術分野等では今一番多くつかわれている言語なので、覚えておいて損はないですよ。
<RANKING>
高校教育ランキング