
由大名鼎鼎的普林斯顿大学推出的慕课“算法”第二部分,即将在coursera上重启开新班啦,真是广大程序猿小伙伴的福音啊。虽说去年11月已经开过一期,但是既然新班开始报名还是选后者,边听边做题,还能在coursera社区里讨论。不过可能要绊倒好多英语不太灵的孩子们啦,没事咱从英语学起先:P
开课时间是3月21日,快去占座
本课程主要涵盖了所有认真程序员所需知道的算法和数据结构要点,重点强调Java实现的应用和科学性能分析。
其中,第二部分涵盖了图处理算法,包括最小生成树和最短路径算法;字符串处理算法,包括字符串排序、trie、子字符串查找、正则表达式、数据压缩。
所以说,这门课也不是白上的,它针对的是理工类本科生,和对编程具有兴趣和一定基础的高中学生及专业人员,需要熟悉Java编程和“算法”1中的算法和数据结构。
想看看第一部?点这里
常见问题
本课程会讲到哪些算法和数据结构?
第一部分将集中探讨基础数据结构、排序、查找。主题包括:并查算法、二分查找、栈、队列、背包、插入排序、选择排序、希尔排序、快速排序、三路快排、归并排序、堆排序、二分堆、二分查找树、红黑树、分离链接和线性探测哈希表、Graham扫描、kd树。
第二部分将集中探讨图和字符串处理算法。主题包括:深度优先搜索、宽度优先搜索、拓扑排序、Kosaraju-Sharir算法、Kruskal算法、Prim算法、Dijkistra算法、Bellman-Ford算法、Ford-Fulkerson算法、LSD基数排序算法、MSD基数排序算法、三路基数快排算法、多路trie算法、三元查找trie算法、Knuth-Morris-Pratt算法、Boyer-Moore算法、Rabin-Karp算法、正则匹配、行程长度编码、Huffman编码、LZW压缩、Burrows-Wheeler变换。
网上还有其它相关资源吗?
有,我们的免费图书网站包含教材概要、网络练习、所有相关算法的Java实现(提供一键下载)、测试数据以及很多其它资源。
这门课同“算法设计与分析”课程有何不同?
两门课是互补的,这门课更强调编程和代码开发,而那门课更注重数学和证明。这门课侧重于在实际应用的实现和测试中学习各种算法,而那门课侧重于在解释算法为何有效的数学建模中学习算法。在典型计算机科学课程设计中,这门课针对的是大一和大二学生,而那门课针对的是大三和大四学生。
我想选“算法,第二部分”,但我错过了“算法,第一部分”。我该怎么做?
这就要看你的基础了。如果你对基本数据类型和经典排序、查找算法一无所知,你最好是等到下次第一部分开课时进行学习。如果你对基础知识比较熟悉,你也许能够通过研读我们的书籍和图书网站跟上进度。
我不是计算机专业学生,这门课适合我吗?
没问题,这门课适用于任何希望使用计算机解决大型问题的人(因为大型问题需要高效算法)。在普林斯顿的所有学生中,有超过25%的人选过这门课,包括工程、生物、物理、化学、经济等诸多其它专业的学生。选修这门课的远远不只是计算机科学专业的学生。
不熟悉Java编程的话,能选这门课吗?
我们的核心理念是,算法在实现和测试中是最容易理解的。Java在这里只是用于说明,我们在代码中特意避开了稀奇古怪的内容。就算你使用其它语言,这门课的代码你也应该能轻松适应。不过,我们要求这门课的编程作业用Java提交。如果你有其它语言的编程经验,通过我们的教材《Java编程导论:跨学科研究方法》及相关免费图书网站来学习我们的编程模型对你应该会有帮助。
没有任何编程基础的话,还能选这门课吗?也许不行。
学完这门课后,普林斯顿大学会为我颁发证书吗?
这门课不会颁发证书、成就声明等任何凭证。