子供から「オブジェクト指向プログラミングってなに」と質問された時の対処法

2020年から小学校でのプログラミング教育がスタートします。ある日突然、子供から「オブジェクト指向プログラミングってなに?」と聞かれる日も近いかも知れません。特にITとは無縁の生活を送るお母さんやお父さんでは、説明できない質問です。
記事では、子供からオブジェクト指向に関する質問をされたときの対処法を、子供向けプログラミング教育環境「スクラッチ(Scratch)」を例に解説します。

 

オブジェクト指向は理解が難しい

「オブジェクト指向」とは、プログラミングの基本的な専門用語です。しかし、簡潔な説明は難しい用語でもあります。
実際、プロが仕事で使うプログラミング言語の多くは、オブジェクト指向だと言われています。一方、子供が学習で使うスクラッチ(Scratch)もオブジェクト指向のプログラミング言語です。

新たに始まったプログラミング教育の中で子供は、「オブジェクト指向」という言葉を聞くことになるかも知れません。疑問に思えば先生や親に質問するでしょう。その時、キチンと答えてあげたいのが親心です。
そしてインターネットで「オブジェクト指向」を調べようとした親御さんは驚くかも知れません。なぜなら、オブジェクト指向について解説している記事は多いのですが、内容が難しいからです。

オブジェクト指向は概念

「命って何?」「幸せって何?」。
子供は、難しい質問をよくします。

「オブジェクト指向ってなに?」
これも同様に答えにくい性質を持っています。プロのプログラマーでも回答は千差万別です。つまり、どのようにも解釈できる概念が「オブジェクト指向」なのです。

オブジェクト指向は「プログラミングを簡単にする方法」

それでも子供に対して、オブジェクト指向を一言で教えるなら「プログラミングを簡単にする方法」と答えます。プログラミングは、大人でも難しい作業です。専門知識とスキルを勉強しないと仕事になりません。そこで「オブジェクト指向」を使って、(ひかくてき)誰でもプログラミングできるよう簡単にしました。そのために役立つものがオブジェクト指向です。

オブジェクト指向を使って、大人向けに「簡単」にしたプログラミング言語には、JavaやPython、phpやjavaScriptがあります。もっと簡単にして子供向けにしたプログラミング言語がスクラッチ(Scratch)です。
例えば、ドラえもんのポケットから出てくる、「不思議だけど便利な道具」のようなモノといえば、子供でも理解できるかも知れません。

どんなメリットがあるの?

プログラミングに、なぜオブジェクト指向を取り入れるかというと、もちろんメリットがあるからです。
まずプログラミング自体が簡単になります。簡単になると、多くの人がプログラミングできるようになるでしょう。さらに完成したプログラムは、誰が見ても理解できて、間違いを修正しやすく、また変更もしやすいのが特徴です。
つまり難しい部分をあえて隠し、多くの人がプログラミングできるように簡単に見せるのが「オブジェクト指向」のメリットです。

自然と溶け込んでいる

オブジェクト指向はとても便利なもの。そのためプログラミング業界には、広く深く浸透しています。多くのプログラマーたちは、意識しないで利用しているものです。
だれもが使っているけれど、だれも明確に説明できないという意味では、「命」などと似た性質を持ちます。利用していることさえ忘れてしまうけれど、とても大切なものです。

スクラッチ(Scratch)でオブジェクト指向プログラミングが身に付く

スクラッチ(Scratch)は、オブジェクト指向の考えを存分に活用したプログラミング練習環境です。スクラッチ(Scratch)を使った勉強をすると、子供でも、自然とオブジェクト指向の考え方を身につけることができます。
子供にオブジェクト指向を理解してもらうためのポイントを3つ紹介します。

ポイント1_オブジェクトは「モノ」

オブジェクトはモノです。「人間」も「学校」も「雨」も「サッカーボール」もすべてオブジェクトです。そしてスクラッチ(Scratch)では、最初から存在している「猫のキャラクター」のことを指します。
例えばスクラッチ(Scratch)に「いちごの写真」を新たに加えたら、それもオブジェクトです。この場合、猫といちごの2つのオブジェクトが、スクラッチ(Scratch)上に存在していることになります。

スクラッチ(Scratch)ではオブジェクトのことを、「スプライト」とよんでいます。ちなみにスプライトの語源はラテン語です。英語だとスピリット。日本語だと妖精とか小人、霊のように訳します。

ポイント2_オブジェクト(スプライト)には情報が含まれる

人間というオブジェクトには、「名前」「身長」「体重」などの情報が含まれています。猫のオブジェクト(スプライト)にも情報を入れられるのです。
「猫のイラスト」自体が一つの情報であり、「鳴き声の音声データ」も情報です。他にも「くるくる回転する」という動きがあれば、それも情報になります。

ポイント3_オブジェクトに命令を与える

猫のオブジェクト(スプライト)に、「くるくる回転する」という情報が入っています。その動きをさせるためのきっかけが「マウスのクリック」とします。すると実際、マウスをクリックすれば猫はくるくる回転するのです。
このように「スプライトに命令を与えて、何かをさせる」ことは、オブジェクト指向プログラミングの基本的な考え方です。

同様に、犬と猫といった2つのオブジェクト(スプライト)がある場合、「犬が猫に追いつく」ことをきっかけにして、「猫がなく」というプログラムを組むこともできます。
オブジェクト(スプライト)同士で情報をやり取りし、相互に作用してプログラムを動かすことも、オブジェクト指向プログラミングの基本です。

子供と一緒に学ぶ姿勢が大事

ノンプログラマー(プログラマーではない人)がオブジェクト指向プログラミングについて説明することは至難の業です。それでも子供と一緒に考えることは無駄にはなりません。実際にスクラッチ(Scratch)などを操作しながら「これがオブジェクト指向か」と肌で感じることも良いでしょう。

むしろ小学生程度の子供がプログラミング学習をするとき、オブジェクト指向について明確な答えを出すことは目的になりにくいです。それよりも、どのように調べるか、解釈するか、結論を出すかの過程が大切にしてください。たとえ答えは間違っていても、後々変わっても構いません。親も一緒に学ぶ姿勢が子供のプログラミング教育では大切です。

このテーマの関連記事はこちら