中高一貫生に対するプログラミングのススメ
はじめに
昨今の大学入試におきまして、各大学のアドミッション・ポリシーの改定も進み、理系ではプログラミング能力も重視されています。慶應義塾大学SFCの2学部(総合政策学部および環境情報学部)は、2016年度(16年2月)の一般入試における科目変更の方針を昨年12月27日に公表し、一般入試の科目の中に「情報」が加わりました。また、これから導入される東京大学の推薦入試でも、プログラミングを重視する件が話題になりました。
プログラミングとは
プログラミングとは、コンピューターのソフトウェアを作ることです。 プログラム(ソフト)は、コンピューターに対する命令の集まりのことです。
プログラム言語とは
プログラムは、コンピューターに対する命令の集まりで、コンピューターに「XXをして、次にYYをして、そして次にZZをしろ」ということになります。
このような一連の命令は、残念ながら日本語などの自然言語でコンピューターに伝えることはできません。コンピューターは人間では理解困難な独特の言語でしか理解してくれない特徴があります。
そこで人間にとって少し分かりやすく人工的に作られたコンピューターへの命令用の言語がプログラミング言語です。これにより人間が難解なコンピューターの言葉を覚えることなく、コンピューターに対する命令を伝えてくれます。
プログラム言語は、言語であるので、文法が存在します。そして、自然言語のような曖昧な文法ではなく、かなり厳密な文法です。しかし、厳密であるということは、裏を返せば習得しやすいということにつながります。日本語や英語の文法が複雑で、バリエーションに富み、かつ例外などが多く習得が大変ですが、プログラミング言語はずっとシンプルです。
アルゴリズムとは
コンピューターは融通が利かず、命令されたままに従って動作する特徴があります。従って、プログラミングにおける最大の課題は、どのような命令を、どのような順序で行うかになります。間違った命令を行えば、コンピューターは疑うことなくそのまま間違った動作をしてしまいます。
例として、ロボットにある地点まで道案内をさせるとします。「しばらく真っ直ぐ進め→右へ曲がれ→次に左に曲がって進め」としなければいけないところを、「左→右」と命令してしまうと、残念ながら目的地には着きません。
プログラミングのやっかいなところは、予め全ての命令を書き出しておかなければいけないところにあります。例えば、上記のロボットの道案内の例で、途中に工事が行われていても、進め、と予め与えられた命令はそのまま実行されてしまいます。もし迂回させたいのであれば、予めそのように命令を与えておかなければいけません。
このようにプログラムは全ての場合を想定して、一連の命令を与えておかなければいけません。つまり、ある仕事をコンピューターに行わせる場合、どのような手順で作業をしていかなければいけないのかを考え、記述しておかなければならないです。このような一連の手順のことをアルゴリズム(algorithm)と呼び、日本語では「計算手順」と呼ばれています。
プログラムを作る、つまりアルゴリズムを考えるのは人間で、コンピューターはそれに従ってただ単に実行するだけになります。よって、人間が優れたアルゴリズムを考え出し、それをコンピューターに与えることができれば、コンピューターは素晴らしいパフォーマンスをしてくれます。一方レベルの低いアルゴリズムしかプログラマーが考えられなかったとすると、残念ながら低レベルなコンピューターになってしまいます。
変数、代入、演算について
プログラミングにおいて非常に重要なのは、変数と代入命令です。
変数とは、コンピュータ上で一時的に数値などを入れておく箱と考えます。
例えば、携帯電話のメモリーを考えます。1番という場所に自宅の電話番号を入れて(保存・メモリーして)取っておき、後で参照することができます。
プログラミング言語における変数も基本的には同じような働きをします。
変数、つまり数値などを格納しておける箱は、自由にプログラマーが用意できます。また、使用する変数は、1番、2番などではなく、自分で名前をつけなければいけない。これを変数名というが、たとえば「x」とか「i」や「sum」などを変数名として使うことができます。
では、変数になんらかの数字を保存、つまり代入しておくにはどうしたらよいでしょうか。
ここで早速プログラミング言語における命令を覚えなければいけません。
BASIC言語の場合、変数などに数値などを保存、つまり代入するという、命令は「=」という記号で表現され、代入命令と呼ばれます。例えば、
x = 3
という一文は、BASICでの命令であり、「x」 という変数(コンピューター内に用意され自分でxと名付けた箱)に「3」という数値を保存しなさいという命令を意味します。
この一文をコンピューターに実行させると、コンピューター内でこの動作が行われます。
代入命令「=」をもう少しだけ詳しく文法的に解説すると、右側の計算結果を左側の変数にしまう(保存する)という命令です。
プログラミングに挑戦する
コンピューターにやらせたいこととして、今年(2016)は2000年から何年経つのかを求めさせてみましょう。
上記の解決したい問題を理解・分析したら、次はアルゴリズムを考えます。
重要なアルゴリズムの一部としては、「今年-2000年」を計算すればよいことになります。
では実際にプログラムしてみましょう。
k = 2016
t = 2000
a = k – t
上記3つのステップにより何年経ったかが求まります。
プログラムはやらせたい順番に上から書いていかなければいけないルールがあります。
結論
プログラミングを通して、問題を発見し、プロセスを組み立て解決する大切な力を育むことができます。
また、パソコンは「ロジカル」の塊です。「ロジック」が間違った時点でエラーになるので、「ロジカル」にものごとを捉えられなければ解決できません。プログラミングを通して、トライ&エラーを繰り返す中で、確実にロジカルシンキングを身につけることができます。
投稿者プロフィール
-
中高一貫校生の定期テスト対策から大学受験・内部進学までをトータルサポートする個別指導塾。
中高一貫校用教材に対応することで各中高一貫校の定期テストの点数に直結した指導を行います。
低料金で長時間指導が受けられるため、家で勉強できない中高一貫校生でも塾の指導時間内で成績を上げることが可能です。
英語、数学をメインに指導を行っています。