学校教学工作新精神

记得不全,大概有下面几个:

  1. 必须累加式考试
  2. 提倡开卷考试
  3. 提倡重视作业、实验
  4. 大班课拆成小班,推动课堂互动
  5. 所有课程本学期必须有改革

幸亏我这学期没课,否则就惨了。前三条我都做了7年了,第4条中的课堂互动也做了7年了。现在让我咋做能去满足第5条呢?再改回去?看来得琢磨怎么再去引领下一个7年的教学发展方向了,:-)

Android 中文联系人拼音排序及检索补丁3.5版 for Android 2.1/eclair (测试版)

下载地址:

http://sunner.cn/pinyin-patch-eclair-beta.zip

由于本人没有装eclair,所以不能测试。有谁在用,就帮忙测试看看吧。

用dmidecode查主机信息

要给一台服务器升级内存,懒得去机房查型号,就用google发现了dmidecode这个linux命令。用它轻松了解了主机品牌、型号、内存型号和布局等许多细节信息。记录一下,备忘。

阿拉丁自动排气阀HV30C使用经验

家里暖气本来就不暖,还总憋气,害得我天天都要挨屋放气(俗称放跑风),累死了。

玩史上最著名的水暖工——超级玛丽——的时候突然想到,难道就没有能自动放气还不漏水的排气阀吗?于是在taobao找到了阿拉丁HV30C。先买了两个试验了一下,然后又买了5个,把家里所有暖气的跑风都换成自动的了。它的优点如下:

  1. 确实能自动跑风,而且滴水不漏。我是用一个保鲜袋套上然后扎好口,测试了若干天得出的结论。
  2. 手动自动二合一,而且手动放气的时候比一般的需要用钳子、或螺丝刀的跑风要方便,只要用附带的一个很小的U型扳手轻轻拧就行了。只用手指也差不多能对付。
  3. 做工和用料都不错。比如它和暖气结合部的密封胶圈非常好用,我只用手就拧就做到密不透水了。

缺点:

  1. 跑气的速度比较慢,低于注气的速度。看资料,是和温度、压力有关系。可能我家暖气温度不够高,所以慢吧。不知道温度高了会不会好一些。
  2. 有寿命限制。三年后就得换芯才能自动放气,手动不受影响。还好,换芯超级简单。

这回家里又一大心病解决了!

游戏给教学的启发(1)

如果学习能像游戏一样好玩,那该多好。学生开心,老师也不用发愁了。游戏为什么好玩呢?

我的经验,好玩的游戏至少要具备如下几个元素中的一个或多个:

  1. 由浅入深的挑战
  2. 输了再来
  3. 成就感
  4. 梦想成真
  5. 有趣的情节
  6. 漂亮的画面

应该还有其它元素,欢迎来访者补充。后续文章中,我会逐条想象如何在教学中体现出这些元素。

如果如果成立

我又开始悔恨了。今天搜文献,发现了一篇博士论文《Web Browsers as Operating Systems: Supporting Robust and Secure Web Programs》,不禁慨叹,这本应是我的论文标题的。

论文作者Charlie Reis和我差不多的时间博士入学,他现在已经是Google的员工了,参与的Chrome项目已经影响了世界,而我还在这里幻想CTOS能这这那那呢。另外,他长得和我也有几分相像,简直就是老天创造出来气我的。

今天还看了李菁小盆友分享的《Cultivate Team, Not Ideas》,看得我脸红一阵白一阵,脖子只冒冷汗,直怀疑她就是共享出来寒碜我的。自己现在的执行力确实太差了。很怀念硕士毕业前的我,每天都能很充实地做事情,从一早做到很晚,不知疲倦。现在,虽然也是从一早做到很晚,但效率极其低下,中间总被各种事情打断。有些事情是天上掉下来的,我不得不被打断,但更多的是我自找的,比如周期地check mail,check reader,check bbs,check blog,check cms,check renren,check 241……今天又加上了一个check buzz。天天就在check和reply中度过大半时间,效率当然低下了。

我有了个idea,可以做个脚本,每次运行后,就屏蔽以上网站1个小时,这样我至少能维持一个小时的连续、专心的工作。这个idea不错,待我check一圈后再想想啥时候实现它吧。

2010年考研操作系统统考试题挑刺

操作系统教学中,我经常向学生灌输一个观点,就是不要对操作系统的知识太“较真”,因为这东西本身就完全是人造的,没有任何自然定律支配它,所以什么是对,什么是错,咋说都有道理。学操作系统的关键在于要领会精神,了解细节,但不要纠缠细节。比如,我们都知道操作系统提供给应用程序的接口是“系统调用”,这个貌似没有争议。但如果硬找麻烦的话,对于像DOS和一些嵌入式OS等不区分用户态、内核态的,应用程序除了系统调用,还可以直接读写内核空间里的数据,直接调用甚至修改内核里任意一条指令;对于Java OS(别讨论它是不是OS,因为OS压根没有精确的定义),应用程序和系统之间的接口是Java API,根本到不了系统调用的级别。

所以,我认为机械的选择、判断题根本不适合操作系统这个博大精深的东西,很难经得起推敲。甚至于说,操作系统根本不适合被考试,不适合用简单的“对”和“错”来评价一个学生对这门学问的理解。最近拿到了2010年考研统考题的真题和官方标准答案,从中找到了不少刺,再次证明了我的观点。摘录几个:

23题:

下列选项中,操作系统提供给应用程序的接口是
A. 系统调用    B. 中断    C.库函数    D. 原语

标准答案是A。

挑刺:

  1. 很多系统的系统调用都是用软中断实现的,所以不能说中断就不是这个接口。
  2. 大多数应用程序都是通过库函数间接调用系统调用的,而操作系统可以将库函数和内核、系统程序等打包在一起提供给用户,所以库函数也是一种接口。这个命题让我想起我在课上问过的一个经典问题“扫雷是不是Windows操作系统的一部分?”
  3. 不过,从选出“最符合题目要求”的答案角度看,这道题还能算是合理的。

24题:

下列选项中,导致创建新进程的操作是
I. 用户登录成功    II. 设备分配      III. 启动程序执行
A. 仅I和II    B. 仅II和III    C. 仅I和III    D. I、II和III

标准答案是C,仅I和III。

I.的挑刺:

  1. 用户一定是OS用户吗?FireBBS系统中的BBS用户,只要连接进来,就建立进程,然后才是登录操作,而且无论登录成功还是不成功,都只是这一个进程为其服务。
  2. 就算用户是OS用户,假设这是一个字符界面的单用户的简单系统,启动后,shell就控制着终端,等待用户输入用户名和密码。验证通过后,shell才打印命令提示符,并接受用户的命令。这样,在用户登录过程中,没有任何新进程被建立。

II.的挑刺:

  1. 很多虚拟设备都是靠建立进程实现虚拟的,比如spooling方式的虚拟打印机的实现就可以这么做
  2. 一定有物理设备驱动程序的设计中,就用到了进程,每当这个设备被分配,就建个进程做些数据处理之类的工作。我举不出具体的例子,但相信肯定可以这么做。

III.的挑刺:

  1. 这个描述本身就不清楚。是“启动程序”被执行,还是启动一个程序并执行?
  2. 如果是“启动程序”被执行,并把启动程序理解为boot,那么这时候还没有进程的概念呢
  3. 如果是启动一个程序并执行,那么这个程序必须是应用程序吗?就不能是中断响应程序、引导程序、子程序什么的吗?就算它是应用程序,进程A调用execve()启动程序B,这个过程中有新进程建立吗?

45题:

题目太长,不敲了,是关于C-SCAN算法的。这道题刚考完试的时候,就有考生提出了质疑。这个考生能在高压力的考试情况下看到这一点,很厉害。这个争议的根源在于对C-SCAN算法描述的差异。统考的事实标准参考书(汤子瀛编著)里,说C-SCAN扫描的最远点是有访问请求的点,还有些资料(我查阅了《Operating System Concepts》,wikipedia)里说C-SCAN扫描的最远点是磁盘边界。汤式C-SCAN在这些资料里叫C-LOOK。虽然描述不同,但他们都是对的,思想上是一致的。46题涉及的Clock算法也有类似问题。这并不是问题,因为真正研究操作系统的人都不是学究,不会追求与教科书保持一致,会根据自己的需要去改造、创造算法。但在考试中,这就是问题了。不看汤本的学生,在这道题上会多少遇到一些杯具,至少得多费点儿时间。这很糟糕,有点儿颠倒。

说这些,不针对任何人,任何组织。我本科时学的就是汤老师的教材,对我的帮助很大。命题人的工作做得已经相当好了,能明显看出来他们在费尽心力地精确题目描述,避免各种意外。但没办法,操作系统这门学问的本质决定了,它不可能被机械地考核。考试形式不改,统考的制度不打破,就不可能真正地考查出学生的实际水平。

网络改变教与学

网络改变教与学,是1月25日,在我们举办的全国高校程序设计课程研讨会上做的报告。这次会见到了不少认识但没见过的朋友,也认识了不少新朋友。做报告的时间虽然有点儿紧,有些地方没有展开说,但基本还是成功的。希望越来越多的教师能够喜欢在课程中使用网络工具。

四年反抄袭,终于可以做总结了

我的教师生涯曾经差点儿毁掉。曾经有那么一段时间,我想消极地对待教学工作,不想再像费脑筋设计实验,不想再想费力气批改实验,甚至不想用心上课。原因是对学生“抄袭”的失望与无助。那时我觉得我做的一切努力都是徒劳的,都被“抄袭”轻松地抹煞了。批作业时,觉得自己就像一个在办离婚手续的地方推销玫瑰花的傻子,不管自己多么认真地书写评语,屏幕那一端都是一个猥琐的面孔在嘲笑我的自以为是。这时,一个在加拿大留学的同学告诉我moss的存在,于是我得救了。

moss是专门为检测源代码抄袭而设计的,可以瞬间从数百份源代码中找出一对对的疑似抄袭,支持很多种编程语言,而且有很多非常贴心的功能。比如教师可以给出框架代码,学生程序中出现的框架代码会被忽略;可以设定n份学生程序中都出现的代码被自动忽略;有可视化程度非常好的结果显示。它还可以处理中文的纯文本文件。Car现在正搞的Duplication可以处理中文的doc和pdf,也是功德很高的一件事。

moss的客户端是用perl编的,只能在命令行使用。我做了它的moodle插件,使在moodle中调用moss变得非常简单。

moss只是反抄袭的一个必要条件。它只是刑侦过程的一部分,还必须有刑罚过程配合,才能收到效果。

moss给出的结果只能是参考结果,还需要人工审核。moss的结果中排名越靠前的,抄袭的嫌疑越大,但并不绝对。是否雷同,要综合考量作业内容,难点、要点,相似比例和代码行数等。

moss查不出捉刀代笔的。针对这种类型的抄袭,我设计了让TA和学生面对面评分的策略,通过直接询问,看学生是否能解释程序。就算学生是找人帮忙完成的,这种方法也能逼迫他去了解程序,一定程度上也促进了教学效果。这种方法还有一个附带效果,就是可以对每名学生做个性化指导、总结。

抄袭确认后,必须有惩罚,否则就是鼓励抄袭了。惩罚的策略我一直在不停地摸索,寻找最优解。现在觉得,基本找到了。

学生抄袭无非是想用最少的力气获得最大的分数。惩罚就要反着来,让他什么都得不到。所以,凡是抄袭,当此作业0分是必须的,是最公平的,容不得半点讨价还价的余地。但这样会造成一种“不抄,0分;抄,最坏也是0分,如果运气好没被雷,就不是0分了”的状态。所以,惩罚必须更重。我的方法是“抄袭当次及之前所有的作业成绩都清零”。这样的好处是越往后越不敢抄,尤其那些曾经侥幸漏网的抄袭者。

假设一门课有8次实验,占总成绩的50%。如果一个学生不幸在第6次实验被雷了,他通过考试的希望基本就渺茫了。为了挽救他,我设计了“期末考试达标,实验成绩恢复”的策略。比如承诺只要期末考试能考到80分以上,被连坐清零的实验成绩都恢复。如果他是个值得挽救的人,那么后面的时间,就一定会更加努力学习了。

反抄袭的一个负面效果,是会“害”一些立志改行的学生。他们可能有自己的理想与特长,但被机械的制度圈进了一个自己不喜欢的专业,去学一些没兴趣的课程。如果他成功混到毕业证,拿着文凭出去闯,很可能会改行成功,创造一番事业。反抄袭,使他们很难混,很可能会毁掉一个未来的人才。对此,应该把每次实验的及格线都设得比较低,较易达到。这种策略对后进同学的帮助和鼓励作用也是很大的。

反抄袭没有技术难度,工作量也不大,最难的是坚持。对此持反感态度的学生是占多数的,得顶住这个压力。待到期末时,学生们回想这一学期获得的,就会感激这份坚持了。

我决定支持互联网实名制了

几个月前看到方滨兴院士倡议网络实名制,当初不以为然,但今天突然领悟到了他老人家的深意,这完全是为中国的未来着想呢,相当的有远见,院士想问题就是不一样。为什么呢?说来话长。

想我大二小屁孩的时候,第一次上网,发现老外那边刚发布新版的winzip,我这里就能下载到,不禁狂呼:“互联网必将使中国的科技与世界同步,我们不会再落后了!”

12年过去了,我们虽然还是落后,但确实基本与世界同步了,最新的信息、paper都能在第一时间看到,理解力、执行力不如人就是另一回事了。

但是,我们靠互联网拉近的与世界的距离,却就要因网络封堵而被拉远了。

我是一介良民,一个按时交纳多年党费的党员,从未有过翻墙看不和谐东西的念头。就连在墙外生活的那段时间,也没去想起来去看。互联网对我来说,是做科研、教学、生活和娱乐的一个工具。但这么平民的需求,也被GFW弄得支离破碎。比如我在google sites上为我的小家建了个主页,上面只有小两口的打情骂俏,记录每天的鸡毛蒜皮,供退休之后慢慢回味。但很不幸,google sites被和谐,我的甜蜜浪漫也就只能作罢了。随之一起远去的,还有我和一些朋友在sites上做得两个项目的所有文档。

好吧,我可以舍弃小家,但你不应该阻挡我一颗拳拳的科技报国心啊。android和chromium与我的科研有很大关系,它们的主页上有大量详细的开发文档,都被和谐着。网上搜索资料,凡是链到blogspot、wordpress这样的,一律都无法访问。Google groups上有科技价值的新闻组、论坛以万计,我很喜欢看,但现在看不了了。G1手机随时收email本来好好的,最近也经常卡壳了。以前在google docs上收集的一些数据永远无法访问了,做的幻灯片再也不能离线播放了。幸好wikipedia解封,让我感激涕零,由衷高呼“吾党吾国,英明神武,万岁万岁万万岁!”

近日风传,要搞什么“白名单”,大意是名单之外的国外网站一律不许访问。这世界上还有比互联网更深邃的宝库吗?现在已经不是一部《四库全书》就能囊括一切的时代了。每天都有成千上万的网站诞生,上面有最新鲜的资讯,它们肯定不会很快出现在“白名单”中。这种做法,就是另一种形式的闭关锁国,固步自封啊。

怎么办?怎么办?我的科研,我的生活,难道必须要倒退吗?一道闪电劈中了我,使我明白了,只有实名制才能救中国,的互联网。因为实名制后,政府就可以详细记录每个人在网上都看了什么,就不用对网络进行任何封锁了。每个上网的人都要自律,坚决不去看那些不好的东西。如果看了,jcss马上就会知道,就会请你去躲猫猫。

所以,恳请有关部门赶快推进实名制吧,赶快监视我的上网记录吧,只要我想访问哪里就能访问哪里就好,我保证乖乖地!