À propos de ce cours
26,365 consultations récentes

100 % en ligne

Commencez dès maintenant et apprenez aux horaires qui vous conviennent.

Dates limites flexibles

Réinitialisez les dates limites selon votre disponibilité.

Niveau intermédiaire

Approx. 20 heures pour terminer

Recommandé : 5 weeks of study, 1-3 hours/week...

Anglais

Sous-titres : Anglais

Compétences que vous acquerrez

GraphsSearch AlgorithmGraph AlgorithmsGraph Data Structures

100 % en ligne

Commencez dès maintenant et apprenez aux horaires qui vous conviennent.

Dates limites flexibles

Réinitialisez les dates limites selon votre disponibilité.

Niveau intermédiaire

Approx. 20 heures pour terminer

Recommandé : 5 weeks of study, 1-3 hours/week...

Anglais

Sous-titres : Anglais

Programme du cours : ce que vous apprendrez dans ce cours

Semaine
1
2 heures pour terminer

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 vidéos (Total 17 min), 10 lectures, 3 quiz
4 vidéos
Welcome3 min
Project Prototype5 min
10 lectures
After completing this course, you will be able to ...5 min
Is this course right for me?10 min
Up Next: A short survey
If you want more practice before you begin...2 min
The structure of this course2 min
Welcome from the Google engineers3 min
Project Overview10 min
Setting up Java and Eclipse10 min
Getting and Setting up the Starter Code10 min
Project: Orientation to the Starter Code, Data Files and Front-end10 min
3 exercices pour s'entraîner
Pre-course quiz20 min
Survey: Your goals for the course8 min
Course Structure and Starter Code Quiz (make sure you can run the starter code first)12 min
Semaine
2
5 heures pour terminer

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 vidéos (Total 92 min), 7 lectures, 4 quiz
17 vidéos
Core: Graph definitions4 min
In the real world: Graphs at Google2 min
In the real world: More graphs at Google55s
Core: Implementing graphs in Java3 min
Core: Adjacency matrix12 min
Core: Adjacency list7 min
Concept Challenge: Comparing implementations of graphs3 min
In the real world: Performance considerations2 min
When I struggled: Analyzing implementations47s
Core: Neighbors5 min
Support: Coding getNeighbors7 min
Support: Coding 2-Hop Neighbors7 min
Support: Multiplying Adjacency Matrices4 min
Project: Programming Assignment Walkthrough15 min
7 lectures
A note about week numbers10 min
By the end of this week, you will be able to...5 min
(Read only AFTER finishing Graphs Quiz)10 min
Graph definitions and implementation: a glossary10 min
Week 2: Additional Resources2 min
Programming Assignment FAQ10 min
Graph definitions and implementations Quiz Answer explanations (Read ONLY after you pass the quiz)10 min
3 exercices pour s'entraîner
Graphs5 min
Where to next?2 min
Graph definitions and implementation20 min
Semaine
3
8 heures pour terminer

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 vidéos (Total 100 min), 3 lectures, 4 quiz
20 vidéos
When I struggled: Building useful classes1 min
In the Real World: Design patterns1 min
Core: DFS, Part 16 min
Core: DFS, Part 24 min
Core: BFS6 min
Support: Developing Small Examples to Test Your Code6 min
When I struggled: Data structures jargon1 min
When I struggled: The right data structure for the job1 min
Concept Challenge: Performance of DFS and BFS5 min
Core: Class Design8 min
When I struggled: If you fail to plan ...1 min
When I struggled: ... but don't forget to start!1 min
In the real world: Planning ahead with design4 min
Core: Refactoring12 min
Support: Where to start the project design?10 min
In the Real World: Why is code refactored?2 min
Project: Programming Assignment Walk-through14 min
3 lectures
By the end of this week, you will be able to ...5 min
Week 3: Additional Resources1 min
End of Week Quiz Answers10 min
2 exercices pour s'entraîner
Where to next?2 min
End of Week Quiz (complete project and peer review first)20 min
Semaine
4
6 heures pour terminer

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 vidéos (Total 43 min), 4 lectures, 2 quiz
10 vidéos
Core: Geographic Maps4 min
Core: Dijkstra's Algorithm8 min
Concept Challenge: Performance of Dijkstra's Algorithm8 min
Core: A* Search Algorithm5 min
When I struggled: Tackling large programming projects1 min
When I Struggled: Remembering classical algorithms31s
Project: Shortest Path Programming Assignment Walkthrough8 min
4 lectures
By the end of this week, you will be able to ...5 min
Week 4: Additional Resources1 min
Test cases and debugging guide for the quiz30 min
End of Week Quiz Answers10 min
1 exercice pour s'entraîner
End of Week Quiz (very short, do programming assignment first)10 min
4.8
238 avisChevron Right

42%

a commencé une nouvelle carrière après avoir terminé ces cours

32%

a bénéficié d'un avantage concret dans sa carrière grâce à ce cours

Principaux examens pour Advanced Data Structures in Java

par 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.

par 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.

Enseignants

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

À propos de Université de Californie à 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....

À propos de la Spécialisation 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

Foire Aux Questions

  • Une fois que vous êtes inscrit(e) pour un Certificat, vous pouvez accéder à toutes les vidéos de cours, et à tous les quiz et exercices de programmation (le cas échéant). Vous pouvez soumettre des devoirs à examiner par vos pairs et en examiner vous-même uniquement après le début de votre session. Si vous préférez explorer le cours sans l'acheter, vous ne serez peut-être pas en mesure d'accéder à certains devoirs.

  • Lorsque vous vous inscrivez au cours, vous bénéficiez d'un accès à tous les cours de la Spécialisation, et vous obtenez un Certificat lorsque vous avez réussi. Votre Certificat électronique est alors ajouté à votre page Accomplissements. À partir de cette page, vous pouvez imprimer votre Certificat ou l'ajouter à votre profil LinkedIn. Si vous souhaitez seulement lire et visualiser le contenu du cours, vous pouvez accéder gratuitement au cours en tant qu'auditeur libre.

D'autres questions ? Visitez le Centre d'Aide pour les Etudiants.