アルゴリズムとは

 今回は「プログラミング教育」のゴールイメージの一つとして、高校の新学習指導要領を見てみましょう。すべての生徒が履修することになる「情報I」ではこのような文面があります。

 情報Iの「2 内容 (3) イ (イ)」
 目的に応じたアルゴリズムを考え適切な方法で表現し、プログラミングによりコンピュータや情報通信ネットワークを活用するとともに、その過程を評価し改善すること

 ここで登場した「アルゴリズム」を考えることは、現代社会を生き抜くために身につけるべき力のひとつであると考えています。

 コンピュータを動かすために必要なのは、プログラミング言語を学び、覚え、記述することだけではありません。どのような問題を、どのように解決するか・・・どうしたらコンピュータが効率よく動くのか、それを考える必要があります。この「問題を解決する手順」のことを「アルゴリズム」といいます。
料理のレシピを思い浮かべてみてください。「肉じゃがを作る」という問題(目標)を解決するための手順が「レシピ」となります。「問題を解決する手順」という意味で、「レシピ」もアルゴリズムということが言えるでしょう。数値の計算をおこなうときの「筆算」もアルゴリズムです。
料理のレシピや筆算は人間が解釈して行動しますが、コンピュータが解釈して行動(処理)するためには、考えたアルゴリズムをコンピュータが分かる形で書いてあげる必要があります。日本語が分かる人に向けたレシピは日本語で書きますが、コンピュータに向けたレシピ(アルゴリズム)は、プログラミング言語で書く必要があるのです。このプログラミング言語で書かれたアルゴリズムが「プログラム」です。ちなみに「プログラムを書くこと」を「プログラミング(コーディング)」と呼んでいます。
「プログラミング=プログラミング言語が使えるようになること」とイメージする方もいらっしゃるかもしれませんが、その前段階として、何をどうすれば効率的に解決できるのか…という「アルゴリズム」を考えることが重要です。

近年話題の大学入試改革や教育改革では、従来の試験以上に、知識を活用する力が問われてきます。知識を活用するための「考える力」を身につけるにあたって、「アルゴリズム」を考える習慣をつけることはとても有意義でしょう。

社会に潜む問題を解決する

 情報の学習指導要領の「目標」についても確認してみます。

問題の発見・解決に向けて情報と情報技術を適切かつ効果的に活用する力を養う 
 前回のコラムでも触れましたが、文科省の意図している情報教育は、「プログラミングスキル」の習得が目標なのではありません。社会に潜む問題を解決するために、そのツールとして情報技術を適切に活用できることを目的としているのです。
 ここで、「U-22プログラミング・コンテスト2016」で経済産業大臣賞を受賞した青山柊太朗さんの記事を紹介します。

 青山さんが高く評価されたのは、コーディングの部分だけではありません。そのアイディアと問題意識、問題を解決しようとするプロセス、使う人のことを考えたデザインと機能が評価されてのことです。(上記記事より)

 プログラミングで最も大切なことは「解決したい問題を発見し、解決する意欲」という部分なのです。

Z会のプログラミング講座ラインナップ

公開日:2018/03/16
最終更新日:2018/11/15