CourseDesignTemplate/README.md

12 KiB
Raw Blame History

Python程序设计课程设计

🎯 课程概述

课程主题:基于 DeepSeek API + Streamlit 的 AI 应用开发

课程理念

在 AI 时代代码可以生成Bug 可以修复,文档可以自动撰写——

但判断什么值得做、为结果负责、理解用户真实需求、在约束中做取舍,这些能力永远属于你。

本课程通过 AI 代码编辑器(如 Cursor、Windsurf进行 Vibe Coding,让学生体验"用自然语言编程"的全新开发方式。但更重要的是,在这个过程中思考人与 AI 的协作边界,培养 AI 时代真正不可替代的能力。

技术栈

  • 🐍 Python 3.10+
  • 🤖 DeepSeek API(大语言模型)
  • 🎨 StreamlitWeb 界面框架)
  • 🛠️ Cursor / WindsurfAI 代码编辑器)

📅 课程安排

日期 内容 形式
第1天 课程讲解与演示 教师授课
第2天 自主开发 学生自学
第3天 中期答疑 集中答疑
第4天 自主开发 学生自学
第5天 项目展示与评审 成果展示

📚 第1天课程讲解与演示3学时

1.1 课程导入30分钟

什么是 Vibe Coding

  • 定义:一种"以人为本、AI 为器"的编程范式。开发者专注于意图描述结果验收,而将代码实现、调试细节交由 AI 辅助完成。
  • 核心逻辑"描述你想要什么,而不是告诉计算机怎么做"。
  • 演示:用自然语言在 3 分钟内创建一个完整应用。

AI 时代,什么能力真正属于你?

AI 能做的事越来越多: 语法查询、代码生成、Bug 修复、文档撰写、测试创建、架构建议、代码重构...

但这些能力永远属于你:

  • 🎯 判断什么值得做 —— 选题的眼光和价值判断
  • 📋 为结果负责 —— 代码能跑不等于问题解决
  • 👥 理解真实需求 —— 用户要的不是功能,是解决方案
  • ⚖️ 在约束中取舍 —— 时间、资源、技术的平衡
  • 🤝 与人协作 —— 包括与 AI 协作

本课程不只是教你用 AI 写代码,更是让你体验和思考这些不可替代的能力

AI 代码编辑器介绍

1.2 技术栈讲解60分钟

DeepSeek API 快速入门

from openai import OpenAI

# 初始化客户端
client = OpenAI(
    api_key="your-api-key",  # 建议使用环境变量
    base_url="https://api.deepseek.com"
)

# 发送请求
response = client.chat.completions.create(
    model="deepseek-chat", # 使用 V3 模型
    messages=[
        {"role": "system", "content": "你是一个有帮助的助手"},
        {"role": "user", "content": "你好!"}
    ],
    stream=False
)

print(response.choices[0].message.content)

Warning

API Key 安全 绝对不要按将 API Key 直接提交到 GitHub 等公共仓库!请使用 .env 文件配合 .gitignore 管理。

关键概念

  • API Key:你的"通行证",注意保密。
  • Messages:对话历史的列表,包含 system人设、user用户、assistantAI
  • Stream:流式输出,提升用户体验(像打字机一样显示)。

Streamlit 快速入门

import streamlit as st

st.title("我的第一个 Streamlit 应用")

# 侧边栏
with st.sidebar:
    st.write("这是侧边栏")

# 输入框
user_input = st.text_input("请输入你的问题:")

# 按钮与交互
if st.button("提交"):
    if user_input:
        st.write(f"你输入了:{user_input}")
    else:
        st.warning("请输入内容!")

常用组件

  • 🛠️ 输入st.text_input, st.text_area, st.slider
  • 📄 输出st.write, st.markdown, st.chat_message
  • 🎒 状态st.session_state (用于记住对话历史)

1.3 完整示例演示45分钟

现场演示:用 Vibe Coding 构建一个 AI 聊天应用

演示步骤

  1. Init:新建文件夹,用自然语言让 AI 初始化环境。
  2. Draft:描述核心需求,生成 1.0 版本代码。
  3. Refine
    • 添加对话历史记忆Session State
    • 开启流式输出Streaming
    • 优化 UI添加侧边栏设置
  4. Deploy:运行并测试。

示例 Prompt

"帮我创建一个基于 DeepSeek API 的聊天应用,使用 Streamlit 构建界面。要求:

  1. 支持多轮对话,保留对话历史
  2. 使用流式输出,打字机效果显示回复
  3. 左侧边栏可以设置系统提示词
  4. 界面美观,有清空对话的按钮"

1.4 项目要求说明15分钟

项目选题(任选其一或自拟)

难度 项目名称 服务对象/场景 解决的真实问题/价值
AI 写作助手 学生/自媒体 写作与润色提效,输出更顺畅
智能单词本 英语学习者 释义+例句,降低背词与造句门槛
AI 任务拆解教练 学习/入职 把目标拆成可执行步骤与提醒
会议纪要助手 团队会议 自动要点/待办提炼,减少遗漏
代码解释与修复 编程学习者 逐行讲解+修复建议,缩短排错时间
产品需求澄清助手 PM/开发 拆解模糊需求→可执行条目
学习笔记整理 学生/职场 将笔记结构化,生成概要/测验题
智能知识库问答 企业/课程 自有文档精准问答,减少人工答疑
AI 数据洞察仪表盘 中小团队 上传表格自动生成洞察与可视化
AI 面试官 求职者 简历定制问答,练习反馈与改进建议
多 Agent 决策工作坊 方案评审 多角色视角辩论,生成决策要点

💡 选题思考:不只是"我能做什么",更要思考"这个项目对谁有价值?解决什么真实问题"


🔧 第2天自主开发

建议学习路线

上午:环境搭建 + 熟悉工具
├── 安装 Python、Cursor/Windsurf
├── 申请 DeepSeek API Key
├── 运行第一天的示例代码
└── 熟悉 AI 编辑器的操作Composer/Chat 模式)

下午:开始项目开发
├── 确定项目选题
├── 用自然语言描述项目需求Project Requirements
├── 让 AI 生成初始代码框架
└── 运行调试,迭代优化

Vibe Coding 技巧

1. 上下文管理Context

AI 不是神,它需要知道你的代码、你的报错、你的意图。

  • @Files:在 Cursor 中使用 @ 引用相关文件。
  • Paste Error:直接粘贴报错信息,不要只说"报错了"。

2. 有效的 Prompt 模板

角色:你是一个 Python 专家。
任务:创建一个 [项目类型],使用 [技术栈]。

功能需求:
1. [功能1]
2. [功能2]

约束条件:
- 代码简洁,有注释
- 使用 Streamlit 的 sidebar 布局

3. 常见问题排查

  • Streamlit 页面频繁刷新? -> 检查是否把初始化代码放在了循环里,或者没用 st.session_state
  • API 报错 401 -> 检查 API Key 是否正确,环境变量是否生效。

学习资源


第3天中期答疑

答疑内容

  • 项目选题确认
  • 🐛 疑难 Bug 攻关
  • 🏗️ 架构设计与优化建议

常见问题解决方案表

问题分类 现象描述 解决方案核心
环境 ModuleNotFoundError 运行 pip install <库名>
API 402 Payment Required 账户余额不足,需充值
API 回复中断/不完整 检查 max_tokens 设置,或上下文超长
Streamlit 变量一点按钮就重置 必须使用 st.session_state 存储变量
Streamlit 运行无反应 确保命令是 streamlit run app.py 而不是 python app.py

中期检查清单

  • 选题已定,核心功能跑通
  • 理解核心代码逻辑(能给别人讲清楚)
  • 无论是 Git 还是手动备份,确保代码有存档
  • 能清晰回答:我的项目为谁解决了什么问题?

🔧 第4天自主开发

建议工作重点

  • 完善功能处理边界情况如用户输入为空、API 请求失败)。
  • 美化界面:使用 st.columns 排版,添加 Emoji优化提示语。
  • 准备展示:开始思考演示流程,准备 README。

Tip

加分项

  • 💾 数据持久化:对话不丢失(存本地 JSON 或 SQLite
  • 📱 响应式:手机端打开也好看。
  • 📊 可视化:用图表直观展示数据。

🎤 第5天项目展示与评审

展示形式

  • 时间:每组 (2-3人) 5分钟
  • 内容PPT/文档介绍 (1min) + 实机演示 (4min) + 心得分享 (2min)。

评分标准(总分 100

维度 分值 核心考量
功能完成度 25 核心功能由无 Bug流程跑通
创意与体验 20 界面美观,交互顺滑,解决痛点
技术实现 20 代码结构清晰,错误处理完善
展示表现 10 表达清晰,演示流畅
开发心得 15 (重要) 对 AI 协作的真实思考与反思
学习态度 10 课堂与答疑的参与度

难度系数 基础项目 () 系数 ×1.0;挑战项目 () 系数 ×1.1。 鼓励挑战,但也尊重将简单事情做到极致。


📦 提交要求

1. 提交材料

  1. 源代码:完整项目文件夹。
  2. README.md:项目说明文档。
  3. requirements.txtpip freeze > requirements.txt 生成。
  4. 开发心得Markdown 格式,不少于 500 字

2. README.md 模板

# [项目名称]

## 简介
这句话介绍你的项目是做什么的,解决了什么问题。

## 如何运行
1. 安装依赖:`pip install -r requirements.txt`
2. 配置 Key复制 `.env.example``.env` 并填入 Key。
3. 运行:`streamlit run app.py`

## 功能列表
- [x] 功能 A
- [ ] 功能 B (待开发)

3. 📝 开发心得(必填,>500字

请围绕以下核心问题撰写:

  1. 选题思考:为什么做这个?解决了谁的痛苦?
  2. AI 协作体验
    • 第一次用 AI 写代码的感觉?
    • 哪个 Prompt 让你直呼"牛逼"?哪个让你想砸键盘?
    • AI 生成的 Bug 你是怎么解的?
  3. 自我反思
    • 离开 AI我还能写出这个吗
    • AI 时代,我作为程序员的核心竞争力到底是什么?

💡 真情实感最重要。我们不想看套话,想看你的真实挣扎与顿悟。


🔗 附录:环境配置指南

1. 基础环境

  • Python:推荐 3.10+ (官网下载)
  • 编辑器:推荐 Cursor 或 VS Code + Windsurf 插件。

2. 项目初始化命令

# 1. 创建虚拟环境 (Windows)
python -m venv venv
.\venv\Scripts\activate

# 1. 创建虚拟环境 (Mac/Linux)
python3 -m venv venv
source venv/bin/activate

# 2. 安装核心库
pip install streamlit openai python-dotenv

3. API Key 管理示例 (.env)

不要把 Key 写死在代码里!

# .env 文件
DEEPSEEK_API_KEY=sk-xxxxxxx
# app.py
import os
from dotenv import load_dotenv

load_dotenv() # 加载 .env
api_key = os.getenv("DEEPSEEK_API_KEY")

🌟 结语

代码是 AI 写的没关系,

但选题是你定的,需求是你理解的,取舍是你做的,结果是你交付的,成长是你自己的。

祝大家在 Vibe Coding 中找到属于自己的价值!🚀