Files
scuc-qt-course/docs/teaching/slides/day5.html
T
张宗平 a6743fcea0 每个「讲」知识点补齐核心概念 + 常见的坑,幻灯片与大纲同步
此前一版「讲」部分基本只是代码演示(贴代码 + 一句出处说明),没有讲透
知识点本身的原理。改为覆盖清单原则:每个知识点在大纲里至少固定两项——
核心概念(是什么/为什么,不只是怎么写)+ 常见的坑(注意事项/误区),
课堂实际讲解深度按学员反馈现场调整,但大纲必须列全,以免漏讲或退化成
纯代码演示。

- custom.css 新增 .concept-box/.pitfall-box 卡片样式
- day1–5.html 每个知识点前插入对应卡片,内容与 OUTLINE.md 的覆盖清单一一对应
2026-07-02 16:25:46 +08:00

225 lines
9.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>Day 5 · 团队协同开发/综合案例复盘/OpenCV可选</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="reveal/reveal.css">
<link rel="stylesheet" href="reveal/theme.css">
<link rel="stylesheet" href="reveal/plugin/highlight/monokai.css">
<link rel="stylesheet" href="custom.css">
</head>
<body>
<div class="reveal">
<div class="slides">
<section>
<h1>Day 5</h1>
<h3>团队协同开发 / 综合案例复盘 / OpenCV(可选自学)</h3>
<p class="module-badge">C++/Qt 方向实训 · 第 5 / 5 天 · 最后一天课堂内容</p>
<ul>
<li>模块 A(3 课时):团队协同开发(概念讲解)</li>
<li>模块 B(3 课时):综合案例复盘 + OpenCV/AI(可选,自学指针)</li>
</ul>
<p><small>今天结束后 Day6–10 是纯项目实作(学员编码 + 教员指导 + 成果展示),
不再有课堂讲授——今天的分组结论会直接带到项目实作阶段。</small></p>
</section>
<!-- ===================== 模块 A:讲 ===================== -->
<section>
<section>
<p class="module-badge">模块 A · 讲授 35min</p>
<h2>团队协同开发 <span class="tag tag-lecture"></span></h2>
</section>
<section>
<h3>质量保证:四平台一标准(复习) <span class="tag tag-lecture"></span></h3>
<img src="../../images/quality_four_platforms.png" style="max-height:520px;">
<p><small>出处:<a class="filelink" target="_blank"
href="../../TRAINING_PLAN_2026.md">docs/TRAINING_PLAN_2026.md</a> 「七、质量保证 (二) Git」</small></p>
</section>
<section>
<h3>Git 提交习惯:核心概念 <span class="tag tag-lecture"></span></h3>
<div class="concept-box">
<h4>核心概念</h4>
<ul>
<li>接下来 Day6–10 项目实作,每人每完成一个任务都要提交代码到 Git 并写清任务描述——
提交粒度对应 Jira 任务粒度,commit 信息就是"这次提交做了什么、为什么"的可追溯记录。</li>
</ul>
</div>
<div class="pitfall-box">
<h4>常见误区</h4>
<ul>
<li>攒了几天代码一次性提交、commit 信息写"update":历史记录失去可追溯性,出问题时无法
定位是哪次改动引入的。</li>
</ul>
</div>
</section>
<section>
<h3>标准化考核标准 <span class="tag tag-lecture"></span></h3>
<img src="../../images/assessment_standard.png" style="max-height:520px;">
<p><small>出处:<a class="filelink" target="_blank"
href="../../TRAINING_PLAN_2026.md">docs/TRAINING_PLAN_2026.md</a> 「七、(五) 标准化的考核标准」</small></p>
</section>
<section>
<h3>考核标准:核心概念 <span class="tag tag-lecture"></span></h3>
<div class="concept-box">
<h4>核心概念</h4>
<ul>
<li>项目管理评估(40%) + 项目技术评估(30%) + 职业素养评估(30%)——技术实现只占三成,
Day6–10 项目实作最终按这三个维度综合打分,不是"代码能跑就满分"。</li>
</ul>
</div>
<div class="pitfall-box">
<h4>常见误区</h4>
<ul>
<li>只顾埋头写代码、忽略项目管理和职业素养维度(如任务跟踪是否及时更新、沟通是否
到位):技术分再高,另外 70% 的权重会明显拉低总评。</li>
</ul>
</div>
</section>
</section>
<!-- ===================== 模块 A:讨论 ===================== -->
<section>
<section>
<p class="module-badge">模块 A · 讨论 95min</p>
<h2>动手:分工复盘 <span class="tag tag-discuss"></span></h2>
</section>
<section>
<div class="task-card discuss-card">
<h4>任务卡 1 · 分工复盘 <span class="tag tag-discuss"></span></h4>
<dl class="task-spec">
<dt>目标</dt>
<dd>结合考核标准图(项目管理评估/项目技术评估/职业素养评估三大块),对照 Day1
任务卡 1 定下的分工,检查执行情况</dd>
<dt>验收标准</dt>
<dd>每组能说出至少 1 项做得好的、1 项需要改进的</dd>
<dt>基础知识 · 参考</dt>
<dd>上一节"标准化考核标准"图 · Day1 任务卡 1 的分工结论</dd>
</dl>
</div>
</section>
</section>
<!-- ===================== 模块 B:讲 ===================== -->
<section>
<section>
<p class="module-badge">模块 B · 讲授 35min</p>
<h2>综合案例复盘 + OpenCV/AI(可选) <span class="tag tag-lecture"></span></h2>
</section>
<section>
<h3>Day24 案例回顾 <span class="tag tag-lecture"></span></h3>
<p>请 1–2 组现场展示计算器 / 本地数据存储 / 动画状态机小游戏,其他组观摩提问。</p>
<div class="concept-box">
<h4>核心概念</h4>
<ul>
<li>代码走查(code review)是团队协作的常规环节——展示时讲清"为什么这么设计"比"功能能跑"
更能体现对 Day2–4 核心概念(对象树/信号槽/Model-View/线程亲和性……)的理解程度。</li>
</ul>
</div>
<div class="pitfall-box">
<h4>常见误区</h4>
<ul>
<li>只演示"能跑"不讲"为什么":观摩组提不出有效问题,复盘就失去了巩固概念的作用。</li>
</ul>
</div>
</section>
<section>
<h3>OpenCV 与 AI 机器学习(可选,自学指针) <span class="tag tag-lecture"></span></h3>
<div class="concept-box">
<h4>核心概念</h4>
<ul>
<li>OpenCV 是独立于 Qt 的计算机视觉库,Qt 负责界面/交互,OpenCV 负责图像算法——两者通过
"内存里的图像数据格式转换"(<code>cv::Mat</code><code>QImage</code>)配合,是很多
桌面视觉类项目的典型组合方式。</li>
</ul>
</div>
<div class="verify-box">
<h4>缺口说明</h4>
<p>方案书原文对本项标注"可选择",属于非必修拓展。引入 OpenCV 会新增一条完整的
三方库工具链,本仓库暂不提供可运行示例。如果感兴趣,自学方向是
<code>cv::CascadeClassifier</code> 人脸检测入门。</p>
</div>
<p><small><span class="ext-ref">OpenCV 官方教程(doc.opencv.org,选读·需联网)</span></small></p>
</section>
</section>
<!-- ===================== 模块 B:练(综合演练) ===================== -->
<section>
<section>
<p class="module-badge">模块 B · 练习 95min(综合演练)</p>
<h2>动手:三选一深化 <span class="tag tag-practice"></span></h2>
</section>
<section>
<div class="task-card">
<h4>任务卡 1 · 三选一深化 <span class="tag tag-practice"></span></h4>
<dl class="task-spec">
<dt>目标</dt>
<dd>从计算器 / 本地数据存储 / 动画状态机小游戏中选一个继续深化(加一个新功能)</dd>
<dt>验收标准</dt>
<dd>现场演示新增功能正常工作,编译无报错</dd>
<dt>基础知识 · 参考</dt>
<dd>回顾 Day2–4 对应的教学补充示例与 README:
<a class="filelink" target="_blank" href="../examples/qss_styling/README.md">qss_styling</a> ·
<a class="filelink" target="_blank" href="../examples/json_io/README.md">json_io</a> ·
<a class="filelink" target="_blank" href="../examples/property_animation/README.md">property_animation</a> ·
<a class="filelink" target="_blank" href="../examples/state_machine/README.md">state_machine</a></dd>
</dl>
</div>
</section>
</section>
<!-- ===================== 收尾 ===================== -->
<section>
<h2>当日产出验证 · Day1–5 阶段总验收</h2>
<div class="verify-box">
<h4>现场演示</h4>
<p>每组现场演示深化后的案例,教师按考核标准图三大块给出反馈,为 Day6–10
的正式项目实作分组定方向。</p>
</div>
<p class="footer-note"><small>Day1–5 课堂教学到此结束,Day6–10 进入项目实作——大纲:
<a class="filelink" href="../OUTLINE.md">docs/teaching/OUTLINE.md</a></small></p>
<p><a class="filelink" href="index.html">返回目录</a> ·
<a class="filelink" href="day4.html">← 上一天</a></p>
</section>
<!-- ===================== 延伸阅读(全教案最末页) ===================== -->
<section>
<h2>延伸阅读 · Day6–10 项目实作支撑知识体系</h2>
<div class="verify-box">
<h4>16 个可选项目,除 C++/Qt 之外还需要哪些知识?</h4>
<p>系统梳理了实现这 16 个项目所需的 12 个辅助专业领域——数据结构与算法、
2D 游戏与碰撞、计算机图形学、数字图像处理、计算机视觉与机器学习(OpenCV/Haar/LBPH)、
编译原理与状态机、编码理论、计算机网络、并发编程、文件系统与增量同步、软件设计模式等,
<strong>每个核心知识点附 2–3 个已验证可用的网络课程链接</strong>(中英文兼顾)。</p>
<p>全文(serve.py 下本地一点即开):<a class="filelink" target="_blank"
href="../SUPPORTING_KNOWLEDGE.md">docs/teaching/SUPPORTING_KNOWLEDGE.md
&nbsp;&nbsp; qt-course-projs/docs/supporting-knowledge.md</a></p>
</div>
<p class="footer-note"><small>文档由项目仓库 <code>qt-course-projs</code> 维护,
本仓库以相对符号链接引用,单一源头、不复制;如直接用文件协议打开本页,请改用
<code>python3 docs/teaching/serve.py</code> 起本地服务以渲染该 Markdown。</small></p>
<p><a class="filelink" href="index.html">返回目录</a> ·
<a class="filelink" href="day4.html">← 上一天</a></p>
</section>
</div>
</div>
<script src="reveal/reveal.js"></script>
<script src="reveal/plugin/highlight/highlight.js"></script>
<script>
Reveal.initialize({
hash: true, controls: true, progress: true, center: true, slideNumber: true,
plugins: [ RevealHighlight ]
});
</script>
</body>
</html>