子供にプログラミングを教える方法

子供の為の最高のプログラミング教育を見つけていきます

チューリング賞から楽しむプログラミング 第一回

我が子には、プログラミングやコンピュータに興味をもってもらいたいな、、、と考えています。

 

なるべくわかりやすいプログラミング、コンピュータの説明をしよう、興味の出そうなことを伝えよう、と思っていたのですが、肝心なことを忘れていました。

 

偉人に学ぶ

 

家には、なぜかマリー・アントワネットクレオパトラの歴史漫画、あとベートーベンの歴史漫画があるのですが、それらをみているように、自然に楽しくプログラミングやコンピュータに関する技術に親しめたら。。。

 

マンガ化されてないかな。。。

 

されてない、、、

 

いずれは出版されるかもしれませんが、この思いを吐き出さずにはいられない!

 

ということで、小学生の皆さんにもわかるように、プログラミング、コンピュータに関する偉人を紹介したいと思います。

 

プログラミング、という言葉は聞き慣れていると思いますが、もとは、計算機科学、と呼ばれる学問のなかで生まれた技術の一つになります。

 

計算機科学といえば「チューリング賞」という、コンピュータ界のノーベル賞と呼ばれる賞があり、その中の人々を紹介していきたいと思います。

 

 

まずは、、、

1966年受賞のアラン・パリス

初回受賞者です。

 

この人の受賞理由は

 

プログラミング技法とコンパイラ構築の分野への貢献に対して

 

…さあ、なにがすごいのかよくわからないですね。

 

簡単に言うと、

 

プログラムをうまく作る方法を見つけてくれて、しかもみんなにその方法を教えてくれた

 

になります。

 

これを聞くだけだと「スゴイプログラマーだったのかー」になるのですが、そもそもコンピュータに対してプログラミングをどう作ればよいか、という問題を、学問の1分野として確立してくれた人です。

 

アランは、コンピュータにプログラムを作る過程で知っておいたほうが良いことが色々ある事に気づいたのですが、数学でもない、電気工学でもない内容を、どうやって学生に教えるか。そこで、計算機科学(英語ではコンピュータサイエンス、これからはこっちで説明しましょう)という、今のプログラミングやAIなどの基礎になった学問を作ってくれます。

 

では、アラン・パリスはどういった人だったのか、何をしてきたのかを交えながら凄さをお伝えしたいと思います。

 

アランは、大学では化学を専攻し優秀な成績でした。第二次世界大戦後に復学したとき、「、、、なんか違う」ということで、数学科に変更。

しかもマサチューセッツ工科大学!しかもここでも優秀。ここからして常人と違う。

 

その後、同大学での「つむじ風」というコンピュータを使ったプロジェクトに数学研究者として参加。つむじ風って、、、結構ネーミングセンスがあれですね、、、。

 

他にも当時の最先端のコンピュータについて、コンピュータ向けのコンパイラアセンブラを作成してきました。

 

さあ、ここでコンパイラアセンブラ、という言葉が出てきました。

 

現在、「プログラミング」を勉強すると、ScratchやJavascript Java Pythonなどのプログラミング言語がよく使われます。

 

これらは、人間の見た目に分かりやすいよう工夫されています。

 

例えば、ブロックを積み上げるようにつくれたり、英単語を使って文章を書くようにブログラムが作れます。

 

しかし!

 

昔は違いました。

 

そのコンピューター用に動くプログラムを作ることが大変だったんです。

 

今なら、上記で紹介したような「人が分かりやすい」プログラム言語で「ソースコード」を書けば、あとはどんなコンピュータでも実行できますが、昔は、人間には分かりづらいが「機械が分かりやすい」プログラム言語で書いて、でも本当に機械で動かすためにはさらに正しく翻訳する変換をしないといけなくて、書いた「ソースコード」を翻訳するためのプログラムも作らないといけません。

 

外国の人と話すシーンに例えると、今は翻訳ツールでなんとか日本語をベースに言いたいことが伝えられますが、昔はツールなし、しかも、本当の「外国語」は難しすぎるので、人と機械の間を取った言葉を作り、そこで文章をまず書きます。

 

その文章をもとに、主語はこれ、動詞はこれ、順番としてはこの順で読んでもらって、でもこの場合は更にこっちから読んで、、、と文法まできっちり決めてから、その文法にそって、本当の機械語にさらに翻訳して、やっと機械が理解できるようになります。

 

コンパイラ(プログラムコードをコンピュータがわかる形にまで変換するプログラム)をつくるのが大変なんです。まず以下の3つは必要です。

 

アセンブラ

 機械への命令単位に合わせて、人間がわかる略語で書いたプログラムコード

 

■パーサー

 アセンブラのプログラムコードの文法をチェックして読み込んでコードジェネレーターにわたすプログラム

 

■コードジェネレーター

 パーサーから受け取ったコードを機械語に翻訳していく

 

といったプログラムを作ります。(厳密な説明はとりあえず置いておいてイメージで、、)

 

そんな時代にアランはどうしたか。

 

あるコンピュータが発売されたとき、それに対応したプログラムを作るため、3人のスーパープログラマーを集め、三角形の頂点にそれぞれ作業机を配置しました。

 

ある一人はアセンブラ、もう一人はパーサー、最後の一人はコードジェネレーターの担当です。

 

アセンブラ担当が少しプログラムができると、パーサー担当がそれを見ながらどんな文法なのかを理解して作っていき、コードジェネレーター担当はパーサー担当がどうやってコードを渡そうとするか確認しながら、コンピュータの機械語としてなにを出せばよいかしらべます。それをグルグル回します。

 

3賢人が集まってプログラムが凄まじいスピードで出来ていく!

 

アランは、自分自身でももちろん一人でできましたが、優秀なプログラマーを使い、如何に早く、効率よくプログラムが作れるか、を考えられる人でした。3賢人を取りまとめる最高の頭脳!熱いですね。

 

また、1950年代は、他の分野との競争の問題もありました。物理学者では原子力エネルギー、生物学者遺伝子工学。国からの予算が注ぎ込まれます。

 

自分の分野は何をすべきなのか

 

これまで1台何十億円というコンピュータが、いずれ家庭に何台も入る世界で何をすべきか。

 

アランは考えます。コンピュータサイエンスという分野をつくり、そこでみんなを学ばせることを。

 

そして、コンピューターサイエンスを、神経学者と心理学者を例に説明します。あまり最近の業界ではこのような比喩を使う人は見かけなかったので新鮮でした。

 

神経科学者は神経系の奥深くで非常に原始的なレベルでなにがどう動くのかに興味があります。 コンピュータサイエンティストがAND  OR NOTゲートを見ることに時間をかける。

 

一方、心理学者は、人間を一つの実体として、全体として見ており、人間を何で動かせるのかを理解しようとしています。

 

心理学者の武器は、マクロなものの見方です。 どうすれば神経科学と心理学の間に架け橋を作ることができるのでしょうか? アランの結論は、「コンピュータサイエンスはこの橋を提供する学問であり、その橋はソフトウェアの研究からもたらされる」でした。考え方が深い!

 

もう書いていくとキリがない!

 

最後に、アランはプログラミングをする人々に、アドバイスというか苦言をいくつも残してくれています。

 

「10個の引数のある関数を作ったら、きっといくつか忘れるだろう。引数の数は少なくしなさい」

 

私は6つ位で覚えられなくなります、、、。

 

その中で、私が最も好きなのはこれ!

進化とは変化であり最適化は変化を妨げる

 

さあ、最適化というと、いいことだと思うのですが、同じように良いことと思われる「進化」できない、とあります。なぜか。最初はよくわかりませんでした。

 

でも、繁栄を極め大型化した恐竜も、隕石衝突による環境変化には耐えられなかったように、その時点で最高にして安心するのではなく、最新情報を入手し、常に自分自身をアップデートしないと生き残れない、と考えると腑に落ちました。

 

いやー。偉人を知るとワクワクします!もっとまとめていきたいと思います。

 

 

 

※参考サイト

https://www.ipsj.or.jp/magazine/9faeag000000rjhz-att/IPSJ-MGN580504.pdf

https://amturing.acm.org/lectures.cfm

 

コロナ自粛中はボードゲームで学習

f:id:teramethod:20200505062918j:plain

自宅で平日は嫁さんが子どもに塾や学校の問題集を使って、勉強が遅れないようにしてくれているのですが、問題文を解くのがなかなか難しいようです。

 

うちの子供に限らず、全国の子供達本人にとっては、教育の専門家である先生からの黒板や口頭での授業から、急にテキストを基本とした勉強になり、教育の専門ではない親から教えられ、説明がわからず苦労していると思われます。

 

子供が問題を解くには、以下の2つのプロセスを踏む必要があると思います。

 

1.教科書の例文や例題を見て理解する

2.自分が解かないといけない問題をみて、例文や例題の関係性を理解して応用する

 

学校では、先生が1.2.を言葉や板書をしながら、口頭で説明しながら進めると思いますが、自宅で親がやると、1.2.はどうしても先生に比べ進め方は良くないと思われます。

 

子供の理解スピードに合わせて、適切な説明を、子供がわかるまで辛抱強く行うのは、本職の先生でも大変なはず。

 

普通の親がやろうと思っても、うまくはできないと考えたほうがいいかもしれません。

 

最低限、宿題で出されている問題くらいは解いておかないといけませんが、それ以外の時間は、家庭でも無理なく、でも効率的な学習法を取りたいものです。

 

教材自体は、最近のコロナ対策期間中には、さまざまなサービスが期間限定で、無料の学習支援サービスとして、ネットで提供されているものがありますね。

www.kyoiku-press.com

 

 

これらのサービス、最初はすごい良い、これで子供の学習問題も解決!と思っていたのですが、嫁さんにはあまり刺さりませんでした。

 

なぜなら

「そんなのやる時間はないから」

 

まさか。こんなコロナで自宅待機中なのに?

 

しかし話を聞くと、、、

・学校の宿題がある

・塾の宿題がある

・勉強を頑張ったらアニメ映画を見せてあげている(子供が喜んでいるようです。。。)

・できていないところを復習する

・英検の勉強もある

そして一日が終わる、の様です。

 

それは確かに時間がない。。。

 

主な進め方は、教科書をよんで、問題を回答させていく。

わからないところは解説する、という流れの様ですが

子供がわからない、何度も同じまちがいをしてしまうと、どうもフラストレーションがたまるようです。

なまじ大人の自分は分かっているので、「なぜこんなこともわからないのか」という心理になるのは大いにあり得ると思います。

 

本当は、子供がわからないときは、問題文の意味がわからなかったり、言葉自体の概念がまだ理解できていなかったり、「そもそもなぜそのような問題を出したのか」など根源的な意味を考えるときもあったりと様々なので、その理由をひとつづつ解きほぐしながら進めないといけません。

 

学校の授業では、先生が生徒たちにオープンクエスチョンを投げかけ、子供の考えを引き出しながら、多様な考えを認め、そのあとに正解に導くような流れにしてくれていると思いますが、とても各家庭で実践できるとは思えません。。。

 

しばらく平日はテキストをベースに嫁さんと子供で頑張ってもらわなければいけません。

 

しかし、私が休みの日だけでも、いつもと違った、楽しい、でも実践的な内容も取り入れたい。

 

そこで色々調べていたら、以下の研究ノートが見つかりました。

 

[PDF]研究ノート アクティブラーニングで学ばせる

 

本学のレゾンデートルは,「学生に適切なビジネスの知識とスキルを受けること」であ る。しかし,学生に授業中,問いかけたりすると,ビジネス系の大学の学生でありながら キャッシュフローや投資について,適切な知識を持っていない学生が少なからずいること を発見する。経済産業省が提唱している社会人基礎力についても養成する必要がある。そ のようなことを考えている時に,2014年1月14日付けの「朝日新聞」に「ボードゲーム教室 進出 持ち込み×→人気教材へ 論理的思考身につく・社会性高める」という記事が掲載 された。ボードゲームの教育効果が注目され,「論理的思考力だけでなく、社会性を高める 教材としても有用だとして、導入する学校が増えている」とのことである。新聞に掲載さ れていた例は,小学校と中学校だけだったが,実践の方法によっては,本学でも可能では ないかと考えた。とくに,その授業を担当した教諭も「目的を達成するため,筋道を立てて 考える力がつく。自分がどうやったかを、周りに伝えることも大切な勉強だ」と述べてい る。本学においても,ビジネスの知識とスキルを,ボードゲームを使い,グループワークで 学ばせることができないだろうかと考えた。つまり,積極的に関与し,状況を観察し,論理 的に考える力の養成をねらいとした。 そこで選んだのが,『モノポリー』である。このゲームを指導に使うことで学生たちにビ ジネスの知識やスキルそしてコミュニケーション能力や交渉術など社会人基礎力を養成 できる可能性があると考えた。つまり,「思考訓練不足」,「リーダー技能(不足)」,「議論前提知識不足」の解決である。

 

CUC千葉商科大学の方の研究ノートですが、「モノポリー」を使って「思考訓練」「リーダー技能」「議論の前提となる知識の習得」をする、というもの。

 

確か我が家にあったような、、、、

 

これだ!

 

Monopoly Here & Now Game: US Edition [並行輸入品]

Monopoly Here & Now Game: US Edition [並行輸入品]

  • メディア: おもちゃ&ホビー
 

 

英語版!!!

 

。。。そういえば英語ができる嫁さんが、子供の為に、と英語版のモノポリーを買っていたんだった。

 

大分前にみんなでやろうとして、私も嫁さんもルールを度忘れしてしまって、まともなゲームにならず、その後お蔵入りになっていました。。。

 

今回はルールブックも(日本語のサイトも参考にしながら、、、)ちゃんと読んでからやったら、意外と子供に好評。

 

・1周回ったらお金(給料)がもらえる

・土地はオークションにしてから勝ったほうがお得に買える

・自分の土地に他の人が止まったら宿泊料を徴収できる

 

というのが楽しかったようです。

 

また、子供だと、自分のお小遣い以外は現実の世界でお金を使う機会が無く、そんな大金でもないので、大金がもらえる、使える、というのも楽しい要因になったかもしれません。

 

何はともあれ、子供のモチベーションアップにつながる、別なアプローチが見つかってよかった。

 

たしか交渉や破産など、なかなかハードな世界も体験できたゲームだったと思うので、私も遊び方と英語を復習していきたいと思います。

 

もしすでにモノポリーを持っている方、あるいは、プログラミング力・論理思考能力を直接養っていきたい、といった方は以下のボードゲームもありました。

 

 

NASAプログラマーが考案したというボードゲームNASAと聞いただけで欲しくなってしまう。。。

これは男の子向けのデザインだと思うので、女の子向けはこちら

 

 いかに矛盾なく配置を組み合わせられるか、論理的な思考能力が鍛えられるようです。

カスタマーレビューの

デパートのおもちゃ売り場で、ルールを教えていただいたら、娘がとても食いついてずっと楽しんでいたので、お誕生日プレゼントに購入しました 

 

というメッセージがリアル。。。

モノポリーが飽きたらこれらも買おうかな。。。

プログラミング以前に基礎的な力をつけないと

f:id:teramethod:20200503061226j:plain

 

コロナ対策で自宅にいる我が子ですが、平日は嫁さんが勉強を見てくれて、休日だけ私が子供の勉強を見ることになりました。

 

自分は数学が好きなので、算数の問題集を見てあげたりしてるのですが、問題というか、気づいたことがありました。

 

それは、、、

 

子供が集中出来てない!

 

まあ、当然といえば当然ですが、子供は集中力が無いです。

 

また、「解らない」という問題文を解説しようとして読んであげていると、本人は問題文を見ていない。

 

声だけで内容を頭に入れようとしているかもしれませんが、分節ごとにどこまで理解できているか確認するため、途中の部分を聞いても、「よく分からない」と。

 

うーん。プログラミング以前に、問題の取り組み方から見直さないと行けませんね。

 

うちの嫁さんは、問題集とか本はよく買うのですが、子供が本質的に理解しているか、とか、勉強の取り組み方までは気にしていないもよう。

 

子供にプログラミングを教える、という欲求はあるものの、まずその前に算数を集中して取り組めるようにならないと、基礎のない状態で家を立ててしまうように、どこかで崩れてしまいそうです。

 

プログラミングを学びながら算数の力を付けることも、もちろん可能なのですが、算数自体の力をつけるように、方針を変えようと思います。

 

そこでいい教材がないかと探していたら、嫁さんが以下を購入していました。

 

 

すごくよかったです!

 

STEM(Science Technology Engineering Mathmatics)は、アメリカで2000年代に始めた教育モデルで、これからの国際社会で競争に勝ち抜くために着けるべき力として選んだものです。

 

最近はこれにA(Art)も入るようですね。

 

この中で、嫁さんがMathmaticsを最初に買うあたりの慧眼には恐れ入ります。

ちょうど算数の教材が欲しかったんです。

 

見開き2ページで、1つの内容(平面図形 や 座標 など)を扱い、絵も多く取り入れているので子供の抵抗感がない!

 

「やってみよう」というコーナーでは、取り扱った内容を実際に遊びながら実践で学べる問題があって、楽しく取り組んでくれています。

 

「今日はなにしようか」と話して、本人が一番興味のあるものを選択してもらっているので、モチベーションも高いです。

 

また、どのページもそれぞれで完結しているのもいいですね。

 

算数・数学は様々な学者が発案したものが詰め込まれているので、別に1から順番にする必要はありません。

 

プログラミングを教えるときに、我が子がつまずいていた「座標」についても、この本で取り扱われていました。よかった。

 

しばらくはこの本を使って、子供の基礎的な算数の力をつけていってもらいたいと思います。

プログラミングで算数がとくいになる

f:id:teramethod:20200223233034j:plain

 

最近コロナウィルス関係で、学校が明日から休みになるということで、お子様を持つ親御様は大変だと思われます。

 

うちも、明日から家で何をしよう、、、と考えてますが、なかなか良い案がでません。

 

しかし、もしこの内容でプログラミングに興味を持ってもらえるなら、自宅でも親御様ができるのでは、と思いまとめてみました。

 

親御様にはScratchをすこし触ってから見ていただいたほうがいいかもしれません。

(本当はそこまでまとめたかったのですが、なかなか時間がとれない、、、)

 

子ども達にプログラミングを教えるにあたり、「好奇心」を持ってもらうのが大事です。方法を色々考えました。

 

ゲームを作る系は数え切れないほどあるのでそちらに譲るとして、それ以外で興味を持ってもらう内容をとすると、なにがあるか。

学校の勉強が、プログラミングで「できる!」ようになるとすると、興味がでるのではないか、と考えました。

 

いったん、我が子に教えるようなスタイルでまとめたいと思います。

 

続きを読む

どうやったら子どもはプログラミングが出来るようになるか

f:id:teramethod:20200221225913j:plain

 

過去の記事でも書いたのですが、プログラミング教育が必修化したとしても、学校側の準備が万全ではないことが想定されています。

 

自分でも出来ることはないか、と考えました。

 

日中は仕事をして、土日も家族サービスで時間が無いなかで、できることというと、かなり限られます。

 

こうやって情報発信し、時間がある時に、子どもがその情報を使って学習してもらう、という方法を考えたのですが、いくつか懸念点が出てきました。

各懸念点と対策を考えたいと思います。 

続きを読む

新聞がいいよ!と言われ、、、

家族とお義母さんと久しぶりに夕食をしました。

 

その際のお義母さんから頂いた言葉に考えさせられました。

 

「ニュースはインターネットでみる?インターネットは、自分の好きな情報しかよまなくなるみたい。新聞読むといいよ!色々読めるし、子供には子供新聞とかいいかもね」

 

ちょうど、以前ご紹介した記事そろそろ日本もAI教育に取り組まないと - 子供にプログラミングを教える方法

でもご紹介した、フィンランドの無料AI教材で最近AIを学んでいたのですが、その中で「フィルターバブル」という用語が出てきたので、それと関係あるな、、、と思いました。

 

スマホもあまり使いたがらなかったお義母さんが、インターネットの特性を掴んだ素晴らしいご助言。ありがたいです。

 

恐らくテレビやラジオで言っていたことをそのまま伝えて頂いたのですが、「フィルターバブル」の単語がその時出てこず、しかも、インターネットでは好きな情報しか「よまなくなる」ではなく、「よめなくなる」になることを伝えられなかったのが、残念でならなかったので、せめてこちらにだけでも書いておきます。

 

なぜか。

恐らくニュースを読むときは、検索サイトで知りたいことを入力して調べると思います。

(最近の若い子は検索サイトを使わず、SNS内のタグだけで情報収集するようですね

ググるからタグるへ~情報収集手段が変わる時代はやってくるのか | マーケティング・ウェブサイト制作・教育研修・コンサルティングのセカンドチャンス

SEO対策された検索結果、さらにはブラウザやgoogleアカウントが収集する自分の検索情報をもとに、個人レベルでも、検索結果が最適化されていきます。

 

「フィルターバブル」の考え方では、検索サイトが、個人ごとに最適化された検索結果を用意することで、個人としては、用意された検索結果しかみることができない。

 

まるで泡の中に閉じ込められたかのように、検索サイトの用意した情報以外はみられない、ということになります。

 

極端な話、好きなものを検索した際、他の人が同じキーワードで検索しても、結果が異なる、ということが発生します。

 

いくら調べてもでてこない、でも、他の人か調べると出てくる、となると、なかなか心穏やかではありません。

 

お義母さんのみたテレビ、ここまで話してくれてたのかな、、、。

 

次回お会いしたときは、もう少し勉強してから説明差し上げたいと思います。

学校のプログラミング環境が間に合わない

 

とうとう恐れていたことが起こりそうです。

 

プログラミング教育 黄色信号 - Yahoo!ニュース

 

最低限必要な指導体制の基礎が整っていない。

という、神奈川、富山、島根。

それぞれの県の責任にするには厳しすぎるか。そもそも外国だって不足してるのに、日本だけ大丈夫なはずはない。

 

また、

規模の小さい町、村では、予算が少なく、対応できていない、というのもあるようです。

 

https://www.iza.ne.jp/smp/kiji/life/news/190715/lif19071510290010-s1.html

■予算不足で遅れ

 プログラミング教育の準備では、規模が大きい市教委や特別区教委に比べて、規模の小さい町・村教委で遅れが目立っている

 

アメリカでは、オンライン教育、教材を充実させ、人員不足に対応しているのに、日本は、ただ予算なし→プログラミング教育できない。になってしまっている。

 

都市部と町村との格差も気になるし、そもそも日本として、海外と競えなくなるのではないか、と心配します。

 

なにかできることはないか。

流石に働きながらプログラミング用の教員にはなれないので、なにか別な方法で考えていきたいと思います。