谷歌地图如何根据当前的交通状况规划城市周边的最佳路线? 互联网路由器如何转发网络流量包以减少延迟? 援助组织如何向其下属的当地合作伙伴分配资源? 要解决这些问题,我们首先要在复杂的数据结构中表示关键数据。在本课程中,您将学习数据结构(如图),这是处理结构化现实世界数据的基础。 您将开发、实施和分析处理这些数据的算法,以解决现实世界中的问题。 此外,随着您在本课程中开发的程序变得越来越复杂,我们将研究什么是好的代码和类层次结构设计,这样您不仅能写出正确的代码,还能与他人共享代码并在将来维护代码。 本课程的主干项目是一个路线规划应用程序。 您将直接应用每个模块中的概念来构建一个应用程序,使自主代理(或人类驾驶员!)能够在环境中导航。 与往常一样,我们还提供了不同的系列视频,帮助将内容与现实世界中的重要性联系起来,并提供分层支持,以满足您的个人需求。


要了解的详细信息
了解顶级公司的员工如何掌握热门技能

积累特定领域的专业知识
- 向行业专家学习新概念
- 获得对主题或工具的基础理解
- 通过实践项目培养工作相关技能
- 获得可共享的职业证书

该课程共有6个模块
欢迎来到中级 Java 编程专业第三期课程的第一周。 我们将再次从介绍开始,特别是介绍本课程的独特结构。 另外,如果您不确定本课程是否适合您,我们将为您准备一个可选的课前测验,帮助您确定自己是否适合本课程。 如果您决定继续学习(我们真心希望您能继续学习!),我们将为您提供一个很棒的骨干项目:您自己的地图应用程序,灵感来自谷歌地图! 本课程的核心数据结构是图,这很可能是所有计算机科学中最基本的数据结构。 准备好开始了吗? 我们也是!
涵盖的内容
4个视频10篇阅读材料3个作业1个讨论话题
本周我们将从技术层面入手,向您介绍本课程的核心数据结构:图表。 您将学习基础知识,然后有机会深入学习代码,准备开始构建类似 Google 地图的应用程序。
涵盖的内容
17个视频7篇阅读材料3个作业1个编程作业
本周,您将启动并运行地图搜索引擎的主干部分。 在以前的课程(包括本专业的前几门课程)中,您可能已经获得了完成作业所需的大部分类。 但是,学习如何从头开始设计类是您成为一名更加成熟的 Java 程序员所需要的一项关键技能。 本周,我们将为您提供所需的工具,帮助您为地图搜索引擎创建健壮而优雅的类设计。 我们将介绍一个类似的问题,并向您展示如何将其表示为图形。 然后,我们将介绍两种核心搜索算法:深度优先搜索和广度优先搜索。 最后,我们将把图问题转化为一组 Java 类。 本周编程作业的任务就是做同样的事情,不过是在地图搜索引擎的背景下!
涵盖的内容
20个视频3篇阅读材料2个作业1个编程作业1次同伴评审
在过去的两周中,你们已经对如何设计表示图形的类以及如何使用图形表示地图有了深刻的理解。 在本周,你们将为边添加权重以生成 "加权图",从而为我们的图表示法添加地图数据的一个关键特征--距离。 虽然这看似是一个很小的变化,但对于无权重图来说,这种算法可能对有权重图无效。 为了解决这个问题,你将探索更先进的最短路径算法。 首先,您将看到如何找到加权图上的最短路径,然后您将看到如何更快地找到最短路径。 在本项目中,您将应用这些想法来创建任何优秀地图应用程序的核心:找到从一个地点到另一个地点的最短路径。
涵盖的内容
10个视频4篇阅读材料1个作业1个编程作业
本周,我们将超越寻找两点之间路径的问题,重点关注需要整体路径规划的问题。 例如,如果你想去办点事,在回家之前去 6 个不同的地点,最佳路线是什么?这个问题实际上是计算机科学中一个非常著名的问题,即旅行推销员问题(TSP)。 尝试解决这个问题将引导我们探索复杂性理论、NP-Hard 的含义以及如何使用启发式和近似算法解决 "难 "问题。 在本周结束时,我们将展示重新表述问题会产生怎样的巨大影响:让以前实际上无法解决的问题现在变得可以解决!
涵盖的内容
11个视频3篇阅读材料1个作业
你坚持到了我们课程的最后一周! 很高兴您还在我们身边。 作为奖励,本周没有新的学习内容。 相反,您将有机会按照自己选择的方向扩展您的项目。 我们希望你有一些个性化地图应用的好点子,并期待着在同行评议图库中看到它们。 向同行评议画廊提交作品是可选项(但扩展是必选项),但我们希望您能选择参与。
涵盖的内容
1个视频2篇阅读材料1个作业1次同伴评审
获得职业证书
将此证书添加到您的 LinkedIn 个人资料、简历或履历中。在社交媒体和绩效考核中分享。
位教师



从 算法 浏览更多内容
- 状态:免费试用
University of Toronto
Coursera Project Network
- 状态:免费试用
- 状态:免费试用
University of California San Diego
人们为什么选择 Coursera 来帮助自己实现职业发展




学生评论
1,241 条评论
- 5 stars
80.90%
- 4 stars
15.47%
- 3 stars
2.49%
- 2 stars
0.72%
- 1 star
0.40%
显示 3/1241 个
已于 Apr 13, 2019审阅
As I keep completing the assignment, I got more confident on my Java and debugging skills. I would recommend solidifying your undestanding of the Data Structures
已于 Apr 1, 2020审阅
This was an excellent course for those looking to learn more about graphs (and to get experience in coding graphs in Java). The UCSD instructors are excellent.
已于 May 29, 2018审阅
I have learned so much from you and I look forward to learning more. Thank you for being a remarkable teacher and I am very grateful to have you as a teacher.
常见问题
要获取课程资料、作业和证书,您需要在注册课程时购买证书体验。 您可以尝试免费试听,或申请资助。课程可能提供 "完整课程,无证书"。通过该选项,您可以查看所有课程资料,提交必要的评估,并获得最终成绩。这也意味着您无法购买证书体验。
注册课程后,您就可以访问专项课程中的所有课程,完成作业后还可以获得证书。您的电子证书将添加到您的 "成就 "页面--在那里,您可以打印证书或将其添加到您的 LinkedIn 个人资料中。
是的。在特定的学习课程中,如果您付不起注册费,可以申请助学金或奖学金。如果您选择的学习课程有助学金或奖学金,您可以在说明页面找到申请链接。
更多问题
提供助学金,
¹ 本课程的部分作业采用 AI 评分。对于这些作业,将根据 Coursera 隐私声明使用您的数据。