課程信息
4.7
967 個評分
235 個審閱

100% 在線

立即開始,按照自己的計劃學習。

可靈活調整截止日期

根據您的日程表重置截止日期。

中級

完成時間大約為20 小時

建議:5 weeks of study, 1-3 hours/week...

英語(English)

字幕:英語(English)

您將獲得的技能

GraphsSearch AlgorithmGraph AlgorithmsGraph Data Structures

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!...
4 個視頻 (總計 17 分鐘), 10 個閱讀材料, 3 個測驗
4 個視頻
Welcome3分鐘
Your path through this course5分鐘
Concept challenges3分鐘
Project Prototype5分鐘
10 個閱讀材料
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分鐘
3 個練習
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....
17 個視頻 (總計 92 分鐘), 7 個閱讀材料, 4 個測驗
17 個視頻
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 Google55
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 implementations47
Core: Neighbors5分鐘
Support: Coding getNeighbors7分鐘
Support: Coding 2-Hop Neighbors7分鐘
Support: Multiplying Adjacency Matrices4分鐘
Project: Programming Assignment Walkthrough15分鐘
7 個閱讀材料
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分鐘
3 個練習
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!...
20 個視頻 (總計 100 分鐘), 3 個閱讀材料, 4 個測驗
20 個視頻
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分鐘
3 個閱讀材料
By the end of this week, you will be able to ...5分鐘
Week 3: Additional Resources1分鐘
End of Week Quiz Answers10分鐘
2 個練習
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....
10 個視頻 (總計 43 分鐘), 4 個閱讀材料, 2 個測驗
10 個視頻
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 algorithms31
Project: Shortest Path Programming Assignment Walkthrough8分鐘
4 個閱讀材料
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分鐘
1 個練習
End of Week Quiz (very short, do programming assignment first)10分鐘
4.7
235 個審閱Chevron Right

42%

完成這些課程後已開始新的職業生涯

32%

通過此課程獲得實實在在的工作福利

熱門審閱

創建者 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

關於 加州大学圣地亚哥分校

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

常見問題

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

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

還有其他問題嗎?請訪問 學生幫助中心