Java Community Process (JCP)の実行委員会が立ち上げたJava in Educationは、教育機関におけるJava技術の普及に大きく前進している。このプログラムは、学術界と産業界の橋渡しをすることで、Javaが開発者を目指す人たちにとって基礎的なスキルであり続けることを目指すものである。
このイニシアチブは、JCP実行委員会での議論を経て、2020年6月に導入された。JCPプログラムは、さまざまなJavaユーザーグループ(JUGs)と協力して、モダンJavaの利点と能力を強調する教材を作成し、配布することを目的としている。その目的は、Javaの限界に関する神話を払拭し、現代のソフトウェア開発におけるJavaの関連性とパワーを示すことである。
開発されたリソースの中には、JDK9のJShellやJDK21のインスタンスメインメソッドのプレビュー機能など、Javaの進歩を紹介するプレゼンテーションやビデオがある。これらの機能は、新しい開発者の学習プロセスを簡素化し、大規模なプログラミング概念の複雑さを最初に把握する必要なくコードを書けるようになる。
このイニシアティブはまた、Visual Recognition API(JSR381)の重要性も強調している。このAPIは、画像中の物体認識を含む機械学習タスクのための標準化されたAPIを提供する。このAPIは、Javaエコシステム内に機械学習機能を統合し、教育目的で利用できるようにするための、より広範な取り組みの一部である。
世界中のいくつかのJUGが、この取り組みに積極的に参加している。例えば、JOZI-JUGは、 Devoxx4Kids South Africaプログラムの一環として、子ども向けのコーディングワークショップを実施している。これらのワークショップは、小学生や高校生にJavaプログラミングを紹介し、基本的なコーディングスキルを身につけさせた。
同様に、ガーデンステートJavaユーザーグループ(GSJUG)は、ドリュー大学や地元の高校と緊密に協力している。GSJUGは、学生たちがJavaについて学び、コンピューティングのキャリアを探求するインタラクティブなセッションを主催している。ドミニカ共和国JUG(Java Dominicano)も、Javaの機械学習に関するワークショップや講演を開催し、この重要な分野に対する地元の学生の理解を深めることに貢献している。
JUGのこれらの努力が2023年のJCPアニュアルアワードで評価され、JOZI-JUGはJava in Education Community Awardを受賞した。このイニシアチブは、その範囲と影響を拡大するために、教育者やコミュニティメンバーからの支援を求め続けている。
InfoQは、OracleのJava Community Process(JCP)プログラムの副社長兼ディレクター兼議長を務めるHeather VanCura氏と、ドリュー大学の教授でBurd Brain ConsultingのオーナーであるBarry Burd氏に、Javaと教育について話を聞いた。
InfoQ: 他のプログラミング言語と比較して、Javaを学生に教える主な利点は?
Heather VanCura氏: Javaは約30年前に作られ、現在も主要なプログラミング言語の1つです。世界でもっとも人気のあるウェブサイトのいくつかを動かしており、Wikipedia、Spotify、Google、Amazonといった多くの運営を支えてます。Java開発者は世界でもっとも高給取りの開発者の一人であり、Javaは雇用主からもっとも需要のあるスキルの一つです。Javaは、あらゆる産業で世界的に現実の問題を解決しています。学生が業界で働くようになれば、プロジェクトの大半にJavaコードが含まれるようになるため、Javaを学ぶことは業界で成功する機会を学生に提供することになるのです。
Javaはあなたのキャリアアップの指針となります。Javaを学ぶのに役立つさまざまなリソースがあり、認定Java開発者になるための道もあります。Javaは透過的に開発されているため、Javaの新バージョンがリリースされたときに情報を得たり、新機能について学ぶことが容易です。ツール、ライブラリ、実装のエコシステムにより、Javaは活気を保ち、開発者に選択肢を提供しています。世界中に強固なグローバルコミュニティ、ローカルなJavaユーザーグループがあり、最終的にはインターンシップや仕事につながるかもしれないプロフェッショナルなネットワークを構築しています。
InfoQ: これまでのところ、このイニシアチブは教育コミュニティにどのような影響を与えているか?
Barry Burd氏: Javaを教えるのが好きなのは、Javaがよく構成された、工業的に強い言語だからです。Javaは、学生に重要なプログラミングの概念を紹介するのに適したモデルだと思います。多くの大学ではJavaの代わりにPythonから始めます。しかし、Pythonプログラマーはオブジェクト指向プログラミングを重視しません。またPythonには、プログラムのセキュリティと正しさを保証するためのセーフガードがあまりありません。もうひとつの選択肢はC++でしょう。しかし、C++はハードウェアの実装に重点を置きすぎています。Javaでは、メモリアドレスなどを考える必要はありません。その分、解決したい問題について深く考えることが可能です。
VanCura氏:バングラデシュ、インド、ブルキナファソ、ドミニカ共和国、南アフリカ、シンガポール、アメリカ、カナダなど2020年にこの取り組みが始まって以来、多くの地域コミュニティが教育者や教育機関と世界的に協力してきました。
さまざまなJavaユーザーグループ(JUG)や、Bazlur Rahman氏(バングラデシュ)、Mala Gupta氏(インド)、Constantin Drabo氏(ブルキナファソ)のようなリーダーたちのサクセスストーリーを記録してきました。例えば、ニュージャージー州のガーデンステートJUGは、学生を積極的に巻き込んでいます。
2023年、JCP実行委員会はシンガポールとモントリオールの学生や教員と会い、Javaカリキュラムの更新と最新機能に関するリソースの必要性を確認しました。このフィードバックにより、Javaを使った機械学習(ML)と人工知能(AI)に焦点を当てた教材を開発することになりました。我々のプレゼンテーションは、最小限のコードでAI/MLタスクを簡素化するJSR 381 Visual Recognition Specificationを活用し、AI/MLにおけるJavaの使いやすさを実証します。
詳細は、こちらの総合記事をご覧いただきたい。
InfoQ: このイニシアチブを世界により多くの教育機関に拡大するための今後の計画は?
VanCura氏: 私たちは、コミュニティが大学とつながるための資料や事例を提供してきました。将来的には、地元のJavaコミュニティが次のステップを踏み出すためのインスピレーションや機会として、この資料を活用し、自分たちのコミュニティを成長させ、コミュニティ内で将来のリーダーを育成し、Javaエコシステム全体や自分たちのネットワークに次世代を呼び込むことができるよう、より多くの認識を広め、力を与えたいと考えています。
この教材は、Javaを学んだ学生が産業界で就職する機会を示しています。最新の機能や、Javaを学べる場所をいくつか紹介しています。また、Javaを使ったML/AIの使い方や、産業界で開発者として働く姿も紹介しています。
私たちは、世界中の教員や学生からのフィードバックに基づいて開発した教材を使ってもらいたいと考えています。Javaユーザーグループと大学が協力することで、次世代のJava開発者を育成できます。
Java in Educationで開発された資料の全リストは、Wikiで入手可能です。資料の多くはスペイン語で利用可能であり、参加を希望するJavaユーザグループリーダーの参加に基づいて、他の言語への翻訳を希望しています。
教育者、学生、Java愛好者は、次世代のJava開発者を育成するために、Java in Educationイニシアチブに参加することが推奨される。この変革的な取り組みへの参加と詳細については、Java in Educationサイトを訪れ、Javaを現代教育の礎石にするためにどのように貢献できるかを探ってほしい。