Об этом курсе
4.7
Оценки: 920
Рецензии: 221
How does Google Maps plan the best route for getting around town given current traffic conditions? How does an internet router forward packets of network traffic to minimize delay? How does an aid group allocate resources to its affiliated local partners? To solve such problems, we first represent the key pieces of data in a complex data structure. In this course, you’ll learn about data structures, like graphs, that are fundamental for working with structured real world data. You will develop, implement, and analyze algorithms for working with this data to solve real world problems. In addition, as the programs you develop in this course become more complex, we’ll examine what makes for good code and class hierarchy design so that you can not only write correct code, but also share it with other people and maintain it in the future. The backbone project in this course will be a route planning application. You will apply the concepts from each Module directly to building an application that allows an autonomous agent (or a human driver!) to navigate its environment. And as usual we have our different video series to help tie the content back to its importance in the real world and to provide tiered levels of support to meet your personal needs....
Globe

Только онлайн-курсы

Начните сейчас и учитесь по собственному графику.
Calendar

Гибкие сроки

Назначьте сроки сдачи в соответствии со своим графиком.
Intermediate Level

Промежуточный уровень

Clock

Approx. 20 hours to complete

Предполагаемая нагрузка: 5 weeks of study, 1-3 hours/week...
Comment Dots

English

Субтитры: English...

Приобретаемые навыки

GraphsSearch AlgorithmGraph AlgorithmsGraph Data Structures
Globe

Только онлайн-курсы

Начните сейчас и учитесь по собственному графику.
Calendar

Гибкие сроки

Назначьте сроки сдачи в соответствии со своим графиком.
Intermediate Level

Промежуточный уровень

Clock

Approx. 20 hours to complete

Предполагаемая нагрузка: 5 weeks of study, 1-3 hours/week...
Comment Dots

English

Субтитры: English...

Программа курса: что вы изучите

Week
1
Clock
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мин
Week
2
Clock
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мин
Week
3
Clock
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мин
Week
4
Clock
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
Direction Signs

33%

начал новую карьеру, пройдя эти курсы
Briefcase

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.

Преподавателя

Leo Porter

Assistant Teaching Professor
Computer Science and Engineering

Mia Minnes

Assistant Teaching Professor
Computer Science and Engineering

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

Часто задаваемые вопросы

  • Once you enroll for a Certificate, you’ll have access to all videos, quizzes, and programming assignments (if applicable). Peer review assignments can only be submitted and reviewed once your session has begun. If you choose to explore the course without purchasing, you may not be able to access certain assignments.

  • When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.

Остались вопросы? Посетите Центр поддержки учащихся.