特集:アンプラグド・コンピューティング

Contents:

  1. コンピューターを使わなくてもプログラミング教育?
  2. 発達の段階を踏まえた段階的なプログラミング教育
  3. アンプラグドでプログラミング

1. コンピューターを使わなくてもプログラミング教育?

 

プログラミングといってもねぇ。

2020年度より小学校においてプログラミング教育が必修化となります。プログラミング教育が本格的に小学校の教育に入ってくるまでに、残りわずかになってきました。

ちまたでは、プログラミングに関して興味関心が高まり、保護者の方も大変注目をしています。しかし、学校では何をどこから手をつけていいのか分からないというのが本音。

「プログラミングというからには、ある程度の情報機器も完備しないといけないし、でも、うちの学校は・・・。」

「パソコン室にタブレット端末も入ってきているけど、上手に指導できるかどうか・・・。」

という不安の声が聞こえてきそうです。そんな中、コンピュータを使わないプログラミング「アンプラグドコンピューティング」が脚光を浴びています。

アンプラグドコンピューティング

アンプラグドコンピューティングとは、乱暴な言い方をすると「コンピュータを使わないコンピュータ教育」です。

でもコンピューターを使わずにプログラミングって想像つきますか。

学校でのプログラミングは、何かの問題を解決したり表現したりするときに使われることが多くなってると思います。でも、コンピュータに向かってプログラムしなさいと言われても、果たして、いきなりできるものでしょうか。

だからこその、アンプラグドなのです。

作文を書こう

アンプラグドコンピューティングによるプログラミング教育では、具体物やカードなどの教具を用いて、実際に手や体を動かし、友だちと話し合いながら問題解決の手順を道筋を立てて考えていくという体験を伴います。問題に挑戦する前に、このような、じっくりと解決方法を考えるという時間は、プログラミングが問題解決のための手法であることを考えれば当然必要になります。また、問題を身近なものと感じさせ、発達の段階に応じた指導をするためには、教材教具の存在は欠かせないものとなります。

ScratchやViscuitなどのビジュアルプログラミング言語は、もともと、ブロックなどの教具をイメージしたものであり、だからこそ、教育の場に歓迎されているわけですが、機械という抽象空間での作業であるが故、発達段階に応じた身近さを実感させることは難しいと思います。

ですから、私たち教員は、ビジュアルプログラミング言語の視覚優位性という特徴に頼り切らず、教材・教具の工夫で、子どもたちが、抽象的な思考を自らのイマジネーションにより構築できるようになるよう支援をしていかなければなりません。

そう考えれば、今まで私たちが大切にしてきた、ものごとを筋道立てて考えていくような論理性や、的確な表現で確実に他に考えを伝える力は、そのままプログラミング教育につながるものということが言えます。そして、それが真にプログラミング教育であるためには、教員が、プログラミングにとって何が大切であるかを理解しており、その視点で子どもたちを指導できるということが大切なのです。かつ、その視点が、今までの教育に対しても、授業改善につながるものになっていくのです。

 

Contents:

  1. コンピューターを使わなくてもプログラミング教育?
  2. 発達の段階を踏まえた段階的なプログラミング教育
  3. アンプラグドでプログラミング

 2. 発達の段階を踏まえた段階的なプログラミング教育

 

それでは、プログラミング的思考が他の論理的思考に比して、より大切にしているものは何でしょうか。
それは、「明確で実行可能な手順」と「効率の良い手順」の二つにあると言えます。

どちらにも共通する単語は「手順」です。
ですから、プログラミング教育を意識するならば、手順という概念を低学年から意識させた上で、発達の段階に応じて、扱う題材をより身近で簡単に扱えるものから、抽象的でより複雑なものへと、スパイラル的に学習を進めていくことが必要です。

手順を大切にと聞くと、どうしてもマニュアル重視という感じがするかもしれませんが、実際はそうではありません。手順を考えるという行為は、解決方法を構成的に構築し実践する行為であり、それ自体頗る創造性を有するものです。かつ、手順が明確であれば再現性を有するので、人に伝えるという観点でも重要なものであり、明確で実行可能な手順を考えることは、即ち伝える力を育てることに他なりません。

そう考えれば、「手順」を重視した教育は、創造性の高さ、活動の楽しさを内包するものであることが分かります。

そして、子どもたちの活動を有益なものにするために私たちが考えなければならないことは、前述したように、発達の段階に応じた指導でありましょう。皆さんは、問題が子どもたちにとって身近なものになるようにするためにどのような工夫を考えますか。

一つには、問題自体を子どもたちに身近なものから選ぶことが考えられます。そして、他に考えられるのは、問題を考えるための道具として具体物や半具体物など、子どもたちにとって身近なものを活用することです。でも、このような工夫は、普段から行ってきたことではないでしょうか。

分かる授業とは、単に分かりやすく簡単な授業というわけではなく、子どもたちが自ら考える意欲をかきたてるような、発達の段階に配慮した授業と言えます。発達の段階を考慮して題材や教材・教具に工夫を加え、子どもたちが問題解決の手順を自ら構成的に創造していくような支援を行えば、既にアンプラグドコンピューティングになり得ていると言っても過言ではありません。事例を後ほどお示ししますので、参考にしてください。

私たちは、子どもたちをプログラマーに育て上げるために、プログラミング教育をするわけではありません。しかし、教育にプログラミングという観点(言い換えれば、手順を重視し体験的な実践を伴う教育)を取り入れることで、子どもたちに対し、創造的かつより分かる授業を展開するような改善を考えることができます。

アンプラグドコンピューティングで授業が変わる、これは、確実に言えることです。ただし、決して新たな教育活動を考えなければならないのではなく、これまで述べたような理念を授業の工夫として加えるだけでいいのです。皆さんが実践してきた教科指導の中にアンプラグドコンピューティングの種は意外と多く存在しています。子どもたちが笑顔でプログラミングを楽しみ合えるよう、皆さんのアイデアを教育活動に生かしていただければと思います。

Contents:

  1. コンピューターを使わなくてもプログラミング教育?
  2. 発達の段階を踏まえた段階的なプログラミング教育
  3. アンプラグドでプログラミング
・手順を意識させる

 3. アンプラグドでプログラミング

手順を意識させる

 

手順を意識させる学習として、国語科の作文指導を例にとってみましょう。

低学年の作文指導において、何を書いていいのか分からないという子どもたちは多いものです。そこで、作文に書きたいことを付箋紙やカードに書き出してみる活動をさせた先生は多いのではないでしょうか。この学習活動は視点を変えると、十分にプログラミング教育につなげることができます。

まずは、話の題材を決めないと活動が始まりません。最近心に残ったことや思い出となったことをノートに書き出します。その中から、一番伝えたいと思ったことを一つ選んで、話題の中心とします。

次に、その話題の中心のことを思い出しながら、したことや見たこと、聞いたこと、思ったことなどを一つずつカードに書き出していきます。何を書いてもいいのです。とにかくいっぱい書き出すことが、作文を充実させていくことにつながります。その際、したことや見たことなどの事実に関するものと、思ったことや感じたこと、考えたことなど気持ちや考えに関するものはカードの色を変えるなどすると後の文章構成に沿ってカードを整理するときに分かりやすくなるかもしれません。

そして、いよいよ話の組立てに入ります。相手に作文の内容が伝わるように、カードを並べていきます。作文の構成は、「始め・中・終わり」の3部構成が子どもたちには分かりやすいかもしれません。

並べるときの注意点として、

「始め」には、いつどこで何をしたのかという基本的な情報を入れること
「中」は、したこと、見たこと、聞いたことなどそのときの様子や気持ちなどを順序よく並べること
「終わり」は、全体を通して感じたことや思ったことを入れること

をおさえておくと、活動がしやすくなるでしょう。並べていくうちに、この情報はいらなかったとか、新たに情報を付け足したいということも起こるかもしれません。ですから、書き出したカードは全部使う必要はないこと、新たに情報を追加するためのカードは用意していることを子どもたちに伝えておくといいですね。

作文に必要な情報が並んだら、そのカードをつなぐためのつなぎ言葉(接続詞)を入れていきます。つなぎ言葉としては、「始めに」「そして」「次に」「それから」「すると」「最後に」などが考えられます。それらのつなぎ言葉をカードの間に入れて、作文にしていきます。

プログラミング教育の視点から、この学習のポイントを見てみると、次の2点が挙げられます。

 

【その1】出来事をカードに書き出す
 出来事をカードに書き出すという作業は、自分の伝えたい内容を一つ一つ分解することにつながります。プログラミングをする際には、ある目的を達成するために、どのような作業が必要か洗い出す必要があります。作文を書くために、何を書くのかを一つ一つ洗い出す活動が、出来事をカードに書き出すということです。

 

【その2】作文の内容が伝わるようにカードを並べる
 作文の内容を相手に分かりやすく伝えるためには、伝える内容を順序よく並べる必要があります。いわゆるシーケンスの考え方です。プログラミングをする際には、作業を順番に並べるというシーケンスの考えは必要不可欠です。カードを並べることで、必要な情報を取捨選択しながら、順序よくものごとを整理する力をつけることができます。

 

このような学習を通して子どもたちは、プログラミング活動時にフローチャートで作業を整理する態度を自然と身に付けることができると考えます。

Contents:

  1. コンピューターを使わなくてもプログラミング教育?
  2. 発達の段階を踏まえた段階的なプログラミング教育
  3. アンプラグドでプログラミング
・アルゴリズムに興味を持たせる

アルゴリズムに興味を持たせる

「アルゴリズム」というのは、コンピュータで計算を行うときの「計算方法」のことですが、広く考えれば、何かものごとを行うときの「やり方」のことだといってもいいでしょう。そのやり方を工夫して、よりよいやり方を見つけようということを学習の中に組み込んでいくと授業改善につながるのではないでしょうか。

そこで、算数科において、正しくそして効率的に計算させる方法を考える学習を例にとってみましょう。

計算をより効率的に進める方法としては筆算があります。小学校では、四則計算それぞれに筆算があり、大変便利であることは周知のことです。しかし、筆算の方法を形式的に指導し、あとは練習して習熟させる学習を進めていないでしょうか。その学習がいけないわけではありませんが、それでは、本当の意味で、筆算の便利さを感得することができないのではないでしょうか。また、プログラミング教育の視点から見ても、大変もったいない気がします。

そこで、例えば割り算の学習を次のように進めてみてはどうでしょうか。

問題:72枚の色紙を、3人で同じ数ずつ分けると、1人分は何枚になりますか。

問題を解決する際に、色紙を72枚用意したり、10枚の色紙の束を模した教具と1枚1枚バラの色紙の教具を準備したりして、実際に子どもたちに3等分させる活動を行わせます。教師はできる限り助言をせずに、子どもたちに考えさせることが大切です。

教具を前にして、子どもたちはいろいろと考えだすでしょう。例えば、トランプを3人に1枚1枚分けるように、72枚を繰り返す方法を考えることもあるでしょう。しかし、72枚を分けるのは大変ですし、たとえ分けたとしても、分けられた色紙を数えるのも大変です。こうした活動も、実際にさせてみて効率的ではないことを実感させるのも大切かもしれません。

どちらにしても、10枚の束で分けた方が簡単であることに子どもたちは気づいていくでしょう。7つの10の束を3つに分けると、1人分が2つで、1つ10の束が余ります。余った10の束1つでは3つに分けられません。子どもたちはおそらく、10の束をばらす方法を考え出すでしょう。12枚の色紙を3等分すると1人4枚になります。初めに分けた10の束2つと4枚の色紙を合わせると1人分が24枚となります。 

このように、計算の手順を一つ一つ確かめながら、分けていく過程がまさにプログラミングといえます。

手順をまとめると、


 手順① 10の束7つを3等分する。
 手順② 10の束が2つずつに分けられ、1つ10の束が余る。
 手順③ 10の束をばらして、残りの2枚と合わせて12枚にする。
 手順④ 12枚を3等分すると、4枚ずつに分けられる。
 手順⑤ 10の束2つと4枚を合わせて、24枚となる。


この手順を子どもたちにカード等に書かせて、計算の手順(シーケンス)を確認します。この手順と筆算の方法を結びつけていきます。

このことによって、計算の手順と筆算の手順が一致し、筆算の方法が本当の意味で身に付くと考えられます。

 

Contents:

  1. コンピューターを使わなくてもプログラミング教育?
  2. 発達の段階を踏まえた段階的なプログラミング教育
  3. アンプラグドでプログラミング
・プログラミングに興味を持たせる

プログラミングに興味を持たせる

プログラミング的思考を活用できそうな学習

今後、教科書の中にも、プログラミング教育が導入されてくると思いますが、それだけでは十分に力をつけることは難しいと思います。また、学校の情報機器にも限りがあり、いつでも使い放題というわけにもいかないでしょう。そこで、普段、当たり前のように指導している学習の中に、プログラミング的な処理の仕方が含まれているという視点を持って指導することで、子どもたちに「プログラミング的思考」を養うことができるのではないかと思います。

そのために我々小学校教員がすべきことは、プログラミング的な処理の仕方が含まれている学習を洗い出すことです。プログラミング的な処理には、「順次」「反復」「分岐」の3種類があるといわれていますが、この処理を使って学習をする場面が意外とあるのです。

 

計算や作業を手順に分けて順序立てる「順次」の考え方

筆算、図形の作図、調理実習、多色刷り版画など学習には順序(シーケンス)を考えなければならない場面が多く存在します。図画工作科で作品作りをする際に、制作の順序を間違えると作品が仕上がらないということがあります。

例えば、紙版画の学習を例にとってみましょう。紙版画では、作りたいものをパーツに分けて作る必要があります。ウサギの顔を作るときには、耳や目、鼻、口など一つ一つ部品を作る作業から始まります。その際に、設計図を描かせます。作りたい絵柄に対して、どんな部品がいるのかを考えさせます。

そして、作りたい絵柄になるように、部品を重ねていきます。当然、部品を重ねると、下にある部品は隠れるので、部品の遠近感を表すことができます。その重ね方を設計図として描き表しておきます。

紙版画の制作をする際に、事前に設計図を描いて、作業の見通しを立てることで、子どもたちは安心して作業に取り組み、スムーズに作業が進んでいきます。

手順のまとまりを繰り返して実行する「反復」の考え方

コンピュータは、同じ行動を正確に何度でも繰り返し行う処理が大変得意です。学習の中で同じことを繰り返し行う場面としては、音楽科のリズム遊びや算数科の比例などが挙げられるでしょう。

リズム遊びでは、1小節の中に同じ拍がいくつあるかでリズムが決まります。例えば、3拍子は1小節に3つの拍があるわけですが、子どもたちは意外と3拍子のリズムに慣れていないものです。そこで、3拍子のリズムを体感させるために、動きをつけながら拍子を取る活動があると思います。その動きを、図のようにカード等で並べて確認をします。

そして、この動きを3拍子の曲に合わせて繰り返します。このような活動を通して、リズムを体感するとともに、反復(ループ)の考え方を学習します。

条件によって作業を切り替える「分岐」の考え方

水溶液の液性を調べる実験、金属の分類の実験など理科の学習に「分岐」の処理の入った学習があります。水溶液の液性検査では、赤色リトマス紙が青くなればアルカリ性、変わらなければ青色リトマス紙を使って中性か酸性を確かめるというふうに条件に合わせて作業を切り替えながら液性を確かめていきます。図のように作業に合わせてまとめれば作業の分岐の様子も捉えられ、学習の理解度も高まると考えます。

 

ほかにも、コンピュータの処理としての考え方には次のようなものが挙げられます。

 

ものごとをYes/Noの組み合わせで考える「真偽値」の考え方

図のような表で、情報を整理する学習が算数科にあります。

コンピュータの情報の処理として、「かつ」「または」という処理の仕方があります。例えば、表の東町とりんごの組み合わせの17名は、「東町で『かつ』りんごを注文した人」となります。また、東町と合計が重なっている25名は、「東町でりんご『または』みかんを注文した人」となります。そこから、「東町で『かつ』みかんを注文した人」は、25ー17=8(人)と導き出します。実はこうした考え方がコンピュータにも利用されていることを皆さんはご存じだったでしょうか。

ものごとの性質や手順のまとまりに名前をつける「抽象化」の考え方

 作文指導の時に、いろいろな情報を集めて、必要な情報と不必要な情報に分類し、必要な情報だけを集めて文章の構成を立てていく活動はよくされていると思います。コンピュータの処理でいえば、条件に合ったものを検索して集めるという処理に似ています。作文の文章の構成で、始めは「したこと」を書き、中は「したことを時系列で詳しく」書いていきます。そのときに、時系列に並べることは、順序(シーケンス)にも関わってきます。最後は「感じたこと」を書きます。自分の書きたい情報をカードに書き出して、そのカードを「したこと」「感じたこと」に分類し、自分の伝えたい内容になるように情報を整理して組み立てていきます。まさに、プログラミングですね。

このように、学習を振り返ってみるとプログラミング的な処理の仕方が含まれている学習が多くあります。まずは、学校の先生方同士で、どこにそのような学習が転がっているかと話題にあげて、楽しみながら教材研究をしてみてはいかがでしょうか?

 

お忘れなきように・・・

ここまで、アンプラグドコンピューティングについてお話ししてきましたが、「小学校プログラミング教育の手引」(第2版が平成30年11月に出ました)には、プログラミング教育のねらいとして「コンピュータ等を上手に活用して身近な問題を解決したり、よりよい社会を築いたりしようとする態度を育むこと」と挙げている以上、「プログラミング教育全体において児童がコンピュータをほとんど用いないということは望ましくないことに留意する必要があります」と述べています。コンピュータを使ってのプログラミング体験が全くないまま、小学校の教育課程を終えることのないようお気をつけください。