教育

人文系大学院生がVibe Codingで研究アプリを作った――名古屋大学での集中講義レポート

人文学とAI技術の融合を表す抽象的なイラスト

2026年2月、名古屋大学人文学研究科のデジタル人文社会科学教育プログラムの一環として、4日間の集中講義「生成AIアプリケーション開発入門」を実施しました。

受講者は人文学研究科を中心に、環境学、情報学、経済学など多様な研究科から集まった大学院生で、プログラミング経験はほぼゼロという方がほとんどでした。この記事では、講義の設計意図と実施の所感を報告します。

背景:研究上の着想を具現化するための障壁

人文系の研究者が「こういうツールがあれば研究が捗るのに」と思いついたとき、その着想を実装に移す道は、これまで決して平坦ではありませんでした。

情報科学分野の専門家に依頼する方法はありますが、人文科学特有の緻密な要求を正確に伝えるのは容易ではなく、一方的な技術支援に陥りがちです。かといって、研究者自身がプログラミング言語を基礎から網羅的に学ぶのは、研究活動との両立において現実的とはいえません。

結果として、優れた研究上の着想が実装に至らず、潜在的な可能性に留まるケースが少なくありません。

生成AIがもたらす開発パラダイムの転換

しかし、この状況はいま大きく変わりつつあります。Claude Code、OpenAI CodexなどのAIコーディングエージェントが、コーディング工程の大部分を代替する時代が到来しているからです。

これにより、ソフトウェア開発の重心は「コードを書く」ことから「構想を言語化し、AIと協働する」ことへと移行しています。

従来の開発モデルAI時代の開発モデル
特徴コード中心、段階的学習、長期習得期間対話中心、目的主導型、短期実装
重要スキルプログラミング文法、アルゴリズム理解、デバッグ技術研究課題の言語化、明確な指示作成、AIの出力評価

この転換は、人文系の研究者にとって大きなチャンスです。日頃から文献を精読し、論旨を組み立て、他者に明確に伝える訓練を積んでいる人文系研究者が持つ力は、AIへの的確な指示を出す上で大きなアドバンテージになります。重要なのはコーディング能力以上に、研究課題に基づく構想力と、AIとの的確な対話・編集能力なのです。

本講義は、この仮説を実践的に検証する試みでした。

4日間の構成

講義は以下のように設計しました。

Day 1:「AI時代の開発」を体験する

Humanitextプロジェクトの紹介(文系研究者としてAI開発をしてきた経験)から始め、開発パラダイムの転換について説明しました。その後、環境構築を経て、Codexへの指示だけで自己紹介WebページとStreamlitによる質問応答アプリを作成。「指示を出すだけでアプリが動く」という感覚を、まず全員に掴んでもらうことが目的です。

Day 2:「使えるアプリ」の設計と基盤技術

テキスト・PDF読み込み、RAG(検索拡張生成)、JSON構造化出力といった技術を、ひとつのアプリに段階的に追加していく形で学びました。ここで重視したのはコンテキストエンジニアリングの考え方です。LLMに「何を渡すか」「何を渡さないか」の設計が、AIアプリの品質を決定づけます。Humanitextプロジェクトの実例(古代ギリシャ・ラテン語のテキスト約1,000作品をRAGで検索可能にしている仕組み)も紹介しながら、その実感を持ってもらいました。後半では、CodexのPlanモードを使った要件定義と、各自のプロジェクト開発を開始。

Day 3:プロジェクト開発の核心

デバッグ手法、StreamlitのUI改善、ペアテストによる検証を経て、集中的な開発時間を確保しました。

Day 4:デプロイと発表

Streamlit Community Cloudへのデプロイを全員で実施し、ライトニングトーク+デモギャラリー形式で最終発表を行いました。

受講生の成果物

4日間で、受講生全員がそれぞれの研究課題に対応したWebアプリを開発し、デプロイまで完了しました。

扱われたテーマは多岐にわたります。古典テキストの前処理、研究室の蔵書管理、歴史的法令データベースの拡張、古典語文献の検索と翻訳、翻訳書誌の調査支援、テキストにおける概念の出現頻度の可視化など、人文学に限らず各自の研究分野に固有の課題から出発したものでした。

特に印象的だったのは、講義で教えた汎用的な技術(RAG、JSON構造化出力など)を、自分の専門分野の文脈に合わせて再解釈している点です。たとえば、RAGをどう使うかは、扱うデータの性質(和歌、法令、古典ギリシア語テキストなど)によって最適な設計が異なります。その判断には、技術の知識よりも研究対象への深い理解が不可欠です。ここに、人文系研究者が主体的に開発に関わることの意義が如実に表れていました。

見えてきた課題

一方で、いくつかの課題も浮き彫りになりました。

「何を作るか」の構想力。最も大きな壁は、技術的な問題ではなく、「自分の研究にとって本当に必要なツールは何か」というコンセプトの明確化でした。AIという強力な相棒がいるにもかかわらず、それを十分に活かしきれないケースの多くは、作りたいものの輪郭がぼんやりしていることに起因していました。「とりあえずRAGを使ってみよう」ではなく、「自分の研究のこの工程を、こう変えたい」という具体的な課題意識が出発点にあるかどうかで、成果物の質に大きな差が出ます。次回は、要件定義の段階にもっと時間を割く必要があると感じています。

コードの要所を「読む」力。Vibe Codingではコード全体を理解する必要はありませんが、いくつかの要所だけは自分の目で確認できると、アプリのコントロールが格段に容易になります。たとえば、システムプロンプトの文言、使用しているLLMモデルの種類、ファイルの読み込み方式などは、コードの中で日本語の文字列やモデル名を検索するだけで見つかります。これらは人文系研究者の既存のスキル――テキストを読み、内容を評価し、適切に修正する力――がそのまま活きる領域です。講義では「全部を理解しようとしなくてよい、カギとなる箇所だけ確認すればよい」と繰り返し伝えましたが、コードに対する心理的なハードルは依然として高く、この点は今後も継続的に取り組むべき課題です。

環境構築のトラブル。Pythonのバージョン競合、PowerShellの実行ポリシー、Git認証など、ローカル環境特有の問題に予想以上の時間を取られました。次回はこの工程でのよりきめ細かいサポート体制が必要だと感じています。

おわりに

「コードが書けなくても、AIと協働して”ものを作る”ことができる」。本講義を通じて、受講生たちがそのことを身をもって示してくれました。

私自身、Humanitextプロジェクトを通じて「文系研究者によるAI開発」を実践してきましたが、そこで痛感しているのは、人文系研究者がAI開発の主導権を握ることの重要性です。人文科学特有の緻密な要求は、その分野を深く理解している研究者自身が構想し、設計してこそ、真に学術的価値のあるツールが生まれます。

生成AIは、人文科学の知見を検証可能かつ実用的な形で社会に提示するための強力な手段となりうるものです。本講義のような教育実践を通じて、人文系の研究者や学生が「AIの利用者」から「AIとの協働開発者」へと変容していく――その一歩を支援できたのであれば幸いです。