算法,第二部分

Algorithms, Part II

本课程主要涵盖了所有认真程序员所需知道的算法和数据结构要点,重点强调Java实现的应用和科学性能分析。 课程概…

普林斯顿大学

经典课程

分享

普林斯顿算法
  • 分类: 计算机
  • 平台: Coursera
  • 语言: 英语

本课程主要涵盖了所有认真程序员所需知道的算法和数据结构要点,重点强调Java实现的应用和科学性能分析。

课程概述

第二部分涵盖了图处理算法,包括最小生成树和最短路径算法;字符串处理算法,包括字符串排序、trie、子字符串查找、正则表达式、数据压缩。最后,课程将这些内容放到更大的语境中一览全貌并以此作结。

背景知识

你需要熟悉Java编程和“算法,第一部分”中的算法和数据结构。这门课主要针对的是,对工程或科学感兴趣的大一大二学年本科生,以及对编程具有兴趣和一定基础的高中学生及专业人员。

参考资料

虽然这门课被设计为自给自足式的,但希望在七周课程以外扩展所学知识的同学,可以在我们编写的教材中找到更深入广泛的相关内容:《算法》第四版,艾迪生韦斯利出版社出版。

授课形式

每周将有两堂课,每堂课75分钟。每堂课都被分为4到6段,由互动式测试问题分隔开来。这些测试问题能够帮你加深理解课程内容。此外,这门课每周还有一次笔头作业和一次编程作业。这门课还有一个期末考试。

常见问题

本课程会讲到哪些算法和数据结构?
第一部分将集中探讨基础数据结构、排序、查找。主题包括:并查算法、二分查找、栈、队列、背包、插入排序、选择排序、希尔排序、快速排序、三路快排、归并排序、堆排序、二分堆、二分查找树、红黑树、分离链接和线性探测哈希表、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编程导论:跨学科研究方法》及相关免费图书网站来学习我们的编程模型对你应该会有帮助。

没有任何编程基础的话,还能选这门课吗?
也许不行。

学完这门课后,普林斯顿大学会为我颁发证书吗?
这门课不会颁发证书、成就声明等任何凭证。

声明:MOOC中国收录之课程均源自下列机构,版权均归他们所有。本站仅作报道并尊重其著作权益,感谢他们对MOOC事业做出的贡献!(排名不分先后)
  • Coursera
  • edX
  • OpenLearning
  • FutureLearn
  • iversity
  • Udacity
  • NovoEd
  • Canvas
  • Open2Study
  • Google
  • ewant
  • FUN
  • IOC-Athlete-MOOC
  • World-Science-U
  • Codecademy
  • CourseSites
  • opencourseworld
  • ShareCourse
  • gacco
  • MiriadaX
  • JANUX
  • openhpi
  • Stanford-Open-Edx
  • 网易云课堂
  • 中国大学MOOC
  • 学堂在线
  • 顶你学堂
  • 华文慕课
  • 好大学在线CnMooc

Copyright © 2008-2015 MOOC.CN 慕课改变你,你改变世界