训练
1 基本算法
如果刚开始没有任何算法基础, 下面是我推荐的几个书籍.
- Algorithms, Jeff Erickson
- Algorithm Design, Kleinberg and Tardos
- Algorithms, Dasgupta, Papadimitriou, Vazirani
学习算法的时候需要做后面的习题。最好几个人一起刷书。
2 算法技术
研究是需要技巧的。而技巧是在使用的时候磨炼出来的。
ACM-ICPC的选手,依靠刷题增加自己的经验。做理论研究也能用类似的方法训练。
如果你之前没有接触过数学证明和最基础的解决问题的方法,可以读读Polya的How to Solve It: A New Aspect of Mathematical Method。那本书很老但依然经典。
还有哪里找到各种问题?
- Lovasz的Combinatorial Problems and Exercises里面的题目试图做出来,做不出来再看答案。
- 每个topic一般都有对应的MIT的课程。他们课堂内容常常是公开的。会有很好的problem set值得去做。
- 许多大学的理论计算机的博士qualifying exam有不错的题目。如UIUC和Georgia Tech ACO。如果里面的题大多都能做出来,你在技巧上就就达到了top学校理论组的博士生第二年的平均水平了。
3 Presentation
你需要知道你的presentation的audience是谁。
给Conference那种20分钟Talk的时候。你整个Talk应该都是Introduction级别的东西。 给一小时talk的时候,最前面1/3所有人要能懂,中间1/3同领域的人要能懂,最后1/3专家能懂。如果你给的talk的群体没有专家,最后部分同领域的人也要可以看懂的。 如果是给lecture(目的就是把一个东西讲懂),那才需要details。
Introduction要快速的让人知道问题什么,自己做了什么,和以往研究对比,和其他研究的关系。