Introduction to the Course-About This Course
Welcome
()
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
Your path through this course
()
Concept challenges
()
Welcome from the Google engineers
Project Overview
Project Prototype
()
Introduction to the Course-Check Your Understanding
Setting up Java and Eclipse
Getting and Setting up the Starter Code
Project: Orientation to the Starter Code, Data Files and Front-end
Introduction to Graphs-Welcome
Introduction
()
A note about week numbers
By the end of this week, you will be able to...
Project: Introduction to Graphs Project Overview
()
Introduction to Graphs-Introduction to Graphs
Core: What's a graph?
()
Core: Graph definitions
()
In the real world: Graphs at Google
()
In the real world: More graphs at Google
()
(Read only AFTER finishing Graphs Quiz)
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
()
Graph definitions and implementation: a glossary
Introduction to Graphs-Check Your Understanding
Week 2: Additional Resources
Project: Programming Assignment Walkthrough
()
Programming Assignment FAQ
Graph definitions and implementations Quiz Answer explanations (Read ONLY after you pass the quiz)
Class design and simple graph search-Welcome
Introduction
()
By the end of this week, you will be able to ...
Project: Route Finding Project Overview
()
Class design and simple graph search-Basic Graph Search
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
()
Class design and simple graph search-From Problem Specification to Class Design
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?
()
Class design and simple graph search-Check Your Understanding
Week 3: Additional Resources
Project: Programming Assignment Walk-through
()
End of Week Quiz Answers
Finding shortest paths in weighted graphs-Introduction
Introduction
()
By the end of this week, you will be able to ...
Project: Shortest Path Overview
()
Finding shortest paths in weighted graphs-Shortest Path Algorithms
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
()
Finding shortest paths in weighted graphs-Check Your Understanding
Week 4: Additional Resources
Project: Shortest Path Programming Assignment Walkthrough
()
Test cases and debugging guide for the quiz
End of Week Quiz Answers
Route planning and NP-hard graph problems-Introduction
Introduction
()
By the end of this week, you will be able to ...
Route planning and NP-hard graph problems-The Traveling Salesperson Problem (TSP)
Core: Traveling Salesperson Problem (TSP)
()
Concept Challenge: An algorithm for TSP
()
Core: TSP Brute-Force Algorithm
()
Core: TSP Algorithm Running Time
()
Route planning and NP-hard graph problems-Solving TSP using Heuristics
Core: NP Hard
()
Core: Approximations and Heuristics
()
Route planning and NP-hard graph problems-Other hard (and not so hard) graph problems
Core: Hamiltonian Graphs
()
Core: Eulerian graphs
()
Core: Eulerian graphs, an algorithm
()
Core: An application in bioinformatics
()
Route planning and NP-hard graph problems-Checking Your Understanding
Week 5: Additional Resources
End of Week Quiz Answers
End of Course Project Extension-Project Extension
Week 6 Introduction
Project: Week 6 Description -- REQUIRED EXTENSION
End of Course Project Extension-Congratulations!
End of course message
()