一位从1998年就开始讲课的老教授Jeff Erickson,把他20年来在UIUC讲课的内容整理成了一本算法书,名字简单粗暴,就叫《算法》(Algorithms)。
这本书在网上公布后,很快就成了国外计算机系学生讨论的热门话题,目前在Hacker News已经收获超过1000赞。
原因当然是他在学生当中的名气。Jeff是计算机视觉领域知名学者,有扎实专业知识。难能可贵的是,他教学风格轻松愉快,广受学生欢迎,甚至一位20年前的学生也亲自发帖为他打call。
《算法》总共有448页,,除去前言和简介部分,总共包含了12个章节的内容,主要谈到了以下一些算法:
递归、回溯、动态编程、贪心算法、基本图算法、深度优先搜索、最小生成树、最短路径、全局最短路径、最大流最小割、流量与切割的应用、NP困难等。
Jeff把这本书称作出版印刷前的“第0版”,你可以去他的GitHub页下载到《算法》这本书的PDF版,帮忙找排版和内容上的bug。
喜欢看纸质书的小伙伴也不用着急,《算法》的纸质版即将发行。至于电子版也会一直免费提供下去。
既然是讲义的整理,除了基本教学内容外,当然还有习题和考卷,每年都会根据教学内容实时更新。如果你想要随附习题的答案,Jeff本人是拒绝的,还是自己动手吧。这本书没有习题答案!
△ 作者Jeff Erickson和他的孩子
Jeff教师认为,教材有时候在大学教学和自学者之间有不可调和的矛盾。Jeff显然更看重课堂上的学生,如果提供标准答案,只会让学生死记硬背,忽略了答案背后的逻辑。
而且,Jeff说那些想要答案的学位往往是爱作弊的学生。学渣们你们颤抖了吗?
如果仅凭以上内容,就认为Jeff是一个不讲情面的大学教授就完全错了。
在考试方面,Jeff对待学生可以说是相当“宽松”。学生在考试题下面写“我不知道”,就能得到25%的分数。
这么做是为了鼓励学生承认自己的缺点,助教也不必为审阅垃圾答案浪费时间。
有趣的是,这位Jeff教授不是一个唯成绩论的人。
因为他自己当初就是一个不折不扣的学渣,GPA得分只有2.4(满分4.0)。他却靠自身努力成为知名教授。
对那些成绩很差却想继续深造的学生,Jeff传授了一点他自己过往的人生经验:
让导师看到你的努力和在专业方面的技能,比如你曾经在计算机领域的就业经历。让导师相信,你出色的能力让他愿意承担风险。(Jeff自己在攻读硕士前就曾是软件工程师。)
最后,Jeff有个幸福的家庭,上面的画像就是他12岁女儿所画。
电子书地址: http://jeffe.cs.illinois.edu/teaching/algorithms/#book
Github地址: https://github.com/jeffgerickson/algorithms
作者论文汇总: http://jeffe.cs.illinois.edu/pubs/index.html
— 完 —