Teaching Guide · Internal
选课雷达
大学专业分析雷达 · AI 项目课 · 授课教师手册
v3.0 · 2026.06 · 对齐 HTML 课件全 12 节定稿 · 工橙院内部文件
Section 01
课程总览
课节数
12节
每节约 120 分钟
班级规模
4–6人
小班制为宜
课程成果
作品集三件套
GitHub · 公网URL · Demo视频
学生从零开始,逐节搭建一套「大学专业分析雷达」AI 系统,最终每人拥有一个独立部署、可公网访问的 Web App,并能在 90 秒内向他人讲清楚自己的作品。课程成果可直接用于大学申请。
三个阶段
第一阶段 · 数据层(S01–S04)
搭好开发环境,用 API 抓取 BLS 就业薪资 + College Scorecard 数据,用 BeautifulSoup 爬取 Niche / Rate My Professors 学生评价,再用 pandas + matplotlib 把数据变成图表。学生学会「让数据说话」。
第二阶段 · AI 层(S05–S08)
用 Dify 搭建 RAG 知识库与三个工作流:工作流 1 专业综合评分、工作流 2 学校匹配推荐、工作流 3 课程难度预警。学生学会用 AI 处理真实问题,而非空对话。
第三阶段 · 产品层(S09–S12)
用 Streamlit 写前端直接调用 Dify API,整合三工作流、格式化结果、Fork 个人版、部署到 Streamlit Cloud 拿到公网 URL,最后做 90 秒 Demo 演讲并打包作品集。学生学会把「能跑的代码」变成「拿得出手的产品」。
技术栈
Python
VS Code
GitHub Copilot
BLS API
College Scorecard API
BeautifulSoup
pandas
matplotlib
numpy
Dify(RAG + Workflow)
Streamlit
Streamlit Cloud
教学原则
小班 4–6 人为宜,每节课遵循「先看终点,再走路」:先展示成品,再拆解步骤
每个新工具/概念都有独立引入页,再进入动手
平台注册按需分布在各节,不集中在第一节
12节课一览
| 节次 | 课程主题 | 阶段 | 课后产出 |
|---|---|---|---|
| S01 | 项目设计:我们要解决什么问题 | 数据层 | #1 项目初始化 |
| S02 | 数据抓取:BLS + College Scorecard API | 数据层 | #2 API 数据抓取 |
| S03 | 学生的声音:BeautifulSoup 爬取评价数据 | 数据层 | #3 学生评价数据 |
| S04 | 数据会说话:pandas + matplotlib 可视化 | 数据层 | #4 数据可视化 |
| S05 | 让 AI 读懂你的数据:Dify 入门 + RAG 知识库 | AI 层 | #5 Dify 知识库 |
| S06 | Dify 工作流 1:专业综合评分 | AI 层 | #6 工作流 1 |
| S07 | 找到最适合你的学校:Dify 工作流 2 · 学校匹配 | AI 层 | #7 工作流 2 |
| S08 | 进去之后能不能活:Dify 工作流 3 · 课程难度预警 | AI 层 | #8 AI 层完成 |
| S09 | 让 AI 系统长出脸:Streamlit 前端 | 产品层 | #9 Streamlit 前端 |
| S10 | 让结果好看起来:格式化输出 + Fork 个人版 | 产品层 | #10 格式化+Fork |
| S11 | 让全世界都能用:Streamlit Cloud 部署 | 产品层 | #11 公网部署 |
| S12 | 讲给世界听:Demo 演讲 + 作品集打包(收官) | 产品层 | — 收官课 |
Section 02
课堂组织建议
小班分工
小班 4–6 人,可按「数据组 / AI 组 / 前端组」轮岗,但每人最终都要独立完成全流程并拥有自己的仓库与 URL——分工是为协作学习,不是分包,避免有人全程只做一块。
开课前环境准备清单
Python 3.x(勾 Add to PATH)
VS Code
GitHub Copilot 可用方案
GitHub 账号
可收验证信的邮箱
Chrome(开发者工具)
Dify 云端账号
Streamlit 库
Mac / Win 分别准备图文安装步骤。
每节通用节奏
课前核查上节产出
→
先看终点·概念铺垫
→
老师演示
→
学生动手
→
测试记录 commit
→
达标核对
→
下节预告
卡课时让学生先看排错页再举手。
Section 03
12节详细教案
S01
数据层
项目设计:我们要解决什么问题
本节目标
理解整个项目要做什么——先看 S12 成品,建立「终点意识」
搭好开发环境:VS Code + Python + GitHub Copilot + GitHub 账号
完成第一次 Vibe Coding,跑通第一段代码,建仓库并完成第一次 commit
技术重点
VS Code 安装
Python 环境
GitHub Copilot
GitHub 注册与仓库
git add/commit/push
| 时长 | 环节 | 内容与操作 |
|---|---|---|
| 10min | 先看终点 · S12 演示 | 播放或演示最终成品,建立全课最重要的动机锚点 |
| 8min | 老师带你一起做 + 路线图 | 讲清「师生一起做一个真项目」;用路线图展示12节台阶式上升 |
| 10min | 为什么需要这个工具 | 讲选专业信息散乱的痛点;介绍数据层/AI层/产品层三层架构 |
| 12min | 写代码这件事变了 | AI时代三角色:你(判断) + Copilot(写) + GitHub(存) |
| 15min | 装 VS Code / Python / Copilot | 逐项安装演示,学生跟做。Python 务必勾 Add to PATH |
| 10min | 注册 GitHub | 注册账号,理解 GitHub 是「代码的网盘 + 简历」 |
| 20min | 第一次 Vibe Coding | 用 Copilot 生成代码跑通,带学生逐行看懂——不要求会写,要求看懂 |
| 15min | 建仓库 + 第一次 commit | 创建项目仓库,完成 commit #1。强调 commit 是「存档点」 |
| 10min | 水平自测 + 达标 + 预告 | 破冰自测确认起点;对照达标清单;预告下节抓真实数据 |
教师注意事项
「先看终点」是本节灵魂——务必先放 S12 成品,学生有了画面感后面才有动力
环境安装最容易卡课,提前准备好各操作系统图文步骤,Mac/Win 分开
Python 安装忘记勾 Add to PATH 是最高频错误,反复强调
强调「看懂 > 会写」:这节不要求独立写代码,能读懂 Copilot 写的就达标
Copilot 对学生账号需 GitHub Student 认证或试用,提前确认可用方案
课后产出
✓ GitHub 仓库已建立,commit #1 已推送
✓ 开发环境四件套全部装好
✓ 跑通第一段代码并能讲出大意
Git Commit
#1 项目初始化
S02
数据层
数据抓取:BLS + College Scorecard API
本节目标
理解 API 是什么——「跟数据服务器要数据的标准接口」
注册并使用 BLS API(就业薪资)和 College Scorecard API(院校数据)
发请求拿到数据,保存成 CSV,完成第二次 commit
技术重点
API 概念
BLS API Key
College Scorecard API Key
requests
JSON 数据结构
CSV 保存
教师注意事项
API Key 注册可能要邮箱验证,提前让学生准备好可收信的邮箱
BLS/Scorecard 偶有限流或字段调整,开课前老师自己先跑一遍确认接口可用
报错以 401(Key错)、404(URL错)、超时(网络)为主,准备好对照表
强调「API 拿到的是结构化数据」,为 S03 的爬虫数据做对比铺垫
课后产出
✓ BLS 就业薪资 CSV 已生成
✓ Scorecard 院校数据 CSV 已生成
✓ commit #2 已推送
Git Commit
#2 API 数据抓取
S03
数据层
学生的声音:BeautifulSoup 爬取评价数据
本节目标
理解结构化数据(API) vs 非结构化数据(网页)的区别
学会用 BeautifulSoup 从 Niche / Rate My Professors 抓取学生评价
抓取并保存评价数据集,完成第三次 commit
技术重点
结构化 vs 非结构化数据
Chrome 开发者工具
pip 安装
BeautifulSoup 解析
教师注意事项
爬虫易受网页改版影响,开课前务必自己跑通,必要时准备离线 HTML 样本
强调爬虫礼仪:加延时、不高频请求,讲基本合规意识
若现场网络/反爬失败,切换预存 HTML 样本让学生练解析,不卡进度
课后产出
✓ Niche 评价数据已抓取
✓ RMP 评价数据集已保存
✓ commit #3 已推送
Git Commit#3 学生评价数据
S04
数据层
数据会说话:pandas + matplotlib 可视化
本节目标
用 pandas 读取和处理 CSV 数据
用 matplotlib 画柱状图(薪资对比)和雷达图(多维对比)
产出 3 张以上可视化图表,完成第四次 commit
技术重点
pandas 读 CSV
DataFrame 概念
matplotlib 柱状图
numpy 基础
雷达图绘制
教师注意事项
matplotlib 中文显示需配置字体,否则图上中文是方块——提前给学生字体配置代码
雷达图是本节难点,多预留时间;准备好可直接复用的雷达图模板代码
本节是数据层收尾,提醒学生:数据和图备好,下节开始让 AI 读这些数据
课后产出
✓ 薪资对比柱状图已生成
✓ 多维对比雷达图已生成
✓ 3 张以上图表入库,commit #4 已推送
Git Commit#4 数据可视化
S05
AI 层
让 AI 读懂你的数据:Dify 入门 + RAG 知识库
本节目标
理解为什么直接问 AI 不够准——引出 RAG
注册 Dify,把 CSV 转成 Markdown 并上传成知识库
完成三种检索测试,确认知识库可用,完成第五次 commit
技术重点
RAG 概念
Dify 三模块
CSV→Markdown 转换
向量检索
召回测试
教师注意事项
统一用 Dify 云端版避免环境差异,开课前确认注册可用
RAG 概念用「开卷考试」「先查资料再答题」类比要讲透
知识库上传后需等待索引(embedding)完成才能检索,告知学生稍等
课后产出
✓ Dify 知识库已上线
✓ 召回测试通过并截图
✓ commit #5 已推送
Git Commit#5 Dify 知识库
S06
AI 层
Dify 工作流 1:专业综合评分
本节目标
理解工作流——把多个 AI 步骤串成一条自动流水线
搭出工作流 1:输入专业 → 检索知识库 → LLM 评分 → 结构化输出
测试 10 个专业,完成第六次 commit
技术重点
工作流四节点
变量传递
Prompt Engineering 基础
结构化 JSON 输出
教师注意事项
Prompt 里要求「只输出 JSON、不要多余文字」是稳定结构化输出的关键,反复强调
变量名在节点间必须一致,大小写敏感,是高频卡点
准备好排错指引,让卡住的学生先自查再举手
课后产出
✓ 工作流 1 可运行
✓ 10 个专业测试记录完整
✓ commit #6 已推送
Git Commit#6 工作流 1 专业评分
S07
AI 层
找到最适合你的学校:Dify 工作流 2 · 学校匹配推荐
本节目标
在工作流 1 基础上升级:增加「个人背景」多输入维度
配置条件分支节点——按学生画像走不同推荐路径
测试两种学生画像,对比推荐差异,完成第七次 commit
技术重点
4个输入字段
条件分支节点
多节点工作流
结构化输出解析
教师注意事项
TO B 注意:竞赛建议模块(ysa_course 字段)在自有学员课堂保留工橙院课程引导;给合作学校上课时,改为中性的「建议补强的背景方向」,不点名机构课程
条件分支节点较复杂,准备好文字版步骤发给学生
学校推荐要带不确定性说明,教学生在 Prompt 里要求输出「仅供参考」
课后产出
✓ 工作流 2 含条件分支可运行
✓ 双画像对比测试完成
✓ commit #7 已推送
Git Commit#7 工作流 2 学校匹配
S08
AI 层
进去之后能不能活:Dify 工作流 3 · 课程难度预警
本节目标
建第二知识库(RMP 课程难度数据),与 S05 专业库分开
搭出工作流 3:四节点线性流程,输出三字段 JSON 课程难度预警
测试 3 所学校的课程难度——AI 层三工作流全部就位
技术重点
第二知识库 KB2
RMP 四字段数据结构
四节点线性工作流
三字段 JSON 输出
教师注意事项
KB2 必须独立于 KB1,最高频错误是覆盖了 S05 的专业数据库——开课前强调
Prompt 中三个变量名固定不可改,输出若带多余文字就加「只输出 JSON」
本节是 AI 层里程碑:三工作流全就位。提醒下节把它们接上前端,系统就「活」了
课后产出
✓ KB2 已上线、召回正常
✓ 工作流 3 四节点跑通、输出三字段 JSON
✓ commit #8(AI layer complete)已推送
Git Commit#8 工作流 3 课程预警 · AI 层完成
S09
产品层
让 AI 系统长出脸:Streamlit 前端
本节目标
理解 Streamlit——用 Python 写网页,给 AI 工具做界面
写 app.py 基础布局,本地跑出页面(localhost:8501)
前端调用三个工作流的 Dify API,三栏结果全部显示
技术重点
Streamlit 框架
四核心组件
app.py 结构
调用 Dify API(POST)
教师注意事项
前端直接调用 Dify API,没有独立后端——不要引入 FastAPI
三个工作流调用函数是同一模板,强调「写好一个,另外两个复制改两处」
localhost:8501 跑通就达标,不要求公网,降低本节压力
课后产出
✓ app.py 本地可运行
✓ 三工作流全部接通、三栏结果显示
✓ commit #9(前端上线里程碑)已推送
Git Commit#9 Streamlit 前端
S10
产品层
让结果好看起来:格式化输出 + Fork 个人版
本节目标
从 Dify 返回的 JSON 里精准取值,把三栏原始 JSON 格式化成好看的结果
理解 GitHub Fork——把项目复制成「属于自己的」版本
做正常 vs 边界测试,记录系统边界,完成第十次 commit
技术重点
JSON 取值路径
防报错取值 .get()
GitHub Fork
边界测试思维
教师注意事项
防报错取值 .get(字段,'—') 是本节技术核心,避免字段缺失整个页面崩溃
Fork 是关键:学生必须 Fork 成自己的仓库,否则 S11 没权限配 Secrets
字段名大小写敏感,对不上显示「—」,教学生用 print(outputs) 对照
课后产出
✓ 三栏结果格式化完成(非原始 JSON)
✓ 已 Fork 个人版、填好自己的 Key、本地跑通
✓ 边界测试记录完成,commit #10 已推送
Git Commit#10 格式化 + Fork 个人版
S11
产品层
让全世界都能用:Streamlit Cloud 部署
本节目标
补 requirements.txt 并推代码上 GitHub(commit #11)
在 Streamlit Cloud 部署,零服务器代码拿到公网 URL
配置 Secrets 让 Key 不进代码,手机测试通过
技术重点
requirements.txt
Streamlit Cloud 部署
Secrets(TOML)配置
st.secrets 读取
教师注意事项
Secrets 名字不匹配是全课最高频错误——让学生从代码复制名字,别手敲
TOML 必须用英文双引号,中文引号会报错
先部署后配 Key:部署完报 KeyError 是正常的,配好 Secrets 自动重启即解决
Streamlit 免费版闲置会休眠,提醒学生演示前提前唤醒
课后产出
✓ 公网 URL 可访问
✓ 手机能打开并出结果
✓ Secrets 配好、代码无明文 Key,commit #11 已推送
Git Commit#11 公网部署上线
S12
产品层
讲给世界听:Demo 演讲 + 作品集打包(收官)
本节目标
写并练好一段 90 秒 Demo 演讲(做了什么/解决什么/怎么用/给谁用)
把工具使用过程录成 60–90 秒屏幕录制视频
把 GitHub + 公网 URL + Demo 视频打包成作品集三件套
技术重点
90秒 Pitch 四要素
演讲时间结构
屏幕录制
作品集三件套打包
教师注意事项
本节技术含量低、表达含量高。理工科学生最大的坎是「会做不会讲」,多鼓励、给足练习时间
讲砸三个坑提前讲:开口报技术栈、演示卡在加载、超时讲不完
录屏最高频翻车是没开麦克风——录前务必确认勾了麦克风
上台互评是收官小高潮,重点是「敢讲」而非「讲得完美」
课后产出
✓ 90 秒讲稿能脱口而出
✓ Demo 视频录完发群
✓ 三链接齐、别人能打开、作品集成型
Git Commit— 收官课(可选 README 终版)
Section 04
收官与作品集
12节课走完,每个学生应当拥有完整的作品集三件套,可直接用于大学申请:
GitHub 仓库
从 commit #1 到 #11 的完整开发记录,证明代码能力与持续投入
公网 URL
一个谁都能点开使用的 AI 工具,证明产品真实可用
Demo 视频
60–90 秒展示作品,证明表达能力与项目理解深度
作品集使用场景
写进申请文书(做了什么/遇到什么坎/怎么解决)· 面试时用 90 秒 Pitch 讲清并现场演示 · 在 Common App 活动列表/附加材料附上 URL 供招生官直接体验
教师提醒
课程结束后,鼓励学生继续维护和扩展自己的工具——作品集不是一次性作业,而是可以持续成长的资产。