子供にScratchを使わせてみてわかったこと

半年くらい前から11才の息子にScratchでプログラムを自由に作らせる試みを行っている。自分が昔そうだったようにゲームを作ることに興味があるようだ。私は試しに数か月の間、何も指示を与えることなく、勉強の合間の時間に自由に作品を作らせてみた。

Scratchなどの最近の教育用のプログラミング環境では、他の人のプログラムに変更を加えて自分の作品にすることができる。他の人のプログラムの中から、自分の好きなゲームプログラムを見つけて、それを自分の好きなように変えるという方法は、一からプログラムを作って動かすのに比べて近道のように見える。

はじめはピンポンゲームのような単純な作品を作り、それなりにプログラミングを楽しんだ。その後、他の人のプログラムからスーパーマリオブラザーズのような作品を見つけて、自分のプログラムに取り入れようとした。ところが、他の人のプログラムの意味を理解せずに手を加えるので、いくら試行錯誤しても思うような動きにならない。何週間も取り組んでもいっこうに成果があがらない。どうやら、他の人のプログラムに修正を加えて自分の好きな動きを作る、というやり方には落とし穴があるということらしい。動いているプログラムを部品として取り入れることができるからといって、意味を理解せずに取り入れると、結局手に負えなくなる。まず小さい部品や単純な動きを作るやり方を理解してから、それを組み合わせることによって、より複雑なものを作るようなアプローチが必要なのだ。

プログラミングの構成要素である繰り返しや条件判断については、簡単な説明があれば小6でも問題なく理解できる。ところが、変数を使いこなすのはちょっと難しい。算数では未知数を□などの記号で表すことがあるが、あくまで定数であり、変数ではない。変数を習うのは中学以降である。繰り返しの中で変数の値が変わるようなプログラムの動きを理解するのは、小学生にはちょっとしたチャレンジである。また、小学校の算数ではマイナスを扱わない。したがって、-1をかける式がどういう意味かわからない。論理演算もやったことがない。

これらのことから、Scratchを教材として小学生にプログラミングをさせる場合は、まず、新しい概念についてレクチャー形式で理解させ、比較的簡単な課題をいくつか与えて最低限のコーディングスキルを身につけてもらってから、自由に作品を作らせるのがよいのではないだろうか、と感じている。

そもそも何故プログラミング教育か

プログラミング教育必修化への流れは、安倍内閣の人材育成のための政策の一つで、その流れは2013年には始まっていたことがわかった。では、プログラミング教育は、義務教育の中でどのように位置づけられるのだろうか。

義務教育での学習内容は、誤解を恐れずに言えば、職業に関係なく人間として生きていくために必要な能力・教養を身に着けるための教育と、職業につく準備としての教育にわけることができる。これまでの経緯を見る限り、プログラミング教育は、明らかに後者として位置づけられていることがわかる。

次に疑問に思うことは、今の日本の社会あるいは産業がIT教育について義務教育に求めているものは、今所々で行われている小学生向けのプログラミング教育なのだろうか?小学生のうちにScratchでゲームを動かすことが日本の産業のためになるのだろうか?

プログラミング教育は、生徒にプログラミングを体験させて、論理的な思考力や創造性を伸ばすことを目指すものだとされる。論理的な思考力や創造性とは何を指すのだろうか?また、それ以外のことはやらなくてよいのだろうか?それらの点についてこれからもう少し考えてみたい。

 

 

 

学習指導要領案の公表まで

学習指導要領案ができるまでの経緯を知りたいと思い、内閣府文部科学省のウェブサイトで過去の会議の資料を調べてみた。

第2次安倍内閣は2013年6月に「世界最先端IT国家創造宣言」を閣議決定する。その中で、人材育成のためのさまざまな政策の一つとして、

初等・中等教育段階からプログラミング等のIT教育を推進する

とある。

そして、2016年6月に「日本再興戦略 2016」を閣議決定した。

小学校における体験的に学習する機会の確保、中学校におけるコンテンツに関するプログラミング学習、高等学校における情報科の共通必履修科目化といった、発達の段階に即した必修化を図る。

その目的については、「日本の若者が第4次産業革命時代を生き抜き、主導できるようにするため」とある。ここまでで小学校からのプログラミング教育の必修化という政策の方向性が決まったようだ。

その後、文部科学省中央教育審議会で、小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議の議論をもとに、「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」がまとめられた。いわゆる「プログラミング的思考」は以下のように定義された。

自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力

そして、その議論の結果が2016年12月の答申の中に盛り込まれた。 答申では、プログラミング教育を、将来どのような職業に就くとしても、時代を超えて普遍的に求められる「プログラミング的思考」などを育むものと位置付けている。

2017年2月に学習指導要領案が公表された。プログラミング教育は、情報活用能力を育成するための学習活動の一つとされた。答申の中では「プログラミング的思考を育む」ことが目標として掲げられたが、学習指導要領案ではより簡潔な記述に置き換えられた。また、各教科にプログラミングを取り入れる例が大幅に削られた。これらの変更から、プログラミング教育を推進する動きが少し後退したのではないか、あるいは、このままでは学習指導要領が形骸化し、教育現場にあまり変化が起こらないのではないか、という見方があってもおかしくない。これからの動向を注意して見ていきたい。

学習指導要領や教科書を改訂するだけでは解決しない問題も多いと思われる。今後そうした問題に対しても、いろいろな角度から考えていきたい。

 

 

小学校学習指導要領案の中のプログラミングの扱い

小学校学習指導要領案には、いわゆるプログラミング教育に関する記述があるが、よく見ていくといくつかのことがわかる。まず、いわゆるプログラミング教育は、

「プログラミングを体験しながら,コンピュータに意図した処理を行わせるために必要な論理的思考力を身に付けるための学習活動」

と定義されている。中央教育審議会の答申で導入された「プログラミング的思考」という用語は使われていない。小学校学習指導要領案の方がより簡潔で、補足説明がなくても意味を理解しやすい。

また、プログラミングに関する学習活動が必修だと解釈できる記述は、第1章 総則の中に1か所だけである。章立てを見ると、「第3 教育課程の実施と学習評価 」の「1 主体的・対話的で深い学びの実現に向けた授業改善」で、各教科等の指導に当たって配慮するべき7つの項目のうちの3番目にある。この章立てを見ると、プログラミングをさせることは授業改善の一つだと位置づけられている、と読める。そして、その内容を要約すると、

  1. 情報活用能力を育成するために、ICT環境を整えICTを適切に活用した学習活動を充実させること、ICT以外の資料や教材も活用すること
  2. 文字入力などの基本的な操作とプログラミングに関する学習活動を計画的に実施

となる。

第2章以降の各教科に関する記述の中には、理科と総合的な学習の時間で「プログラミングを体験しながら論理的思考力を身に付けるための学習活動を行う場合には…」という書き方になっていて、個別の教科の中でプログラミングを扱うかどうかは現場の裁量に任せられると解釈できる。

 また、案の内容だけからは、どのような授業をつくったらよいかに関するヒントがないため、解説でどのような内容が補足されるか注目される。

このブログをはじめた理由

ひと言でいえば、時々ブログの記事の形で自分の考えを文字にすることで、日ごろあれこれ思いをめぐらせている頭を整理するため。7月に吉祥寺白熱教室で話す予定の「日本の小学校のプログラミング教育必修化を考える」についての準備という意味もある。今までは自分用のノートに考えをまとめていたが、ブログ記事の形のアウトプットをすることは、テーマについての理解を深めて、それをわかりやすく解説するのに役立つかもしれないと思い、試しに始めてみることにした。