ヌーラボの@vvatanabe です。所属はサービス開発部でBacklogのGitホスティング機能の運用・開発を全面的に担当しています。その他、社内のOSPO(Open Source Program Office)で従業員の誰もが、平等に安全にOSS活動へ取り組める環境を整備する活動に携わっています。二児の父で、休日に子どもと公園でサッカーをするのが趣味です。最近は欧州CLのおかげで寝不足が続いてます。
さて、本記事では、2022年の秋頃に、宮古島市立久松中学校の2年生を対象に、キャリア教育の一環として行ったプログラミング授業についてご紹介します。
授業のスライド: https://cacoo.com/diagrams/AziZqw4BxyFsY1HP/F663C
目次
なぜ宮古島の中学生にプログラミングを教えることになったのか
きっかけは、ヌーラボのリゾートワーク研修制度でした。後述しますが社員の福利厚生ではありません。
ヌーラボのリゾートワーク研修制度
以下は、リゾートワーク研修制度の概要です。
- 年1回の社内エントリーを経て、合格した人が参加できる研修制度
- 場所は北海道東川町もしくは沖縄県宮古島市から選択
- 滞在期間中1日は、研修プログラムへの参加に充ててもらう
- その他の日は、テレワークをしても有給を消化してもOK
- 選択した滞在地×社員の居住地 に応じて手当を支給
- 社員だけでなく、同行する家族の分も手当を支給(同居する一親等以内)
つまり、
- 社員へ付与しているのは、研修補助
- 社員の家族へ付与しているのは、従業員への福利厚生
出典: 声を大にして伝えたい。リゾートワーク制度は福利厚生ではなく教育研修制度です
格安な家族旅行と教壇への憧れ
この制度を利用すれば、家族旅行を格安で楽しめるかもしれない、という軽い気持ちでエントリーしました。宮古島を選んだ理由は、温かい南国で自分の子どもたち(4歳と6歳)に綺麗な海を見せてやりたかったからで、とても単純な理由でした。本音を言えば、人生で一度くらいは教壇に立って子どもたちから先生と呼ばれてみたいという、教師という職業への憧れが大きかったかもしれません。
学校に求められたものと自分にできるもの
学校が求めたのは、キャリア教育の一環として「職業観を考えるライフデザイン的な授業」というものでした。私はこれまで一般的にプログラマーやエンジニアと呼ばれるような仕事でキャリアを積んできたため、自分にできることを考えたときに、プログラミングを通じてプログラマーという職業について子どもたちに語り、授業を通してプログラマーという職業の理解度を高めることが思い浮かびました。さらに、IT企業を中心に多様化する現代の働き方について、私が働くヌーラボを例に紹介することで、ITの分野に興味を持つきっかけになることを目指しました。
どのような授業を設計したのか
以下は、授業のアウトラインです。
- ヌーラボを例にした多様な働き方の紹介
- プログラマーの仕事内容について
- プログラマーになる方法について
- スクラッチを使ったプログラミング体験
ヌーラボを例にした多様な働き方の紹介
ヌーラボの制度を例にして多様な働き方を紹介しました。ヌーラボは、コロナ以降、基本的にフルリモートな働き方になりました。それに伴い働く場所を自由に選択できるようになりました。さらに、フレックス制なので働く時間を自由に調整できます。このような従業員のライフスタイルに合わせた柔軟な働き方は、ヌーラボだけではなくIT企業を中心に増えています。私が子どもの頃はこんな働き方は想像もしてませんでした。子どもたちに、インターネットを使って世界に目を向けることで、想像もしなかったワクワクできる仕事・職業を見つけられる可能性を知ってもらうことがもらうことがねらいです。
プログラマーの仕事内容について
一口にプログラマーやプログラミングといっても、その分野は多岐に渡るので、プログラミングで制御されている身近なものについて、以下を例に説明しました。
- ショッピングサイト、SNSなどWebサイトやサービスに関わるプログラミング
- Nintendo SwitchやPlayStationなどのゲームソフトに関わるプログラミング
- iPhoneやスマートフォンで使用するアプリケーションに関わるプログラミング
- エアコンやテレビなどの操作、自動車の自動運転機能など身近なものに関わるプログラミング
プログラマーになる方法について
プログラマーになるための一般的な方法を以下のようにまとめ、図を用いて説明しました。
- プログラマーとして働くために必須の国家資格はとくにない
- 必ず卒業しなければならない学校や、学部・学科もない
- ただし、プログラマーとして働くためには、プログラミング言語、コンピュータの仕組み、ネットワーク、 データベースなどの高度な専門知識が必要になる
- そのため、大学、高専、専門学校などの教育機関で専門知識を身に着け、卒業後にIT系の会社へ就職するパターンが一般的
- その他、知識を証明する資格試験に挑戦することも大きな学びになる
- IT業界には豊富な資格試験があり、中でも経済産業省認定の情報処理技術者試験は基本的な資格として広く認知されている
スクラッチを使ったプログラミング体験
事前に対象の中学2年生の子どもたちのプログラミングの認知度を確認したところ、対象クラスはまだプログラミングの授業を受けたことがないということでした。初体験でもプログラミングを楽しく学べて、基本である順次、分岐、反復を理解しやすいツールはないか調べてみると、スクラッチと呼ばれるブラウザで実行可能なツールが見つかりました。スクラッチは以下のような特徴を持っています。
- スクラッチはアメリカのMIT(マサチューセッツ工科大学)で作られたプログラミング言語です。
- ブラウザの画面上でブロックをつなげるだけでプログラミングできます。
- パソコンの黒い画面に難しい文字や記号を入力する必要はありません。
- 作ったプログラムがうまく動かなくても簡単にやり直せます。
- 物語や、ゲーム、アニメーションなど、自由に作って世界中に公開できます。
このスクラッチを使って、公式チュートリアルにある以下のようなピンポンゲームの開発を通して、プログラミングの基本を学んでもらうことにしました。
まずは、 ピンポンゲームの動きを分析してみるところから始めます。以下のように、ピンポンゲームの要素や規則を1つ1つ明確にしていきます。
分析した結果、以下のようなやることリスト(仕様)ができあがりました。この手順に従って、ステップバイステップで1つずつ問題を解決していくことで、達成感を感じてもらうことがねらいです。
以下のスライドは、最初の「ボールは旗を押したら動き出す」の説明です。ブロックを組み合わせて、ボールの要素に対して「旗が押されたとき」「15歩動かす」と命令します。これで、旗を連打すればスライド右上のプレビュー画面のボールが連続して動きます。
次に、ボールが壁(プレビュー画面の端)に当たったら跳ね返る動きを命令します。「もし端に着いたら、跳ね返る」ブロックを追加します。これで、旗を押すと「15歩動かす」->「もし端に着いたら、跳ね返る」の命令が順次実行されます。旗を連打することで、ボールが連続して動き、壁に当たったら跳ね返る(ボールの向きが変わる)ようになります。
次に、手動で行っていたボールを動かす作業を、コンピューターに自動的にやってもらいます。以下のスライドように、「ずっと」というブロックの中に「15歩動かす」と「もし端に着いたら、跳ね返る」のブロック入れます。これで、旗を押すと連打しなくても「ずっと」、「15歩動かす」->「もし端に着いたら、跳ね返る」を繰り返します。少しだけゲームらしくなりました。
このように、プログラミングの基本である順次や繰り返しをステップ・バイ・ステップで感じてもらえるような授業を設計しました。以下のスライドに、この続きがあるので興味を持たれた方は是非以下のスライドをご覧ください。
授業のスライド: https://cacoo.com/diagrams/AziZqw4BxyFsY1HP/F663C
実際に授業を体験してみて
実際に人生で初めて教壇に立って授業をやってみたリアルな体験談を一部紹介します。
懐かしい授業の始まり、開始5分で夢叶う
鐘が鳴って、早速授業を始めようと「それでは〜」と言ったところで、担任の先生に「ちょっと待ってください」と呼び止められました。何かなと思ったら、授業の開始前に「礼」の儀式を行う必要がありました。子どもの頃授業の開始と終わりに毎回やっていたのを思い出し、懐かしく感じました。
授業を開始してすぐは生徒全員がすぐ集中できるわけではなく、少しザワザワして、生徒のひそひそ話がはっきり聞こえてきました。自分が中学の頃のひそひそ話が先生に丸聞こえだったのかと思って恥ずかしくなり、そのザワザワした雰囲気に笑ってしまいました。子どもらしい和やかな雰囲気に私の緊張は少し和らぎ、逆に助かりました。
自己紹介で「先生に憧れてました、今日は渡邉先生を略してなべせんと呼んでください」とお願いしたら、複数の生徒が笑顔で呼んでくれました。開始5分で夢が叶いました。ありがとうありがとう。
一方向より双方向なコミュニケーション
授業途中でクイズ形式で入れてみたら思ったより手が挙がって、クラスのムードメーカーがどんどん発言してくれました。それに伴い、他の生徒の質問の頻度も上がり、教室に発言しやすい雰囲気ができました。授業において双方向なコミュニケーションが大事な理由が体感できました。
前列と後列の生徒の授業理解の違い
前列の生徒ほど授業についてきやすく、後列の生徒ほど少し遅れる傾向にありました。ゲーム作成という授業内容から生徒達は全体的に率先して取り組んでくれていたので、単に興味がなかったわけではないと思います。考えられる理由としていくつか挙げられます。
- 教師や黒板の物理的な距離によって、視覚的、聴覚的に理解しやすさが変わる
- 前列になるほど、教師との距離が近いため、教師の目が届きやすく、注意力を維持しやすい
- 前列になるほど、質問や疑問を教師に直接伝えやすく、教師もその生徒の理解度を把握しやすい
- 後列になるほど、教師とのコミュニケーションが難しく、理解できない部分を放置してしまう
素人なりに考えてみましたが、教師という職業の難しさをひしひしと感じました。座席のローテーション、グループワークやペアワーク、声の大きさや話し方、アクティブラーニングが、授業のアプローチとして用いられる理由がなんとなくわかった気がします。
余談ですが、席の位置に関わらず、真剣に前のめりでうなずきながら聞いてくれる生徒もいて、うれしくて心で泣きました。ありがとうありがとう。
計画通り授業を進めることの難しさ
当初は個人的な目標としてクラス全員がついてこれるような授業を心掛け、詰まってそうな生徒に声をかけながら教室を歩き回って説明していました。しかし、時間はあっという間に過ぎ、クラス全員の進捗を待っていると計画通りに授業を進めることが難しいことに気づきました。結果として、クラス全体で8割くらいはついてこれていたようですが、授業設計自体にも反省点が多く見られました。
子どもたちの成長の過程、瞬間に立ち会えた感動
実際にプログラミングを体験して、うまく動いたときに感動して「すごい!」「できた!」と声を上げて、プログラミングの醍醐味を感じている生徒もいました。最後の授業のまとめの時にもゲーム改造に熱中している生徒もいて興味を持ってもらえたことを感じ取れました。ほんわずかでも子どもたちの成長の過程や瞬間に立ち会えたことでもらった感動は忘れられません。今後も何らかの形で子どもたちの「すごい!」「できた!」といった気持ちを育む活動ができたらと思いました。
まとめ
2022年の秋頃、宮古島市立久松中学校の2年生を対象としたキャリア教育の一環でプログラミング授業を行いました。この授業を実施することになった背景には、ヌーラボのリゾートワーク研修制度を利用した家族旅行と教壇への憧れがあります。また、学校が求めていたことと、自分が提供できるスキルがマッチしたため、宮古島の中学生にプログラミングを教える機会が生まれました。
授業では、ヌーラボを例に多様な働き方を紹介し、プログラマーの仕事内容やプログラマーになる方法について説明しました。さらに、スクラッチを使ったプログラミング体験を行いました。
授業を実際に体験してみて、大人になって忘れてしまった懐かしい授業の雰囲気を思い出しました。授業において一方向のコミュニケーションではなく、双方向のコミュニケーションが大切なことや、前列と後列の生徒の授業理解の違いに気づき、計画通り授業を進めることの難しさを実感しました。しかし、子どもたちの成長の過程や瞬間に立ち会えた感動は、この授業を通じて得られた貴重な経験でした。
今年も機会があれば、昨年の経験を活かして、生徒たちにより興味を持ってもらえるような授業をやってみたいと思います。
謝辞
宮古島市立久松中学校の校長先生、担任の先生方
本記事のプログラミング授業において、皆様からご支援をいただき、大変感謝しております。校長先生がつきっきりで対応してくださり、授業がスムーズに進められる環境を整えてくださったこと、また、担任の先生方が熱心に授業のサポートをしてくださったおかげで、素人ながらも無事授業を終えることができました。
これからの時代、情報技術は私たちの生活に欠かせないものとなっており、プログラミングスキルは将来のキャリアにおいて非常に有益であるといわれています。このような授業を通じて、生徒たちに新たな可能性や視野を提供できたことは、私にとっても大変貴重な経験でした。
今後も皆様のご指導のもと、久松中学校の生徒たちが、情報技術やプログラミングに関心を持ち続け、自分たちの夢や目標に向かって努力していくことを心より願っております。
追記:
絶品の給食!ごちそうさまでした!