Algorithms are one of the fundamental pillars in any software application, as they give programs a set of instructions to perform a task. In this course, Kathryn Hodge aims to help you create better Java programs by using efficient algorithms. She starts with explaining the basics, detailing what makes a given algorithm effective as well as how to make informed assumptions about their data to create more efficient algorithms. She then focuses on how to create algorithms that work with different types of data, including strings and arrays, and how to leverage data structures to make their algorithms more efficient. Many algorithms are built into the Java language, and Kathryn shows how to use these—as well as how to create your own custom algorithms—so you can work with your data in exactly the way you want.