- Level Professional
- Duration 29 hours
- Course by University of California San Diego
-
Offered by
About
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.Modules
About This Course
2
Assignment
- Pre-course quiz
- Survey: Your goals for the course
1
Discussions
- Introduce Yourself!
4
Videos
- Welcome
- Your path through this course
- Concept challenges
- Project Prototype
7
Readings
- After completing this course, you will be able to ...
- Is this course right for me?
- Up Next: A short survey
- If you want more practice before you begin...
- The structure of this course
- Welcome from the Google engineers
- Project Overview
Check Your Understanding
1
Assignment
- Course Structure and Starter Code Quiz (make sure you can run the starter code first)
3
Readings
- Setting up Java and Eclipse
- Getting and Setting up the Starter Code
- Project: Orientation to the Starter Code, Data Files and Front-end
Welcome
2
Videos
- Introduction
- Project: Introduction to Graphs Project Overview
2
Readings
- A note about week numbers
- By the end of this week, you will be able to...
Introduction to Graphs
2
Assignment
- Graphs
- Where to next?
14
Videos
- Core: What's a graph?
- Core: Graph definitions
- In the real world: Graphs at Google
- In the real world: More graphs at Google
- Core: Implementing graphs in Java
- Core: Adjacency matrix
- Core: Adjacency list
- Concept Challenge: Comparing implementations of graphs
- In the real world: Performance considerations
- When I struggled: Analyzing implementations
- Core: Neighbors
- Support: Coding getNeighbors
- Support: Coding 2-Hop Neighbors
- Support: Multiplying Adjacency Matrices
2
Readings
- (Read only AFTER finishing Graphs Quiz)
- Graph definitions and implementation: a glossary
Check Your Understanding
- Project: Implementing Graphs
1
Assignment
- Graph definitions and implementation
1
Videos
- Project: Programming Assignment Walkthrough
3
Readings
- Week 2: Additional Resources
- Programming Assignment FAQ
- Graph definitions and implementations Quiz Answer explanations (Read ONLY after you pass the quiz)
Welcome
2
Videos
- Introduction
- Project: Route Finding Project Overview
1
Readings
- By the end of this week, you will be able to ...
Basic Graph Search
1
Assignment
- Where to next?
10
Videos
- Core: Intro to Class Design
- When I struggled: Building useful classes
- In the Real World: Design patterns
- Core: DFS, Part 1
- Core: DFS, Part 2
- Core: BFS
- Support: Developing Small Examples to Test Your Code
- When I struggled: Data structures jargon
- When I struggled: The right data structure for the job
- Concept Challenge: Performance of DFS and BFS
From Problem Specification to Class Design
7
Videos
- Core: Class Design
- When I struggled: If you fail to plan ...
- When I struggled: ... but don't forget to start!
- In the real world: Planning ahead with design
- Core: Refactoring
- Support: Where to start the project design?
- In the Real World: Why is code refactored?
Check Your Understanding
- Project: Class Design and Graph Search
1
Assignment
- End of Week Quiz (complete project and peer review first)
1
Peer Review
- Code Design Peer Review
1
Videos
- Project: Programming Assignment Walk-through
2
Readings
- Week 3: Additional Resources
- End of Week Quiz Answers
Introduction
2
Videos
- Introduction
- Project: Shortest Path Overview
1
Readings
- By the end of this week, you will be able to ...
Shortest Path Algorithms
7
Videos
- Core: Shortest Path with BFS
- Core: Geographic Maps
- Core: Dijkstra's Algorithm
- Concept Challenge: Performance of Dijkstra's Algorithm
- Core: A* Search Algorithm
- When I struggled: Tackling large programming projects
- When I Struggled: Remembering classical algorithms
Check Your Understanding
- Project: Shortest Path
1
Assignment
- End of Week Quiz (very short, do programming assignment first)
1
Videos
- Project: Shortest Path Programming Assignment Walkthrough
3
Readings
- Week 4: Additional Resources
- Test cases and debugging guide for the quiz
- End of Week Quiz Answers
Introduction
1
Videos
- Introduction
1
Readings
- By the end of this week, you will be able to ...
The Traveling Salesperson Problem (TSP)
4
Videos
- Core: Traveling Salesperson Problem (TSP)
- Concept Challenge: An algorithm for TSP
- Core: TSP Brute-Force Algorithm
- Core: TSP Algorithm Running Time
Solving TSP using Heuristics
2
Videos
- Core: NP Hard
- Core: Approximations and Heuristics
Other hard (and not so hard) graph problems
4
Videos
- Core: Hamiltonian Graphs
- Core: Eulerian graphs
- Core: Eulerian graphs, an algorithm
- Core: An application in bioinformatics
Checking Your Understanding
1
Assignment
- End of Week Quiz
2
Readings
- Week 5: Additional Resources
- End of Week Quiz Answers
Project Extension
1
Assignment
- Week 6 Project Quiz (Complete your project extension first)
1
Peer Review
- Project Extension Feedback
2
Readings
- Week 6 Introduction
- Project: Week 6 Description -- REQUIRED EXTENSION
Congratulations!
1
Videos
- End of course message
Auto Summary
"Advanced Data Structures in Java" is a professional-level IT & Computer Science course led by Coursera. Focused on solving real-world problems, the course delves into complex data structures like graphs and algorithms. Over 1740 minutes, learners will develop a route planning application, gaining hands-on experience in code and class hierarchy design. Subscription options include Starter, Professional, and Paid, catering to various learning needs. Ideal for those wanting to master data structures and algorithms for practical applications.

Leo Porter

Mia Minnes

Christine Alvarado