课程信息
4.7
931 个评分
221 个审阅
专项课程
100% 在线

100% 在线

立即开始,按照自己的计划学习。
可灵活调整截止日期

可灵活调整截止日期

根据您的日程表重置截止日期。
中级

中级

完成时间(小时)

完成时间大约为20 小时

建议:5 weeks of study, 1-3 hours/week...
可选语言

英语(English)

字幕:英语(English)...

您将获得的技能

GraphsSearch AlgorithmGraph AlgorithmsGraph Data Structures
专项课程
100% 在线

100% 在线

立即开始,按照自己的计划学习。
可灵活调整截止日期

可灵活调整截止日期

根据您的日程表重置截止日期。
中级

中级

完成时间(小时)

完成时间大约为20 小时

建议:5 weeks of study, 1-3 hours/week...
可选语言

英语(English)

字幕:英语(English)...

教学大纲 - 您将从这门课程中学到什么

1
完成时间(小时)
完成时间为 2 小时

Introduction to the Course

Welcome to the first week in the third course of our Intermediate Java Programming Specialization. Once again start with introductions, and in particular introduce the unique structure of this course. Also, if you're not sure if this course is right for you, we've got an optional pre-course quiz coming right up that can help you figure out if you're in the right place. If you decide to stay with us (and we really hope you will!) we've got a great backbone project for you: your very own mapping application, inspired by Google Maps! The core data structure throughout this course is graphs, which may very well be the most fundamental data structure in all of computer science. Ready to begin? So are we!...
Reading
4 个视频(共 17 分钟), 10 个阅读材料, 3 个测验
Video4 个视频
Welcome3分钟
Your path through this course5分钟
Concept challenges3分钟
Project Prototype5分钟
Reading10 个阅读材料
After completing this course, you will be able to ...5分钟
Is this course right for me?10分钟
Up Next: A short survey分钟
If you want more practice before you begin...2分钟
The structure of this course2分钟
Welcome from the Google engineers3分钟
Project Overview10分钟
Setting up Java and Eclipse10分钟
Getting and Setting up the Starter Code10分钟
Project: Orientation to the Starter Code, Data Files and Front-end10分钟
Quiz3 个练习
Pre-course quiz20分钟
Survey: Your goals for the course8分钟
Course Structure and Starter Code Quiz (make sure you can run the starter code first)12分钟
2
完成时间(小时)
完成时间为 5 小时

Introduction to Graphs

This week we'll start getting technical, introducing you to the central data structure in the course: Graphs. You'll learn the basics and then have a chance to dive in a little deeper into the code, getting ready to start building that Google Maps-like application....
Reading
17 个视频(共 92 分钟), 7 个阅读材料, 4 个测验
Video17 个视频
Project: Introduction to Graphs Project Overview3分钟
Core: What's a graph?8分钟
Core: Graph definitions4分钟
In the real world: Graphs at Google2分钟
In the real world: More graphs at Google分钟
Core: Implementing graphs in Java3分钟
Core: Adjacency matrix12分钟
Core: Adjacency list7分钟
Concept Challenge: Comparing implementations of graphs3分钟
In the real world: Performance considerations2分钟
When I struggled: Analyzing implementations分钟
Core: Neighbors5分钟
Support: Coding getNeighbors7分钟
Support: Coding 2-Hop Neighbors7分钟
Support: Multiplying Adjacency Matrices4分钟
Project: Programming Assignment Walkthrough15分钟
Reading7 个阅读材料
A note about week numbers10分钟
By the end of this week, you will be able to...5分钟
(Read only AFTER finishing Graphs Quiz)10分钟
Graph definitions and implementation: a glossary10分钟
Week 2: Additional Resources2分钟
Programming Assignment FAQ10分钟
Graph definitions and implementations Quiz Answer explanations (Read ONLY after you pass the quiz)10分钟
Quiz3 个练习
Graphs5分钟
Where to next?2分钟
Graph definitions and implementation20分钟
3
完成时间(小时)
完成时间为 8 小时

Class design and simple graph search

This week you'll get the backbone of your map search engine up and running. In previous courses, including the previous courses in this specialization, you've probably been given most of the classes you needed to complete the assignments. But learning how to design classes from scratch is a key skill that you will need as you become a more sophisticated Java programmer. This week we'll give you the tools you need to create a robust and elegant class design for your map search engine. We'll introduce a similar problem and show you how it can be represented as a graph. Then we'll introduce two core search algorithms: depth-first search and breadth-first search. Finally, we'll turn our graph problem into a set of Java classes. Your task on the programming assignment this week will be to do the same thing, but in the context on the map search engine!...
Reading
20 个视频(共 100 分钟), 3 个阅读材料, 4 个测验
Video20 个视频
Project: Route Finding Project Overview4分钟
Core: Intro to Class Design4分钟
When I struggled: Building useful classes1分钟
In the Real World: Design patterns1分钟
Core: DFS, Part 16分钟
Core: DFS, Part 24分钟
Core: BFS6分钟
Support: Developing Small Examples to Test Your Code6分钟
When I struggled: Data structures jargon1分钟
When I struggled: The right data structure for the job1分钟
Concept Challenge: Performance of DFS and BFS5分钟
Core: Class Design8分钟
When I struggled: If you fail to plan ...1分钟
When I struggled: ... but don't forget to start!1分钟
In the real world: Planning ahead with design4分钟
Core: Refactoring12分钟
Support: Where to start the project design?10分钟
In the Real World: Why is code refactored?2分钟
Project: Programming Assignment Walk-through14分钟
Reading3 个阅读材料
By the end of this week, you will be able to ...5分钟
Week 3: Additional Resources1分钟
End of Week Quiz Answers10分钟
Quiz2 个练习
Where to next?2分钟
End of Week Quiz (complete project and peer review first)20分钟
4
完成时间(小时)
完成时间为 6 小时

Finding shortest paths in weighted graphs

In the past two weeks, you've developed a strong understanding of how to design classes to represent a graph and how to use a graph to represent a map. In this week, you'll add a key feature of map data to our graph representation -- distances -- by adding weights to your edges to produce a "weighted graph". Although this might seem like a small change, the algorithms that work for unweighted graphs may prove ineffective for weighted graphs. To address this problem, you'll explore more advanced shortest path algorithms. First, you'll see how to find the shortest path on a weighted graph, then you'll see how to find it more quickly. In the project, you'll apply these ideas to create the core of any good mapping application: finding the shortest route from one location to another....
Reading
10 个视频(共 43 分钟), 4 个阅读材料, 2 个测验
Video10 个视频
Project: Shortest Path Overview2分钟
Core: Shortest Path with BFS3分钟
Core: Geographic Maps4分钟
Core: Dijkstra's Algorithm8分钟
Concept Challenge: Performance of Dijkstra's Algorithm8分钟
Core: A* Search Algorithm5分钟
When I struggled: Tackling large programming projects1分钟
When I Struggled: Remembering classical algorithms分钟
Project: Shortest Path Programming Assignment Walkthrough8分钟
Reading4 个阅读材料
By the end of this week, you will be able to ...5分钟
Week 4: Additional Resources1分钟
Test cases and debugging guide for the quiz30分钟
End of Week Quiz Answers10分钟
Quiz1 个练习
End of Week Quiz (very short, do programming assignment first)10分钟
4.7
职业方向

33%

完成这些课程后已开始新的职业生涯
工作福利

83%

通过此课程获得实实在在的工作福利

热门审阅

创建者 DBOct 13th 2017

Great into to Java, instructors have clearly put thought in to the format with the choose your own learning style videos, and additional coverage where it may be needed. These have been very helpful.

创建者 SUJun 8th 2017

Fantastic course! I would recommend to anyone interested in learning the graph data structure in a fun and hands-on and engaging way! Definitely one of the best courses I have followed on Coursera.

讲师

Avatar

Leo Porter

Assistant Teaching Professor
Computer Science and Engineering
Avatar

Mia Minnes

Assistant Teaching Professor
Computer Science and Engineering
Avatar

Christine Alvarado

Associate Teaching Professor
Computer Science and Engineering

关于 University of California San Diego

UC San Diego is an academic powerhouse and economic engine, recognized as one of the top 10 public universities by U.S. News and World Report. Innovation is central to who we are and what we do. Here, students learn that knowledge isn't just acquired in the classroom—life is their laboratory....

关于 Object Oriented Java Programming: Data Structures and Beyond 专项课程

This Specialization covers intermediate topics in software development. You’ll learn object-oriented programming principles that will allow you to use Java to its full potential, and you’ll implement data structures and algorithms for organizing large amounts of data in a way that is both efficient and easy to work with. You’ll also practice critically evaluating your own code, and you’ll build technical communication skills that will help you prepare for job interviews and collaborative work as a software engineer. In the final Capstone Project, you’ll apply your skills to analyze data collected from a real-world (social) network. Google has contributed real-world projects and the involvement of its engineers as guest lecturers to these courses. A small, select group of top learners who complete the Specialization will be offered practice interviews with Google recruiters. Invitation to a practice interview does not guarantee an actual interview or employment....
Object Oriented Java Programming: Data Structures and Beyond

常见问题

  • 注册以便获得证书后,您将有权访问所有视频、测验和编程作业(如果适用)。只有在您的班次开课之后,才可以提交和审阅同学互评作业。如果您选择在不购买的情况下浏览课程,可能无法访问某些作业。

  • 您注册课程后,将有权访问专项课程中的所有课程,并且会在完成课程后获得证书。您的电子课程证书将添加到您的成就页中,您可以通过该页打印您的课程证书或将其添加到您的领英档案中。如果您只想阅读和查看课程内容,可以免费旁听课程。

还有其他问题吗?请访问 学生帮助中心