プログラミングは“作り方”が大切 入門したら次にやるべきこと

前回は、どんな人がプログラミングに向いているかについて紹介しました。それでは、向いている人だけがプログラミングをするというのかというと、そういうわけではありません。アプリを作るだけでなく、その子が将来どんな分野に進むとしても、プログラミングは強力な武器になるからです。
では、一般の子どもたちはどんなふうにプログラミングを学んでいくのがよいのか? これについては、あまり子ども向けの入門書には書かれていないと思います。かれこれ35年もこの世界を見てきた私なりに《こうすると効果絶大》なことを具体的に紹介したいと思います。

子どものプログラミング入門書

『授業で役立つ 自習して楽しい 名探偵アルゴのプログラミング入門』。1巻「正多角形のなぞ 算数でプログラミング」、2巻「自動機械のひみつ 理科でプログラミング」、3巻「創作のしれん 国語・社会・図工・音楽・家庭科でプログラミング」

子どものプログラミングに関する本に、少しだけ関わりました。『授業で役立つ 自習して楽しい 名探偵アルゴのプログラミング入門』(汐文社)という3巻からなるシリーズ本です。一般の書店にはあまり販売されておらず、全国小学校の図書館などに置かれることを想定した本です。

このバレットプレスでも執筆されているNPO法人CANVAS理事長の石戸奈々子さんが監修しました。そして、学校教育におけるプログラミングで活躍されている、安藤明伸さん、佐和伸明さん、渡邊茂一さんが執筆しました。教育現場で実績のある先生方による、熱のこもった企画会議(オンラインですが)も楽しかったです。

本を読んだ次はどうすればよいか

さて、子どものプログラミングの入門書にほんの少しですが関わったので、私は気が早いため《この本を読んだ次はどうすればよいだろうか?》と考えていました。

大型書店のコンピューター書コーナーに行くと、いまやとてもたくさんの子ども向けプログラミング入門書が並んでいます。プログラミング言語ではScratchがとても多いのですが、ただの入門編から、最近は《人工知能》を使う内容の本も出てきています。

Scratchで人工知能を使う本。『Scratchではじめる機械学習 ――作りながら楽しく学べるAIプログラミング』(オライリージャパン)は、「ML2Scratch」というグーグルの人工知能(機械学習)を使うためのライブラリを公開されたひとりの石原淳也さんも執筆。『できる たのしくやりきるScratch3子どもプログラミング入門』(インプレス)はより子ども向けの内容。

そんなふうにできることが広がって、作りたいものが出てくると、おのずとプログラムも大きくなってきます。そして、大きく複雑になってきたプログラムを完成までもっていくのが大変になってきます。大人のプロのプログラマーでも苦労する世界です。1つでもバグがあれば、プログラムは正しく動作しないわけですからね。

Scratchでプログラミングの入門がうまくできたら、次は、Pythonにチャレンジするとか、Unityを使いこなすとか、もちろん、人工知能を使ったアプリを作るのはとてもよい。

しかし、私は、そのことと同時に《プログラミングの仕方》をきちんと学ぶべきだと思っています。プログラミングの入門で、文字どおり《言葉の使い方》を覚えたら、次は《みんなに意図が伝わる作文》の書き方を覚えるようなことだと思います。そのためには、国語の時間に教わるような《作文の書き方》のようなことです。

ただ、いきなり作文を書き始めてもまとまりのないものにしかなりません。構想を練り、全体を構成するエピソードや言いたいことを書きだし、流れを考える。できあがってきたら、推敲したり、校正したり、合評するといった方法があるように、です。

まずは、大人のプログラマーと同じように「設計書」をきちんと作ることです。表示させたい画面、その画面のどこを押すと次にどの画面になるのか? といったことは容易に想像がつくと思います。大切なのは、よく言われるようにやることを分解することなのですが、ただ分解すればよいのではありません。《階層》を明確にして整理していきます。プログラムに限らずものごとは全体的な大きな動きから細部の機能まで《階層》的だからです。

プログラムでは、しばしばアルゴリズムが重要と言われがちですが、アルゴリズムは、このようにして分解したそれぞれの働きを具現化するいちばん下の概念でしかないのです。自分の考えをコンピューターの文に置き換える、誰がやっても同じになるべき現場の仕事と言ってもよいと思います。

さらに大きなプログラム全体が、どんなときにどんな働きをしてくれるかに知恵を絞りたいものです。

「ウォークスルー」というミーティング

設計書が書けたら、もうひとつだけこれをやったら効果絶大なとっておきの方法を紹介しておきましょう。それは、大規模なシステムを開発している場合に行われる「ウォークスルー」という一種のミーティングです。これは、お芝居の「立稽古」という意味の英語だそうで、プログラミングがある程度できてきたときにチームで行います。

子どものプログラミングでは、数人のチームでアプリを書くこはあまりないと思いますので、教える人やクラスメイトが参加するとよいでしょう。本当の開発現場でのウォークスルーでは、知識も経験もある「チーフプログラマー」、開発に必要な資料や使われるデータを把握している「ライブラリアン」、その他の同僚プログラマーが参加します。

そして、コンピューターで動かす前に、ちょうどコンピューター上でプログラムが動くような感じで、プログラムを確認していきます。そのときに、具体的にどう考えてどう書いたか、といったことが共有されていきます。ウォークスルーで、私もいろいろ指摘されて育ったし後輩たちも本当に育ちました。「こんなコードだめだ」とチーフプログラマーに否定されたときに、ライブラリアンがお母さん役のようにケアしてくれることもありました。

実は、うまくいっている子どものプログラミングの現場も、これと同じではなけれど丁寧に子どもの視線まで降りた指導がされています。ただ、子どもが分からないといったとき《質問に答えてあげる》とか、《動かないプログラムを見てあげる》といった家庭教師型ではないのです。大人の世界では「ソフトウェア工学」と呼ばれる分野ですが、子どもでも、「設計書」と「ウォークスルー」くらいまではやるべきだと思います。

これまでの【遠藤諭の子どもプログラミング道】は

© Valed.press