Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Beginning Java Data Structures and Algorithms
Rating: 4.6 out of 5(7 ratings)
63 students
Last updated 1/2019
English

What you'll learn

  • Understand some of the fundamental concepts behind key algorithms
  • Express space and time complexities using Big O notation.
  • Correctly implement classic sorting algorithms such as merge and quicksort
  • Correctly implement basic and complex data structures
  • Learn about different algorithm design paradigms, such as greedy, divide and conquer, and dynamic programming
  • Apply powerful string matching techniques and optimize your application logic
  • Master graph representations and learn about different graph algorithms

Course content

6 sections35 lectures2h 55m total length
  • Course Overview2:29

    In this course you will learn everything the concepts pertaining to algorithms and data structures. Each of the popular examples of algorithms, such as bubble, quick, and merge sort can help you relate the algorithms to familiar programming scenarios such as arranging numbers in ascending or descending order, and so on. Detailed explanations of data structure examples such as binary tree, hash table, and graphs will help you understand the improved efficiency of the program.   

  • Lesson Overview1:09

    In this lesson, we will examine different types of algorithms and discuss how the performance varies in each. We will discuss what makes an algorithm more efficient than another and how to express the complexity of each.   

  • Developing Our First Algorithm3:05

    An algorithm can be seen as a roadmap or a set of instructions to accomplish a well defined task. In this topic, we will build a simple example of one such algorithm to help us get started.   

  • Measuring Algorithmic Complexity with Big O Notation10:21

    Algorithmic complexity is a way to describe the efficiency of an algorithm as a relation of its input. It can be used to describe various properties of our code, such as runtime speed or memory requirements. It's also a very important tool programmers should understand to write efficient software. In this topic, we will start by describing a scenario, introducing the topic, and then dive into the details of the various types of complexities and the different techniques to measure them.   

  • Identifying Algorithms with Different Complexities6:42

    In this topic, we shall look into examples of different complexities. This is important so that we can learn to recognize algorithms that belong to different complexity classes and possibly attempt improving the performance of each.   

  • Summary0:28

    This section summarizes what we have learned in the earlier topics.   

  • Test Your Knowledge

Requirements

  • Basic knowledge of Java, mathematics and object-oriented programming techniques

Description

Learning about data  structures and algorithms gives you better insight on how to solve  common programming problems. Most of the problems faced every day by  programmers have been solved, tried, and tested. By knowing how these  solutions work, you can ensure that you choose the right tool when you  face these problems.


This course teaches you tools  that you can use to build efficient applications. It starts with an  introduction to algorithms and big O notation, later explains bubble,  merge, quicksort, and other popular programming patterns. You'll also  learn about data structures such as binary trees, hash tables, and  graphs. The course progresses to advanced concepts, such as algorithm  design paradigms and graph theory. By the end of the course, you will  know how to correctly implement common algorithms and data structures  within your applications. 


About the Author

Kristian Secor has been in  the industry for quite a while. He a M.S. focusing on web development  and an Ed.D focusing on educational technology. He has been developing  for about 20 years and has been teaching for about 16 years at the  University level for the frontend, backend, and mobile application  courses. Currently, he is working as the Program Head for the Web  Development Department at San Diego Mesa College. He is also an  instructor for both user experience and frontend development at U.C. San  Diego Extension. 


Who this course is for:

  • If you want to better understand common data structures and algorithms by following code examples in Java and improve your application efficiency, then this is the course for you.