Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Implementing Graph Algorithms Using Scala
Rating: 4.1 out of 5(34 ratings)
232 students

Implementing Graph Algorithms Using Scala

Learn functional programming in Scala by implementing various graph algorithms.
Last updated 8/2018
English

What you'll learn

  • Understand adjacency list and matrix representation
  • Learn BFS vs DFS graph traversal and the implemented in a functional manner
  • Implement a topological sort algorithm
  • Discover how to implement a cycle detection in graphs.
  • Understand and develop the existing Dijkstra's shortest path algorithm
  • Understand what is max flow in a flow network and implement the Ford-Fulkerson method and the Edmonds-Karp algorithm

Course content

6 sections26 lectures3h 35m total length
  • The Course Overview4:08

    This video provides an overview of the entire course.

  • Representing Graphs9:49

    In this video, we introduce different types of graphs and describe ways to representing them programmatically.

    • Learn about the different terminology in graph theory

    • Understand various types of graphs through the use of examples

    • Discover the two main type of representation methods

  • Functional Graphs12:10

    In this video, clip we discuss what the principles of what makes programming functional are. We see how these principles can be applied to represent graphs.

    • Find out about the three main functional principles

    • Understand the benefits of functional programming

    • Adopt certain data structures to enable us to follow these principles

  • Developing Functional Graphs19:43

    Here we implement the different types of graphs in Scala in a functional manner.

    • Use functional friendly data structures to model graphs

    • Discover how to use Scala’s vectors and map

    • Follow code walkthrough for weighted and Directed graphs

Requirements

  • Should have intermediate experience in Scala.

Description

Scala's functional programming features are a boon to help you design “easy to reason about” systems to control growing software complexities.In this course we practise many functional techniques by solving various graph problems. We start by looking at how we can represent graph structures in an efficient functional manner. Then we explore both the breadth and depth first search graph traversal techniques. Later we use this techniques to show how they can be used for topological sorting and cycle detection. In this course we also describe more complex algorithms such as finding the shortest path and maximal flow networks. All of these solutions are illustrated with easy to understand diagrams and animations. Special care is taken when writing solution so that the principles of functional programming are followed.

By the end of the course, you will be well-versed in all the functional concepts of Scala and you will have refreshed your knowledge of graph algorithms.

About the author

James Cutajar is a software developer with interests in scalable, high-performance computing and distributed algorithms. He is also an open source contributor, author, blogger, and tech evangelist. When he is not writing software, he is riding his motorbike, surfing, or flying light aircraft. He was born in Malta, lived for almost a decade in London, and is now working in Portugal.

Who this course is for:

  • This course is aimed at those with an intermediate experience in Scala. This course will allow developers to understand a number of graph algorithms and show how these algorithms can be implemented functionally.