[評價] 100-2 劉邦峰 高等程式設計

作者: s864372002 (鋼琴)   2012-08-23 14:03:10
既然Jennya熱心舉辦了這個活動就來趕個死線共襄盛舉一下( ̄▽ ̄#)﹏﹏
★ 本文是否可提供其他同學轉作其他非營利用途?(須保留原作者 ID)
(是/否/其他條件):

★ 若滿分五分,則私心推薦幾分?
4
★ 課程大綱
一、 Programming style
Debugging
二、 Template
Operator overloading
Interitance
Polymorphism
三、 Divide and conquer
Greedy method
Dynamic programming
Graph algorithm
Search (沒上到)
Data structure (沒上到)
★ 上課方式(投影片或是板書、老師教學風格、是否英語授課)
投影片授課,每年長得差不多僅微幅修改,可以到歷年課程網頁下載。
內文大多是英文,偶爾出現中文便是P老師要傳授的重要哲理,
有些課的最後一堂是「OO與人生」,ACP卻不時可見到電腦科學與人生的連結。
如果莊子內篇養生主還不夠,你可以在這裡找到金剛經和大般涅槃經。
講解相當仔細,如果有人表示聽不懂或提出問題,老師會重新講解/討論,
直到疑惑解除(趕進度時除外)。結果進度有點拖到,最後兩個主題上不到。
每次上課會隨便挑一個數字(大多是當天日期),依照座位蛇行報數,
從中獎的同學開始,依序點人回答問題,每堂點人數量多寡不一定,
有時坐在最後面的完全不會被點到,有時則幾乎輪完兩輪。
被點到不會也沒關係(通常會有人有意無意打pass),TLE老師就叫下一位。
課程主要分成三大部份:
一、 Programming Style & Debugging
二、 C++/OO features
三、 Algorithms
第一部份是平常容易被忽略的部份,一份「好」的程式碼,
除了結果正確、跑得快,易讀易懂易維護也是不可或缺的。
這邊舉出許多易造成混亂,甚至導致出錯的style,搭配一些工具的使用,
以及一些強者偷懶而自食惡果的範例,告訴我們魔鬼就在細節裡。
第二部份介紹Template、STL、Operator overloading、Polymorphism、……
等等C++/OO的特色,搭配不少的範例程式碼,可作為從C到C++的第一步。
ACP的批改娘是g++版,雖說也是可以接受C程式碼,但善用STL及其他feature,
可降低撰寫複雜度與提升可讀性。精通後再搭配CPLR的Lab 2~4更是完美組合。
第三部份演算法講了D&C、Greedy、DP和一點點Graph,
Syllabus後面還有Search和Data structure貌似來不及講。
和演算法(我修隨機客的)不同的是比較專注在特定題目的解法及實作,
P老師說這堂課起初的定位是ACM補習班(現另有培訓班)故較著重於此。
★ 評分標準
作業 40% (13次、其中一次reading不算分)
期中考 30%
期末考 30%
不調分,原始分數無條件進位至整數再轉成等第制。
★ 作業內容及方式
幾乎每週一次作業,前兩部份常常是上課時遇到什麼問題,
或是靈機一動便出成作業,什麼奇怪的東西都有相當有趣XD。
HW1的批改自己老code似乎是傳統,另外還有讀文章、GDB/Valgrind學習記錄、
幫某份程式碼debug、……等等,由助教打分數,好像全都是9~10分@@。
講STL和第三部份演算法時則有程式作業,批改娘上見真章。
照上課教的或稍微思考一下,通常不會太難。
★ 考試風格及題型
期中考 筆試30% 上機70% 四小時
筆試範圍是期中考前的觀念大集合,以及reading那次作業的文章,
投影片裡都有(吧),15題選擇,答對得2分、答錯倒扣1分。
上機考兩題debug、兩題STL實作(其實不用STL也可以XD),
debug是拿前人的9分程式碼(苦主本身好像也有修課|||),
在限定的edit distance內將其修改到AC。
期末考 筆試20% 上機80% 四小時
筆試四題大腦實作演算法題,規模都很小。
上機四題演算法,這次分配是(每年都不一樣,如果遇到卡恩之類的助教就...):
‧送分(費氏數列)
‧Greedy
‧DP
‧Graph(disjoint set/union-find)
關於disjoint set我記得老師在最後一堂課特別強調這東西很好用一定要上完,
但是現在回去翻投影片竟然找不到@@。
批改娘上會放近年的考古題供練習,建議盡可能寫完。
★ 其它(會不會點名、需要什麼基礎、老師的個性)
不會點名,只有點人回答問題但完全不影響成績。
基礎就計程和演算法。
老師的風格是可以講出一個讓全班笑出來的笑話,自己卻紋風不動,
接著拋出一句「我不是在講笑話」,全然的冷面笑匠。
★ 個人修課心得及總結
個人認為第一部份是整門課的精華,可藉以改善自己的coding style,
以及練習面對各種奇奇怪怪的bug,避免屢犯同樣的錯誤。
(其實很多都當耳邊風( ̄▽ ̄#)﹏﹏)
第二部份對已經會C++的人來說可能有點冗,
我自己則是趁機把STL摸熟,CPLR剛好派上用場一舉兩得。
第三部份,如果你是以前就有在玩競賽的話那幾乎不需要上orz,
沒碰過的人則可以看看競賽題在玩什麼,以及演算法在特定題型的應用。
最後我必須很誠實地說,某個等級以上的如果來修ACP學不到太多東西,
只能比誰期末考先破臺,而且沒T-Shirt(默)。
作者: s864372002 (鋼琴)   2012-08-23 14:04:00
好像超過死線了( ̄▽ ̄#)﹏﹏
作者: jenny2921 ( )   2012-08-24 01:07:00
謝謝你的共襄盛舉...但是連這個都可以遲到...XDD
作者: s864372002 (鋼琴)   2012-08-24 11:28:00
打字太慢咩QAQ。

Links booklink

Contact Us: admin [ a t ] ucptt.com