アレアレ

お役立ち情報、お悩み解決情報を発信!

基礎編

プログラミング学習の最も基本となる「アルゴリズム」とは何か?

このサイトの プログラミング教育 のコーナーでは、これからプログラミングを学び始める子供を持つ親御さんに向けて、プログラミングについてわかりやすく解説しています。全くプログラミング経験のない方は、基礎編の記事から、基礎編を読んだ方は実践編の記事をご覧ください。

プログラミング学習の最も基本となる「アルゴリズム」とは何か?

前回の、小さい子供はどのようにプログラミングを学ぶのか?の記事では、Code.orgの小さい子供向けの教材を例に、「いきなりパソコンをパチパチやるのではなく、紙の教材を使ってその考え方の基礎から学ぶ」と言うことをご紹介しました。

今回は、そのプログラミング学習の最も基本となる「アルゴリズム」についてご紹介します。

アルゴリズムの定義

Code.orgの最も基礎となるコース1のレッスン1の教員向けの資料には、アルゴリズムの定義として、次のようにあります。

Algorithm
A list of steps that you can follow to finish a task.

ざっくり意訳すると、「アルゴリズムとは、何らかの仕事を終わらせるために従う手順のリスト」というところでしょうか。この表現だと、抽象的過ぎますので、以下でアルゴリズムの具体的な例を挙げます。

アルゴリズムの例: 詰将棋の指し手、折り紙の折り方、カップラーメンの作り方

まず、将棋がわかる人にとっては、アルゴリズムとは、「詰将棋の詰むまでの手順だ」と言えば、ピンとくるはずです。相手に王手をかけ続けて最終的に詰むまでの1手、1手の連なりがアルゴリズムとなります。

折り紙の折り方も、アルゴリズムと言えます。例えば鶴を折りたいとして、その鶴を折るまでの折り方の工程がありますよね。そして、その折り方に従えば、誰でも鶴を折ることができます。その一連の折り方がアルゴリズムです。

最後に、カップラーメンの作り方で考えると、例えば、ヤカンで沸かしたお湯で作るとしましょう。するとその手順は、次のようになります。

カップラーメンの作り方

  1. ヤカンに水を汲む
  2. ヤカンを火にかけてお湯にする
  3. カップラーメンの蓋を開ける
  4. カップラーメンにお湯を注ぐ
  5. カップラーメンの蓋を閉じて数分待つ

この手順通りにやれば、誰でもカップラーメンが作れます。

以上のように、それに従えば、誰がやっても目的の仕事を達成できる一連の手順をアルゴリズムと言います。

プログラムとは、機械に実行させるアルゴリズムのこと

以上から「アルゴリズムとは何か?」と言うとは理解できましたよね。それを理解した人が疑問に感じるのは、「では、なぜアルゴリズムが、プログラミングの基礎となるのか?」と言う点です。

この疑問については、Code.orgの教員向け資料にある、次の定義を読むと納得できます。

Program
An algorithm that has been coded into something that can be run by machine.

意訳をすると、「プログラムとは、機械で実行できるようにコード化されたアルゴリズム」と言うところでしょうか。

要するに、プログラムは、アルゴリズムの1つの形ということですね。コンピューターやロボットなどの機械を操作するためのアルゴリズムを、プログラムと呼ぶわけです。そして、それを作ることがプログラミングです。なので、プログラミングの学習にあたり、その基礎として「アルゴリズム」を学ぶわけです。

さて、上のプログラムの定義のところで、「コード化された」という言葉が出てきました。プログラミングすることを、ITの現場では、同じ意味として、「コーディングする」とも言うくらい、プログラムとコード化には、関係があります。次回は、この「コード化」について、解説します。

中華料理店の注文を例にしたわかりやすい「コード化」の目的

Return Top