Video 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 look at some sorting and search algorithms. Most algorithms are traditionally defined in an imperative manner, typically consisting of repetitions in the form of conditional looping and altering states. Writing these in a functional manner is not always a trivial process. In this lesson we will look to do the same. We will also show how to implement search data structures in functional and immutable manner. We will look at number sorting, substring search, hash maps, binary trees, and closest pair algorithms. Along the way, we will talk about bubble sort, merge sort, backtracking, why purely functional data structures are problematic, and the problems with immutable data structures. Further, we will look at balanced and unbalanced binary trees, DFS and BFS traversal, 1D, 2D, and brute force algorithms.
By the end of the course, you will have gained a thorough knowledge of many functional Scala concepts.
Key Features
- Discuss the disadvantages of the imperative approach and compare them with implement the algorithms in a functional manner
- Reinforce your knowledge using assessments and quizzes
- Verify the concepts learned through an end-of-the-course practical project
Who this course is for
This course is aimed at intermediate Scala developers who want to learn in depth about functional programming concepts in Scala. This course will help intermediate developers understand complex search and sort algorithms and implement functional approach to solve these algorithms.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
