Introduction to Graph Algorithms

Course Overview

This course teaches you about using the Neo4j Graph Algorithms library. It covers the categories of graph algorithms implemented in the library. Not all of the graph algorithms covered in this course are officially supported by Neo4j, but it provides you with exposure and practice using both the supported and unsupported (Lab) algorithms. In this course, you will use both the Graph Algorithms Playground (NEuler) for exploring datasets, as well as using Neo4j Browser to gain experience with the algorithms.

Course objectives

At the completion of this course, you should be able to:

  1. Describe what a graph algorithm is and why it is used.
  2. Prepare your development environment for using graph algorithms.
  3. Write code to implement these types of graph algorithms:
  4. Community Detection
    • Connected Components (unionFind)*
    • Label Propagation*
    • Louvain Modularity*
    • Strongly Connected Components
    • Triangles
    • Triangle Count
    • Clustering Coefficient
  5. Centrality
    • PageRank*
    • Closeness Centrality
    • Wasserman and Faust
    • Harmonic Centrality
    • Betweenness Centrality
    • Randomized-Approximate Brandes
  6. Pathfinding
    • ShortestPath
    • Ken's K-shortest Path
    • Single Source Shortest Path
    • Minimum Spanning Tree
    • Random Walk
  7. Similarity
    • Overlap Similarity
    • Pearson Similarity
    • Jaccard Similarity
  8. Link Prediction
    • Common Neighbors
    • Adamic Adar
    • Preferential Attachment
  9. Estimate memory requirements for loading and using the Neo4j supported algorithms
  10. Describe some best practices for using graph algorithms.

* Denotes the algorithm is officially supported by Neo4j. All other algorithms are maintained by Neo4j Labs.

Instructor

Patrick Baumgartner

Patrick Baumgartner

Patrick Baumgartner works as a passionate software craftsman at 42talents and builds software with Java/JEE, Spring Framework, OSGi, NoSQL databases and other open source technologies. Since he got in touch with Neo4j a few years ago, he sees the whole world as one big connected graph and loves to talk about it.

Patrick is a host of the Neo4j Zürich and the Software Craftsmanship Zürich Meetup group and is engaged in the agile community in Switzerland.

Twitter: @patbaumgartner@42talents