在完成了一個學期的Java課程講授任務之后,我設計了一套Java試題,并于2011年11月22日讓它與學生們“見面”。與往屆Java考試相比,這次我在考試改良之路上走得更遠一些,不僅是開卷,還允許學生帶計算機入場,甚至允許學生上網。不出我所之料,考試完畢之后,就有學生給我發來郵件,敘述其困惑,我覺得學生郵件中所談到的一些問題是比較普遍存在的,所以就將我給兩名學生郵件的回復匯總了一下,希望能對在校的學生有所幫助。 (學生郵件中除了有些錯別子字或不通順的地方我略作改動之外,基本上保持原貌。) 學生一: 考完Java后,想了很久!還是有沒有想明白,為什么會這樣?我真的很認真的去學了(至少比大多數人認真),因為我額外的看了很多書,做線性方程組軟件過程中,我認認真真編程,一步一步實現每個功能模塊,為了做好軟件,我復習了線性代數、數值分析,收獲很多,感觸也很多,在這個過程中,我是快樂的,因為每天我都有進步,我把以往學過的知識做成了實體(雖然做得不是很好,但在這段時間里我盡力了)。我上網,查閱資料,感覺自己不知道的太多了,也感覺了網上學習的快樂和那份帶給我的新奇(一直在接觸新東西)。我覺得我喜歡上了這么語言,也決定學好這門語言,今后走開發路線,靠這個吃飯。課件上的大多數例子我都認真運行,修改后再運行,有時還反匯編一下。 可為什么結果是這樣?沒復習的同學做的比我好,答的比我多。我做生產者和消費者花了很多時間,最后只做成了形如你上課說的主線程運行50次,子線程運行100次,如此循環的效果。而別人上網或者摘抄一下就搞定了,留下時間做后面的題。 其實這里我一直很困惑,我也感覺我被現實打敗了。為什么我一直和別人想的不一樣,你告訴我們網上沒有答案,所以我沒上網,自己做(結果發現很多在網上都有,那些沒復習,沒努力的經過互相討論,摘抄完成得比我好)。為什么別人就能夠想到上網,討論,而我只會乖乖的聽話,毫不懷疑?是我做人的方式出了問題嗎? 雖然說靠投機取巧取得的成果只是暫時的,我也想堅持一些東西。可許多時候我收獲的是“失敗”,我承認我的臨時發揮和理解力不如別人,可我從未放棄過(雖然有時我想過放棄)。我相信學習意味著改變,所以我盡量做的好些。上大學兩年了,我深深體會到分數真的對學生很重要,沒有分數,一切都沒有了(獎學金、入黨、評優),還增加一些無形的心理壓力。我不知道這樣做對不對,我大一的時候掛過一科,經歷了很多心酸的事,從那以后我就回到了三點一線的生活,學習也在一直進步。這次是我沒把握好,如果我差及格線不多的話,懇請老師給我一次機會,我保證下學期和大四上你的課時不會再出現這樣的情況,我會努力去改變! 回復: 等你畢業之后,隨著工作年限的增加,你會發現學校里的考試分數真的不重要,另外一些東西的重要性則日益突顯。時間就象風,風會吹去浮沙,留下的就是真正重要的東西。 我說網上沒有“現成”的答案,是因為許多題是我直接設計的,并非來自于網上,而且題量比較大,如果上網花太多時間,反而影響成績。其實只要有我講課的幻燈片,一個Eclipse,再配合上比較扎實的編程基本功,不上網也能完成這次考試。 做事情僅僅靠勤奮是不夠的,還要多動腦筋,要不斷地尋找更高效的方法,才能在有限的時間內跑得更遠,而人生就是比在幾十年中誰跑得更遠,登得更高。所以勤奮是基礎,但多思可能會發現做事更有效率的方法,兩者結合,才能讓你更為優秀。就這次考試而言,上網搜索就是一個很高效的方法,這些同學很聰明靈活,在這點上你要向他們學習,取長補短,相信最終你不會比他們差的。 學生二: 想了很久還是決定寫這封“求過”郵件,我想老師一定很不喜歡這種行為,但我實在是很恐懼這門課會考砸了。這次考試我花很多時間在前面的題上,有些題雖然我知道大概,但總想著上網找到更完整的說法,等我開始做編程題時發現只有半個多小時,我就徹底慌了,六神無主地看題、答題,最后的卷面讓自己都驚訝了,考完后就差沒哭了,我害怕以后我再努力學習也都失去了保研的機會,害怕給大學的學習抹上黑點..我也知道我應該平時多花時間學習,而不是考完才擔心,可其實我花了不少時間在學習java,老師講的很多理論知識我也認真去理解,只是考完才發現自己平常練得太少了,我都是直接編譯運行老師給的代碼,去理解其中的用法和原理,自己動手編的程序很少,這次的考試大多是編程的實踐題,我就有些傻眼了,以后我應該要努力去提高自己的編程能力,這次考試能不能先請老師高抬貴手讓我通過了T.T。。 慚愧的學生 回復: 對你“網開一面”,就是對其他也付出努力的同學的不公平。所以,我會嚴格按照試卷判分,不特殊對待任何一個同學。 我覺得你努力是努力了,但學習方法不得當,其實在第一節課我就講了學習編程技術的方法,而我設計的考試試題,也是力圖將大家向這個方向引導。 學生再發郵件: 金老師,謝謝您對我努力的肯定,這對我來說很重要。老師能不能對大家都網開一面,改松一些呢,這樣說會不會冒犯老師了,額。。覺得大家這學期選的課都挺多,有些超負荷,望老師諒解。 回復: 在公平的前提之下,我打分是很松的。 (附:現在大學里分數對學生還是很重要的,所以我基本上是這個觀點:給學生判分盡量往高里判,這樣不會影響學生出國或保研,更有利于在中國這個大環境下實現教育的最終目標。 其他老師可能會同意或不同意我的這種做法,沒關系,我覺得只要公平就好) 以下是另一個學生的郵件,不是上面談到的本科生,而是旁聽我上學期OOAD課程的一名研究生的郵件: 尊敬的金老師: 您好 感謝您在幫忙之中能夠查閱我的這封郵件,我是宇航學院研二的學生,在研一的第二學期我旁聽過您的《面向對象技術與方法》課程,您的這門課很精彩,您飽含激情的授課方式也讓我甘之如飴,讓我學到了專業外的很多知識。 我之前有過.net的一點點基礎,也非常愛好這門技術,所以我想在這個方面進一步的深入學習,由于我是非計算機專業的學生,沒有足夠的時間與精力來學習.Net。在最近的兩個月中,我使用Wpf框架構建了一個《論文管理系統》軟件,每當我在編寫這個軟件的時候,我發現我的思路根本停不下來,不由自主的想隨著自己的想法將軟件一步一步的編寫下去,但是我知道自己專業的重要性,所以主要的時間都放在了自己的專業學習上,但是在學習自己專業知識的過程中,會突然蹦出一個想法來改善自己的軟件,這樣就導致了學習效率比較低下,有點像玩電腦游戲上癮了的感覺,呵呵。 我知道自己專業的重要性,也希望在.Net這個框架中有所建樹,至少在這個框架中達到一定的專業水平。但是精力又限制了我的想法,所以在萬分迷茫之際,不得不叨擾您,向您請教幾個問題,以期在您這樣的高度能夠解決我心中的問題。 1,您覺得非計算機專業學習.Net的前途光明嗎? 2,您覺得.Net的發展前景是怎么樣的呢?與JAVA競爭能成為主流嗎? 3,您覺得非計算機專業的人學習數據庫還是學習網絡更要有競爭力呢? 4,您覺得我應該怎么對待我的業余愛好與專業之間的關系呢? 5,您覺得我應該或者是能夠利用業余愛好創造點經濟效益嗎?這個問題比較功利,您可以直接無視之 PS: 我的專業是導航方向,也就是關于GPS導航、慣性導航。附件中有我最近編寫的《論文管理系統》軟件,是基于.NET3.5框架編寫的,需要至少offce2007以上版本的支持。 我針對他提出的5個問題的回復: (1)只要真正學好了.NET,前途是光明的,跟你是不是計算機專業畢業的沒有太多關系。 (2).NET與Java基本上處于這種情形:各有生存空間,誰也吃不掉誰。 微軟的世界里, .NET是最主要的應用程序開發與運行平臺,即使是在微軟的“云”Azure中,你也會有一臺跑著.NET的Windows虛擬機可用,另外,有了.NET基礎,開發Windows Phone和XBox應用也很容易,你會發現它們使用相同的編程語言和開發工具,擁有高度一致的基類庫和編程風范……,除非你跳出微軟平臺,否則.NET還是必須要掌握好的。 (3)數據庫和網絡學精了都能很牛,但如果兩者都只是掌握皮毛,那就杯具了。 (4)如果你真心喜愛軟件開發,或者是很不喜歡現有專業,請在研究生畢業時義無反顧地進入IT行業,現在就業形勢還不錯,相信你能如愿的。如果你不討厭你的現有專業,對軟件開發的興趣又不是非常強烈,那么我建議你還是以你專業為主線,以軟件開發技術學習為副線,副線為主線服務。具體地說,你要看看你的專業與哪個計算機開發領域技術最相關(比如你可以看看你們導航領域最牛的軟件系統是用什么開發出來的),就抽時間去學習它。我相信你是一定能找到與你專業最相關的這個技術的,因為現在我還真沒有發現能不用計算機技術的行業。 (5)如果有可能,一定要創造點經濟效益,這不僅能改善生活,更能極大地增強你的自信心,并敦促你進一步學習,也許一不小心,你就成了某領域中介于牛A與牛C之間的人物,作用太大了 :) ============================================================ 希望我的這些建議能對所有想努力學習的學生有所幫助。如有不妥之處,敬請其他老師、學生或業界同行指正。 作者:金旭亮 |