周三我在上网络课之前和坐在我旁边的当地同学聊天。他是我学期项目小组的成员,因为周二我们正式提交了项目,并给TA做了演示,所以我们这次的聊天内容第一次与项目无关。
他这学期学了一门《人工智能》课。我在一年前的这个时候已经学了这门,不过不是同一个老师教的。之前他给我们说,他们的课程结束后要求写一篇人工智能相关话题的论文,我当时感到略微有些庆幸。我们当时没有这么多要求,除了期中期末考试外,就是四次到五次作业了。作业内容除了第一次是 first order logic 外,其它的都是用 PROLOG 来写程序。
而那天我同学告诉我,他们需要在学期最后做一个项目。我问他是什么项目,他说是用 PROLOG 来实现一个专家系统。因为我这学期学了专家系统这门课,那个时候又一直在琢磨 seminar 的问题,因此一听到他的话有点受刺激──我在真正听这门课之前,对专家系统没有任何概念,而他们竟然在学人工智能的时候就要求写一个专家系统了。如果我在一年前修的是他们老师讲的人工智能,我在一年前就已经能写出一个专家系统来了,和我现在对专家系统的认识自然不可同日而语。
除此之外,我在人工智能课上学的似乎并不是完整的内容。我在这学期上专家系统的时候,经常有老师问“你们在人工智能课上没学这个?”的情况。而我通常是没有这方面的任何记忆。当然也不排除是我忘了的情况,不过我对人工智能这门课感觉还不错,虽然不能说当时比别的课用了更多的时间,但接受程度上来说是比别的课更深一些。而且班上不止我一个人,其他人都没有什么印象,这样我忘记的可能性就比较小了。
这两个老师我都上过他们的课。我先接触的是我人工智能老师(姓名缩写为 JB),是一年前跟他学了人工智能课(姓名缩写为 JA),然后是今年初跟着另外一个老师上了面向对象的课。从我之前的经验来说,JA 明显比 JB 更严一些。我们的面向对象课有一共四、五次作业,几乎都是大作业,交作业的时候除了上传程序外,还要把程序都打印出来。一般来说打印50页纸是常有的事。而且最恶心的是,作业是连环着的。也就是说,第一次作业写系统的一部分,第二次作业让你修改你自己第一部分的代码,加上新功能或者用别的方式来实现。老师在发作业的时候会给你参考答案,但是不准你在下次作业的时候用他的程序。如果第一次作业做的不好,自然会影响第二次作业的成绩。我当时就吃了很多亏。他的做法似乎在系里都流传开了,连其他的老师都有耳闻。像我们这学期的计算机组织课的作业也是连环起来的,但之后的作业是不管你之前写了什么代码,都必须在老师的标准答案的基础上写。老师还提到“不像你们的面向对象作业那样……”,迎来了底下同学的不少赞叹。
JB 老师不如 JA 老师这么难搞。他挺有意思的,似乎是德国人,挺壮的一个人,每次来教师都是单手托着一个大约9英寸的小型笔电,连上投影仪的信号线给我们讲课。小笔电上运行着 Kubuntu,但他不运行桌面,只是开一个 kterminal,什么东西都从终端上运行,比如给我们放录像,就运行 mplayer,幻灯片就是 ooimpress,他还是一个 Emacs 的 fan。有时候他会在笔电上展示 PROLOG 程序,需要在笔电上输入很多字。我一直都坐第一排,离讲台最近的位置,所以看到他那对勉强可以用热狗形容的手指,在那个小小的笔电键盘上敲击的样子,感觉很好笑。
其实说是不公平,如果让我选择的话,我应该还是会选给学生负担轻松一点的老师讲课。之前和另外一位当地朋友 MSN 的时候,她问我最喜欢哪门课?我说如果我每天有至少48个小时的话,我可能会喜欢所有的课;但因为我现在每天只有24个小时,所有的课程都会成为一种压力,让我也说不清楚是喜欢还是讨厌了。