2018 北航软工教学培训小结
《Software Engineering》 教学培训小结
1、简介
- 时间: 2018年 7月9日--7月11日
- 地点: 北京航空航天大学 计算机学院
- 内容:
- 《软件工程》课程教学组织介绍、
- 项目实践教学讨论与切身体验、
- AI 工具介绍
- 教学研讨
2、 主要收获
主要谈谈实践环节的收获、经验及教训。分结对项目和团队项目:
2.1. 结对项目
任务:
主要是采用结对编程的方式完成一个词频统计软件。博客详细给出了需求
和我结对伙伴是来自武汉地质大学的尹志诚小伙子。过程:
大概4个小时,完成了一些基本功能。完成的软件 Github 地址。介绍的博客见尹志诚的博客收获:
(我在博客评论中也提及了)- 结对的助教同学学习能力强、学习方法好。表现在:对 Java 中不太熟悉的 api 函数,能够快速在线帮助文档里找到介绍,快速阅读并掌握其用法。
- 志诚同学做事情时刻有提高做事效率的意识。如,我们两个对 Intelij IDE 编程其实都不太熟练,但是志诚同学在编程的过程中,善于总结一些需要反复执行的操作,有意识地去百度一下这些操作的 IDE 快捷键,能够提高效率。BTW:补充一下,快速注释的快捷键是 command+「/」。
- 志诚同学项目设计有条理。项目设计讨论时,采用了自上而下、逐步求精的思想。并且有意识地在设计过程中遵循信息掩蔽原则、局部化。如将一开始 放在main.java 中的 map1、map2 移动到 lib.java中;合理调整public、private;有意识地封装一些反复使用的函数,如判断字符是否是字母、数字、分隔符等。当然,现在看来,用函数的方法,影响了程序的性能,因为需要对每个字符进行判断,函数调用的开销很大。下一步应该改为正则表达式。
- 志诚同学做事有担当、认真。晚上回去还修复了一个 bug。
教训:
- 需求文档读的不仔细,急于上手编程序。表现在,遗漏了2个功能,最终完成的软件没有实现这2个功能。错失了结对编程获奖的机会。
- 对一些技术采纳方案没有充分调研。对分词的处理采用 if... else 方式判断,处理起来程序结构显得冗长、复杂;在搜索分词解决方案时,我已经看到了正则表达式处理方式、并且也知道这种方式更优秀,但由于依赖与助教写的传统的处理方式,懒惰而不愿意说服助教采用较好的方式。
2.2 团队项目
-
任务:
主要团队完成『自动评测系统的设计』(alpha/beta阶段)。需求简要描述
:在软件工程课程中,个人项目的测试一直是一个难以自动化的问题。不同的学校的项目题目不同,测试代码也不一样,每一届助教都需要手动测试或费时费力写一个自动批处理测试的程序。但在助教们使用的过程中发现,实际上大部分测试的大部分步骤都是可以固定下来的,比如说爬取Github仓库,命令行批处理运行等。希望能开发一个软工OJ,它的扩展性比较强,可以稍微定制化。比如能处理数独、能处理四则运算、地铁线路规划这样的题目作业的自动判定测试。它不仅能支持软工题目自动评分、还能支持代码查重、代码规范评分等,同时其定制化的成本不要太大,最好能够支持助教使用不同的语言来利用平台。 -
收获:
- 我们团队成员组成全是老师,多数老师有过使用类似系统的经验。对需求把握比较准确;在考虑需求时,能从现实出发。
- 在设计时,围绕用户切实的需求
- 了解原型工具构建软件。可以用原型更直观地表达系统。并与团队成员沟通
- 学会妥协。意识到要尊重他人的意见,辩证接受他人观点。
- 学会有意识地向别人传递自己的观点;有意识地把大伙儿天南海北的 BS 揪回到讨论主题上来。
-
教训:
- 对别人的否定意见不够冷静,容易采用(半)讽刺的言语,不利于沟通。
- 对一些反应比较慢的队友没有耐心,合作气氛不好。
- 主导讨论话题的能力还不足。七嘴八舌之间缺乏影响团队其他成员的技巧(语言技巧等)。
三、 其他点滴收获
- 跟邹欣老师接触,感受到理想的力量;
- 跟罗杰老师接触,感受到激情的魅力;
- 跟助教协同工作,感受到年轻的活力。
其他:
- 北京的气候不错(竟然没有沙尘暴,就是下了些雨,鞋子竟然没有湿透)
- 北京的饭菜不错(这么咸也可以吃下去)
- 北京的地铁不错(竟然能挤上去、挤下来)
- ... ...
四、补充
跟邹欣老师结缘源于2014年夏天。那时我正忙于完成博士论文的撰写。一天,我在微博上收到出版人周筠老师的信息,她说,说微软的邹欣正准备出版一本软件工程方面的教材,看到我在新浪博客上写的一些关于《软件工程》教学一些文字,问我是否愿意帮忙看看邹欣老师的书稿,提提意见或建议。我欣然接受了周筠老师的邀请,前后粗略看了一下书稿,惊奇于邹欣老师这本书的清新出奇的写法(相比于国内很多《软工工程》教材的老气横秋的笔法)。后来在与周筠老师断断续续的交流中,了解到他们的目标远远不止是出版一本骨骼清奇的《软工》教材,而是在国内《软工》教学的方法上引入
"做中学"的理念,再后来,发现邹欣老师他们的理想远不止于此:他们想在国内计算机专业教学中更多的引入"做中学"的方法。 可贵的是,他们不但想了,还去做了。在这个过程中,我也得到了很多帮助,在 南通大学计算机学院《软件工程》教学上做了一定的改革,有一些收获和教训。也算是丰富了人生的经历啦!