Beginning Java Data Structures and Algorithms

This two-day Beginning Java Data Structures and Algorithms training class explores core algorithms and implementations and provides a base understanding of runtime complexity theory and various methods and concepts.

Goals
  1. Learn about space and time complexities express them using big O notation.
  2. Explore various classic sorting algorithms, such as merge and quick sort.
  3. Understand the workings of basic (Lists, queues and stacks) and complex data structures (hash tables and binary trees).
  4. Gain an insight into various algorithm design paradigms (Greedy, Divide and Conquer and Dynamic programming).
  5. Discover string matching techniques.
  6. Master graph representations and learn about different graph algorithms, such as cycle detection, traversal and shortest path.
Outline
  1. Algorithms and Complexities
    1. Developing our first algorithm
    2. Measuring algorithmic complexity with Big O notation
    3. Identifying algorithms with different complexities
  2. Sorting Algorithms and Fundamental Data Structures
    1. Introducing bubble sort
    2. Understanding quick sort
    3. Using merge sort
    4. Getting started with fundamental data structures
  3. Hash Tables and Binary Search Trees
    1. Introducing hash tables
    2. Getting started with binary search trees
  4. Algorithm Design Paradigms
    1. Introducing greedy algorithms
    2. Getting started with divide and conquer algorithms
    3. Understanding dynamic programming
  5. String Matching Algorithms
    1. Beginning naive search algorithm
    2. Getting started with the Boyer-Moore string searching algorithm
    3. Introducing other string matching algorithms
  6. Graphs, Prime Numbers, and Complexity Classes
    1. Representing graphs
    2. Traversing a graph
    3. Calculating shortest paths
    4. Prime numbers in algorithms
    5. Other concepts in graphs
Class Materials

Each student in our Live Online and our Onsite classes receives a comprehensive set of materials, including course notes and all the class examples.

Class Prerequisites

Experience in the following is required for this Java Fundamentals class:

  • Basic understanding of object-oriented programming techniques.