程設二上課心得

相見歡

我因為轉來資工系,尚未修滿兩門程式設計課,到了大三才去上大一的程設課。剛好這學年何祖鳳老師休假回來,網路上、同學間都有人推薦過老師的程設課。他的課是在一般教室而非電腦教室。我認為教程式理論是不需要電腦的,且一般教室更有助於師生互動,故特意選修他的課。

但是我現在已經大三下,資料結構、演算法、作業系統的課都修完了,現在還要花時間學基本程式,難免會覺得太簡單。我也有問過老師:能不能不來上課?

接著老師出了一些問題,我幾乎回答不出來,老師直接和我說:「不要好高騖遠。」這句話讓我感到很羞愧,並直接把我點醒,讓我知道我哪裡不足。我也不把學習當一回事,連教科書都沒有。我自知理虧,中堂下課就去把教科書借來看了。

推薦的理由

首先,老師擅長把複雜的觀念講得淺顯易懂,甚至以「何祖鳳教得最好」自豪。例如:將資料型態解釋成 “a set of value”, “a set of operator”、物件是使用者自訂的資料型態、記憶體位址比喻為門牌號碼。讓原本艱深難懂的知識都有了簡單的解釋。

再來,老師會利用進度之餘,準備資料介紹其他東西,共有 AI 時代因應措施與物件導向概論兩個主題。讓學生除了學習基本程設之外,還能知道為什麼要學這些東西。

老師除了在課業方面,還會在乎學生的品行,落實銘傳「人之兒女、己之兒女」的教育宗旨。包括提醒學生:不要上課隨意進出教室、不要上課戴耳機、不要上課睡覺跟做自己的事。其實這些事情我自己也會做,因為我從沒換位思考過。我很感謝老師的提醒,讓我知道如何能更好。

最後,何老師很嚴格、有原則,打成績全照規定。即使知道我有程度,但是沒去考 CPE 就是沒成績;有次上機考當天有事,為求公平還是沒辦法讓我補考。儘管老師在課堂上公正無私,但是平時見面還是會互相問候,是個很親切的老師。

上課狀況

平常上課我每一次都有去,因為我已經了解到自己對 C++、 物件導向並不熟。有時候老師重複講解觀念,我就會做自己的事 (也是課業上的),但是我能隨時進入狀況並回答老師問題,還能指出有疑慮的地方,和老師討論。

有一次老師上課看錯,我花了幾天完成一份報告來討論這件事,並寄信給老師。我翻了兩本經典原文書,看了 C 語言標準,找出 C 語言中嚴謹的定義,包括 Lvalue、記憶體「物件」、運算式、敘述。老師也回信說我了解得很透徹。

後來老師上課時和我說,我鑽得太深、太理論了!我後來舉程式錯誤造成空難的例子,說明每個細節不容馬乎,老師也表示認同。

我們這學期唯一的程式作業是分組專案。不同於我不喜歡的解題、撰寫小程式,這次是分組合作,並製作出真正的軟體。在我過去的分組合作中,大部分人直接用 AI 工具來代寫作業,並隨意交差了事,這讓我不愉快。對我來說,AI 是個不得不面對的挑戰:因為一不小心就會全抄,失去對內容的掌握;有時提問會得到錯誤答案,自己很難去發掘。儘管和同學合作上不順利,又遭遇 AI 時代變遷,但我還是把握學習機會,並從做中學。

結語

在學期的尾聲,我有一些遺憾:

第一個,我比較少和同學討論。我自認我有一些程式底層的了解,我對鮮少拿出來和同學討論而感到遺憾。教人不只會得到成就感,也會讓自己的觀念更清楚。

再來,我時常缺席助教課。我們的助教學長很願意教、也很有趣,幾乎每一週都有開課。其實這正是在課外補足知識、跟學長學弟交流的好時機,並一起帶動好的學習風氣。

這學期課程除了把程式設計、物件導向學好,最大的收穫是認知到把打好基礎的重要性。有了這些基本知識後,才有辦法談論更深的內容,也能讓別人考不倒我,深深影響著後續課程與職場的表現。