プロのコンピュータープログラマーと、少しだけプログラミングを行うコンピューターユーザー、どちらが多いと思うか。
答えは後者である。いわゆるエンドユーザープログラマーは数百万人に上る。彼らはプロのプログラマーやコンピューターサイエンティストとしてのキャリアを目指しているわけではない。ビジネス、教育、法律、その他さまざまな職業に就き、より効率的に仕事を行うために少しだけプログラミングを必要としているのである。プログラマーがソフトウェア開発企業だけに限られていた時代は、とうに過ぎ去っている。
Excelで数式を書いたり、ルールに基づいてメールをフィルタリングしたり、ゲームを改造したり、Photoshopでスクリプトを書いたり、Rを使ってデータを分析したり、反復的な作業プロセスを自動化したりしたことがあれば、それはエンドユーザープログラマーである。
プログラミングを教える教育者として、我々はコンピューターサイエンス以外の分野の学生が目標を達成できるよう支援したいと考えている。しかし、完成したプログラムを書けるようになるまでプログラミングを学ぶには、プログラミング言語自体について学ぶべきことが多すぎるため、1コースだけでは達成が困難である。人工知能はここで役立つことができる。
細部にこだわりすぎて本質を見失う
多くの学生にとって、プログラミング言語の構文(例えば、コロンをどこに置くか、インデントが必要な箇所など)を学ぶには多くの時間がかかる。プログラミングのスキルを学ぶのではなく、単に問題解決のためにコーディングを使いたい学生にとって、構文レベルに時間を費やすのは無駄である。
そのため、我々は既存のクラスがこれらの学生に十分なサービスを提供できていないと感じている。実際、多くの学生は小さな関数(短い、独立したコードの一部)を書くのがやっとで、自分たちの生活をより良くするための完全なプログラムを書くまでには至らない。
GitHub Copilotなどの大規模言語モデルを基にしたツールによって、これらの結果を変えることができるかもしれない。これらのツールはすでにプロフェッショナルのプログラミング方法を変えており、将来のエンドユーザープログラマーが自分にとって意味のあるソフトウェアを書くのを支援するために使用できると我々は考えている。
これらのAIはほぼ常に構文的に正しいコードを書き、平易な英語の指示に基づいて小さな関数を書くことができる。学生はこれらのツールを使ってプログラミングの低レベルの詳細を処理できるため、ソフトウェアプログラムを書く核心となる、より大きな視点の問題に集中することができる。現在、多くの大学がCopilotを使用したプログラミングコースを提供している。
カリフォルニア大学サンディエゴ校では、我々はコンピューターサイエンスを専攻しない学生を主な対象とした、Copilotを組み込んだ入門プログラミングコースを作成した。このコースでは、学生は我々の教科書のカリキュラムに従い、AIアシスタントとしてCopilotを使用してプログラミングを学ぶ。このコースで学生は、大きなタスクを小さなタスクに分解する、コードの正確性を確保するためのテスト、バグのあるコードの読み取りと修正といった高レベルのスキルを学ぶ。
問題解決に集中できる自由
このコースでは、我々は学生に大規模なオープンエンドのプロジェクトを与えており、彼らが作成したものに大変満足している。
例えば、オンラインデータセットを見つけて分析するプロジェクトでは、神経科学を専攻する学生が、年齢やその他の要因が脳卒中リスクにどのように影響するかを示すデータ可視化ツールを作成した。また、別のプロジェクトでは、学生たちはPythonというプログラミング言語を使用して作成したフィルターを適用した後、自分の個人的なアートをコラージュに統合することができた。これらのプロジェクトは、大規模言語モデルAIの出現以前には、学生に依頼できる範囲をはるかに超えていた。
AIが学生のための論文を書いたり宿題をしたりすることで教育を台無しにしているという議論を考えると、我々のような教育者がその利点について話すのを聞いて驚くかもしれない。AIは、人類が作り出した他のツールと同様に、状況によって役立つ場合もあれば、役に立たない場合もある。
コンピューターサイエンスを専攻としない学生が大多数を占める我々の入門プログラミングコースでは、AIが特定の方法で学生に力を与え、エンドユーザープログラマーの層を拡大することを約束しているのを直接目にしている。
コメント