2 講義の目標
この講義には、並行する 2 つの目標がある。1 つは Julia という言語の入門であり、もう 1 つは 良い AI 開発の入門である。
2.1 1. Julia という言語の入門
この講義では、2 次元イジングモデルを題材にしながら、Julia の基本を学ぶ。目標は、文法事項を網羅的に暗記することではない。配列、関数、struct、プロジェクト環境、テスト、ベンチマークといった道具が、実際の計算コードで何の役に立つかを理解することである。
Julia は人間にとって読み書きしやすく、数値計算との距離が近い。そのため、AI に補助させながら計算コードを作り、生成されたコードを読み直し、必要なら直すという流れを学ぶ題材としてちょうどよい。
2.2 2. 良い AI 開発の入門
LLM がコードを書けるようになっても、その出力を評価し、良い指示を出し、結果を検証する責任は人間側に残る。この講義は、AI に丸投げする練習ではない。AI と協力しながら、小さなプロジェクトを設計し、実装し、結果を確かめる最小限の型を身につけることが目的である。
特に重視するのは、次のような姿勢である。
- 目的・制約・成功条件を言葉にする
- AI に実装だけでなく説明も求める
- 実行結果やテスト結果を見て、必要なら前段に戻る
- GitHub とプロジェクト環境を使って、再現可能な形で作業する
AI とどう協力して設計・実装・レビューを回すかという技術的な導入は、良い AI 開発と悪い AI 開発 で扱う。
2.3 具体的な到達目標
- AI コーディングツールを Julia コードの作業パートナーとして使う
Project.tomlとManifest.tomlの役割の違いを説明できる- グローバル環境とプロジェクト環境の違いを説明できる
- 関数や
structがなぜ存在するかを説明できる - AI が生成した Julia コードを読み、危険な部分を見つけられる
BenchmarkToolsを使って、コードが実際に速くなったか検証できる
2.4 講義の進み方
プロジェクトのテーマは 2 次元イジングモデル である。AI と一緒にステップごとに構築し、Julia の環境管理、配列、関数、状態表現、メトロポリス法、基本的な最適化を学ぶ。
講義は 2 つのセッションで構成されている。
- セッション 1: 環境の作成、格子の初期化、物理量の計算、メトロポリス更新の実装
- セッション 2: 状態表現の改善、パフォーマンスの計測、温度スキャンとプロット
希望者向けに、メモリレイアウトと性能の直感を扱う発展 Step 8 も用意している。
各ページには AI ツール用のコピペ可能なプロンプト、コードリーディングによる確認問題、追加練習用のプロンプトが含まれている。すでに理解している内容はスキップできる。