About this Course
최근 조회 26,635

다음 전문 분야의 5개 강좌 중 3번째 강좌:

100% 온라인

지금 바로 시작해 나만의 일정에 따라 학습을 진행하세요.

유동적 마감일

일정에 따라 마감일을 재설정합니다.

중급 단계

완료하는 데 약 20시간 필요

권장: 5 weeks of study, 1-3 hours/week...

영어

자막: 영어

귀하가 습득할 기술

GraphsSearch AlgorithmGraph AlgorithmsGraph Data Structures

다음 전문 분야의 5개 강좌 중 3번째 강좌:

100% 온라인

지금 바로 시작해 나만의 일정에 따라 학습을 진행하세요.

유동적 마감일

일정에 따라 마감일을 재설정합니다.

중급 단계

완료하는 데 약 20시간 필요

권장: 5 weeks of study, 1-3 hours/week...

영어

자막: 영어

강의 계획 - 이 강좌에서 배울 내용

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 videos (Total 17 min), 10 readings, 3 quizzes
4개의 동영상
Project Prototype5m
10개의 읽기 자료
After completing this course, you will be able to ...5m
Is this course right for me?10m
Up Next: A short survey
If you want more practice before you begin...2m
The structure of this course2m
Welcome from the Google engineers3m
Project Overview10m
Setting up Java and Eclipse10m
Getting and Setting up the Starter Code10m
Project: Orientation to the Starter Code, Data Files and Front-end10m
3개 연습문제
Pre-course quiz20m
Survey: Your goals for the course8m
Course Structure and Starter Code Quiz (make sure you can run the starter code first)12m
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 videos (Total 92 min), 7 readings, 4 quizzes
17개의 동영상
Core: Graph definitions4m
In the real world: Graphs at Google2m
In the real world: More graphs at Google55
Core: Implementing graphs in Java3m
Core: Adjacency matrix12m
Core: Adjacency list7m
Concept Challenge: Comparing implementations of graphs3m
In the real world: Performance considerations2m
When I struggled: Analyzing implementations47
Core: Neighbors5m
Support: Coding getNeighbors7m
Support: Coding 2-Hop Neighbors7m
Support: Multiplying Adjacency Matrices4m
Project: Programming Assignment Walkthrough15m
7개의 읽기 자료
A note about week numbers10m
By the end of this week, you will be able to...5m
(Read only AFTER finishing Graphs Quiz)10m
Graph definitions and implementation: a glossary10m
Week 2: Additional Resources2m
Programming Assignment FAQ10m
Graph definitions and implementations Quiz Answer explanations (Read ONLY after you pass the quiz)10m
3개 연습문제
Graphs5m
Where to next?2m
Graph definitions and implementation20m
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 videos (Total 100 min), 3 readings, 4 quizzes
20개의 동영상
When I struggled: Building useful classes1m
In the Real World: Design patterns1m
Core: DFS, Part 16m
Core: DFS, Part 24m
Core: BFS6m
Support: Developing Small Examples to Test Your Code6m
When I struggled: Data structures jargon1m
When I struggled: The right data structure for the job1m
Concept Challenge: Performance of DFS and BFS5m
Core: Class Design8m
When I struggled: If you fail to plan ...1m
When I struggled: ... but don't forget to start!1m
In the real world: Planning ahead with design4m
Core: Refactoring12m
Support: Where to start the project design?10m
In the Real World: Why is code refactored?2m
Project: Programming Assignment Walk-through14m
3개의 읽기 자료
By the end of this week, you will be able to ...5m
Week 3: Additional Resources1m
End of Week Quiz Answers10m
2개 연습문제
Where to next?2m
End of Week Quiz (complete project and peer review first)20m
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 videos (Total 43 min), 4 readings, 2 quizzes
10개의 동영상
Core: Geographic Maps4m
Core: Dijkstra's Algorithm8m
Concept Challenge: Performance of Dijkstra's Algorithm8m
Core: A* Search Algorithm5m
When I struggled: Tackling large programming projects1m
When I Struggled: Remembering classical algorithms31
Project: Shortest Path Programming Assignment Walkthrough8m
4개의 읽기 자료
By the end of this week, you will be able to ...5m
Week 4: Additional Resources1m
Test cases and debugging guide for the quiz30m
End of Week Quiz Answers10m
1개 연습문제
End of Week Quiz (very short, do programming assignment first)10m
4.8
238개의 리뷰Chevron Right

42%

이 강좌를 수료한 후 새로운 경력 시작하기

32%

이 강좌를 통해 확실한 경력상 이점 얻기

Advanced Data Structures in Java의 최상위 리뷰

대학: 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

자주 묻는 질문

  • 강좌에 등록하면 바로 모든 비디오, 테스트 및 프로그래밍 과제(해당하는 경우)에 접근할 수 있습니다. 상호 첨삭 과제는 이 세션이 시작된 경우에만 제출하고 검토할 수 있습니다. 강좌를 구매하지 않고 살펴보기만 하면 특정 과제에 접근하지 못할 수 있습니다.

  • 강좌를 등록하면 전문 분야의 모든 강좌에 접근할 수 있고 강좌를 완료하면 수료증을 취득할 수 있습니다. 전자 수료증이 성취도 페이지에 추가되며 해당 페이지에서 수료증을 인쇄하거나 LinkedIn 프로필에 수료증을 추가할 수 있습니다. 강좌 내용만 읽고 살펴보려면 해당 강좌를 무료로 청강할 수 있습니다.

궁금한 점이 더 있으신가요? 학습자 도움말 센터를 방문해 보세요.