月度归档:2011年06月

我为什么爱说难听话

今天是很奇怪的一天。

从中午12点到现在,两个多小时的时间里,我在工大最敬重的两位老师,不约而同地先后找我谈话,起因是我在博客和微博上所说的很多话,引起了很多人的关注,引发了一些声音。他们完全出于好意,劝我以后不要再这样。

这篇帖子的内容还没有正式实施,就引起这么大反应,确实出乎我的意料。但想来也合情理。前些天工大宣传部长曾跟我说,他经常关注我的博客。而那篇帖子在工大博客的镜像居然被管理员推荐到了today的首页。这完全不是傅大哥的一贯作风啊,您是想帮我还是害我啊?:-)

蜘蛛侠有句名言:“能力越大,责任越大”。套用到我这里,现在是“关注越多,责任越多”。我觉得我现在很有责任要正经八百、密不透风地写博客和微博了,不能再像以前那样率意而为,以为这里就是自己家的地盘。所以今天写此篇,严格总结一下我为什么会说那些与官方言论不符的话,也就为什么总说难听话。

先从我引起议论最多的一句话谈起:“教学法研讨会十多年,满篇只见教师的高谈宏论,却罕见学生的些微声音,使我们的论文集更像是自娱自乐。

这句话被解读为对学院十多年传统的完全否定。有否定吗?有。完全否定吗?当然不是!为什么会有人认为这是完全否定呢?我分析了两点原因:

  1. 我们更习惯先听一些赞美之词,然后被“但是”一下。这样说话,肯定不是完全否定。如果有人上来就讲“但是”之后的话,那被理解为“完全否定”就情有可原了。这问题必须从我自身改进,以后不能犯懒,觉得已经满大街都是赞美话了,就不想再重复。一定要为“但是”做足铺垫。
  2. 即便我本意真的是“完全否定”,被这句话刺痛的人我觉得也没必要做什么反应。为什么呢?因为您反应了,说明您在乎自己的成果,对所做工作很看重,对学院爱护有加,但是,却说明您“没自信”。如果有人对杨振宁说“你的诺贝尔奖是假的”,杨振宁肯定什么都不解释;当有人对唐骏说“你的学历是假的”时候,他非要做各种辩驳。这就是自信心的不同。注意,我这个例子不是拿唐骏比喻谁谁,而只是想说明自信的重要。自信了,就可以坦然面对一切非议。但为什么会有人不自信呢?一种是唐骏这样的,肯定真没自信。另一种,就是研讨会这种情况,也是我重点要谈的观点。

在旧文《最难了解的是自己》中,我曾回顾真言堂带给我的林林总总,到最后最直接的成果就是“自信”。因为那上面学生夸我的、支持我的话,都是在匿名情况下写的,是真心话,可信度高,所以我就会特别自信,乃至后来再有骂我的,我真就压根不去一驳了。但很可惜,不是所有的人和组织都有这样的渠道去获得自信。

就说咱们的教学法研讨会,它真的很成功。一个能坚持十年的研讨会,这份执着就足够打动人的了。无论投稿、做报告,还是参与讨论,我每年都会始终保持着认真与热情。每年,我也都能得到收获,也都能享受到分享的快乐。每年会后,也都会有“胜利召开”的新闻稿广为流传,大家也都兴高采烈地相约明年再来。但是,所有赞美之词都是自己人说的,尽管说得都是真心话,可还是会让人不太容易相信是真心的,然后就累积到现在的不自信,进而听到一句逆耳的话,便认为这是在“完全否定”。

很多人从未听过深刻的批评,对赞美也将信将疑,导致不自信;不自信导致面对批评就失态;失态导致更听不到批评的话,也就更只能骗自己去相信那些赞美……如此往复,如此往复……

我曾深深地为批评所伤,但从中却汲取到很多营养,时至今日仍很感激那些批评过我的人,无论他们的动机如何。所以,我现在也喜欢说难听话,无论对谁,因为这样才能让对方相信我的赞美的真诚,才能过得更自信。

两位恩师,如果您能看到这里,请接受我的道歉。我并没有如您所忠告的那样闭嘴,反倒说得更多。但请相信,将来我一定会说得更得体,更丰满,更易于被接受。我之所以这样固执地坚持,是因为我爱这里,和那些在网上吐槽的学生一样爱着这里。因为爱,所以我们才会说三道四。如果我们认为我们只是过客,只是来利用这所大学,那么各取所需之后,我们早就欢呼着走开,头也不回。

最后引用我的一句旧话:“当言论突然放开时,真的是能吓死人的。但只要坚持住,若干年后,无论听言的还是发言的,就都能享受到开放言论带来的好处。”

希望今年的研讨会能录用我的,哦不,应该是学生们的那篇稿子。谢谢!

支持Moodle 2.0的在线评测2.0开始公开测试了

项目主页、下载地址、安装说明等都在:https://github.com/hit-moodle/moodle-local_onlinejudge

它并不是1.x的简单升级,而是完全的redesign,和近乎完全的recode。主要改进:

  1. 架构上分成三个部分:judgelib、judge和client。
    1. judgelib是一个函数库,以local插件的形式安装到moodle中,对外提供评测接口
    2. judge是judgelib的子插件,可以叫做评测引擎插件。现在支持sandbox和ideone.com两种引擎,还可以扩展到更多
    3. client是和最终用户交互的插件,它对用户提供界面,对内调用judgelib做评测。现在只有一个作业类型插件,还可以扩展更多,比如测验插件、活动插件等等
  2. 作业插件支持多文件编程(仅限sandbox)
  3. 管理员可以设置一些全局设置
  4. 教师可以设定自己的ideone.com账号,避免了免费账号判题次数的问题,还能通过ideone.com管理学生的程序
  5. 可以一次只重新评判一名学生

暂时还未完成的1.x的功能包括:

  1. 显示学生程序的输出给教师。这个功能将改进成显示更详细的程序运行信息
  2. 代码加亮预览。因为moodle 2.0的变化,这个实现起来稍微有些麻烦,正在寻找最好的解决办法

1.x用户将moodle升级到2.0后,可以直接升级online judge 2.0,原有作业都会被继承保留。

欢迎测试!发现任何问题,有任何意见和建议,都请在项目主页的issues中提出。多谢!

另外,后续版本的发布可能不会再通过博客等媒体宣布,请在github上watch本项目,以便随时了解最新动态。

再另外:

  1. 热点提问支持moodle 2.0的版本早已经在了,而且可以算是稳定版,欢迎使用
  2. 支持Moodle 2.0的MOSS反抄袭将是接下来的开发焦点。现在的代码还很惨不忍睹,很不建议试用,不信可以在github上看看

最后:诚征志愿者帮我们解决各种issue,详见《志愿者指南

征集对哈工大计院和软院教学工作的吐槽文章

各位计院、软院的同学,及所有网友们,

我正在准备一篇叫《学生网文杂陈》的文章,准备发在这个暑假举行的两院的教学法研讨会上。这是一个内部的研讨会,论文集也只有两院教师会看到。这篇文章的第一段会这么写:

“我喜欢听学生对现行制度的抱怨,因为坐而思是起而行的先决条件。不满,才会想着去改变。况且,不满本身也是推动制度进步的一个很重要的因素,如果所有工大的同学都有着……一样的不满,舆论的力量就会对体制产生影响,推着它不得不向前走。”

——一名计算机学院毕业生

任何没有反馈,或者不针对结果进行修正的系统,都不会发挥出最大功效。教学法研讨会十多年,满篇只见教师的高谈宏论,却罕见学生的些微声音,使我们的论文集更像是自娱自乐。

几年前,我曾向一名颇有思想的毕业生征稿,让他写篇四年的感触,发到研讨会上。他充满热情,欣然应允,然后最后时刻还是自己放弃了。个中原委,不言自明。

一件好事,却无人敢做,这实在是不幸中的大不幸。但我们的学生始终是充满激情的。这些年,零零星星在网上看到很多学生写的文章,表达他们对教学工作的各种看法。这些基本都发在他们自己影响力非常小的博客上,读者寥寥,差不多只是宣泄一下自己的感情而已。只有我这样“别有用心”的人才会四处搜罗这样的文章。今年,我终于鼓起勇气,将这些文章汇聚到一起,展现在这里。阅读之前,请先注意以下几点声明:

  1. 所有引用的文章都未经过原作者同意。虽未署名,但往往仍能根据所述事情推断出作者身份。他们当时都未曾想过文章会被他人看到,只是宣泄一下感情而已。所以请不要因为这些文章,以任何形式对作者本人做各种有违师道的事情。文章造成的任何不良后果,责任都由本集锦的编者——孙志岗——一人承担。
  2. 无论褒贬,文中所有人名、课名等特指性名词一律以XXX代替。虽根据上下文也许能推断出XXX所指,但切勿妄加推断。
  3. 为保持完整性,所有文章未经删节。
  4. 我已尽全力搜集各种文章,但定有偏颇。只能保证,选用文章的标准里,没有任何个人喜好、感情作祟,力求客观。

紧随其后就是罗列一篇篇网文的标题和正文。

虽然现在我手上已经有若干篇文章,但难免偏颇,所以这里向大家广泛征集各种文章,要求:

  1. 必须是针对哈工大计算机或软件学院的
  2. 内容可褒可贬,百无禁忌
  3. 文章必须发表在本博客发表之前

如果您有好的素材,无论是别人的,还是自己的,都请将链接发给sunner@gmail.com,我会对投递者保密,谢谢!

所有学生都会用git和github的世界可能会非常美好

Git是版本管理工具的小字辈,但后生可谓,瞬间让所有前辈都黯然无光。github.com是项目托管网站的小字辈,但后来居上,现在已经成为开源软件首选的家。不到一年前,几经朋友推荐,我才开始尝试了解它们,随后就被它们完美秒杀了。本文并不想介绍它们的细节,网上有成群的资料。在这里只想谈谈,假如计算机和软件相关专业的学生,如果从一入学就掌握了git的使用,并依靠github来管理自己所有的大小作业、课程设计、毕业设计和各种创新项目,那么我们的世界可能会变得非常美好。

  1. 秉承版本管理工具的一贯优点,可以让编码的过程中烦心事少很多,代码丢失不再存在
  2. 它们可以让分组项目中的协作和讨论更方便,管理更容易
  3. 它们可以让教师直接在网上监控学生进度,在网上直接做指导
  4. 它们可以便捷地统计出合作项目中每名学生的工作量和工作时间
  5. 它们会让学生在做事的过程中更有条理
  6. 四年累积的代码很有历史的厚重感,而且自然而然地形成一份个人的简历
  7. github本身就是一个非常棒的了解、使用和学习各种开源软件的地方

反正我觉得会非常美好。但让学生接受,可能是最大挑战吧。