見出し画像

8歳の長男とPythonで遊んでみた

 先日、インスタに子どもがプログラミングにハマっている旨とブログ記事のリンクをアップしたのですが、有り難くも複数の方から反応をいただいたので、noteにも内容を記載しておきます。

 育児のことを偉そうに語れる保護者では決してないので、なんだか恥ずかしさもありますが…プログラミング必修時代、コロナ渦で家にいる時間が長い中、手探り状態で勉強した試行錯誤が誰かしらの役に立てば幸いです。

*

 8歳(小3)の長男が春休みのある日、「黒い画面でプログラミングをしてみたいなぁ」と、私に訴えかけてきました。

 長男は大のゲーム好き。でもプレイそのものよりも、制作に興味をもつタイプです。次男はその逆で理論よりも感覚派です。考えるより感じるタイプでお尻を出して走り回るような性格。

 比べて長男は感覚より論理を大事にする性格。物事を実行に移す前に「正しくできるのか」「それをするべきかどうか」を注意深く考えるタイプです。その為幼少期に「なんで?」を聞かれる回数が次男の5倍くらいあり、2~3歳のころは本当にうんざりしていました。

「何で木に葉っぱがあるの?」「何で空が青いの?」「何で人間や動物は死ぬの?」

 とか、とにかくいちいち聞いてくる。

 それも「神様が絵具で青く塗ったんだよ~」みたいなファンタジー回答では許してもらえず、「絵具でなんて塗れない、ママのいうことはちがう」と言われるので、その都度「青い光は、他の光にくらべてたくさん散乱する」といった正しい情報を調べて、かみ砕いて教えていました。

 あまりリアルに教えたくないこと(人の死などについて)は、ファンタジックな作り話を教えたりしましたが、すぐに矛盾を指摘されました。

 思い出深いのは、親戚の葬儀の際、火葬場に長男、次男と同席した時です棺が火葬場に移送されている時、火葬場につながるドアが開くのを見た次男は、

「あのドアが天国につながっているんだね」

 と、ファンタジー全開な回答をしました。その無邪気な言葉に、親族一同がほっこりしました。

 しかし直後に長男が、

「違うよ。あの奥でおじさんを焼いて骨にするんだよ」

 と、サイコな回答をしてしまい、一瞬でその場が凍り付きました。

 …長男には良くも悪くもそういう所があります。事実と虚構をしっかり区別する。正しい、正しくない、に敏感。

 趣味のスケートを一緒にしている時も、今自分が正しいエッジに乗れているのかが気になってしまい、間違えたらやり直し、間違えたらやり直しを繰り返して全く先に進めないという有様です。そんな性格なのでスポーツはからっきしです。その隣では、次男が何も考えずに何度もコケながら爆走している。兄弟でこんなに性格って違うんだなと感動すら覚える。

 そんな長男も、小学校に入学してからNintendo Switchを手に入れ、Nintendo Laboやマリオメーカーのコース作成、minecraftに夢中になった。性格上、こういうソフトに夢中になるのは分かってて買い与えたというのがある。決まったソフトで作るのに飽きてしまった後は、iPadを使ってのScratch、PCを使ってのScratchを使って簡単な自作ゲームを作り始めました。

その制作の際、参考にしたのがこちらの書籍。

 いきなりゼロから作るとなるとアイディアも浮かびづらい。ハードルが高過ぎるので、まずは簡単なゲームをレシピ通りに作ることを心掛けました。とはいえ、一緒に作る私もHTML/CSSが若干わかるくらいで、Scratchはもちろんプログラミングに関してもほぼ初心者です。中学生のころはBASICという言語(懐かしい!)でゲームを作ったりもしていましたが、それも大昔の話。

 じゃあどうやって勉強していたのかというと。長男は週に一回ロボットプログラミング教室に通わせています。作っていて親子共にわからないところは教室の先生に聞くことで解決していました。教室には、幸いなことに上記の書籍の執筆に関わっていた方もいたため、だいたいの場合はその場で解決できました。難しい課題は次週に持ち越しでプリントを作ってきてもらうこともありました。

 そんなこんなで簡単なゲームを作って遊ぶこと3年。Scratchの扱いも板についてきて、変数、代入といった基本的なプログラミングの知識も身についてきたころです。

 長男は、黒い画面に興味を持つようになってきました。

 というのも、長男はここ何年か「野田ゲー」を作る野田クリスタルに心酔していて、その製作配信のアーカイブを見ていた影響があります。また、学年が進むにつれ英語学習の機会が増えて、簡単な単語やローマ字の理解が進んできたことも、黒い画面に親しみを持った動機のひとつでしょう。

そこで、長男がScratchから黒い画面でプログラミングをするまでの課題を考えてみました。

①タイピング
②四則計算の理解
③国語の読解力
④簡単な英単語の理解

 何気に①が一番の課題。しかし私の世代は何をするにもタイピングが第一でしたが、今のご時世そう必要なものではなくなってきています。

 そこでタイピングというハードルなしにプログラミングができるアプリを探したところ、Progateというものが見つかりました。

 これは短く区切ったレッスン形式でプログラミングを学んでいけるアプリなのですが、タイピングの技術が要りません。プログラミングに必要な単語が初めから並べられていて、それをタッチするだけで入力できるからです。

画像1

(こんな感じで英単語をタップするだけでコードが書ける。)

 タイピングも後々必要にはなってくるのですが、このアプリには可愛いキャラクターなども出てくるため、とりあえず黒い画面に書いてあることを理解する導入としてはいいかなぁ~という軽い気持ちですすめてみました。

画像2

(学べる言語もいろいろ。達成度合いなども分かりやすく表示される。)

 そしたら、ハマること、ハマること。1レッスン終わるごとに「レベルアップ!」と表示されたり、自己肯定感を高めて挫折しないような工夫が随所にありました。

画像3

 レッスンの区切りのタイミングも絶妙ですし、解説もとても丁寧です。大人にも子供にも分かりやすい。これなら親子でやっていけそうだなと確信しました。

 ただひとつ迷ったのは、言語です。

 導入時は、とりあえずコードがシンプルそうなPython(パイソン)を選びました。

 どの言語が良いかについてはプログラミング教室の先生と相談したのですが、Rubyが良いという先生もいました。Rubyは理解しやすいと思うのですが、Pythonよりも書くコードの量が多いというのがネックでした。タイピングが嫌で挫折しちゃうのが嫌だったんですね。

 Pythonのコードは極めてシンプルです。例えば、プログラミングの導入時によく使われる”Hello,World"の出力のコードを書いてみると、

 例えばc言語だと、

1| #include <stdio.h>
2|
3| int main() {
4| printf("Hello World\n");
5| }

 と、五行になります。

 そこがPhytonだと、

1|print('Hello World')

 の、一行で済みます。これは、タイピングが少ないのは子供には助かるなぁ。

 それに、実際に使ったことはないので又聞きの話ではありますが、Pythonはなんにでも使えるオールラウンダーな言語という評判もあります。

 長男の場合はゲーム作りなのですが、彼の最終目標が野田ゲーの「グラジウス」のようなシューティングゲームだということもあり(それでいいのか?という話は別にして)、それを作るには申し分ないと思い、Pythonで進めていくことに決めました。

 レッスンの初めは、iPadを使っていたのですが、そのうち自分からPCでプログラミングをしたいと言い出しました。理由を聞くと、「野田くんのように格好よくタイピングがしたい」とのこと。何と素晴らしい動機なのか。

 それでPCでやらせてみたら、その吸収の早いこと早いこと。英単語も最初は"print"という単語すら読めなかったのですが、理解したい気持ちが強く、"name"、"number"、"user"、"count"といった英単語を、どんどん自力で覚えていく。タイピングについても、ゆっくりではありますが自力で単語を見つけ出して何とか打っています。

 ”ちょっとこの子のやる気をナメていたなあ”と反省してしまいました。育児というものは失敗と気づきの連続です。長男だしね。

*

 以上、以前書いたはてなブログ、2021/4/14の記事を加筆修正して転載。

 この記事から一年たった今、Pythonの学習は一通り終えてだいぶ使いこなせるようになっています。とはいっても、教室で実機を動かすロボットプログラミングに興味が移りつつあるので、画面のゲーム作りにまたハマる時が来るのかはわかりません。

 十年足らずの育児経験で何かを語るなど恐れ多いことかもしれませんが、少なくとも長男に関しては、ゲームが害悪になっていることはないように思います。

 『nintendo LABO』『マリオメーカー』などのソフトで試行錯誤しながら面白いシステムを作っていくこと、友達と見せ合いアイディアを出し合いつつ共同で作り上げること、『minecraft』でチートコードも含めたさまざまな裏技をつかってやりたいことを実現させていくこと、PRGなどでファンタジーな世界感や音楽への興味を養うこと…そういう経験は確実に、論理的思考や創造性、発想力の成長に役に立っていると思います。

 …とかウダウダ語る前に、何よりも楽しそうなんだ。プログラミングに関しては勉強を勉強と思っておらず、目がキラキラしながら自主的に進めている。個々人で考え方は違うと思うけれど、子どもは楽しそうにしてるのが一番いい。通知表の穴を埋めるようなバランス型人間を目指して苦手なことを嫌々やらせるよりも、好きなことに熱中し、あふれる創造性を画面にぶちまけているほうがよっぽど健康的だと私は思っています。…あくまで個人的な考えです。

 また何か面白いことがあったら話せる範囲で記載します。この記事が、誰かのなにかしらの参考になれば幸いです。

(2022.3.31 nao 拝)

いいなと思ったら応援しよう!