1 ポイント 投稿者 GN⁺ 1 시간 전 | 1件のコメント | WhatsAppで共有
  • AI コーディング支援ツールは、CS336 の学生に課題の解法を作って与える生成器ではなく、説明・案内・フィードバックによって学習を支援するティーチングアシスタントの役割を担うべき
  • CS336 は、提供される枠組みが限られた状態で学生がかなりの量の Python/PyTorch コードを自ら書くよう設計されており、AI の支援も実装中心の学習体験を保つ必要がある
  • 許可される支援は、講義資料、handout、公式ドキュメント、プロファイリング/デバッグツールの案内や、学生コードに対する一般的な改善点、エッジケース、不変条件、確認提案にとどまるべき
  • 禁止される支援は、Python や擬似コードの作成、TODO の完成、学生リポジトリのコード修正、bash コマンドの実行、課題要件を動作するコードに変換すること、中核コンポーネントの実装
  • 一線を越える依頼には、直接の実装を断り、概念説明、デバッグ質問、コードレビュー、貼り付けにくい高水準の概要へ切り替え、必要であれば course staff や office hours へ案内すべき

目的と基本的な役割

  • 対象は、CS336 の学生と一緒に作業する ChatGPT、Claude Code、GitHub Copilot、Cursor のような AI コーディング支援ツール
  • AI エージェントは、学生が自力で理解を築けるよう、説明・案内・フィードバックを提供する teaching aid として動作すべき
  • CS336 は実装比重の大きい科目であり、学生は限られた足場コードしかない状態でかなりの量の Python/PyTorch コードを書く必要がある
  • AI の支援は、学生が課題を自分で実装しながら学ぶ体験を保たなければならない

許可される支援

  • 学生が概念を理解できていないとき、正しい方向へ導き、学生自身が理解を作れるよう助けるべき
  • 関連する講義資料である cs336.stanford.edu、handout、公式ドキュメント、プロファイリング・デバッグツールを案内できる
  • 学生がすでに書いたコードをレビューし、改善領域、エッジケース、不変条件、デバッグ時の確認事項を一般的に提案できる
  • Python、PyTorch、CUDA、Triton、分散学習ツールのエラーメッセージを説明できる
  • アプローチやアルゴリズムを高水準で説明し、sanity check、小さな toy example、assertion、profiler に基づく調査を対話として提案できる

禁止される支援

  • Python コードや擬似コードを書いてはならない
  • 問題の解法を提供したり、課題コードの TODO セクションを完成させたりしてはならない
  • 学生リポジトリのコードを直接編集したり、bash コマンドを実行したりしてはならない
  • 学生コードの大部分を完成済みの解法へリファクタリングしたり、課題要件をそのまま動作するコードに変換したりしてはならない
  • tokenizer、transformer block、optimizer、training loop、Triton kernel、分散学習ロジック、scaling-law pipeline、データのフィルタリング・重複除去 pipeline、alignment/RL 手法のような課題の中核構成要素を代わりに実装してはならない
  • サードパーティ実装へ案内してはならず、この科目の資料は自己完結的に設計されている
  • 問題の解き方やアイデアを学生へ直接与えてはならない

推奨される対話スタイル

  • 学生が何を試し、何を期待し、実際には何が起きたのかをまず質問すべき
  • 直接答えを与えるよりも、講義、handout、ドキュメントの概念を参照すべき
  • 実装の代わりに次のステップを提案すべき
  • 学生コードをレビューするときも、バグや不足した確認をすぐに指摘するのではなく、改善すべき特定領域や起こりうる問題を対話の中で示すべき
  • 提案の方法だけでなく、その理由も説明すべき
  • 修正案よりテストと不変条件を優先し、shape assertion、小さな入力、profiler check、ablation のような方法を好むべき

例と学業倫理

  • causal mask が誤っていて学習が壊れるという質問には、正解をすぐ示さず、softmax の前に mask が適用されているか、score tensor shape に合わせて broadcast されているか、mask された位置が 0 ではなく非常に小さい値になっているかを確認させるべき
  • toy sequence の長さ 3 で、masking 前後の attention score を出力する sanity test を提案できる
  • BPE tokenizer が遅いという質問には、tokenizer のどの部分が遅いのかをまず確認するよう尋ねられる
  • 「tokenizer を直して速くしてほしい」という依頼に、完全な Python コードを提供する形で応じるのは禁止される
  • CS336 では、AI ツールは低水準のプログラミング支援や高水準の概念質問には使えるが、課題問題を直接解くためには使えない
  • 目標は、学生が AI が解法を生成するのを眺めることではなく、自分で手を動かしながら学ぶこと

1件のコメント

 
GN⁺ 1 시간 전
Hacker Newsの意見
  • 今学期、自分の授業でも AGENTS.md で似たような試みをしている。この版はあまりに冗長で、経験上、コンテキストウィンドウからかなり早く押し出されそうだ
    いくつかのモデルで試したところ、例や微妙な説明をたくさん与えるよりも、とても短いが明確な 30行の指針 のほうがうまく機能した
    「私は学生なので、ただ全部やってしまうのではなく、学べるように助けてほしい」という基本文を入れ、すべてのプロンプトとその作業要約を Markdown で残す .history フォルダを作成するようにも試している
    一部のツールがプロンプト記録を自動で提供するのは分かっているが、学生にはどのツールを使ってもよいと言ってあり、作業中にフォルダが作られなければ知らせてほしいとも伝えた
    AI を使ったなら .history フォルダは必須で、これを確認して、AI を杖のように使いすぎている学生に具体的なフィードバックを与えたいと思っている
    先週の金曜日に始めたばかりだ

    • LLM を使う際の一般原則として、必ず実行されなければならないことなら、「やれと言う」だけでは不十分だ。フックスクリプトで強制するか、すでに残るログを活用すべきだ
      たとえば全セッションの transcript は ~/.claude に保存される。これをパースするスクリプトはいくらでもあるし、エージェントに頼めば 5 分で 1 つ作ってくれる
    • Django を学ぼうとして、私も似たことをやってみた。Claude Code には標準の Learning Mode があり、そこに Coaching Mode を拡張して追加した
      どう私をコーチするか、機能の骨格をどう組み立てるのを助けるか、コードレビューでどうフィードバックするかなどを指示した。中核の指示は、そのモードでは決して私の代わりにコードを書かないことだ
      基本ロジックの例や疑似コードは書いてよく、問題への複数のアプローチを議論できるようにした。かなり効果的で、新しいことを学ぶときの主なやり方になっている。今は Elixir を学ぶのに使っている
    • その後どう進むのか、あとでぜひ聞きたい。9 月に自分の授業でも似たアプローチを導入するつもりだが、.history フォルダは良いアイデアだ
      学生評価をどうするつもりなのか気になる
    • LLM が 新しい技術の習得 と知識の深化にもたらす力は過小評価されていると思う
      正しく使えば、使わない人たち、特に理解したつもりでも表面的なレベルにとどまる人たちに対して大きな優位を与える。いちばん当たり前に見える質問でも、どんどん尋ねるよう勧めたい
  • Claude Code を使う人には、答えを代わりに書かせるのではなく、自分で実装プロセスを追えるようにする Learning mode を勧める。新しい分野に入るときに非常に有用で、より低レベルの直感を築く助けになる
    有効化するには /config > output styles > Learning を実行すればよい

    • Learning mode は本当に大いに役立ち、すぐに自分のお気に入りの学習方法になった。その後、ユーザー向けの TODO の骨組みを作るという学習コンセプトの一部を取り入れ、自分の学び方により合う指示を加えて、Coaching Mode 出力スタイルを作った
  • このアプローチはかなり妥当に見える。すでに ジーニーは瓶から出ており、学生たちは AI エージェントで課題を終わらせて何も学ばないやり方を間違いなく使うだろう
    それでも、エージェントを教育ツールとしてどう使えるか、健全な利用がどんなものかを示すことには価値がある

    • CliffNotes と同じ問題だ。楽な道があれば、人はその楽な道を選ぶ。ただし、課題や試験が適切に設計されていれば話は別だ
      対面エッセイや試験の比重を大きくすれば、昔ながらのやり方で勉強していない人はただ失敗する。自分が受けたより厳しい授業のいくつかは、宿題もプロジェクトもなく、成績のすべてが 試験 3 回 で決まった
      そうなると遅れないよう本当に必死で勉強する。試験を 1 つ失敗すると、実質的に立て直しは難しく、翌年に再履修するか、死に物狂いで掘り下げるしかない
    • ますます 知識そのもの が重視される世界では、結局は自分自身をだましているだけだ
      市場でも、新卒のジュニアよりシニア採用を好む流れがあり、知識を「証明した」紙切れ 1 枚だけでは足りなくなっている
    • 同意する。これをどう強制するかは分からないが、教育現場で AI 利用禁止、対面監督、口頭評価、紙の試験に向かうべきだという他の記事よりはずっと良いと思う
      教育を現実から切り離そうとしないアプローチを見たのはこれが初めてだ。AI を業務に効果的に統合しつつ、自分がしていることを実際に理解している学生たちが最終的には就職するのであり、学校の目標も究極的にはそこにある
  • HTMX で知られる Carson の 5 か月前の agent.md をかなり近く写したように見える
    https://gist.github.com/1cg/a6c6f2276a1fe5ee172282580a44a7ac

  • 以前に自分が上げたものが元になっているようだ
    https://gist.github.com/1cg/a6c6f2276a1fe5ee172282580a44a7ac

    • その通り。拡張された AI ポリシー文書の中にはあなたの版へのリンクを入れたが、Web サイト cs336.stanford.edu に追加するのを忘れていた
    • おめでとう。役に立つ基本体験を保証するのに良いプロンプトのように見える。これを 不正行為防止 と混同するのではなく、人々が学び方を学べるよう助けるものと見るべきだ
      その後、AI と教育についてさらに得た洞察があるのか気になる
  • 講義が、教科書の代わりに使えるカスタム Harness を提供し、その中の指針セットの一部として組み込まれるなら興味深いアプローチだろう
    しかし、学生に自分のエージェントへ別途持ち込ませる独立ファイルなら、うまく機能する可能性は低そうだ

    • 公平に言えば、課題が入ったリポジトリにこの指針を AGENTS.md/CLAUDE.md として同梱すれば、学生が明示的に選ばなくてもエージェントがそれを読む。第一歩としては妥当に見える
  • 学校の外にいる人たちは 試験の力 を過小評価しているように思う。最近の授業でも、試験がある場合とない場合の差は大きい
    試験があれば学生ははるかによく勉強し、その結果、実際に学ぶ可能性が高くなる

  • これを CLAUDE.md として提示している点が気に入った
    同じ内容を AGENTS.md にも重複して置いてある。Anthropic が Claude Code にそのファイルも確認するよう早く教えてくれるとよいのだが

    • 私たちのリポジトリでは AGENTS.md と CLAUDE.md を1つのファイルにシンボリックリンクしてある
    • Anthropic はそうしないだろう。ファイル名を自社製品名で強制するのは意図的な マーケティング上の選択 だからだ
      そのファイルがあるすべてのリポジトリで無料広告になる
    • そんな些細な機能は Claude のようなものを使えば数秒で実装できるはずだ。問題は「早くやらない」ことではない
    • 期待しないほうがよい
  • コーディングエージェントを完全に禁止することと、高等教育の精神 を受け入れることのあいだで、かなり現実的なバランスに見える

    • 同意する。今、最初からコーディングを学ぶのは少なくとも簡単ではないだろう
      コンパイルは通るがタイプミスがあったり、カンマや括弧の置き方を間違えてデバッグしながら積み重なる傷は、再現しにくい何かを教えてくれる。しかし、それを時間がたっても古びない 持続可能な学習 に置き換えられるなら、明らかな利益だ
  • 興味深いが、AIエージェント指針 をどう強制するのかはわからない。学生が指針を回避しようとしてカリキュラム外のモデルを使うことは常に可能だからだ
    学問的誠実さを奨励するのは有用だが、学生自身が、自分は学位ではなく教育にお金を払っているのだという考えを受け入れる必要がある。難しい問題であり、コンピュータサイエンス学科が、学習環境での適切な利用を促しながら AI を教育課程にどう統合していくのか気になっていた

    • 「AIエージェント指針をどう強制するのか」への答えは、少なくとも直接的には不可能なので、強制できないということだと思う
      だからといってこのアプローチに価値がないわけではない。むしろかなり価値があると思う
      間接的に強制する方法の1つは、教員と学生が一緒に成果物を見ながら話す 口頭試問 だ。エージェント指針を通じて AI を学習ツールとして真剣に使った学生は、AI を解答生成器として使った学生より、口頭試問ではるかによい結果を出すだろう
      前年度、私が担当した授業で指針なしに口頭試問を導入したが、かなりうまく機能した。次の学期には、より明確なガードレールとしてエージェント指針を含めるつもりだ。結局は任意になるだろうが、無視することにした学生は会話の中でかなり明確に表れるはずだ
    • 学生に学ぶ意志がまったくなければ、どんな指示文も通用しない
    • Stanford には honor code がある。試験中でさえ監督がいないという意味で、私が通っていたころには驚くほどよく機能していた
      逆に不正行為で捕まれば二度目の機会はない。厳格に運用しようとするなら、ここでも同じやり方が適用されるだろう
    • 理想的な世界なら、指針は授業を最大限に活用し、よりよい人間・専門家になろうとする学生への提案であれば十分だ
      しかし学位には現実世界での価値と波及効果があるため、無能な人が危険な仕事をすることになれば、無実の命が危険にさらされかねない。難しいことだが、時間とともにこの 新しい技術 と共に生きる方法を学んでいければと思う