2018年北航软件工程师资培训总结
一、师资培训的基本情况
本次师资培训的时间安排大致如下:
时间 | 内容 | 工具 |
---|---|---|
第一天上午 | 1. 论坛主题演讲“构建之法教学改进” 2. 软件工程课程概况介绍与培训内容简介 3. 个人和结对编程项目设计详解 |
C++/Java的IDE以及单元测试 和效能测试工具 |
第一天下午 | 结对项目实训:在规定时间内结对完成题目要求的项目,包括需求实现、 单元测试、效能评测;并在全程进行源代码管理,并撰写结对项目博客 |
自动测试工具 |
第二天上午 | 团队项目演练 (alpha阶段):在规定时间内使用原型图设计工具原型图设计, 撰写alpha阶段所需的文档,最终进行阶段评审 |
快速原型构造工具 |
第二天下午 | 1. 团队项目换人 2. 团队项目演练 (beta阶段) |
|
第三天上午 | 1. 团队项目反馈与交流 2. 人工智能+软件工程的介绍:微软AI平台演示,AI 教学体系介绍,案例介绍 |
Visual Studio Tools for AI |
第三天下午 | 1. 论坛交流 2. 演讲 “软件工程教学展望” 3. 颁奖环节 |
在三天的紧张培训过程中,我们主要做了:
- 两场报告
- 由邹欣老师介绍了以实践为核心的软件工程基础课程(构建之法)的发展历史和核心思想。
- 由我介绍了北航软件工程基础课程的总体教学规划以及以实践为核心的教学实践方案,即以个人项目、结对项目和团队项目为核心的“做中学”阶梯型实践训练体系,并重点讲解了个人项目和结对项目设计的基本理念、培养的核心能力以及北航在项目设计上积累的一些经验。
- 一场结对编程实战
在结对项目中,参与培训的老师和助教两两随机分组进行了实践训练——合作开发一个词频统计程序,分别动手实践了构建模块化程序、设计接口API、覆盖性单元测试、与对程序进行性能测试和优化等过程。各个结对小组均按时提交了各自的程序代码,并撰写了程序设计、测试和优化过程的博客。让老师们在实践过程中,体会到课程教学和实践设计的作用和意图。 - 一场团队项目演练
在团队项目的实践中,由于培训时间的限制,采用了以可操作原型设计作为迭代目标的团队实践方式。参与培训的老师和助教们按照兴趣划分为了6个团队,针对不同的软件项目进行了需求分析、功能规格说明书编写以及原型设计,并进行了两轮迭代。各个团队都较好的完成了计划的原型设计任务,并且也在此过程中体验了团队项目实践的过程。 - 人工智能+软件工程
陈彦吉对微软的AI平台进行了演示并作了案例介绍,邹欣老师提出了一个AI 教学体系,并对人工智能开发平台及其与软件工程等课程之间的关系进行了介绍和探讨。 - 颁奖和研讨
对结对项目、团队项目过程中表现优秀的个人和团队进行了颁奖,为参与培训的老师和助教颁发了培训证书,并请参与培训的老师和助教对软件工程教学中存在的一些问题和困难进行了广泛的研讨,并分享了各自对师资培训的感受和体会。
1)培训过程中发现的问题
- 部分教师未能根据预培训文档做好准备,对Git、Github、Visual Studio等编程工具使用不够熟练。
- 大多数老师动手参加了结对项目实践,部分教师编程基础不够扎实,课堂上未完成结对项目。
2)培训过程中获得的体会
- 体会到了学生的不容易
- 体会到了学生基础没有掌握好的情况下,简单问题需要花大量时间的不易
- 发现学习动机在学习中很重要
- 熟悉调试、单元测试、API文档、常用库等,对于软件工程的时间非常重要。如果不熟悉,即便是老师,遇到问题时也都是想从零开始,而不是使用高效的库函数
二、调查问卷分析
在培训前后,我们通过调查问卷的方式收集了参与培训的老师和助教对于开展以实践为核心的软件工程教学的一些反馈和意见,下面是对收集到的数据的一些初步分析。
1)培训前调查问卷分析
共收集有效问卷32份,占总培训人数的89%,培训前问卷为纸质问卷,共6个方面,数据如下:
1. 助教、讲授的课程
课程类型 | 教师/助教个数 |
---|---|
高级程序设计语言、程序设计基础 | 6 |
数据结构、算法 | 3 |
面向对象程序设计 | 3 |
软件设计、安卓开发、软件测试 | 3 |
软件工程 | 17 |
2. 是否以实践为核心
选择 | 选择人数 |
---|---|
是 | 23 |
综合理论与实践 | 2 |
尝试探索 | 3 |
否 | 6 |
3. 推动改革的自信程度
选择 | 选择人数 |
---|---|
缺少 | 1 |
有信心,需要支持 | 21 |
有信心推动课程改革 | 5 |
有信心推动课程群改革 | 5 |
4. 如果不能推动改革,那么不能推动的原因
此题为可选,且为多选题。共有20为教师/助教填写了本题。
选择 | 选择人数 |
---|---|
课程之前学生收到的训练不足 | 8 |
缺少系统的课程体系 | 11 |
来自学生的压力 | 7 |
除此以外,部分教师还做了一些补充:
- 教师自身实践、设计相应教学过程的能力不足
- 新的教学方案需要以课程群的方式来系统考虑和调整
- 以实践为核心虽然有益,但会花费巨大的时间和精力
- 领导压力
- 缺少助教
- 其他课程压力大
5. 是否设计过实践项目
此题为多选题。
选择 | 选择人数 |
---|---|
个人 | 23 |
结对 | 16 |
团队 | 17 |
否 | 2 |
6. 能否独立设计实践项目
此题为多选题。
选择 | 选择人数 |
---|---|
个人 | 24 |
结对 | 8 |
团队 | 15 |
否 | 3 |
2)培训后问卷分析
共收集有效问卷30份,占总培训人数的84%,培训后问卷使用腾讯问卷小程序发放。
1. 对于推动以实践为核心的教学改革的自信程度
选择 | 选择人数 |
---|---|
有信心,需要支持 | 14 |
有信心推动课程改革 | 11 |
有信心推动课程群改革 | 5 |
2. 能否独立设计实践项目
选择 | 选择人数 |
---|---|
个人 | 27 |
结对 | 22 |
团队 | 18 |
3. 项目设计能力是否得到提升
选择 | 选择人数 |
---|---|
思路更清晰 | 22 |
细节更完善 | 21 |
前后衔接更通顺 | 13 |
4. 如果培训实践延长,希望培训能够讲解什么内容
选择 | 选择人数 |
---|---|
项目自动测试 | 25 |
Github团队协作 | 22 |
Git命令 | 9 |
博客园MarkDown | 8 |
班级博客 | 6 |
原型设计工具 | 4 |
5. 对培训环节的评价,1为价值最小,10为价值最多,每一环节得分取和
环节 | 评分和 |
---|---|
第三天 总结交流 | 252 |
第三天 AI开发的三种模式 陈彦吉 | 243 |
第二天 团队Beta阶段 | 195 |
第二天 优秀结对项目经验分享 | 182 |
第三天 AI与大学教育的思考 邹欣 | 182 |
第二天 团队Alpha阶段 | 165 |
第二天 团队项目设计经验分享 罗杰 | 156 |
第一天 软工课程历史与特点 邹欣 | 95 |
第一天 结对项目实战演练 | 93 |
第一天 个人项目与结对项目经验分享 罗杰 | 87 |
三、培训过程中好的做法
1)预培训文档
在培训正式开始之前的几个月里,在北航软件工程课程的助教刘乾、陈彦吉、王辰昱、刘畅、辛德泰、赵奕、索一奇等的帮助下,编写了非常详细的预培训文档,将培训前需要做的准备,培训中需要到的编程环境、辅助工具等的都做了详细的介绍,并按照一名助教对多名培训人员的形式,对参培人员完成预培训文档的情况进行了监督与答疑。
2)结对项目的设计
本次结对项目的设计,在往年的题目的基础上做了进一步的改进,使得题目的描述更加结构化,更容易阅读。尝试构建结对项目题目设计的标准化模板,以便提供给参与培训的老师参考。此外,也初步考虑了Git代码仓库与自动测试程序的配套使用,提升测试过程的效率,减少教师的工作量。
四、不足之处
本次培训是我们第一次尝试进行实训式的师资培训。并且为了让参与培训的师生对于以实践为核心的软件工程教学有一个真实的体验,我们尝试将软件工程基础课程一个学期的课程和实践内容缩减后嵌入两天半的培训中。在培训过程中我们发现其中还存在不少不足之处,我们将在今后的培训中加以改进:
- 对参培教师在培训中的表现与反馈记录得不够细致,评估做得不够细致:
本次培训一共投入了9名助教,按照轮班的形式,从旁协助了培训,平均每个实践环节有3名助教在场协助教师答疑。尽管助教进行了较为细致的答疑,但却没有对答疑对象的行为、表现与对每个环节的反馈进行记录与评估。
缺少细致评估,使得我们不能很好地对每位参培师生的表现进行量化打分与排名,导致我们采用了一些很没有效率的方式才得到最后一日的获奖名单。更重要的是,这使得我们遗漏了大量的参培师生的实时反馈信息,这些信息对于我们进一步完善培训,提高培训质量有重要作用。
同时课程中采用的调查问卷的设计也并不全面,没有能够对参与培训师生在培训过程中的表现,师生们在培训过程中遇到的问题等进行更加细致的分析。
- 结对项目难度稍大,大部分老师一个下午的时间内不能完成:
从最终的完成结果来看,大部分参培教师的代码均没有达到题目的要求,仅有几组教师完成了基本符合要求的可执行代码。同时,在结对项目时,可以看到,题目难度大大削弱了一些参培教师的积极性,这进一步使得这些参培教师在该环节结束后缺少完成结对项目的成就感。这也许会削弱参培教师们选择构建之法教学法的决心。
- 原型设计工具准备不够充足,影响了老师们团队项目的进度:
在团队开发阶段,团队要求完成一个项目的原型,这需要一个团队协力完成,但是一个大部分原型设计工具免费版本并不支持团队协作,部分参培教师是在培训当场才更改为教育版用户(支持团队协作)。这也暴露了我们预配训文档还不够完善。
- 部分事项准备的有些仓促,没有提前做好计划和预案:
特别是在团队开发过程中,对参训师生的需求和可能会遇到的问题没有做好充分的计划和应对方案,使得在团队遇到问题时没有能够及时的提供有效的帮助。说明在培训的准备工作方面还存在不足。
五、改进措施
- 制定一个评分规则,用于助教对参评教师在培训中的表现进行评分。
- 在实践环节中,助教不仅要负责答疑,同时还要记录答疑情况与参培教师表现,并在环节中、环节结束后获取参培教师的第一手反馈,并进行评分。
- 降低项目难度,确保大部分参培教师能在规定实践内完成,同时,将难度过大的部分更改为附加项目,这样能确保在完成基础项目后还有余力的教师,仍然能向更高的难度挑战。
- 完善预配训文档中原型设计工具的内容,增加教育版的介绍与说明。
- 好的方法论与好的工具并行,在培训中不仅向老师展示好的方法,同样也需要向老师展示强大的工具:整理并维护一份软件工程中常用的工具教程合辑,并将其加入到预配训文档中。