ブログ > 2020 > December > オンラインHaskellコース:2020年モンゴルのクラス

オンラインHaskellコース:2020年モンゴルのクラス

Haskell初の大規模なオンラインコース(MOOC)配信を振り返る

2020年 12月 21日 Alejandro Garcia 8 分で読めます

オンラインHaskellコース:2020年モンゴルのクラス

ここでは、今年初めてオンライン配信したHaskellコースへのフィードバックをご紹介したいと思います。

Covid-19パンデミックにより、世界中でさまざまな予定が変更を余儀なくされたことは誰もが口にすることですが、IOGの教育部門も例外ではありませんでした。しかし、予想外だったのは、2020年世界的なロックダウンにより素晴らしいオンラインのHaskellブートキャンプを配信するという新たな機会が訪れたことです。

IOGをご存知の方は、ソフトウェア開発におけるHaskellプログラミング言語と形式手法を用いたアプローチが当社に不可欠なものであることもご存知でしょう。これは、その名称「Input Output」に現れています。したがって、オープンソースプロジェクトへの貢献、開発者の助成、その他諸々、Haskellエコシステムの改良に多額を投資していることは驚くことではありません。その大きな取り組みの1つに、年に一度のHaskellブートキャンプ開催があります。これは、教育部長のLars Brünjesを始め、世界屈指の開発者やコンピューター科学者からなるゲスト講師による、3か月に及ぶ対面の集中講座です。これまでに、このクラスは2017年のアテネ、2018年のバルバドス、2019年のエチオピアと繰り返され、2020年にはモンゴルでの開催が予定されていました。

具体的には、Haskell、暗号通貨、スマートコントラクトのトレーニングを行う10週間のコースで、これに挑戦する若い学生に新たな機会が拓かれます。これは楽なコースではありません。トピックは難しく、宿題はそれ以上に難しく、タフな時間を強いられます。これをフルタイムのコミットメントと呼ぶのは控えめな表現で、これまでに受講したほとんどの学生は「人生で一番難しいクラスだった」と言っています。

これらすべてのファクターにもかかわらず、10週を終えた学生たちは、強く型付けされた関数型プログラミング、組み込みDSL設計、プロパティベースのテスト、スマートコントラクト開発(PlutusおよびMarlowe使用)といった、ソフトウェア開発における最先端のトピックの経験を積むと同時に、職業人としての数十年に及ぶ生活に影響を及ぼす、真に厳しい課題を成し遂げたという強い自尊心を得ることになります。

2020年初頭、モンゴルのHaskellブートキャンプは3月開催に向けて準備が進められていましたが、ご存知の通り、この惑星全体が動きを止めました。1月の時点でコロナウイルスについての情報はあまり知られていませんでしたが、3月までにはその死亡率や主要な感染経路がニュースの1面を飾り、フライトはキャンセルされ、その後は完全に閉鎖されました。これにより、計画通りに対面型のクラスを開催することは不可能となりました。しかしDugerdorj DavaadorjとLarsの不屈の精神、というか頑固さのおかげで、何があってもとにかくクラスは開講する方向で動くことになりました。つまり、パンデミックにより押し付けられた新たな現実にクラスを適用させる必要に迫られたのです。こうした変更は難しいもので、どんな教師も言うように、学生の反応を見ながらフィードバックを提供する方が簡単だし、学生同士が顔を合わせている状態で、ペアで行うプログラム、「集団」で開発する練習など、双方向的な教育を提供することの方が簡単だということは承知していました。

予想外だったのは、MOOCのアプローチが部分的に対面型トレーニングコースよりも優れている点がわかったことです。最近の講座は、Larsと、Well-typedのAndres Löhが教鞭をとりました。AndresはHaskellコミュニティで高い評価を得ている講師で、20年以上に及びこの言語に携わっています。基本的に、Haskellで面白いオープンソースプロジェクトを見つけた場合、Andresはおそらく何らかの方法でそれにかかわっているでしょう。さらに、ゲスト講師として、Rob Cohen(IOGのプログラムマネージャー)、Joshua Miller(IOGのプロジェクトマネージャー)、Phillip Wadler(Haskell生みの親の1人。業績は大量で、詳しくはウィキペディアなどを参照のこと)も参加しました。

Haskellコースは通常通り8月に始まりましたが、全学生が適切な開発環境を整え、言語の障壁や一部の文化的差異を克服するまでにしばらくかかりました。基本的に、教授陣は学生にどんどん質問をするように促しましたが、モンゴルでは作業は静かに行い、質問や協力は学生間でのみ交わされるものです。したがって、すべての学生が大学のラボで実際に一緒に作業ができたことはありがたいことで、こうした施設にアクセスできたことは大変うれしいことでした。モンゴルで大学が開いていたのは素晴らしいことでした。

これは2020年8月のことでしたが、そのころヨーロッパやアメリカの学校はほとんどが閉鎖されていました。それなのに、モンゴルの大学が開いていたのはいったいどういうわけでしょうか。実はこの時点まで、モンゴルではCovid-19による死者が出ていませんでした。繰り返します。Covid-19による死者はゼロでした。最初は信じられない思いでしたが、週を重ねて学生たちを知っていくにつれ、その理由がわかりました。学生たちがクラスで示した作業に対する規律正しさと気質は、そのままモンゴル市民が1月27日以来パンデミックを寄せ付けずに済ませた姿勢と同じものでした。モンゴル政府は当初から毅然とした行動をとり、市民は厳密にそれに従いました。私たちは作業中にそれを目にしました。全員がマスクをつけ、距離を保っていたのです。学習プロセスは厳しいものでしたが、学生たちは大量の難しい演習に取り組み、お互いに相談し、自発的にチームで協力し、参加者全員を励ましました。

宿題はGitHub Classroomプラットフォームで配信されましたが、これにより学生たちは、共通のコードリポジトリの様々なブランチでコミットしたり問題を解決したりして、チームプロジェクトとしてプロのソフトウェア開発者と同じ方法で協力することができました。

オンライン学習環境の追加的特典として、メキシコから数人の学生を参加させることができました。ただし、彼らにとっての授業時間は午後11時から午前5時となり、10週間丸々このスケジュールに切り替えねばならず、これはレビュワーである私にとっても同様で、かなり大変なことでした。 最終的に、彼らはその覚悟を貫くことでコースを修了することができ、価値のあるスキルと、達成したことによる自信とを得ることができました。これを可能にしてくれた、モンゴルの教育経済相に心から謝辞を捧げます。

学生からのフィードバックは非常に好意的なもので、ここではその数例を紹介しましょう。

「このコースで関数型プログラミングを初体験しました。まったく新しい世界で、自分の世界と考え方が本当に広がりました。最初のステップをプロに導いてもらえてよかった。受講前とは別人になりました。とても感謝しています。プロとしても人間的にも成長することができました。プログラミングスキルをレベルアップしたい人みんなに勧めます」

Tuvshintsenguun

「モンゴルHaskellコースに参加して、関数型プログラミングの美しさを再確認しました。コードの美しさにより、とてもシンプルに見えます。受講の機会をくれたLarsとAndresにお礼を申し上げます。そのプロ意識と知識の共有に対する熱意に憧れます。あなた方は、より優れたエンジニアになりたいと望む私たち全員にとってのインスピレーションです」

K. Chaires

「このコースはあらゆる意味で期待以上でした。LarsとAndresからいろいろなことを学びました。彼らはプログラムの専門家であると同時に素晴らしい先生です。複雑なコンセプトを難なく説明してくれました。すべてのプロジェクトをHaskellで開発したいと思っています」

A. Ibarra

私たち自身については、これが初めてのMOOC配信でしたが、リモート設定で少人数のクラスを実行するというこの実験の結果に非常に満足しています。また将来、教育チームに刺激的な新しいコラボレーションの機会が開かれました。もちろん、安全に旅行ができるようになり、また実際に現地へ出向き、学生たちや入学希望者に直に会える日が待ち遠しいです。2021年は、このクラスをもう一度対面型クラスと、世界に向けたオンラインコースで行う予定を立て、Cardanoのスマートコントラクト開発者を1万人育てるという私たちの旅を続けます。良いお年をお迎えください。2021年を楽しみにしています。