コンピュータサイエンスの基礎がやさしく学べる『Girls Who Code』を小中高生が日本語と英語で読みながら議論するBook Clubを開催!

2021年3月からスタートしたBook Clubでは『Girls Who Code - 女の子の未来をひらくプログラミング』(レシュマ サウジャニ著)を取り上げ、参加者全員で本を読みながら、プログラミングについて語り合います。第3回目の4月3日(日本時間)は、日本語版を翻訳し、自身もRubyのプログラマーである鳥井雪さんを交え、日本とアメリカから参加した小中高生24人がコンピューターサイエンスの基礎についてオンラインで活発にディスカッションしました。

オープニングセッション

冒頭のオープニングセッションは、みんなで参加します。最初はファシリテーターの紹介から始まりました。

そして、MCのTOMOさんが、今回たくさん出てくる、メキシコ料理のタコスのデモをしました。

参加家族の方も作っていただいたようです。

今日のKids Code Club「英語で学ぶコンピュータ・サイエンスBookClub」で読んだ『Girls Who Code...

Posted by Miki Kawahara on Saturday, 3 April 2021

日本語、英語、日英MIXでのブレークアウトセッション

英語グループ

英語グループはGoogleのエンジニアをしているEmmaさんにファシリテーターになっていただきました。

子供たちは日本、アメリカから8名参加しました。冒頭には、自己紹介と好きな映画を紹介してもらいました。子どもたちはトトロ、風の谷のナウシカ、モアナ、Descendantなどの色々な映画を紹介しました。

そして、第3章をみんなで読みはじめました。”アルゴリズム”と言う言葉について、Emmaさんは詳しい説明をしました。本にある子供同士の食堂の会話の部分もスラスラと読んでいました。スードコード(擬似コード)やD.R.Y (Don’t Repeat Yourself)なども学びました。 ループやファンクション(関数)を使うことによって、コードの重複をふせぐことができます。ファンクション(関数)の定義の仕方や呼び方をタコスの例をつかって勉強しました。

本を読んだ後、Emmaさんは携帯のための時計をプログラミングする方法を関数をつかって説明しました。そして、日英翻訳プログラムを実装するアルゴリズムについてみんなに考えてもらいました、そこでは、IF-ELSEは使えないので、大変です。最後に、EmmaさんのBOOKCLUBの進め方も実はアルゴリズムだという説明しました。

質問コーナーでは、EmmaさんがどうやってGoogleで働き始めたかやGoogleで何をやっているかなどについての質問がありました。

最後に映画のレコメンデーションのスードコードをみんなで考えました。例としては、“If somebody likes Totoro, suggest Spirited Away”が出ました。

日本語グループ

日本語グループには7人の子どもたちが参加しました。 モデレーターは、第2回目に引き続き、北米シアトルのAMAZONでプログラムマネージャーとして働くReikoさん。

そして Girls who code の翻訳者、鳥井さん、今回もご参加いただきました。

最初に、ウォーミングアップと前回の復習を兼ねた簡単なゲームでアイスブレイク。Reiko先生が、子どもたちにからだのポーズを指示、みんなはカメラをOFFにして、それぞれ指示されたポーズをとり、一斉にカメラをON。右手を高く上げて、右を向く、など、指示されたとおりのポーズができているか、みんなで確認しました。

続いて本日のメインテーマ。日本語版の第3章(Putting it all together:いっしょにまとめる)を段落に分けて順番に読んでいきました。

まずはじめにアルゴリズムについて。 朝起きた後に、朝の支度でなにをするかを考えてみながら、沢山のことを決まった順番で行う日常生活でのルーティーンを例にアルゴリズムの意味を一緒に確認しました。 身近なコンピュータでの例として、YoutubeやNetflixのリコメンデーションなど、プログラマーが書いたアルゴリズムに従って処理されていることをReiko先生が説明、コンピュータを動かすためには、まずアルゴリズムを考えることが大事だということを理解しました。 アルゴリズムをわかりやすく表現する方法として、疑似コード(pseudocode)という、本当のプログラミング言語とは違うけど、普段つかっている言葉(日本語)でプログラムを書いてみることや、「D.R.Y. : Don’t Repeat Yourself ~ 同じことを繰り返し書かない」=プログラムのコードは誰がみてもわかりやすく無駄な部分がないように書くことの大切さも一緒に学びました。プログラマが自分が作ったプログラムずっとお世話をするとは限らないから、ということですね。 このセクションでは、「関数」や「引数」など、難しい言葉が続きます。大人でもなかなか難しい内容だけど、みんなわかるのかな~ と少々心配しましたが、意外と子どもたちは理解できた様子でした。個人的には、プログラミングで使用する用語は、難しい漢字混じりの日本語ではなく、「Function」「Parameter」とそのまま英語で覚えた方が楽じゃないかと思うんですが。

最後に、子どもたちからの質問タイム。いろんな質問が出ましたが、中でも「Amazon のおすすめアルゴリズムは、どうなってるんですか?」というナイスな(難しい~)質問に対し、翻訳者の鳥井さんは、「どのようにおすすめを決めているのかは公開されていないけど、多分、他の人が何を買っているのかを見て、それに合わせておすすめを決めているんじゃないかな。どういうアルゴリズムなのかを想像してみるのもいいね。」とアドバイス。

MIXグループ

MIXグループでは日本とアメリカから合計9人(8組)が参加しました。冒頭、Show and Tellで3人の子がそれぞれ今読んでいる、あるいは読んで面白かった本を紹介。3人とも本の紹介だったのは単なる偶然。これでひと通り参加者全員のShow and Tellが完了しました。

今回のChapter 3はちょっと骨太な内容です。まずはプログラミングの「アルゴリズム」から話が始まります。本ではこの概念を詳しく図解して、”ランチラインアルゴリズム”として紹介しています。登場人物に応じて英語で音読をして、図の中の説明をUtakoさんが丁寧に解説していきます。子供たちは音読の要領がよくつかめてきたようで、交代での読み合いがとてもスムーズに進むようになりました。当初は苦戦していた感があった子供たちも、難しい単語が入った箇所もしっかりと英語で音読できるようになっています。

ただ、今回はアルゴリズム、条件文、ループ、パラメータなどちょっと難しい言葉が出てきたので、ファシリテーターの説明がとても役に立ったようです。それよりも今回一番発音で悩まされたのはGuaccamoleでした。日本では普通アボカド(Avocado)と言うので、”グゥワカモーレ”という聞きなれない発音に驚きもあったようです。

後半はIF/Elseの条件文について、身の回りにどんな例があるかについて話し合いました。IF/Elseではレストランの注文というシナリオで考えました。「オレンジジュースがあったらそれを出し、なかったらアップルジュースにする」や「ステーキがあったらそれにして、なかったら”焼きパイナップル”」。他には「チーズパスタとニョッキ」、「オムライスと唐揚げ」などバラエティーに富んだ例が出てきていました。最後はもう一度、アルゴリズム、疑似コード、パラメータなどの概念についてもう一度確認しました。

まとめ

ブレークアウトルームが終了し、またみんな一緒のクラスになりました。そこでクラスの感想を話し合った後、最後に、Kids Code Club の石川さんがScratchで作ったOrder Tacos アプリの紹介をしました。関数(日本語Schratchでは「定義」)を使ったプログラムの実例を通して、本で読んだ内容を振り返ることができました。

アンケート結果

セッション後のアンケートでは、子供たちからは内容が難しかった一方で説明が分かりやすかったという声が目立っていたようです。やはりプログラミングのコアな概念が多く出ていたので、ファシリテーターからの直接の説明で理解が深まった様子です。

最終回の次回はデバッグについて学ぶ第6章を読み進める予定です。