小学生にプログラミング教育をしてきて分かったこと

https://qiita.com/Kyome/items/138b6c897f191c0e95a5


こちらの記事を読みまして、なんとなくでは私も仕事でプログラミング教育の先生をやってきて分かった内容について書いていきます。

しかしながら、私は小学生1~6年生までしかプログラミング教育についての経験しかありません。残念ながら中学生、高校生、大学生となるとなにも経験がないので、「こうすればよいのでは?」という仮説レベルでしかないです。

ですが、小学生の教育については私はそれなりに3~4年ぐらいかな?経験があるので(まだその程度なのでなんともって感じもあるんですが)、現時点で思うところを書いていこうかなと。

1.低学年、中学年、高学年で発達段階や、個人の能力や知識の差大きいこと

私の経験ではまず初期のころは、小学1年~6年生合同で、プログラミング教育をやっていましたが、学年を超えてのクラスは非常に難しかったのは覚えています。

考えてみれば当然なのですが、小学1年生だと漢字がわからなかったり、算数の掛け算ができなかったりするわけで、発達段階としても学童期の初期にあたるような子どもがいます。そして、高学年ともなると、いろいろなことが可能であり、それなりに成長していて、発達段階としても学童期から青年期初期であり、思春期に入っていることもあります。

とすれば教室がカオスの状況になるのは容易に想像がつくと思います。低学年の子から「先生~、先生~」といわれ対応に追われながら、高学年がつまらなそうに暇してて余計なことをするとかそういうことが起こりえると思います。その時に「できる子は教えてやってね~」みたいなことを苦しまぎれに言ったりするのですが、プログラミングをしに来たのにこんな低学年の相手をするためにここに来たんじゃないわけで、子どもの満足を考えれば問題があると思います。

(もちろん教え合いというのが大事だと思います。が、しかし、先生の負担を軽くするためのものではなく、教育的にその子のためになると考えて実施するべきだと考えています。)

というわけで、学年別にクラスを分けて実施しました。とはいえば、低学年でもすごくできる子は上の高学年に混じったり、高学年でも初歩的なことが難しい場合は、低学年のクラスに混じったりしていました。

2.タイピングの能力差は非常に大きいこと

元の記事で個人的にズレが大きいなと思うところです。経験としてタイピングができるできないはほんとに差が大きいように感じます。

コンピュータに触り始めたとき、画面に文字を打つだけでも、とんでもなく疲れることだと思います。その状況で、タイピングをして、タイピングした文字を読んで、コードの内容を考えるというのはとんでもなく高度なことだと思います。

だからScratch等をつくるのですが、正直な話、それでも写経でおわって、キチンと動く~を体験を得る程度で、内容的になんでこう動くかが教えきれてないこともたくさんあります。そのたび私の技量が足りなかったなーとか思うわけで、一方ではまぁ、プログラムが完成したいいいかなーと思うわけです。

小学生高学年でさえ画面にでてくるコードを真似するだけで大変なのです。それを解読して、意味がわかるというのもっと難しく、また、一から自分で考えてプログラムが構成するというのはもっともっと先のことのように思います。

その「真似」の部分でタイピングができるようになるだけで、たとえば5行程度に20分が3分になるだけで、考える余裕がでてくるわけです。これは小学生の経験なので、中学や高校だとちょっと変わってくると思いますが、少なくとも、小学生には言えることだと思います。

※追記

元のQiita記事の執筆者からコメントを頂きました。

タイピングスピードに関しては、私も重要なファクターだと思っています。私が言いたかったのは、タイピングが遅いことを気にすることが意味がないしやめたほうがいいということです。もちろん気になるのは当然なのですが、練習していくしかないものなので...  

私としてはなるほど納得しました。タイピング能力は必要だが、それが無いからプログラミングができないと認識する必要はないですね。一緒にタイピングもプログラミングも練習して 行こう!みたいな姿勢が必要なのだろうと思います。


3.その子にとって遊びの時間を削って、自分の時間をつかってやってきてくれてること

学校の授業の一部としてプログラミング教育を実施しているのであれば話は異なりますが、少なくとも、私のクラスは、放課後であることが多く、小学校のあの辛い授業の時間を終えてくたくたになって非常にストレスを抱えてきているわけです。その中で、キチンと話を聞いてくれるだけですごいなと思います。

今だと子どもによるでしょうが、家庭でも親の迷惑にならないようにだとか、学校ではちゃんとしなさいと非常に抑圧された中で、放課後というのは唯一、そのストレスを解放できる時間であり、抑圧から解放される時間であります。

そうしたことで、プログラミングをしてくれるのは非常にありがたいことと考えるべきだと思います。教師としてはプログラミングはその子にとって主体的で楽しい「遊び」の時間であって抑圧する「勉強」の時間ではないとすることが非常に大切で、そのところをずっと考えてやるべきだと思います。

4. 同じことをずっとずっと繰り替えすのは大事なこと

相手は小学生だということもありますが、1回で覚えるというのはなかなか無いように思います。なんかいも、なんかいも、同じことを繰り返し教えます。10分前に言ったことでも、忘れていることが多いものです。

それはその子がやるきがないわけではないのです、もしかしたら自分の関心を処理するのがいっぱいで話が聞けないことも多々あるように思います。だから、何度も何度も絶えず同じことを言うのは小学生のうちでは非常に大切なことのように思います。

なかなか覚えないことでも1年ぐらい言い続けたらいつかは分かってくれるものです。ある意味忍耐が必要です。手を変え品を変え形を変え、教えてくればいつかはわかると信じてやるべきで、それがわりと教育としてのコツだと思います。

5. 結果ではなく過程をほめること

褒めることは重要です。叱るよりほめると伸びます。しかしながらほめ方もやり方があり、きちんと褒めることをしないと難しいと思います。

よくその子が「天才!」だとかそういうのをほめる方々がいます。それは逆効果だと思います。それは自分が天才!であることに気を良くしてそれ以上の努力をしなくなる傾向にあると思います。

むしろ、その子が努力したであろうこと、その子がやったことをキチンと褒めることが大事です。そのためにはその子のやっていることをしっかり観察することが大事です。

たとえば、その子が一文字一文字キーボードをみて画面をみて、お手本を見て、しっかりコーディングしていたら、その結果が上手く動作しなくても「よく全部書いたね!」ということが大事なように思えます。そのあとにここをもっとこうするといいよ~って言うと効果があるように思えます。

以上です。参考になればと思います。まだまだ細かいところがありますが、これからプログラミング教育にかかわる人々への参考になれば幸いです。

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
56
SpacemacserでScalaやLispかいてる!Direct Manipulationやら、グラフィカルプログラミングとかやりまくっているよ!たーのしー!
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。