[评价] 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