探索更有效的交流方式——苏铅坤(集美大学)
作者:苏铅坤(集美大学)
1. 写在前面
很荣幸能参加构建之法教学论坛,对于新入职,第一次上课,而且还是大课(4个班, 125人),采用新教学方法的我来说,简直是福音。通过这次论坛,不仅解决了我在教学过程中碰到的诸多问题,而且还意外收获了一些新的知识。衷心感谢邹老师、周老师的善举。同时感谢主办方福州大学数学与计算科学学院,体验特别好。在我看来,整个会议下来,没有出任何差错,想必付出了很多努力。
北航将数据结构、算法、面向对象、软件工程作为一个整体,统一规划,使得课程间衔接 紧密。这种方法让学生增量、迭代地得到训练,更有效地培养了学生开发复杂软件的能 力。
2. 受益匪浅的地方
以下列出本次参加论坛最重要的两个收获。
2.1 统一规划课程
受到这个启发,我进一步往前想,能不能把规划的课程范围扩展展计算机专业的所有专业课程。我的理解是这样的,现有的计算机专业课程肯定是经过统一规划的,规划的思路是按先行课程来,比如操作系统的先行课程是数据结构、计算机组成原理。这样,把课程抽象成点,可以得到一个拓扑关系图,再按这个图来安排课程。这样的安排导致的结果是一上来就给学生上计算机导论,到很晚(有的甚至到大二)才接触到编程,学生一开始就觉得枯燥,慢慢失去兴趣。
所以,我在想,能不能换另一个角度来排课程。从学生的学习角度来排课程,比如大一一上来就给他们上个Python,让他们尝个鲜,做出一些有趣的东西出来,让学生保持兴趣。然后,再引导学生深入原理、底层的东西,比如编译原理、计算机组成原理。
进一步想法
如果大部分课程都采用博客的形式提交作业,那么学生4年下来,找工作的时候,自己的博客可以很自豪地写在简历上,想必对他们找工作、申请研究生/博士,也会有帮助。 除此之外,我想的是,可以鼓励学生使用问答社区(比如StackOverflow)、编程竞赛网站(比如topcoder)等,并且作为课程考核的一个指标(或者通过附加分的形式存在)。比如Python这门课,到课程结束的时候,看学生在StackOverflow Python标签得到了多少分。顺便提一下,之所以鼓励学生使用StackOverflow,是因为通过使用这个平台,学会如何问问题(show what you have done)。据我个人使用SO的经验,几乎所有编程类问题,只要把问题问好了,都能得到解决。
2.2 助教体系的构建
我8月中旬的时候,才被告知要上软件工程这门课,当我看到这门课的教学安排时,我第一反应就是,批改作业的工作量实在太大了。幸运的是,邹老师帮我找了两位实力超群的助教。我也时常在想,明年的软件工程,我怎么找到助教。
这次刘乾给了一个很好的思路,培养一个助教梯队。北航将之付诸实践,也取得了成功。这样的方法是一个持续的过程。
基于我们实际情况,我想到的一个方法,比如这学期,我和黄巧玲老师都在上软件工程课程,在课程过程中培养一些助教,供给下学期张敏老师的软件工程用。张敏老师软件工程课程有一些学生给我和黄巧玲老师接下来的课当助教,这样,就解决了助教可持续性问题。
进一步讨论:如何点评作业?
作业由助教批改,助教通过博文留言的形式给学生点评作业,所有作业批改完,助教再发布一次作业总结及点评。
老师也想在课堂上点评作业,如何点评?
将学生所有作业浏览一遍?这个工作量太大了,不过,张栋老师做到了。
由助教在批改作业的过程中,挑选一些代表性的作业,老师集中阅读。
老师抽几篇阅读(比如得分最高的、最低的博文),再结合助教的点评。
很想知道,其他老师有没有更好的方法。
3. 更有效地交流
目前,这门课教学的交流方式主要是微信群。个人认为,使用即时通信(比如这里的微信)进行学科交流讨论有一些明显不足。
3.1 目前交流方式不足
(1)信息碎片化严重
一个问题通常由很多条短信息组成,要是一天没看,点击直接是几百条。很难有耐心逐条认真看完。
(2)有价值的讨论重用率低
在提问之前,先搜索下是否有相关问题,但这一点在微信上的确很难,搜索能力是一方面,信息碎片化是另一方面。
这样的结果是,一有什么问题就直接在微信提问,一个问题被反复回答。
3.2 探索更有效的交流方式
基于以上不足,我想到了如下方法,并附上自己的一些想法。
3.2.1 类似于StackOverflow
我喜欢的讨论方式是像StackOverflow那样:
提问:把一个问题问好。展示自己对这个问题已经做了哪些工作,碰到什么样的问题。另,达到一定级别的用户,可以修改提问内容,完善该问题。
回答:回答问题,并根据评论完善答案。另,达到一定级别的用户,可以修改提问内容,完善该回答。
SO设计了一套很好的激励机制,整个社区氛围特别好。这样下来,提问者在提问的时候,可以先搜索下相关问题,如果现有答案未能解决TA问题,TA再提出问题。解决了信息碎片化和重用率低的问题。
哦,刚才看了下,StackExchange的确有软件工程的问答网站:https://softwareengineering.stackexchange.com/。 当然,咱们更希望有一个专门针对这门课的一个独立网站,以下是我的一些想法:
(1)利用问答开源系统自己搭一个
这种问答开源系统还真不少,比如 Question2Answer, OSQA。我自己曾经用OSQA在亚马逊云搭建过一个,但很快就碰到了一个问题:垃圾评论太多。设计一套好的激励机制成为难点。
(2)在现有系统下开设一个标签
国内编程问答网站做得最好的大概是SegmentFaut (https://segmentfault.com/),不知道有没有可能在这个网站弄一个叫软件工程的标签,这样关于这门课的问答可以集中在这个标签下面,也方便寻找。
3.2.2 其他方式
(1)讨论组
谷歌有这个的产品,叫Google Groups。不知道,国内有没有相应的产品。
(2)邮件组
我在开始上这门课之前,就想创建一个邮件组(比如qa-se@mysite.com (mailto:比如qase@mysite.com)),把我和两位助教放在一块,供学生答疑用。这样的话,学生有疑问只要给 () (mailto:qa-se@mysite.com)qa-se@mysite.com (mailto:qa-se@mysite.com)发邮件就可以了,我和助教都能收到邮件。
我自己有独立域名,也使用过网易、腾讯、阿里的企业邮箱。但邮件组也许是很过时的产品或者说舆论控制的原因,我没有找到邮件服务商提供这个服务。(网易虽然有创建邮件组的功能,但死活无法创建)
欢迎交流,期待大家的指点。
- 点赞
- 收藏
- 关注作者
评论(0)