【老文放出】【思考】基于目前OO课程的一些制度问题引发的思考

本文写于2018-06-08 11:19,之前为仅在内部传阅的思考文,于近期(2020-12-12)得以放出

在博文中,笔者已经讲述了目前遇到的一些比较明显的问题,也进行了一些初步的思考。

然而,通过进一步的思考,笔者觉得,很多的问题,看似无关,实则背后有着很相似的逻辑共性。

笔者将在这篇文章内对这些问题进行制度思维方式层面上的讨论。(不仅局限于OO2019的课程改革,更可以作为日后全部课程改革的一些理论依据)

明确课程定位与方向

这门课程,全称叫做“面向对象设计与构造”。

看似简单的标题,然而,要说定位的话,可能性实际上非常多

  • 让大家掌握面向对象的Java语言(包括多线程)程序编写?
  • 让大家熟练运用并理解面向对象设计构造思想?
  • 让大家体验工程开发,领悟工程思维?
  • 让大家全面养成工程素养,形成产品意识?

然而,根据笔者和老师们、和学长学姐们(包括往届的各个助教们)的交流,却发现,大家对这门课程的定位差距相当大

  • 大多数同学,认为应该第一种定位(甚至更低,面向分数编程的人也不在少数)
  • 其中一位14级助教认为,满足第一种定位就差不多了,能第二种更好,不过也没关系(因为觉得代码规范工程规范啥的,进企业之前都有入职培训,没有大关系)
  • 笔者本人认为,应该最起码达到第三种定位层次(实际上第四种已经接近软件工程和产品设计范畴了,不过尽早学习也是件好事)
  • 吴际老师本人的大致意思,大概是至少第二层次,理想状态下达到第三层次,且保证大家都具有第三层次实实在在的体验(JSF、单元测试、正确性论证等)。

根据笔者对于同学们实际学习效果的观察,大家实际的收获如下:

  • 大部分同学,实际上课程结束后能达到的水平,大概不到第一种定位(看似能写程序,但实际上Java根本没入门)
  • 对于较为优秀且以前零基础的同学,大概能勉强达到第二种定位(基本理解一般的面向对象设计思想)
  • 对于极少数以前有丰富代码与工程经验的同学,可以进一步强化第三种甚至第四种定位

不难发现,大家(甚至包括课程制度制定与改进者内部)对这门课程的目标与定位是存在明显的认知差异的。而同学们实际获得的收获更是参差不齐(或者说整体水准偏低)。

定位这件事,一定是要明确清楚的。因为这将直接决定学生们为什么目标而努力,直接决定助教们应该如何找到一个合适的平衡。总的来说,定位,决定了整门课程的走向,以及所有人努力的目标

问题永远应该尽量在上游解决

就拿我们OO2018课程来说,很多地方都在体现着这样的思维方式——不公平、不正义,没关系,反正后方有其他政策支撑呢。

这种思维方式的制度看似的确挺合理。可是,实际情况大家都看到了,这样的制度体系饱受诟病。

这是为什么呢?我们再来分析下这背后的逻辑。

首先,一般什么样的制度会被用来当做后备保障制度呢?很显然,这样的制度常常具备以下的一下特点:

  • 高度的可靠性和质量
  • 同时,成本较高,不方便大范围采用(如果方便广泛使用的话,那么根本就没必要摆在最后)

所以很明显,后备保障制度的正确打开方式是——在主流问题已经得以妥善解决的情况下,确保漏网之鱼也能得到妥善解决

换句话说,后备保障制度是用来扫尾的,所以根本不应该允许太多的问题流入后备保障制度环节

最典型的例子,OO2018课程中,助教的仲裁处理相当不及时。

表面看上去,似乎助教工作不力,似乎助教团人手不足。可是根据笔者从助教那边了解的情况,每次作业的仲裁都至少有大几十条甚至上百条,如果想认真负责地全部处理的话,其工作量可想而知。

之前看过有些同学的吐槽,还有觉得助教团应该如何如何的。可是,这件事情的根源在于本不该流到后备保障环节的问题还是太多了

不仅如此,从影响的角度考虑,正义也应该尽可能一步到位,不正之风应该从源头上杜绝。毕竟,无论从哪个方面来看,正义都具有明显的时效性。维护风景最好的方法,应该是不让花瓶掉下桌子,而不是该瞅着点的时候在那溜号开小差,然后花瓶掉下桌子之后手忙脚乱用胶水给糊上

综上,笔者认为,在设计制度的时候,应该在上游就充分解决问题,后备保障制度仅仅应该作为规模可控的补充手段。这样不仅利于提高整个制度体系的运转效率,也能极大减少对外的负面影响,让大众更加相信我们维护正义的能力,这一点至关重要

专业化理想化的模型,未必都适合还在成长期的学生

其实,目前的课程制度,不管被如何如何的吐槽,其合理性依然是存在一些的。毕竟是老师等专业人士们指定的政策,其出发点一定都是让学生有所收获的

或者,也可以说,如果目前制度的玩家,都是一群训练有素,且具备基本职业道德和职业素养的工程师们的话,根本不会有现在的问题,一个都不会有。

可是,事实上我们的玩家都是一些学习阶段,且并不具备任何工程思想也基本不具备职业素养的新手学生

具体的来说就是这样的:

  • 工程师

    • 我们如何构建可靠地工程
  • 科学家

    • 我们如何在学术上取得突破
  • 学生

    • (较弱的学生)我们如何不挂科
    • (普通的学生)我们如何拿高分
    • (普通的学生)我们如何顺利毕业
    • (稍好的学生)我们如何顺利保研
    • (优秀的学生)我们如何学有所成

没错,这就是思想层次的巨大差异

然而,不仅如此,这些思想层次的差距,还并不是短时间内可以有效弥补的(从根本上而言是长期教育的问题,本文与本课程不作过多讨论)。

既然如此,我们不难发现在用户定位上,这件事就已经存在了较大的差异。那么直接将产业用工具或方法,运用在学生身上,则十有八九是不合适的

惩罚措施应当适度,滥用高伤害无益于解决问题

说到这个,现实中这样的例子有很多:

  • 秦朝,崇尚法家思想,严刑峻法。一点点小罪就动辄敲膝盖挖眼睛,戍边队伍迟到一天就全员斩首。结果呢——“今亡亦死,举大计亦死,等死,死国可乎?”。戍卒叫函谷举,楚人一炬可怜焦土。秦朝成为了中国历史上最短命的封建王朝(公元前221年-207年,从统一六国到灭亡仅有14年)。原因呢?族秦者,秦也,非天下也。使秦复爱六国之人,则递三世可至万世而为君,谁得而族灭也?
  • 现代社会,似乎文明了很多,甚至很多令人愤恨不已的罪行最终只是关上几年就放了。殊不知,二战前的美国发布了禁酒令,且配套了严厉的惩罚措施。结果呢?酒在明面上买不到了,在黑市上却大火了起来。而吃这行饭的各个黑帮也借此机会大赚一笔,实力蓬勃发展。而后由于黑帮之间争夺利益,官黑勾结等情况,造成了严重的社会动乱,最终不得不取消了这一法令。
  • 殊不知,曾经台湾立法,规定绑架犯一概死刑。怎么样解气吧?凶残吧?结果呢?犯罪率丝毫没有下降。最为讽刺的是,绑架案中人质的生还率倒是降低了很多,为啥呢?因为罪犯一看情况不妙,纷纷选择直接“毁灭证据”,赌上一把,反正大不了横竖是个死。

最典型的例子,在我们的课程中,JSF的评价伤害极高(动辄二三十分,而一般情况下找bug几乎超不过10分,整个作业的基础分也只有二十多分),且公平正义难以保证(即便实际上保证了,但是大众不这么认为的话等于没保证)。这对于制度内的学生,则意味着:

  • 同学们的一切努力,在JSF的伤害面前,都不够塞牙缝的。
  • 同学们找对方再多的bug,在JSF的伤害面前,更是微不足道。
  • 同学们再实事求是,再对学术负责,也没有有些良心从来不痛的投机者过的滋润,赚的分多。

所以,这些结果是明显可以预见的:

  • 同学们不再那么愿意努力写程序,反正再努力要被JSF扣死的。
  • 很多同学不再那么愿意找bug,反正再努力也要被JSF扣到负分的。
  • 甚至部分同学已经开始不再愿意实事求是,而是靠JSF的投机来试图赚取暴利(而且还零成本,排除道德的话,目前的制度下这种做法真的可谓是零本万利)。
  • 鉴于以上情况,同学们交了善良税。于是从此寒心,彻底选择佛系,放弃努力(这就是自从规格作业上线后,大家的真实状况。事实证明,哪怕一颗老鼠屎也是可以腥掉一锅好粥的)。

综上,笔者觉得,高伤害不是解决问题的万能手段。适度施加压力,平衡制度刚需与人心,让大家重视且恰到好处,才是更为妥当的方式。实际上,因势利导,从源头上减少不良情况的发生才是终极思路

制度内的人眼中的世界,比制度制定者眼中的世界更重要

正如上文中的那句话——即使实际上保证了,但是大众不这么认为的话等于没保证

就这门课程而言,同学们如何看待OO课程,很多时候不完全取决于我们做了什么,而取决于我们让他们认为我们做了什么

而一定程度上,同学们如何看待OO课程,也在影响着大家的配合程度。

而配合程度,则很大程度上决定了开展工作的顺利程度,以及同学们真实的体验。

所以,笔者觉得,应该尽可能让大家对课程制度更有信心并理解我们的付出。例如:

  • 部分信息应该透明公开,让大家心中有数
  • 申诉仲裁处理应该更为高效,让大家相信公平正义的存在
  • 其他一些相关政策也可以制定的更加友好一些,让大家更有努力的欲望

综上所述,笔者认为,虽然作为一门课程,首要任务是培养学生的素养和能力。但是,也正是因为这个,所以这些制度上的问题更加是不可回避的。如不加以妥善的解决,则必然导致学习体验难以提升。

说到制度,都是面向人服务人的。而既然和人打交道,且要达成预定目的,那就自然应该首先从人的角度考虑问题,而不应片面强调学术层面的需求。笔者认为,这一点也正是目前OO课程大部分制度缺陷的根源所在。

posted @ 2020-12-12 22:13  HansBug  阅读(419)  评论(2编辑  收藏  举报