Upload files to "/"

This commit is contained in:
2026-09-03 13:19:13 +08:00
parent 1380ec8261
commit 92a81bba42
2 changed files with 287 additions and 0 deletions
+157
View File
@@ -0,0 +1,157 @@
# iOS 部 2026 十课初步规划
> 状态:定稿校对稿,待社团审核;保留现有文件名
> 建立时间:2026-07-22
> 最新修订:2026-09-03
> 上位文件:[教学方案](iOS部2026教学方案.md);本规划负责课程总体安排,逐课细则见下表链接
## 一、规划范围
iOS 部自主课程共 10 节:1 节试听课+9 节录取后的部门课,面向接近零基础的新生。课程定位、培养目标和评价原则以[教学方案](iOS部2026教学方案.md)为准。
本规划说明每节课讲什么、各课怎样衔接,以及共同的学习与提交安排。各节知识边界、作业最低与建议标准、验收重点由逐课课纲规定,不在总文件中重复维护另一套细则。
## 二、工作室时间线与课程位置(待确认)
| 时间阶段 | 工作室活动 | iOS 部在其中的职责 |
|---|---|---|
| 国庆前 | 面向全校的统一公开课 | 由教学部负责,不计入 iOS 部自主课程课时 |
| 国庆前、部门筛选前 | iOS 部试听课 | 部门介绍、iOS 科普、作品展示和报名答疑 |
| 国庆期间 | 笔试与部门面试 | iOS 部参与筛选,确认进入部门课的学员 |
| 国庆后至寒假前 | 各部门课程 | iOS 部完成 9 节轻量入门课 |
| 寒假期间 | 爱特杯 | 愿意继续实践的学员依据兴趣推进小项目 |
| 寒假结束后 | 第二次面试或成果交流 | 展示学习过程、作品和后续方向 |
| 大一下学期 | 自由立项、组队与竞赛 | 根据个人兴趣继续学习和实践 |
注:教学部统一公开课与 iOS 部试听课是两套不同活动。iOS 部试听课不要求学员提前安装 Xcode,也不以设备或技术基础作为参与门槛。
## 三、课程组织与时间口径
- 部门课以线上直播为主,预计学员不超过 10 人,约 2 名授课干部提供教学支持;具体排课和人员安排另行确认。
- 核心讲解尽量在约 40 分钟内完成;60 分钟是保守预估,不要求讲满,也不是硬性上限。实际节奏由授课干部结合内容、互动和答疑安排。
- 课程可采用共同跟做,或授课干部 Demo 讲解、学员课后完成同源作品两种形式,不按课次划分两套文件规则。
- 前七节作品原则上独立;部门课 08 优先整理旧作品,没有合适旧作品时由授课干部提供轻量起点,避免积累长期项目债务。
- 部门课 01 的基础要求是成功配置并运行 Demo,个人修改可选;部门课 02–08 保留个人可见修改与真实 Build/Run。
- 部门课 09 只作回顾、分享和答疑,不安排新技术作品、GitHub PR、Demo 或正式课后作业。
### 课后投入与分层
有实践作业时,每次基础课后实践建议按约 30–60 分钟控制范围,作为备课时估量负担的参考,不是计时验收或要求学员必须投入的时长。实际耗时尚未验证,具体提交时间由授课干部另行说明。
- **最低完成标准**:对应本课的基础作品和真实运行结果。
- **建议完成标准**:自愿选择的个性化、扩展或兴趣探索,不影响基础通过。
- 到达建议投入仍未完成时,可以提供当前项目、实际现象和已尝试步骤;未完成不成为下节课的功能欠债。
### 设备与首次配置
- 先了解学员可用的 Mac 和系统情况,尽量使用学员已有设备;没有合适设备时再协调社团机器。
- 社团 Mac mini 较旧,课程负责人个人 MacBook 使用较新的测试版系统,两者环境差异较大,不能以个人机器上的结果代表社团设备兼容性。
- 如需使用社团机器,课程负责人也准备同类社团机器核对环境;Xcode、macOS、Simulator Runtime、最低部署版本及 SwiftData 支持情况在备课阶段实际确认。
- 部门课 01 前提前发送安装说明和资料,鼓励先配置,不强制提前完成。课堂讲解完整流程,不集体等待大型下载;未完成者课后继续,尽量在部门课 02 前跑通环境。
## 四、课程衔接与授课方式
整体认识按“第一次运行 → AI 与 Git → 页面 → 交互 → 信息流 → 内存数据 → 持久化 → 项目组织 → 回顾与继续学习”递进。
共同跟做型课程可依次展示目标效果、解释核心关系、完成基础版本、尝试小改动并答疑。Demo 讲解型课程由授课干部运行并讲解基础示例,学员观察、预测、追踪关键关系,再参考资料完成同源作品。不统一规定分钟表、PPT 页数或完整试讲。
## 五、十节课程安排
| 课次与课纲 | 主题与核心认识 | 基础结果或参与方式 |
|---|---|---|
| [试听课:部门与开发概览](逐课课纲/iOS试听课_部门与开发概览.md) | 部门学习方式、iOS 开发地图、真实作品和后续课程 | 形成方向认识,提出兴趣与顾虑;不要求安装、编程或技术考核 |
| [部门课 01:第一次运行与 SwiftUI 组件万花筒](逐课课纲/部门课01_第一次运行与SwiftUI组件万花筒.md) | Xcode 配置、模板项目、模拟器和标准组件观察 | 成功 Build/Run 组件万花筒;个人修改可选,无正式上传要求 |
| [部门课 02:AI 与 Git 开发工具入门](逐课课纲/部门课02_AI与Git开发工具入门.md) | AI 小步开发循环,部门仓库、Fork、本地仓库、分支与 PR 的关系 | 尝试小型独立 SwiftUI 任务、运行并提交 PR;未完成或工具故障可记录当前状态 |
| [部门课 03:个人兴趣名片与页面组合](逐课课纲/部门课03_个人兴趣名片与页面组合.md) | View 层级、三种 Stack、Modifier 作用对象与顺序 | 完成个性化名片,保留内容与样式修改,实际 Build/Run |
| [部门课 04:小植物补水卡与交互状态](逐课课纲/部门课04_小植物补水卡与交互状态.md) | Button、唯一状态、`@State`、`@Binding` 和条件反馈 | 实现补水、上限、重置及重启归零 |
| [部门课 05:校园地点小指南与列表到详情的信息流](逐课课纲/部门课05_校园地点小指南与列表到详情信息流.md) | 轻量模型、数组、List、值驱动导航和只读详情参数 | 在课堂两条数据基础上补充第三个地点,不同选择进入对应详情 |
| [部门课 06:从输入到清单与内存数据](逐课课纲/部门课06_从输入到清单与内存数据.md) | 输入草稿、模型、数组和 List 更新 | 完成自选主题的单字段新增清单,不要求持久化 |
| [部门课 07:习惯印章簿与轻量持久化](逐课课纲/部门课07_习惯印章簿与轻量持久化.md) | `@AppStorage` 简单设置、SwiftData 新增与读取、跨启动恢复 | 完成个性化印章簿,并验证同一个 App 彻底终止后重新启动仍能恢复数据 |
| [部门课 08:项目组织与 MVVM 架构入门](逐课课纲/部门课08_项目组织与MVVM架构入门.md) | Treversi 工程阅读,Model、ViewModel、View 职责与数据流 | 渐进整理旧作品,保留核心行为和一处可见修改;说明用于本课作业反馈,不安排到部门课 09 技术抽查 |
| [部门课 09:学习回顾与继续出发](逐课课纲/部门课09_学习回顾与继续出发.md) | 回顾课程地图,交流学习、项目与比赛经验,介绍后续入口 | 约 2–3 分钟轻量分享与集中答疑;无新作品、PR、Demo 或正式课后作业 |
各节仍按原有独立作品与知识范围推进,不新增统一大型 App、完整 CRUD 或逐人技术答辩。
## 六、AI 与 GitHub 共同安排
### AI 使用
部门课 02 用授课干部另行发布的小型独立任务体验“提出目标 → 生成起点 → Build/Run → 观察结果 → 反馈与调整”。后续课程可继续用 AI 解释、局部修改和排错,但不要求所有作业使用 AI。
学员不必解释全部生成代码,应能简要说明自己的要求、实际结果和当前问题。AI 输出不能代替运行验证,不提供密码、令牌、私人资料或未经授权的项目内容。
### GitHub 作品提交
- GitHub 是课程作品与学习记录平台;社团 Gitea 是本套课程文件的审阅平台,两者不混用。
- 部门课 02 演示部门公开仓库、个人 Fork、本地仓库、分支、Commit、Push 和 PR 的最小关系。部门仓库可在本节现场演示时建立,不要求在文件审定前建成。
- 学员在个人 Fork 的作业分支中只修改自己的目录,向部门公开仓库发起 PR,不需要部门仓库直接写入权限。
- 后续提交前按课堂确认的流程同步 Fork、建立本次作业分支;具体登录方式、工具命令、远端关系、目录和 PR 模板在备课阶段结合实际仓库确定。
- PR 简要记录做了什么、是否使用 AI、实际运行结果和问题;本课要求的简短说明以对应课纲为准,不要求重复另写 README。
- 未完成可使用 Draft PR;若账号、网络或 Git 故障导致无法发起 PR,可按授课干部约定渠道提供当前项目、错误和尝试记录。参与记录不等于基础作品已完成或 PR 已合并。
- 不强制推送,不修改其他学员目录或公共结构;出现同步或提交错误时保留完整错误并求助。
### 隐私与运行证据
- 公开内容不包含真实姓名、学号、联系方式、账号凭证、密钥、未经授权的照片或私人轨迹;提交作者邮箱和附件同样需要检查。
- 仓库使用适合 Swift/Xcode 的忽略规则,避免提交构建缓存和个人环境文件;具体配置留待备课。
- 本人设备与获准借用的社团设备均需保护个人账号和凭证,不共用个人凭证;具体登录、邮箱隐私和退出安排留待备课。
- 真实 Build/Run 是实践底线。静态截图记录结果,动态交互和持久化需要通过实际操作核对,不能只看图片推断。
- 不统一要求 GitHub 视频附件,部门课 04 也不强制上传录屏。授课干部可运行源码,或按本课需要约定简短运行记录;媒体细节在备课时确定。
- 课堂复习可选择少量作品了解共同问题,不演变为逐人技术答辩;部门课 08 的职责说明留在本课作业反馈,不转移到部门课 09。
## 七、文件审阅与后续备课
当前工作是文件定稿校对,后续流程为:
- [x] 课程负责人完成文件校对。
- [ ] 提交 issue,请相关人员预览、审核并最终定稿。
- [ ] 审定后分发逐课课纲。
- [ ] 授课干部自行安排备课时间,准备具体讲解、Demo 和必要的作业材料。
逐课课纲是备课纲领,不是完成备课的证明。PPT、文案、Demo、起始项目、正式作业文档和 Treversi 源码在实际备课时准备,不作为本轮文件审定前置条件,也不由本轮自动创建。
不要求每名授课干部逐课试学或完整试讲一次。此前“干部试学”指课程负责人为了对知识点和技术栈有数而进行的学习梳理。授课干部仍需对实际采用的示例和流程进行必要核对,但具体准备方式与时间由本人安排。
部门课 09 只需课程回顾和交流材料,不要求代码 Demo 或正式课后作业文档。
## 八、备课阶段尚待实际确认的条件
以下是后续实施信息,不是本轮文件定稿的待办门槛,也不能视为已验证:
- 学员与社团设备能运行的环境组合,尤其是老旧 Mac 的 Xcode、系统、Runtime 和 SwiftData 兼容性。
- 部门 GitHub 仓库、登录与邮箱隐私设置、Fork/PR 实际流程、模板和工具失败时的求助方式。
- 各节起始项目、演示案例和正式题目能否在所用环境运行,实际课堂容量和作业耗时是否合适。
- Treversi 真实源码的项目结构、`GameState`、`PreviewBoardState` 和观察关系;课纲中的阅读方向不代表源码实现已核对。
- 试听课及部门课具体日期、停课安排、作品展示与报名信息。
- 爱特杯或其他比赛的当期规则,以及课程参与记录在后续部门安排中的正式用途。
若实际条件影响既定知识范围或最低标准,应单独提出调整并确认,不自行扩课、增加考核或替换已定主题。
## 九、课程资源角色
以下为备课参考入口,不是要求学员通读的教材,也不表示当前材料或流程已经验证:
- Apple Develop in Swift Tutorials:授课干部准备零基础示例时的实践参考。
- Swift Coding Club Meeting Plans:课堂活动、迷你作品和趣味变式参考。
- The Swift Programming Language:授课干部和有兴趣学员查阅 Swift 语法,不要求新生顺序通读。
- Apple App Dev Training、Stanford CS193p:授课干部进阶和课后自选资源,不作为九节课共同进度。
- AI 工具:解释概念、提出局部修改和协助排错,不能代替 Build/Run 与个人判断。
- [Apple View fundamentals](https://developer.apple.com/documentation/SwiftUI/View-fundamentals):授课干部准备部门课 3 的 View、`body` 和界面层级口径时使用。
- [Apple Stack 布局说明](https://developer.apple.com/documentation/swiftui/building-layouts-with-stack-views):授课干部准备三种 Stack、对齐和页面拆分示例时使用。
- [Apple Configuring views](https://developer.apple.com/documentation/swiftui/configuring-views):授课干部准备 Modifier 作用对象与顺序示例时使用。
- [Apple Managing user interface state](https://developer.apple.com/documentation/swiftui/managing-user-interface-state):授课干部准备部门课 4 的状态所有权、单一事实来源和 Binding 口径时使用。
- [Apple State](https://developer.apple.com/documentation/swiftui/state):授课干部核对 `@State`、`@Binding` 和 `$` 连接的基本行为时使用。
- [Apple Button](https://developer.apple.com/documentation/SwiftUI/Button):授课干部准备 Button label 与 action 的初学者解释时使用。
- [Apple TextField](https://developer.apple.com/documentation/SwiftUI/TextField):授课干部准备部门课 6 的输入草稿和 Binding 口径时使用。
- [Apple AppStorage](https://developer.apple.com/documentation/swiftui/appstorage):授课干部准备部门课 7 的简单设置、存储标识、默认值和 Binding 口径时使用。
- [Apple UserDefaults](https://developer.apple.com/documentation/foundation/userdefaults):授课干部核对简单非敏感设置的适用边界,不在课堂上展开直接调用。
- [Apple Preserving your app’s model data across launches](https://developer.apple.com/documentation/swiftdata/preserving-your-apps-model-data-across-launches):授课干部准备部门课 7 的持久模型、保存和跨启动读取因果链时使用。
- [Apple ModelContainer](https://developer.apple.com/documentation/swiftdata/modelcontainer):授课干部核对部门课 07 的模型存储容器;其他类型另参照对应官方文档。
- [Apple App organization](https://developer.apple.com/documentation/swiftui/app-organization):授课干部准备部门课 8 的 App 入口、Scene、View 和项目组成口径时使用。
- [Apple Managing model data in your app](https://developer.apple.com/documentation/swiftui/managing-model-data-in-your-app):授课干部准备部门课 8 的模型、可观察状态和 View 数据连接口径时使用。
- [GitHub CLI 登录说明](https://cli.github.com/manual/gh_auth_login):授课干部准备第 2 节浏览器授权和 HTTPS 登录流程时使用。
- [GitHub CLI Fork 说明](https://cli.github.com/manual/gh_repo_fork):授课干部验证创建并克隆个人 Fork 以及远端配置时使用。
- [GitHub CLI Fork 同步说明](https://cli.github.com/manual/gh_repo_sync):授课干部验证部门课 3 以后有作业提交时同步个人 Fork 的固定流程。
- [GitHub CLI PR 说明](https://cli.github.com/manual/gh_pr_create):授课干部验证从个人 Fork 的作业分支发起 PR 时使用。
- [GitHub 附件说明](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/attaching-files):仅在实际选用附件时核对格式、限制和公开访问边界,不代表要求学员上传视频。
- [GitHub 提交邮箱设置](https://docs.github.com/en/account-and-profile/how-tos/email-preferences/setting-your-commit-email-address?platform=mac):授课干部指导学员使用 `noreply` 地址保护公开提交中的个人邮箱。
+130
View File
@@ -0,0 +1,130 @@
# iOS 部门 2026 学年教学方案
> 当前进度:2026-09-03,定稿校对稿,待社团审核
> 课程结构:1 节 iOS 部试听课+9 节录取后的部门课,共 10 节
> 配套文件:[十课初步规划](iOS部2026十课初步规划.md);[试听课课纲](逐课课纲/iOS试听课_部门与开发概览.md)
## 一、课程定位
iOS 部门课程面向接近零编程基础、对移动应用开发感兴趣的新生。课程以 Swift、SwiftUI、Xcode 及常用开发工具为载体,通过相互独立、能力递进的迷你作品,让学员体验页面、交互、信息流、数据和保存等 App 基础单元。
课程不以九节部门课内系统讲完 Swift、完成统一训练 App 或培养独立开发者为目标,而是首先让新生体验到“这是我亲手做出来并真正运行的”东西,建立继续学习的兴趣、信心、基础认识和后续学习的入口。
本方案中的 iOS 部试听课与教学部统一公开课相互独立:
- 教学部统一公开课面向全工作室,由教学部统一组织,不计入 iOS 部自主课程课时。
- iOS 部试听课面向对本部门感兴趣的学员,负责部门介绍、iOS 科普、作品展示和报名答疑,不要求安装 Xcode、现场编程或技术考核。
- 录取后的 9 节部门课负责提供有支架的入门体验、基础工具,以及课程回顾和继续学习的入口。
## 二、教学原则
### 1. 低门槛
- 有实践作品的课程提供经过 Build/Run 验证的 Demo、起点或参考材料,具体材料由授课干部在备课阶段准备。
- 最低完成标准面向接近零基础的学员;建议完成标准用于自愿探索,不作为基础通过门槛。
- 作品原则上相互独立,缺席或一次未完成不会形成长期项目债务;需要整理旧作品时提供可重新加入的起点。
### 2. 真产出
- 部门课 01 以成功配置并运行 Demo 为主,个人修改属于可选尝试。
- 部门课 02–08 通过真实 Build/Run 和属于学员自己的可见修改形成开发体验。
- AI 回复、代码片段、Preview 或静态截图不能替代实际运行;截图等材料只用于记录结果。
- 部门课 09 为课程收束例外,只记录课堂参与,不要求新作品或运行验证。
### 3. 能力递进、允许分层
- 共同进度依次体验第一次运行、工具、页面、交互、信息流、数据、保存和项目组织。
- 不将建议探索、视觉精致度或额外功能变成统一要求。
- 不要求所有项目套用 MVVM;部门课 08 关注职责和数据流,不以文件数量或目录层级判断质量。
### 4. 轻量评价、开放发展
- 作业用于记录参与、尝试、问题和成长,不按代码行数、功能数量或技术复杂度排名。
- 部门课 09 通过回顾、分享和答疑找到继续学习的入口,不增加统一结课作品。
- 完整 App、比赛项目和更系统的技术学习放在后续发展中,不作为九节部门课的统一承诺。
## 三、培养目标
以下是课程努力方向,不作为严苛的逐项淘汰标准。
### 1. 方向认识
- 了解 iOS 部的学习方式、日常活动、作品实践和可能的发展出口。
- 知道 App 的形成不仅包含写代码,也包含问题、用户、界面、数据、测试和反馈。
- 能初步判断自己感兴趣的方向,以及是否愿意继续投入。
### 2. 第一次真实开发体验
- 能在与课程内容兼容的开发环境中打开项目并在模拟器中 Build/Run。
- 逐步学会找到主要代码位置,修改可见内容并观察结果。
- 不因第一次报错就否定自己,知道保留现象并寻求帮助。
### 3. App 基础单元认识
- 体验 View 如何组合成页面,以及操作、状态和界面更新之间的关系。
- 体验列表选择的信息如何进入详情页。
- 体验用户输入如何成为数据并显示出来。
- 体验简单内容如何在 App 重新启动后继续存在。
- 认识项目中的数据、状态、操作与界面可以怎样划分职责。
### 4. 工具与自学入口
- 会使用 AI 建立小型开发起点、解释或调整局部问题,并回到 Xcode 运行验证。
- 逐步学会从个人 Fork 的作业分支向部门 GitHub 公开仓库提交 PR。
- 知道求助时应提供目标、最小相关代码、实际现象和已经尝试的步骤。
### 5. 回顾表达与继续学习
- 能用简单语言回顾一个印象较深的收获。
- 能表达一个下一步想尝试的方向,或一个仍未解决的真实问题。
- 知道可以从旧作品、个人学习、组队和比赛等入口继续实践。
## 四、课程阶段
| 阶段 | 课次 | 主要任务 |
|---|---|---|
| 方向认识 | 试听课 | 部门介绍、iOS 科普、真实作品、课程说明与答疑 |
| 第一次运行 | 部门课 01 | 环境配置、模板项目、组件万花筒和第一次 Build/Run |
| 工具入门 | 部门课 02 | AI 小型开发尝试,GitHub Fork、分支与 PR |
| App 基础单元 | 部门课 03–07 | 页面、交互、信息流、内存数据和轻量保存 |
| 技术拓展 | 部门课 08 | 通过 Treversi 认识项目组织与 MVVM,整理旧作品 |
| 课程收束 | 部门课 09 | 课程回顾、经验分享、逐人轻量交流、后续方向与答疑 |
| 后续实践 | 课程之外 | 按兴趣继续旧作品、个人项目、组队或比赛 |
各课主题、衔接和基本成果见[十课初步规划](iOS部2026十课初步规划.md);具体知识边界、作业层次和验收原则见对应逐课课纲,不在本方案中重复维护。
## 五、授课与学习支持
- 教学角色统一称为“授课干部”,参加课程的学习者统一称为“学员”;“课程负责人”仅指课程整体协调和决策角色。
- 部门课核心讲解尽量在约 40 分钟内完成,60 分钟作为保守预估,不是必须讲满的时长或硬性上限;实际节奏由授课干部结合内容和课堂情况安排。
- 共同跟做与授课干部 Demo 讲解均可采用,不要求所有课程使用同一种形式。
- 实践作业以小而可运行为原则,具体层次由逐课课纲确定;建议投入用于控制负担,不作为计时考核。
- 课前提前发送部门课 01 的安装说明和资料,鼓励先行配置,但不强制;未完成者可以在课堂了解流程、课后继续处理。
- 优先了解学员是否有可用于学习的 Mac;需要使用社团设备时,课程负责人准备同类社团机器核对环境。个人新系统上的成功运行不代表老旧设备也能运行。
- 设备、Xcode、系统和 Runtime 的实际兼容性留待备课阶段验证;发现影响既定知识范围的问题时单独反馈,不静默替换技术栈或提高设备门槛。
## 六、AI、作品提交与隐私原则
- AI 可以生成起点、解释和协助排错,但学员应知道自己要求改什么、运行后发生什么,并自行判断是否保留结果。
- 不向 AI 或公开仓库提供密码、令牌、密钥、私人资料或未经授权的内容。
- GitHub 用于课程作品提交与学习记录;学员通过个人 Fork、作业分支和 PR 提交。
- Git 只承担完成作业所需的最小工作流,不成为复杂的独立考核。
- 公开提交前检查源码、附件和提交作者信息,保护个人身份、邮箱及账号信息;借用设备时同样注意账号与凭证安全,不共用个人凭证。
- 工具故障时保留当前项目、错误和已尝试步骤,通过授课干部约定的渠道求助或记录参与,不因暂时无法发起 PR 否定尝试。
- 具体命令、仓库目录、模板、登录方式和媒体操作由授课干部在备课阶段结合实际环境确定。
## 七、参与记录与反馈
参与记录、基础作品完成和 PR 合并是不同状态:实际尝试可以被记录,不代表作品已经运行成功;作品完成也不等于上传流程已经完成。
验收以对应课纲的最低完成标准和真实运行结果为依据。简短说明用于表达做法、结果和问题;回答不完整时给予反馈,不演变为逐人技术答辩、排名或淘汰式评价。
## 八、文件职责与审定流程
- **教学方案**负责课程定位、授课目标、原则、阶段结构和总体评价。
- **十课规划**负责整体课程设置、各课主题与衔接,以及必要的共同安排。
- **逐课课纲**是分发给授课干部的备课纲领,负责本课目标、知识范围、作业层次和验收原则,不代替具体讲稿或操作手册。
当前处于定稿校对阶段在社团 Gitea 邀请相关人员预览、审核并最终定稿;之后分发给授课干部,由授课干部自行安排备课时间和具体准备。