特殊演習(データ・AI活用) 第3回 生成AIのためのプロンプト・エンジニアリング

0.9K Views

January 25, 26

スライド概要

専修大学ネットワーク情報学部の講義で作成した資料です。

profile-image

横浜市鶴見区を拠点に、多様な教育・人材育成サービスを提供しています。 ※なお、当所は個人で「研究所」と名乗っているだけの自営業です。法人ではありません。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

特殊演習 (データ・AI活用) 第3回 生成AIのための プロンプト・エンジニアリング 2025-10-14 専修大学ネットワーク情報学部 田中健太

2.

1. 生成AIとプロンプト 1

3.

1.1 プロンプトとは • プロンプト (prompt) = きっかけ、刺激、促すもの • 生成AIに対する「問いかけ」「指示」「依頼」 • 基本的に、自然言語 (日本語、英語など) で記述する 2

4.

1.2 プロンプトと出力品質 • 質問の仕方が悪いと、良い答えは得られない • LLMは入力と関係性の強いテキストを出力するので、入力が曖昧だと、出力も曖昧になる • Garbage in, Garbage out • 生成AIが頭が悪いのではなく、あなたの言語能力が○○…🤪 AIが漢字を間違えて いますが 3

5.

1.3 プロンプト・エンジニアリングとは • 生成AIから望ましい出力を得るためのプロンプト設計技術 • 生成AIの特性を理解し、適切なプロンプトを設計・改善するスキル • プロンプト・エンジニアリング = コミュ力 • ビジネスで、研究で、日常生活で「誰かに何かを依頼する」ときと変わらない • 生成AIが頭が悪いのではなく、あなたのコミュ力が○○…🤪 Googleのプロンプトエンジニアリング論文とそのテクニック:結局はコミュニケーション能力? https://note.com/tank̲ai/n/n5c61c5116263 4

6.

2. プロンプト・エンジニアリングの テクニック 5

7.

2.1 なぜ「型」が重要か • 生成AIを利用するのは「効率化」したいから • 毎回、どう指示すればよいか考えるのは非効率 • ある程度、型 (テンプレート) を決めて、それに沿って指示を出す方が効率的 • 人間どうしのコミュニケーションでは 相手に合わせた柔軟さが必要だが、 生成AIはプログラムなので、細かいこと までガチガチに固めて指示した方が よい結果が得られやすい 出典: 思考の「型」を身につける:結果を出して定時に帰る時短仕事術 https://www.itmedia.co.jp/bizid/articles/1007/02/news019.html 6

8.

2.2 1文は短く、明確に • 1文が長いと、主語・述語の意味が取りづらくなる • レポートや論文ではあまりブツブツ切るのはよくないが、 生成AIに対しては短く区切ったテキストの方がよい • きっと、会社に入ったら上司や先輩、研修講師に言われることなので、「簡にして要」を心がける 出典: 株式会社木山製作所 https://kiyamaseisakusyo.co.jp/blog/%E3%81%A8%E3%81%A3%E3%81%A8%E3%81%93%E3%81%86/ 7

9.

参考: 図解でわかる!理工系のためのよい文章の書き方 • 増補改訂版 図解でわかる!理工系のためのよい文章の書き方 論文・レポートを自力で書けるように なる方法より (CC BY-NC-SA 4.0) 8

10.

2.3 具体例を示す • AI→アレ、いい感じに • 「例えば」が大事 • 経験のない「科学的レポート」を例も示されずに初回から求められる体験を思い出そう🤪 • こういう結果が欲しい、こういう形式で欲しい、こういうトーンで欲しい…可能であれば実物を示す # よい結果が得られない例 レポートの書き出しをいい感じに考えてください。テーマは経済についてです。 👎 # よい結果が得られやすい例 (得られる、とは確約できない) 「日本の少子高齢化が経済成長に与える影響」というテーマで、 大学レポートの導入文を100〜150字で作成してください。 例えば「政府による過去5年の人口推計データ (図1) によると、 日本の人口構造は急速に変化しており…」のように、データや背景を示して 始めてください。 👍 9

11.

2.4 3W1Hを明確にする • 5W1Hとか4W1Hとか言い方はいろいろ • Why: 対話の目的、背景、ゴールを明確にする • Who: キャラクター (ペルソナ) を設定する • What: 入出力の形式を例示する • How: 対話のスタイルや制約条件を明示する Why Who What How 10

12.

2.5 Why: 対話の目的、背景、ゴールを明確にする • 生成AIに何をして欲しいのか (何を出力して欲しいのか) を明確にする • なぜそれをする必要があるのか (背景、目的) という文脈も伝える • AIも、背景がわかるとそれに適した 言葉を探索し、出力しやすくなる • 不明点は、AI自身に質問させる ことも可能 11

13.

2.6 Who: キャラクター (ペルソナ) を設定する • 「よい答え」を返してくれそうなキャラクターを設定する • 対象のテーマ、作業に詳しい人、適切な立場の人物像を指定する • 企業経営に関する高度な問いを「大学を卒業したての新入社員」に聞いてもよい答えは返ってこない • 「データ分析に詳しくない大学生」と「R言語のプロであるデータサイエンティスト」 では出力されるコードの品質が大きく異なる • 回答を読む自分のキャラクターも明確にする • 適切なペルソナを設定できないということは、 「問い」を自分がよく理解していないことを意味する • 複数人を設定して、対話形式で回答させることも可能 # 筆者がAIに教材作成を手伝ってもらう時などに指定するプロンプト例 # (自分が実際にそんな人物であるかはともかく) あなたと私は、ともに豊富な経験を持つ社会人向けの研修講師です。 たくさんの優れた教材を執筆してきました。また、大学で非常勤講師として、 データサイエンスやAIに関する講義も担当しています。さまざまな年齢、 前提知識、スキルを持つ受講者・学生に対して、わかりやすく丁寧に 説明することができます。 12

14.

2.7 What: 入出力の形式を例示する • 生成AIにどのような形式で出力して欲しいかを具体的に示す • • • • 意図しない形式で出力されたものを人間が手で直すのは非効率 ファイル形式、文章の構成や分量、コードのスタイルなどを具体的に示す ゴールイメージがないと明確な指示はできない 手描きのスケッチでもよいので、イメージを示す このデータを分析してグラフを作ってください。 1 田中太郎 2 鈴木花子 ... 170 65 160 50 👎 以下のCSV形式のデータについて、R言語で身長と体重の関係を分析し、散布図を 作成してください。散布図には回帰直線を追加し、タイトルは「身長と体重の 関係」、x軸は「身長 (cm)」、y軸は「体重 (kg)」としてください。グラフ 作成にはggplot2パッケージを使用し、コードも示してください。 ID,氏名,身長,体重 1,田中太郎,170,65 2,鈴木花子,160,50 ... 👍 13

15.

2.8 How: 対話のスタイルや制約条件を明示する • 対話のスタイル、AIの振る舞い、制約条件を具体的に示す • 自分がどのような進め方で問題解決に取り組みたいかを伝える • 「ステップバイステップで」「段階的に」といったフレーズ (COT; Chain of thought) は 精度を上げる効果がある シーン 全般 指定の仕方の例 「ステップバイステップで考えて」 「一つ一つ確認しながら進めて」 学習 「初心者向けに、例を交えて説明して」 「直接答えを教えるのではなく、ヒントを出して考えさせて」 論文作成 「形式ばった文体で、です・ます調は禁止」 コーディング 「途中経過を説明しながらコードを作成して」 企画書 「先に箇条書きで全体構成を出してから本文を書いて」 14

16.

2.9 構造化する • 生成AIは、Markdownによる構造化されたテキストを理解しやすい • MarkdownはIT系で広く使われる、シンプルなマークアップ言語 • 見出し、箇条書き、表、コードブロックなどを活用する # プロンプト ## Who(キャラクター) あなたと私は、ともに豊富な経験を持つ社会人向け研修の講師です。多くの優れた 教材を執筆してきました。また、大学で非常勤講師としてデータサイエンスやAIに 関する講義を担当しています。受講者や学生の年齢・スキルの幅が広くても、 わかりやすく丁寧に説明できる専門家です。 ## What(タスク) 以下のCSV形式のデータについて、R言語を用いて身長と体重の関係を分析し、 散布図を作成してください。 15

17.

2.9 構造化する ## 条件(How) * 散布図に回帰直線を追加すること * タイトルは「身長と体重の関係」 * x軸は「身長 (cm)」、y軸は「体重 (kg)」 * ggplot2パッケージを使用すること * Rコードを示すこと ## データ(Input) ````csv ID,氏名,身長,体重 1,田中太郎,170,65 2,鈴木花子,160,50 ... ```` ## 出力形式(Output) * Rコードをコードブロックで示す * コードの後に、簡単な説明コメントを添える 16

18.

2.10 段階的に指示する • 一度に多くのことを指示すると、AIも処理できず、誤ったり、抜け漏れが発生したりする • まずこれ、できたら次にこれ、というように段階的に指示するとよい • 人間の作業においても、工程を細分化 (WBS) して進める方がミスが少なくなる • 各工程の成果をチェックする評価項目も明確にする # プロンプト(段階的チェック付き) ## 前提(Who) あなたは社会人向け研修の講師で、大学でデータサイエンスやAIの講義も担当する 専門家です。初心者にもわかりやすく、かつ正確に手順を示してください。 ## 目的(What) 以下のCSVデータをRで解析し、身長と体重の散布図(回帰直線付)を作成する。 ミスを最小化するため、作業を段階(ステップ)に分け、各ステップで検証を行い、 検証結果を明示すること。 17

19.

2.10 段階的に指示する ## 全体ルール(How) * 各ステップは番号付き見出しで出力すること(Step 1, Step 2, ...)。 * 各ステップで必ず以下を出力する: 1. 実行内容の短い説明(1行) 2. 実際の出力(コードや表、要約) 3. チェック項目(期待値)と検証結果(合格/不合格) 4. 不合格だった場合の修正案(具体的手順) * 最終出力は `Rコード`(コードブロック)と `短い手順書(3〜5行)` とする。 * ggplot2 を用いること。プロットのタイトルは「身長と体重の関係」、 軸ラベルは指定通りにする。 ## 入力データ ```csv ID,氏名,身長,体重 1,田中太郎,170,65 2,鈴木花子,160,50 ... ``` 18

20.

2.10 段階的に指示する ## Step 1: データ受け取りとパース 1. CSVデータを正しく読み込み、データフレームとして扱えることを確認する。 2. 列名・データ型・欠損値の有無をチェックし、読み込みに問題がないか報告する。 3. 異常があれば、修正またはエラー内容を明示する。 ## Step 2: データ確認と前処理 1. 誤値・外れ値・欠損値の有無を確認する。 2. 問題がある場合は、その処理方針(削除・補正など)を明示する。 3. 前処理後のデータ概要を再度報告する。 ## Step 3: 散布図の作成(確認付き) 1. ggplot2を用いて、身長と体重の散布図を作成する。 2. 軸ラベル、タイトル、凡例などが指定どおりであるかを確認する。 3. 描画後、グラフ構成に問題がないかを報告する。 19

21.

2.10 段階的に指示する ## Step 4: 回帰直線の追加 1. 散布図に回帰直線を追加する。 2. 回帰式・傾き・相関関係を簡潔に説明する。 3. 直線の可視性や配色の妥当性を確認する。 ## Step 5: 最終確認と出力 1. グラフ全体を確認し、目的どおりの構成になっているかを評価する。 2. 見やすさ・注釈・デザイン面で改善点があれば提案する。 3. 最終的な出力内容(グラフ・コメント・分析要約)をまとめて提示する。 20

22.

2.11 ハルシネーションを防ぐ • ハルシネーション (幻覚) は生成AIの仕組み上、完全には防げない • 事実に基づく情報を求める場合は、ソース (情報源) を合わせて出力させる • 生成AI自身に出力結果を検証させることも可能 (「根拠となる出典を付与してください」など) • 専門的な話題については、NotebookLMなど「信頼できる知識」のみを 参照するタイプの生成AIを使う • 生成AIの回答を鵜呑みにせず、必ず自分で検証する →ハルシネーションの責任を負うのはあなた自身 出典: 大規模言語モデル(LLM)のハルシネーションと対策方法 https://edx.nii.ac.jp/lecture/20240717-05 21

23.

2.11 ハルシネーションを防ぐ ## ハルシネーション防止のためのプロンプト例 あなたは、正確で信頼性の高い情報提供を最優先とするリサーチアシスタントです。 以下の制約条件をすべて守って回答してください。 ### 制約条件 1. **出典の明示** - 各主張・データ・引用には必ず明確な出典(著者・年・URLなど)を付与する。 - 出典が不明確な場合は「出典不明」と記載し、推測で補完しない。 2. **一次情報の優先** - 可能な限り一次情報(公式サイト、原著論文、一次統計データ)を参照する。 - 二次・三次情報を利用する場合は、その旨を明示する。 3. **アクセス可能なソースの利用** - AIが自らウェブ検索を行い、信頼性の高いソース(公式・公的・学術)を 確認してから回答する。 - 見つからない場合は「現時点では確認できない」と明記し、回答を控える。 22

24.

2.11 ハルシネーションを防ぐ 4. **曖昧な表現の禁止** - 「〜と言われている」「〜かもしれない」などの推測的表現は禁止。 - 不確実な情報は「不確実」と明示する。 5. **回答の透明性** - 回答の最後に「参照情報」セクションを設け、使用した全ての 情報源を一覧で示す。 - 自身で生成した補足情報と、外部情報を明確に区別する。 ### 出力フォーマット例 **質問:** 「日本における生成AIの導入率は?」 **回答:** 2024年の経済産業省調査によると、日本企業における生成AIの導入率は約23%である。 中小企業では導入率が低く、大企業では約40%に達するとの報告がある。 **参照情報:** * 経済産業省 (2024) 「生成AI活用実態調査」https://www.meti.go.jp/... ... 23

25.

2.11 ハルシネーションを防ぐ ### 追加指示(任意) * 情報が古い場合は、最新データを自動で検索し、比較を提示する。 * ソースの信頼性を5段階で自己評価する (例: ★★★★★ = 政府統計、★★★☆☆ = 業界メディア)。 * 回答前に「信頼できる情報源を3つ列挙してから本文を書く」プロセスを踏む。 24

26.

2.12 対話を通じてブラッシュアップする • 1回の指示で完璧な仕事ができる部下はいない • 生成AIも同じで、回答→フィードバック→回答を繰り返して、徐々に精度を上げていく • やりとりの回数をできるだけ減らすために、人間が適切な指示とフィードバックを行う必要がある あなたの部下が指示どおり仕事をしない理由 https://www.all-different.co.jp/column̲report/column/management/hrd̲column̲cb01̲161110.html 25

27.

2.12 対話を通じてブラッシュアップする ## 生成AIへの効果的なフィードバック例 (テーマ:Rによるデータ分析レポートの改善) ### 前提 AIに「Rでデータを分析し、基本統計量の算出から可視化、線形回帰モデルの作成と 評価を行う」という一連の分析レポートを作成させる際、初回出力をそのまま 受け取るのではなく、段階的・具体的なフィードバックを与えて精度を高める。 ### フィードバック例 #### **Step 1: 出力内容の網羅性を確認** > フィードバック例: > 「基本統計量の算出は正しいですが、変数間の相関行列の提示が抜けています。 > 相関関係の可視化も含めて再提示してください。」 → *目的*: AIに「不足している要素」を明示する。 26

28.

2.12 対話を通じてブラッシュアップする #### **Step 2: コードの正確性をチェック** > フィードバック例: > 「`summary()` の出力だけでなく、`mean()`・`sd()`・`quantile()`など > 個別の統計量を計算し、データの分布特性をより詳細に記述してください。」 → *目的*: コードの網羅性・再現性を高める。 #### **Step 3: 可視化の明確さを改善** > フィードバック例: > 「グラフは正しく生成されていますが、軸ラベルと単位がありません。 > `labs()`を用いてラベルを追加し、見やすい色分けを適用してください。」 → *目的*: 結果の視覚的理解を支援。 27

29.

2.12 対話を通じてブラッシュアップする #### **Step 4: 回帰モデルの妥当性を確認** > フィードバック例: > 「線形回帰モデルの係数を報告する際、p値や決定係数(R²)を併記してください。 > モデルの妥当性を簡単に解釈文として説明してください。」 → *目的*: AIに「統計的な説明の深さ」を要求。 #### **Step 5: レポートの文章品質を改善** > フィードバック例: > 「説明文をもう少し学術的な文体にしてください。 > “〜と思われます”ではなく、“〜であることが示唆される”のような > 表現に統一してください。」 → *目的*: 専門文書としての信頼性を高める。 28

30.

2.12 対話を通じてブラッシュアップする #### **Step 6: 全体構成の整理** > フィードバック例: > 「レポートの章立てを以下のように変更してください。 > 1. データ概要 2. 基本統計量 3. 可視化 4. 回帰分析 > 各章の先頭に要約文を追加してください。」 5. 考察 → *目的*: AIに構造的な再編成を促す。 ### 補足:フィードバックのコツ * ❌「もう少し詳しく」「きれいに」などの曖昧な表現は避ける。 * ✅「どの部分を」「どう変えるか」を明確に伝える。 * ✅ 評価軸(正確性・可読性・妥当性・再現性)を意識して指示する。 * ✅ 「次に修正すべき点は3つあります」と段階を区切ると、AIが安定して 改善しやすい。 29

31.

2.12 対話を通じてブラッシュアップする ### 🧠 応用例(メタプロンプト) > 「次のAIの回答をレビューし、(1)統計的正確性、(2)表現の明確さ、 > (3)構成の一貫性の3観点で自己評価してください。その後、改善版を > 出力してください。」 → AI自身に「セルフレビュー」させることで、フィードバックの自動化も可能。 30

32.

2.13 フレームワークの活用 • ここまで述べてきたテクニックを整理したフレームワークがいくつかある • C.R.A.F.Tフレームワーク • C:Context (文脈・背景) • R:Role (役割) • A:Action (行動) • F:Format (形式) • T:Tone (口調) • 既存のプロンプトギャラリーも 活用するとよい • Microsoft Copilotプロンプト ギャラリー (大学アカウントでログイン) • Geminiプロンプト ギャラリー 31

33.

2.14 議論の整理と要約 • AIも過去のことは忘れるし、話が脱線していくことがある • ある程度の長い対話をした後、要点をまとめて確認することで、 自分だけでなくAIの理解も深めることができる • 改めてフォーカスするテーマ、ゴールを確認するとよい ## 対話の中盤でテーマを整理・再確認させるプロンプト例 ### 基本方針 長い対話では、AIが初期の目的を見失ったり、部分的な情報に集中して脱線する ことがある。そのため、定期的に「これまでの議論の要約」「現在位置の確認」 「最終ゴールの再設定」を行わせる。 ### 基本プロンプト例 > 「ここまでの議論を、要点・前提・ゴールに分けて整理してください。 > その上で、私たちが最終的に目指している成果物(または結論)は何かを > 確認しましょう。」 32

34.

2.14 議論の整理と要約 ### バリエーション例 #### **1. テーマ整理重視** > 「ここまでの対話で扱った主な論点を3〜5項目に整理してください。 > それぞれについて、まだ結論が出ていない点を明示してください。」 #### **2. ゴール再確認** > 「この対話の最終的な目的を、あなたの理解で再構成してみてください。 > 私の意図とズレがある場合は、確認しながら修正しましょう。」 #### **3. ステップ確認** > 「今、全体プロセスのどの段階にいますか? > 次に取り組むべき工程を提案してください。」 #### **4. 意図の再同期** > 「最初に設定した目的(○○を作成する)が、今も変わっていませんか? > もし焦点がずれている場合、目的を再定義して進行方向を修正してください。」 33

35.

2.14 議論の整理と要約 #### **5. 要約+次の行動提示** > 「ここまでの議論を100字以内で要約し、次に行うべき具体的なステップを > 提案してください。」 ### 応用例(長期プロジェクトや共同作業向け) > 「これまでの対話内容を基に、次の3点を整理してください: > ①現在までに決定したこと ②未解決の課題 ③最終成果物の完成までに > 必要な残タスク。それを表形式でまとめ、優先順位を付けてください。」 ### 補足:運用のポイント * 20〜30ターン程度のやり取りごとに挿入すると効果的。 * 「対話のリセット」ではなく、「軌道修正」として使うのが理想。 * ゴールの文脈をAIに再認識させることで、回答の一貫性・精度が向上する。 34

36.

2.15 技術的にAIの応答をカスタマイズする • 定常的な (いつも使う) キャラクター設定などはシステムプロンプトとして登録しておく • Google AI StudioやAPIからのモデル利用では、 TemperatureやTop-pなどのパラメータを調整できる ChatGPTにおけるカスタマイズ GitHub Copilotにおけるカスタマイズ 35

37.

3. プロンプト・エンジニアリング 実践演習 36

38.

3.1 演習の概要 • 今回紹介したプロンプト・エンジニアリングのテクニックを活用して、生成AIと対話しながら 課題解決のアイディアを立案する • 3つのテーマから1つを選び、生成AIと対話する • 十分な議論ができ、よいアイディアが固まった、と思ったらそれをレポートにまとめる • 今回は「科学的」であること、文献の引用は必要ではないが、 構造的・論理的な文章であること • 実際に、対象 (サークル、商店街、自分) と照らし合わせて 現実的 (実現可能) な内容であること • 合わせて、前回同様生成AIとの対話履歴を提出する • ChatGPTでは割と早く制限に達するが、Gemini 2.5 Flashは ほぼ無制限に対話を続けられる 37

39.

3.2 テーマ 1. 【大学生活】新入生が集まらない!サークル(部活)の魅力度アップ&広報戦略 2. 【地域貢献】地元の商店街を若者で活性化させるためのイベント企画 3. 【キャリア形成】自分の「ガクチカ」を深掘りし、面接で伝える自己PRを作成する 38

40.

3.3 テーマ1の補足 • 自分の所属するサークル・部活において、新入生の勧誘が課題となっている • その原因を分析し、「新入生が入りたくなる」ように魅力度アップと広報戦略の両面から 解決策を提案する • サークル・部活は、文化系・体育会系を問わない • 基本的に専修大学におけるケースとして考える • 自分がサークル・部活に所属している場合は、実際の経験をもとに考える • 所属していない場合は、仮に自分が所属していた場合の視点で考える • ヒント: サークル側の立場だけでなく、新入生の立場 (ニーズ、価値観、 行動特性など) も (AIにキャラクター設定して) 考慮する 39

41.

3.4 テーマ2の補足 • 大学周辺の商店街とネットワーク情報学部がコラボして、地域を盛り上げるイベントを 実行することになった • 現状を分析し、若者をターゲットにしたイベント企画を提案する • 基本的に向ヶ丘遊園〜登戸エリアの商店街を想定する • イベントは実現可能な規模・予算・内容で考える • 「若者」は大学生だけでなく、小中高生、社会人も含め 「20代まで (〜29歳)」とする • ヒント: 現状 (周辺の地域事情、商店街の取り組み等) は 人間が調べて情報を与えたほうが正確 40

42.

3.5 テーマ3の補足 • 「ガクチカ」は「学生時代に力を入れたこと」の略 • 「勉強以外で」とされることもあるが、今回は勉強もそれ以外の活動も含めて考える • 自分自身が企業にアピールする際に活用できるように考える • 課題として提出された内容はプライバシーを十分に尊重し、プロンプト・エンジニアリングの 観点からのみ評価します • ヒント1: 最初からアピールしたいことだけをAIに伝えるのではなく、 さまざまな経験を伝え、そこからAIにポジティブなポイントを抽出させるとよい • ヒント2: 自分が興味のある業界・企業でどんな人材が求められて いるかを調べ、「人事の側からどう見えるか」を意識するとよい 41

43.

3.6 対話履歴の共有・エクスポート • 十分な議論ができ、よいアイディアが固まった、と思ったらそれをレポートにまとめ、 合わせて生成AIとの対話履歴を提出する • 前回同様、ChatGPTやClaude、Google AI StudioなどURLで共有できるサービスはURLを、 GeminiなどURLで共有できないサービスは、ログ全体をコピーしてGoogleドキュメントなどに 保存し、提出してください ChatGPTにおける対話履歴の共有 Geminiにおける対話履歴の共有 42

44.

3.7 評価の観点 • あまり具体的には示せないが、以下の観点で評価する • 今回はフィードバックボットはありません • 課題設定と初期設計の質 • プロンプト技術の活用度 • 対話による思考の深化 43

45.

4. まとめ 44

46.

4.1 今日の内容 • プロンプト・エンジニアリングの重要性 • プロンプト・エンジニアリングの基本テクニック • 3W1Hを明確にする • 構造化する • 段階的に指示する • ハルシネーションを防ぐ • C.R.A.F.Tフレームワーク • 演習課題の説明 45

47.

4.2 次回までの課題 • 提出期限: 2025-10-21 18:00 46