现代软件工程 教学计划 适应两种难度和重点
现代软件工程 教学计划
经过 2007 - 2018 年,30个不同学校的实践后, 《构建之法》在大学的两种教法已经出现了, 这两种教学计划适应于两种难度和重点。 下面我们具体介绍这两种计划。
1. 软件工程导论(适合大一下的学生,在学过一门编程课之后,代码量:1000 行)
2. 现代软件工程 (适合大三下的学生,先修课要求: 学过编程,数据结构,数据库+操作系统+编译原理+网络 等课程, 有 4000 行以上的代码量)
1. 软件工程导论
特点:这是学生学过一门编程课之后第一次完整接触到软件工程的整个流程。
目标:让学生对软件工程有一个初步完整的了解。
不要求:软件部署到大规模实际运行的平台上。
Week |
Lecture (授课) |
辅导/交流/演示 |
项目 |
作业 |
1 |
Intro (课程简介, 分组) |
使用代码仓库 (github),按照工具,写博客 |
Pair-Project (结对项目) |
博客:课程准备 |
2 |
Software Engineering (软件工程概论), Unit Test (单元测试), Performance Analysis (效能分析) |
博客:快速阅读全书并提问 博客:结对项目总结 |
||
3 |
Personal Software Process (个人软件流程 PSP), Code Quality/convention (代码质量的各种标准,代码规范,设计规范) collaboration (两人合作), influence (影响别人的方式) |
结对项目复审 |
||
4 |
Team Structure & Development Process (软件团队的模式和开发的各种模式) |
如何使用快速原型设计工具 (墨刀 等) |
博客:用快速原型设计工具 | |
5 |
Innovation (软件业的创新) Myths of Innovation (创新的迷思), Innovator's dilemma (创新者的两难) |
讨论热门创新产品 |
博客:分析热门产品 |
|
6 |
NABCD (项目可行性分析) Spec and PM (软件规格说明书, 项目经理) |
团队项目开始 (alpha) |
博客:团队项目NABCD |
|
7 |
Scenarios (基于场景的设计), 软件的 UX/UI |
daily scrum ( 5 天 ) |
博客:scrum 每天一篇 |
|
8 |
Testing (测试) |
Alpha 发布(产品原型) |
博客:测试报告 |
|
9 |
MSF (微软软件解决方案框架), CMMI 软件成熟度模型 Release (软件的发布,事后诸葛亮会议) |
各个小组互评Alpha 成绩 小组成员流动 |
团队项目 beta 开始 |
博客:点评各组项目 博客:小组beta 计划,新成员介绍 |
10 |
请业界人士,研究生来交流 |
daily scrum ( 5 天 ) |
博客:每天scrum 报告 |
|
11 |
回答自己最初看书提出的问题,阅读文献报告 |
daily scrum ( 5 天 ) |
博客:每天scrum 报告 |
|
12 |
(可选)软件工程专题深入探讨 |
beta release |
博客:项目 beta 报告 |
|
13 |
Final Review (最终汇报, 复审,所有分数汇总) |
博客:个人软件工程总结 |
||
14 |
(缓冲) |
(缓冲) |
(缓冲) |
2. 现代软件工程, 软件工程实践
(下面表格是 2010 年设计的教学安排, 之后有不少学校进行了改进, 例如福州大学软件工程课, 请参考。 )
这是一个16周 《现代软件工程》 的课程安排:
教学计划总长: 16 周 (扣除放假之后)
授课: 14 次 老师授课
辅导课: 9 次 (辅导/交流/演示) 学生主动汇报进展, 心得, 提出问题, 老师及专业人士给予辅导。
学生项目: 个人项目, 结对编程项目, 团队项目(两个阶段)
Week | Lecture (授课) | Talk (辅导/交流/演示) | Project | 作业 |
1 | Intro (课程简介, 分组) I-project 个人项目介绍 | 使用代码仓库 (github),博客 | i-project (个人项目) 单元测试,效能分析 | |
2 | Software Engineering (软件工程概论), Unit Test (单元测试), Performance Analysis (效能分析) | 快速阅读全书并提问,发博客 | ||
3 | Personal Software Process (个人软件流程 PSP), Code Quality/convention (代码质量的各种标准,代码规范,设计规范) | Pair project 结对项目 | ||
4 | collaboration (两人合作), influence (影响说服别人的多种方式) | P1 review | Pair project 结对项目 总结 | |
5 | Team Structure & Development Process (软件团队的模式和开发的各种模式) | 如何使用快速原型设计工具 (墨刀 等) | ||
6 | Innovation (软件业的创新) Myths of Innovation (创新的迷思), Innovator's dilemma (创新者的两难) | 分析目前热门软件产品 | 结对项目 2, 分析目前热门软件产品并发表博客 | |
7 |
NABC (项目可行性分析) Spec and PM (软件规格说明书, 项目经理) |
Team Project Kick Off 团队项目开始 Alpha 阶段 |
||
8 | Scenarios (基于场景的设计), 软件的 UX/UI | daily scrum ( 5 天 ) | ||
9 | Testing (测试) | daily scrum ( 5 天 ) | ||
10 |
MSF (微软软件解决方案框架), CMMI 软件成熟度模型 Release (软件的发布,事后诸葛亮会议) |
各个小组互评Alpha 成绩 小组成员流动 |
alpha 阶段发布, 总结 | |
11 | Dev-History (微软软件开发管理的历史,请业界人士来交流) | Beta阶段 daily scrum ( 5 天 ) | ||
12 | Risk Mgmt (软件项目的风险管理) | daily scrum ( 5 天 ) | ||
13 |
(可选)软件工程专题深入探讨, 如:人工智能应用开发 |
回答自己最初看书提出的问题,阅读文献报告 | beta release | |
14 | (可选)个人选作额外的作业 | Final Review (最终汇报, 复审,所有分数汇总) | ||
15 | (可选, 缓冲) |
教材:《构建之法》
其他参考书见书单
现代软件工程 教学计划 适应两种难度和重点相关推荐
- 牛客 Tree(最小深度总和)(两种方法求重心)难度⭐⭐⭐
题目链接 牛妹有一张连通图,由n个点和n-1条边构成,也就是说这是一棵树,牛妹可以任意选择一个点为根,根的深度deprootdep_{root}deproot为0,对于任意一个非根的点,我们将他到 ...
- 使用体系结构权衡分析法(ATAM)对两种体系结构进行评估
论文题目:Evaluation of two architectures Using the Architecture Tradeoff Analysis Method (ATAM) 作者:Mildr ...
- 实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
贺邦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用库函数 ...
- 教你两种黑掉“人工智能”的方法
翻译 | AI 科技大本营 参与 | shawn 编辑 | Donna 近期,微软(Microsoft)和阿里巴巴(Alibaba)先后宣布,其人工智能系统在一项阅读理解测试上打败了人类.他们进行的是 ...
- 以Attention Model为例谈谈两种研究创新模式
在研读AttentionModel相关文献过程中,我再次深切感受到了科研中的两种创新模式:模型创新与应用创新.若干年前,也就是在我年轻不懂事的花样年华里,具体而言,就是在科学院读博士的后期,这种感受就 ...
- kubernetes创建资源的两种方式
一.创建方式分类: 命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1.用 kubectl 命令行的方式直接创建,比如: kubectl run httpd-app --image ...
- 微信公众号开发小记——4.两种邀请用户的方式 扫码链接
描述 假设的我们的服务号有这么一些功能,比如底部有按钮,点击会有一些复杂的功能,这时候可能就需要一个用户系统,有用户系统就经常想要做什么分享邀请新用户之类的,这时候就又有几种方式,1.直接一个连接,让 ...
- k8s 创建资源的两种方式 - 每天5分钟玩转 Docker 容器技术(124)
命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1. 用 kubectl 命令直接创建,比如: kubectl run nginx-deployment --image=nginx ...
- 正确认识使用UML中的类图——辨析类图的两种存在形式
摘要 本文通过对一个"学生选课系统"示例的简要分析与设计,说明UML图之一类图的两种作用及存在形式,以期借此澄清有些朋友可能对类图存在的误解与困惑. 前言 ...
最新文章
- 1.3 万亿条数据查询,知乎如何做到毫秒级响应?
- C#进行Visio二次开发之知识点考核试题
- Apache Log4j2,RASP 防御优势及原理
- P3857-[TJOI2008]彩灯【线性基】
- Adobe illustrator 直接选择工具删除白板 - 连载 6
- 《深度学习》图像超分初识
- 暴跌300亿,“撤离”中国!乔布斯12年前憋的大招,又把一个巨头逼下神坛
- 完美实现类似QQ的自拍头像、上传头像功能!(Demo 源码)
- A股开盘:深证区块链50指数涨0.16%,顺利办跌停
- Windows Phone 7 不温不火学习之《Expression Blend 创建渐变效果和创建Storyboard动画》...
- 菜鸟教程-maven
- Java实现计算矩阵的伴随矩阵、逆矩阵
- ANSI/ISO C++ Professional Programmer's Handbook 7
- 计算机二级和公共英语三级考试时间,英语三级考试时间,全国英语等级考试三级时间。...
- A State-of-the-Art Survey on Deep Learning Theory and Architectures论文翻译分析
- 10---字符个数统计
- 【Linux杂篇】Windows远程登陆Linux、Linux静态IP配置
- HTML5捕鱼php,html5捕鱼达人 游戏源码
- 怎么用计算机求逆矩阵,计算机是怎么求解线性方程的(矩阵乘和求逆)
- android 密度像素,Android屏幕密度适配问题之px,dp,sp等详细介绍
热门文章
- flannel无法跨主机ping通容器的解决方式
- 软件工程网络15个人阅读作业1(201521123029 郑佳明)
- Java-数据结构与算法-逢3减1
- 404页面自动跳转javascript
- 电脑常用操作 (1)
- 《力学》课时二质点运动学(二)
- 【计算机网络复习】1.2.4 TCP/IP参考模型和5层参考模型
- 《动手学深度学习 PyTorch版》学习笔记(二):自动求梯度
- 牛客网--19校招--获得最多的奖金
- 和移动对接短信http协议和cmpp协议那个好_python网络爬虫之HTTP原理,爬虫的基本原理,Cookies和代理介绍...