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.tomlManifest.toml の役割の違いを説明できる
  • グローバル環境とプロジェクト環境の違いを説明できる
  • 関数や struct がなぜ存在するかを説明できる
  • AI が生成した Julia コードを読み、危険な部分を見つけられる
  • BenchmarkTools を使って、コードが実際に速くなったか検証できる

2.4 講義の進み方

プロジェクトのテーマは 2 次元イジングモデル である。AI と一緒にステップごとに構築し、Julia の環境管理、配列、関数、状態表現、メトロポリス法、基本的な最適化を学ぶ。

講義は 2 つのセッションで構成されている。

  • セッション 1: 環境の作成、格子の初期化、物理量の計算、メトロポリス更新の実装
  • セッション 2: 状態表現の改善、パフォーマンスの計測、温度スキャンとプロット

希望者向けに、メモリレイアウトと性能の直感を扱う発展 Step 8 も用意している。

各ページには AI ツール用のコピペ可能なプロンプト、コードリーディングによる確認問題、追加練習用のプロンプトが含まれている。すでに理解している内容はスキップできる。