ゼファーネットのロゴ

AI にコーディング方法を教えてもらいたい場合は、自分で考えてください

日付:

特徴 ソース コードを提案または生成するツールは賢明に使用する必要がありますが、AI のおかげでプログラミング方法の学習はおそらくこれまでより簡単になりました。 

プログラミングには、特に何も意味のない学習プロセスの開始時に、忍耐と粘り強さが必要です。コードを記述するためのルールはわかりにくいようです。あらゆる種類の句読点や記号があり、注意して使用する必要があります。コロンやカンマが欠けていたり、インデントが間違っていたりすると、使用する言語によってはエラーが発生する可能性があります。十分に練習すれば、時間が経つにつれて、カチッと所定の位置に収まるようになります。

オンラインでコーディング方法を学ぶほとんどの初心者と同じように、私もチュートリアルを見て一連のプログラミング演習の問題を解くことから始めました。問題に行き詰まったときは、適切な解決策に簡単にアクセスできる ChatGPT を頼りたくなりました。この種のアシスタントは単純なコードを生成するのが得意で、説明しているとおりに完全な答えを提供してくれるアシスタントもいます。

私は特定の関数の実装に取り​​組んでいるときにこのことに気づき、不正行為を防ぐために Visual Studio Code の GitHub Copilot のオートコンプリート機能をオフにしました。

ただコピー&ペーストするだけではなく、

David Malan 氏はハーバード大学のコンピューター サイエンス教授で、人気のあるコンピューター サイエンスの入門コース (無料で受講可能) CS50 を教えています。 オンライン)、AI は時々少し役に立ちすぎることがあるという意見に同意しました。 

生徒が課題を完了するために OpenAI の ChatGPT や Google の Bard などのツールを使用することを思いとどまらせるために、教師は代替手段として仮想のラバー アヒルを提供しました。 CS50 アヒルは GPT-4 を利用したコーディング チャット ボットですが、学生がアクセスできないようにガードレールが設置されています。 浮気.

ラバーダックのデバッグはご存知かもしれませんが、 事です ソフトウェア開発: コードで行き詰まった場合、おもちゃやその他の無生物の問題について話し合うと、自分で解決策を見つけることができます。かなり効果的ですよ。

CS50 アヒル デバッガーはそれへのオマージュです。ボットはフレンドリーで協力的になるように準備されており、コースに関連するクエリにのみ応答し、宿題の問題に対する答えは提供しません、とマラン氏は語りました。 登録

「コース開始時の私たちのポリシーは、学生が ChatGPT や Copilot などのサードパーティ ソフトウェアを使用できないことです。彼らは単に親切すぎる傾向があり、優れた教師のように生徒を解決策に導くのではなく、率直に解決策を提供することにあまりにも積極的です。しかし、学生は、教育上のガードレールが設けられている CS50 独自の AI ベースのソフトウェアを使用することが許可されており、使用することが奨励されています」と彼は言いました。

CS50 アヒルは昨年導入され、フィードバックはほぼ肯定的でした。バーチャル家庭教師がそばにいてくれるということは、学生はいつでも好きなときに助けを求めることができるということです。しかし、他の AI モデルと同様に、間違いを犯す可能性があり、常に正確であるとは限りません。初期テストでは、カリキュラムに関連する質問の約 88% に正しく答えることができたことが示されました。 

コーディング ボットはインストラクターにとっても役立ちます。宿題以外の他の分野で生徒を助けるためのより多くの時間を与えられます。研究論文では [PDF] アヒル デバッガーの影響を分析したハーバード大学の教師らは、仮想 AI コーディング アシスタントを構築する実験が功を奏したと述べました。彼らは「生成 AI は生徒の学習を妨害するだけでなく、生徒の学習を強化できる」と信じており、このテクノロジーを他の教科に応用する方法を検討しています。

グーグル検索を減らして時間を節約する

実は、私の学歴は物理学と科学ジャーナリズムであり、コンピューター サイエンスではありません。私がコーディング方法を学び始めたのは、最新世代のチャット ボットが普及する直前でした。以前は、多くの人と同じように、私もソフトウェアの概念を理解したりバグを修正したりするために、ブログ投稿を読んだり、Stack Overflow などのサイトで同様のコードの例を検索したりしていました。 AI を使用すると、このプロセスを短縮できます。

問題に最適な解決策を見つけるために多くの情報を選別する代わりに、大規模な言語モデルに直接助けを求めることができるようになりました。他の人が使用しているテクノロジーをより深く理解するために勉強しています。これらのデジタル アシスタントを使用すると、スライスと配列などに関する複数の記事をじっくり読んだり、他の人のソフトウェア プロジェクトをめくったりするよりも早く知識を習得できます。

ただし、機械で書かれたコードは常に役立つとは限りません。 品質を下げる コードベースの。 AI アシスタントの出力をコピーしてソースに貼り付けると、プログラムの残りの部分と適合しないため、新しいエラーが発生することがよくありました。これらの間違いを修正することは、特に何が生成されたのかを理解していない場合には困難になる可能性があります。初心者にとって、エラーの原因がコードが単純に間違っているためなのか、それともコードが間違ったコンテキストで使用されているためなのか、必ずしも明らかではありませんでした。

「(最新の)AI ツールを使ってコーディングを学びたい人は、2 つの目標を持ってそれに取り組むべきだと思います。それは、ツールが何を生成しているのかを理解できるほど十分なコーディングを学ぶのに時間をかけることです。 [そして]「コードレビュー担当者」の役割を採用し、悪いコードを特定して改善する方法を研究します」とソフトウェア開発者であり、以下の本の著者である Zed Shaw は述べています。 難しい方法をPythonで学ぶ、言いました 登録

プログラマーは機械で作成されたコードのエラーを発見できる必要があり、ボットを完全に信頼すべきではありません。明らかに著作権で保護されたコードがモデルの出力に紛れ込んでいないか、常に注意を払う必要があります。

「ChatGPT が、『これで問題が解決すると思います…』のような安心感を与えるフレーズに包まれた解決策をより迅速に提供してくれるという事実により、私たちは批判的思考をオフにし、その解決策を必要以上に慎重に疑うことがなくなりました」と Charles 氏は述べています。ミシガン大学情報学部のコンピューターサイエンス教授セブランス氏は、 リリース オンラインの無料コーディングコース。

「ChatGPT はあなたよりもスキルの低いプログラマーであると常に想定してください。 AI ツールを使用する唯一の安全な方法は、AI ツールが生成するソリューションが正しいと確信できる場合です」と彼は付け加えた。 

自分が何をしているのかを知る必要がある

これらのツールを効果的に使用するには、問題を理解し、プロンプトで明確に説明する必要があります。出力で返されるコードの品質は、入力での質問の組み立て方によって決まります、と GitHub の最高製品責任者である Inbal Shani 氏は語ります。 登録.

ユーザーが対話する必要があるのは、 GitHubコパイロット まるで同僚と話しているかのように、と彼女は示唆した。 「隣に座っているアシスタントに、あなたの意図が何であるか、解決しようとしている問題に向けてどこへ向かうかについて、より詳細に伝えるほど、AI はより多くのコンテキストを取得するため、より良い応答が得られます。より詳細な検索を行って適切なコードを見つけたり、適切なテスト インフラストラクチャを推奨したりする方法を知っています」と彼女は言いました。 

私たちが使用するプログラミング言語は、より人間の言語と一致するようになりました。チャット ツールはこの進化の次のステップにすぎません

フィリップ・コンポーはカーネギーメロン大学の助教授であり、 ロザリンド プラットフォームと 恋人のためのプログラミング 計算生物学に興味のある人向けのチュートリアルに同意しました。

彼は、コーディングを始めた学生に教えるとき、AI から遠ざかるよう勧めています。しかし、基本を知っている上級の学生に対しては、テクノロジーを使用して仕事の生産性と効率性を高める方法を教えています。

「私が学生たちに教えていることの 1 つは、コードを生成する AI ツールからクリーンで正しい答えを得る最良の方法は、コンピューターが何をする必要があるかを明確かつ正確に指定できるかどうかであるということです。それがまさにコンピューターのプログラミングの定義であり、時間が経つにつれて、私たちが使用するプログラミング言語は人間の言語とより一致するようになりました。チャットツールはこの進化の次のステップにすぎません」と彼は語った。 登録

プログラムに何をさせたいのか、どのように機能するのか、どこで問題が発生しているのかを理解することは、コーディングにおいて非常に重要です。学習者は、一貫した練習によって時間をかけてのみこれらのコアスキルを構築できます。有能なソフトウェア開発者になりたければ、AI に頼ってこのプロセスを省略することはできません。しかし、それを賢く使えば、すぐに上達して優れたプログラマーになれるし、もしかしたら楽しいことさえあるかもしれない。 ®

スポット画像

最新のインテリジェンス

スポット画像