Column 04月 中学・高校でのプログラミング教育

中高生のうちに身につけておきたい、プログラミングの考え方やスキルとは

今回は「プログラミング教育」のゴールイメージの一つとして、高校の学習指導要領(案)を参考にしながら、
「中高生のうちに身につけておきたい、プログラミングの考え方やスキル」について、お話をしていきます。

○アルゴリズムとは
すべての生徒が履修することになる「情報I」ではこのような文面があります。

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

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

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

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

○社会に潜む問題を解決する
情報の学習指導要領の「目標」についても確認してみます。

問題の発見・解決に向けて情報と情報技術を適切かつ効果的に活用する力を養う 

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

「おじいちゃんを助けたい」もプログラミング?~「プログラミング」とは何かを考える_2016.11

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

プログラミングで最も大切なことは「どんな問題を解決したいのか」という部分なのです。

ここまで、高校の新学習指導要領(案)に関連して、「アルゴリズム」と「問題解決」について見てきました。
次回からは、いよいよ小学校における「プログラミング教育必修化」について詳しく確認していきます。