作者anfranion (南‧生命的意義是經歷)
看板NTUcourse
標題[評價] 97-2 設計模式與軟體開發 陳俊杉
時間Mon Jul 6 10:20:45 2009
※ 本文是否可提供臺大同學轉作其他非營利用途?(須保留原作者 ID)
(是/否/其他條件):
是
哪一學年度修課:97-2
ψ 授課教師 (若為多人合授請寫開課教師,以方便收錄)
陳俊杉
δ 課程大概內容
物件導向的Design Patterns,主要就是四人幫的Design Patterns
(就是上課用書那本的內容)
剛開始會簡單複習c++多型,解釋什麼是patterns,然後會教基礎的UML
才開始進入patterns的細節
Ω 私心推薦指數(以五分計) ★★★★★
★★★★★
η 上課用書(影印講義或是指定教科書)
Design Patterns - Elements of Reusable Object-Oriented Software
by Eric Gamma, Richard Helm, Ralph Johnson, John Vlissides
(俗稱Gang of Four, GoF, 四人幫)
Addison Wesley出版
本書有葉秉哲博士翻譯,培生出版的中文翻譯版,基本上翻譯品質還不錯。
μ 上課方式(投影片、團體討論、老師教學風格)
投影片,講義就是投影片,但是會有留空的地方,也會給範例程式碼
老師用平板電腦上課所以用投影片用得很順暢,寫字也很清楚
上課之中也會穿插問題,最常見的答案是這樣才有flexibility (笑)
Design Patterns其實本來就是在探討怎麼樣的設計才能夠讓整個系統有彈性
另外,這學期多了Lab實作課,老師會出題目讓你練習patterns,
Lab是開放討論的,所以其實很歡樂,只是速度要注意,在Lab完成跟回家寫
(只有一天的時間可以寫)的分數會有差異
σ 評分方式(給分甜嗎?是紮實分?)
我覺得算紮實偏甜,應該說只要你有用心做,分數都不錯
系上有強者學長拿了97,不過我沒有看到有人被當掉(應該是大家都有做出成品)
配分比例我忘記了,而且因為期末考最後沒考所以應該有調整
ρ 考題型式、作業方式
只有作業沒有考試,老師每次都說「可能會有考試,但是機率不大」
作業的部分主要是每週一次的Lab還有一個期末Project
另外還有出過兩次作業:重構一個簡單的小系統(CAD/CAM),以及
找patterns的known use
期末Project是比較重的部份,一開始會要你回去想你想做的主題,
然後要針對它做presentation。
最後全班只會選出三個主題,在這三個主題中你可以任選一個當作你的
期末Project主題
選完題後約莫一個月有一次progress presentation,要做出可以跑的東西
期末考完後會找一天做Demo(附食物)
對了,第一份作業跟期末報告都要交report,說明你用了哪些patterns,
並劃出系統架構圖。
p.s. 第一份作業跟期末Project是兩人一組,第二份作業是個人為單位
做presentation時要寫互評
ω 其它(是否注重出席率?如果為外系選修,需先有什麼基礎較好嗎?老師個性?
加簽習慣?嚴禁遲到等…)
一開始沒地方說,總之這門課其實是土木所電腦輔助工程組的選修課
只是我們系上可以算成系外選修,加上以前修過的學長推薦,
所以我就拉我同學去修了
身為資工系的小菜鳥,整個有勇闖冒險島的感覺
老師都會給加簽也會給旁聽,但是一開始老師的確有要我跟我同學再想想,
畢竟小菜鳥來修研究所的課,要很有勇氣(但是加我我們總共有四個同學去)
這門課在土木系的設定是C++程式設計→物件導向程式設計→Design Patterns
所以其實是程式系列最高階課程
所以你一定要有C++的基礎,也要有物件導向的概念,這個部分老師在上學
期有開課,可以去修。
(資工系自己開的物件導向是教Java,我這學期同時修兩門課其實常常會
不小心把語法搞混囧)
不建議寫程式經驗很少的人去修,除非你有要被磨練的心理準備
我在這門課之前幾乎沒寫過什麼C++,只有寫過C,但是寫程式的經驗算還可以
主要是靠我寫C++的同學罩我,沒有她我會死很慘|||
老師不點名,多數的修課學生老師本來就都認識(研究生),
而且老師很親切可愛!!
另外,負責Lab的助教也是很認真的好人!!
因為我常常很像死小鬼\( ̄▽ ̄|||)地去吵他,
他還是超有耐心地回答我的問題!!
Ψ 總結
總之這門課是我大一下最重的一門課,不過也是學到最多的課
他只有3學分可是上課時數應該有5~6個小時,屬於需要投入大量時間
的課程。我們做第一份作業花了超過一百個小時,寫程式本身不是問題,
主要是要用patterns去思考、重構一個系統其實不太容易,需要經驗
然後期末Project讓我看了好幾天的日出′▽`)
但是patterns的東西本來就是要實際寫了才會更理解,所以投入時間很值得
只是要用什麼樣的pattern,是designer's choice,需要經驗,這點只能日後去
慢慢累積起來,才能越做越好。
對於軟體工程&軟體設計有興趣的人可以來修,其實我一開始完全不知道這門課
在教什麼,只知道是C++的課,想學一下C++就來了,我連patterns是什麼也是
去了之後一兩堂課才有點概念的
我們自己系上也有開Design Patterns的課,不過方向好像有點差異
主要是土木所CAE組應該是工程取向,老師本身也做很多很多工程
雖然程式碼可能不是寫得非常漂亮(老師我沒有批評的意思Orz)
但是經驗很豐富,外加有Lab實做,讓課程整個很充實
(而且就像我說的我一開始不知道這是什麼課,所以也不知道系上有開,
還有就是系上開在上學期,而我那時只是課表還有空在找課修)
這算是專業課程,所以這篇提供的資訊應該只對少數人有幫助
但是如果你是那少數人,外加你有心、願意花時間,
那非常推薦你去修這門課!
大致是這樣′▽`)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.0.42
→ reldahs:南! 07/06 14:37
→ anfranion:小小~~~~~~~~~~~ >////< 07/06 14:59
推 yamigo:大一就去修 , 超拼 @@" , 我碩一才修 07/07 15:49
推 telgniw:推好老師 07/28 13:50