天天看點

【老文放出】【思考】基于目前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課程大部分制度缺陷的根源所在。