見出し画像

プログラミング経験ゼロの女子9人を集めて1時間でプログラミングを教え、そのままハッカソンしてみた

先日、長岡で行った「初心者向けAIハッカソン」は、その日のうちに簡単なプログラミングを教え、ハッカソンまでやってしまうという野心的な試みだった。この試みは、もともと長岡市長の磯田さんにプログラミングを教える過程で思いついたものだった。

今時、プログラミングの範囲は多岐に渡り、できることが爆発的に増えたのと同時に、やらなくていいことも増えた。

大昔は、文字を画面に表示するプログラムが書ければ一人前のハッカーと呼ばれた時代もある。

しかし今や文字を表示するのは基本中の基本であって、特に特別なテクニックが必要なのではない。

そこで、変数バリアブルの操作やループ、分岐など、ごく初歩的な知識だけを最初に教え、あとはLLMの力で勝手に内容を充実させるという、逆転の発想を用いたハッカソンをやってみたところ、思ったより効果が高かった。

ただし、この時は長岡市が市として「初心者」を募集したので集まった参加者が実はプログラムをバリバリ書いていた人という可能性は有り得る。

この話をラジオでしたところ、いつも一緒に番組をやっているキャスターの瀧口友里奈さんが「なんで私にも教えてくれないんですか」と言う。まあもちろん教える義理はないわけだが、彼女がプログラミングをしてみたいと考えるのは意外だった。

そのあと、ゴールデン街で飲んでいたら、J-CASTの蜷川さんがやってきて、「私もあれやってみたい」というので、なぜか身の回りの女性がプログラミングに興味を持つという奇妙な巡り合わせを感じ、「それじゃあいっそ女性限定でやってみるか」と思った。

以前、色々なハッカソンを開催していた時に気がついたことがいくつかあって、東京でハッカソンをやると大抵男性ばかりになるか、男性中心のチームができてしまうことがある意味で悩みの種だった。

どうすればいいのか、ハッカソンに参加したかったけどしなかった女性に聞いてみると、「男性ばかりのところに混ざっていくのが心理的に抵抗がある」とか、「私の周りはみんな中高は女子校出身だから勉強する時は同性だけの方が安心感がある」という指摘をもらった。

なるほど、それは考えたことがなかった。

また同時に、僕はハッカソンというものを普及させるためには、ハッカソンの可視化が必須だと考え始めていた。

ハッカソンの可視化とは、具体的に言えば番組化のようなものであり、観劇としてのハッカソンをどうやって成立させるかということでもある。

本来のハッカソンは24時間から48時間くらいかけて行うもので、その間には睡魔との葛藤やツールのインストールトラブルなど、色々なドラマが必然的に生まれる。これはこれで楽しいのだが、いきなり初心者に24時間プログラムしろと言ってもできるわけがない。

マラソンにハーフや12kmのファンランニングがあるように、ハッカソンもショートスプリントを重ねてプログラミングに慣れるような形式が必要なのではないか。

しかも、女性限定にしてチーム戦にすれば、必然的にコミュニケーションが生まれ、ハッカソンの内容が「可視化」される。初心者だけ集めれば、プログラミングができない人にも共感できるようなセリフを引き出すことができる。

瀧口さんに日程を聞いたところ、平日の午前中がいいということなので、朝10時から、場所はもちろん「秋葉原プログラミング教室」を借りることにした。

最初の1時間で、プログラミングの基礎知識を一通り全部教える。
プログラムの語源から、人類初のプログラマーである女性、ラブレース伯爵夫人オーガスタス・エイダ・キングの話、コンピュータの発明に欠かせなかったのが、タータンチェックを織るためのジャッカード織機しょっき穴あきパンチカードだったという話。

ジャッカード織機のパンチカード

そこから「変数バリアブルは実は数ではない」とか、「関数ファンクションも数ではない」という話をして、変数の扱い方、文字列の作り方、リストの扱い方、ループ、条件分岐、そして乱数の使い方、と矢継ぎ早に教える。

ここは今回の反省点なんだけど、実は乱数さえ教えてしまえば、プログラミング初日は十分だった。ループや条件分岐はもう少し時間が経ってから、「こういうことがしたい」という欲求が彼女たちの内面から出てきた時に初めて教えればよかったことにあとで気づいた。

もしも次回やるのならば、ループ編と条件分岐編、関数編に分けた方がよかったな。

変数は数ではなく関数も数ではない。仮想も誤訳である。

ここまででヨタ話を込みで1時間。プログラミングのことを喋ったのは実質30分程度だった。

Google Colabにアクセスしてあらかじめ用意した教材を使うので、手元で試しながら聞けるハンズオン形式だ。

ここまで聞いたら、3人ひと組でチームを作って、ハッカソンに突入である。

最初のテーマは「食」とした。制限時間は40分

あとで動画を編集していて気づいたのだが、さすが全員、自分からプログラミングを勉強したいというだけあって、頭の回転が早くてコミュニケーション力が高い。普通のハッカソンでは、「お題」を言うとみんながまず頭を抱える時間からスタートする。ところが今回のハッカソンでは、素人の怖いもの知らずか、お題を発表したすぐその後にそれぞれのテーブルでアイデアがずらずらと出されていた。

実は制限時間40分はハッカソンとしては短すぎる。ハッカソンと言いつつこれはスプリントレースを繰り返す形式なので、このくらいの短さで良い。これがもし1時間だったら心が折れる。

瀧口さんと蜷川さんのチームも、早速いいアイデアが浮かんだようだ。

テーマ発表直後に怒涛のようにアイデアをぶつけあう瀧口さんと蜷川さんチーム
佐川さんチームも早くも進展があった模様
進展すると「もっとこうしたい」と言う欲が出てくる。これが内在的動機

不思議な気分だった。

僕は長岡での二回のショートハッカソンの経験から、この教育プログラムが上手くいくと頭ではわかっていた。

しかし実際に昔から知ってる人たちが、目の前でプログラミングの魅力に目覚めていくのは衝撃だった。

後半はGradioを紹介して、「Webサービスが簡単に作れる」ことを説明するとさらに盛り上がった。

最後に僕はこんな話をした。

「皆さん、今日ここで皆さんの身に何が起きたのか、多分わかってないと思う。僕だって驚いている。たった四時間で、皆さんは自分の考えをプログラムで表現できるようになった。これは凄いことで、できればぜひ家に戻った後も時々は思い出してプログラミングしてほしい」

そういえば、僕は昔から誰かにプログラミングを教えると言うことを繰り返していた。最初はやはり中学校のパソコン教室で、技術家庭科の時間に同級生にプログラミングの基礎を教えた。その頃はBASICで、訳のわかんないルールが多くて教えるのが大変だった。

2011年には9分間ナインミニッツコーディングバトルと言う競技を考案し、お台場の科学未来館やサンフランシスコのGDCでやったが、これは元々プログラミングが得意な人の中でもさらにプログラミングが得意なスーパーハッカーに近い人でないと参加することすら不可能だった。

しかし、現在、Google ColabとPython、そしてAIの組み合わせは、そういうわけのわからなさをすっ飛ばしてプログラミングの純粋な楽しさを伝えることができる。

今はもうそういうタイミングに来ているのだ。
AIを少し使うだけで、プログラミングは飛躍的に簡単になり、誰にとっても、アプリが「ただ与えられるもの」から、「誰かに与えるもの」「自分のために作るもの」に変化した。この変化は大きい。

僕が2011年に夢見た、「一億総プログラマー国家」への道筋が見えてきた。

チームを入れかえながら三回のスプリント、しかも40分、30分、最後は15分と、どんどん短くなっていくスプリントの中でも、彼女たちが自ら成長し、「こういうことをするにはどうすればいいですか」と質問を発してくれるようになった。

「とりあえずChatGPTに聞いてみて。わかんなかったらまた聞いて」

と返せるのが現代風である。

長岡の初心者ハッカソンでは地元企業からティーチング・アシスタントを何名か派遣してもらったが、今回はゼロでいけた。チーム戦にすることで、お互いがお互いに教え合い、コミュニケーションがうまれるようになったからだ。

個人的に嬉しかったのは、終わったあとで、参加者同士が連絡先を交換し、ニコニコしながら「次はいつやるんですか?」と聞いてきてくれたところ。

記念撮影

「ああ、プログラミングを続けてくれるんだ」と思った。

参加者の一人、佐川さんの参戦記。参加した人にはこう見えていたらしい。

動画をチェックしていて思ったのは、みんな最初から最後までずっと笑顔なこと。本当に楽しんでくれてるんだと思って嬉しくなった。

瀧口さんからは後から「あの時作ったプログラム、できればSNSでシェアして他の人にも遊んでもらいたいんですけど」と言われた。それも嬉しい。

せっかくなのでChatGPTを使うのもシャクだからさくらインターネットさんからお借りしているV100ベースのGPUサーバーにSwallowをインストールして、瀧口さんチームの作品を置くことにした(ありがとう!さくらインターネットさん)

現場には6台のカメラと取材にサンダーボルト村上さんとガジェタッチのリンクマンが入っていた。動画素材は膨大であり、「ハッカソンのコンテンツ化」と言う切り口に関しても色々な課題がわかってきた。

特にハッカソン中はあちこちで歓声が上がるので、音のクロストークの問題は深刻だった。これは次回開催の時までに解決したい。

動画コンテンツは現在準備中なので、ハッカソンがどんな雰囲気だったのか、どんなものが作られたかはぜひ期待してお待ちいただきたい。

※11/30 第一弾公開しました

https://www.youtube.com/watch?v=IqmbngtN4jo

https://www.youtube.com/watch?v=yFdwyk0t3fo

https://www.youtube.com/watch?v=T-XsSCjYcL4

https://www.youtube.com/watch?v=1cOgPfMBiJo

また、今後こういうハッカソンをまずは日本に広めていくために、「初心者AIハッカソン司会者養成ハッカソン」みたいなものもやろうと思っている。できれば企業内で自発的にプログラミングに疎い人たちを集めて、「今の世の中はこうなんだ」と言うことを知ってもらいたい。





やってみて思ったんだけど、これは定期的にやるべきかもしれない。せっかく学んだことも、一回やっておしまいではつまらない。二ヶ月に一回か、四半期に一回くらいは定期的にやって「今日はこんな新しい技を覚えた」とか思って帰ってもらいたいものだ。

まずは子供達(もしくは親子)向けにもやろうと思っているので、興味がある人は秋葉原プログラミング教室の知らせをチェックしておいてください。

また、アンケートをとることにしました。初心者AIハッカソンへの参加や、初心者AIハッカソンを主催することに興味のある人はぜひお答えいただければと思います。参考にさせていただきます。