Search courses 👉
Professional Course

Data Structures & Algorithms IV: Pattern Matching, Dijkstra’s, MST, and Dynamic Programming Algorithms

edX, Online
Length
5 weeks
Price
149 USD
Next course start
Start anytime See details
Delivery
Self-paced Online
Length
5 weeks
Price
149 USD
Next course start
Start anytime See details
Delivery
Self-paced Online
Visit this course's homepage on the provider's site to learn more or book!

Course description

Data Structures & Algorithms IV: Pattern Matching, Dijkstra’s, MST, and Dynamic Programming Algorithms

This Data Structures & Algorithms course completes the 4-course sequence of the program with graph algorithms, dynamic programming and pattern matching solutions. A short Java review is presented on topics relevant to new data structures covered in this course. The course does require prior knowledge of Java, object-oriented programming and linear and non-linear data structures. Time complexity is threaded throughout the course within all the data structures and algorithms.

You will delve into the Graph ADT and all of its auxiliary data structures that are used to represent graphs. Understanding these representations is key to developing algorithms that traverse the entire graph. Two traversal algorithms are studied: Depth-First Search and Breadth-First Search. Once a graph is traversed then it follows that you want to find the shortest path from a single vertex to all other vertices. Dijkstra’s algorithm allows you to have a deeper understanding of the Graph ADT. You will investigate the Minimum Spanning Tree (MST) problem. Two important, greedy algorithms create an MST: Prim’s and Kruskal’s.

Prim’s focuses on connected graphs and uses the concept of growing a cloud of vertices. Kruskal’s approaches the MST differently and creates clusters of vertices that then form a forest.

The other half of this course examines text processing algorithms. Pattern Matching algorithms are crucial in everyday technology. You begin with the simplest of the algorithms, Brute Force, which is the easiest to implement and understand.

Upcoming start dates

1 start date available

Start anytime

  • Self-paced Online
  • Online
  • English

Who should attend?

Prerequisites

Basic knowledge of the Java programming language, object-oriented principles, and various abstract data types from LinkedLists to Hashmaps to Trees to Stacks & Queues.

Training content

Module 0: Introduction and Review

  • Review of important Java principles involved in object-oriented design
  • The Iterator & Iterable design patterns, and the Comparable & Comparator interfaces
  • Basic “Big-Oh” notation and asymptotic analysis

Module 12: Pattern Matching Algorithms

  • Examine algorithms for text processing, the simplest being Brute Force
  • Apply preprocessing techniques in Boyer-Moore to improve performance
  • Knuth-Morris-Pratt (KMP) avoids waste in prefixes of the pattern to achieve the best runtime
  • Approach the pattern matching problem from the perspective of hash codes in Rabin-Karp
  • Consider the time complexity of each of the algorithms

Module 13: Introduction to Graph Algorithms

  • Explore the Graph ADT and its representation in auxiliary data structures
  • Implement the Depth-First Search and Breadth-First Search graph traversal algorithms
  • Examine weighted graphs and Dijkstra’s shortest path algorithm which uses edge relaxation

Module 14: Minimum Spanning Trees

  • Study weighted, undirected graphs to find Minimum Spanning Trees (MST)
  • Apply greedy algorithms to solve the MST problem
  • Prim’s algorithm operates on connected graphs and employs the concept of cloud
  • Approach the MST problem with Kruskal’s algorithm using cluster and forest concepts

Module 15: Dynamic Programming

  • Apply the Dynamic Programming techniques that focus on the subproblems
  • Examine the components of a dynamic programming algorithmic solution
  • Implement the Longest Common Subsequence algorithm to solve DNA

Course delivery details

This course is offered through The Georgia Institute of Technology, a partner institute of EdX.

9-10 hours per week

Costs

  • Verified Track -$149
  • Audit Track - Free

Certification / Credits

What you'll learn

  • Improve Java programming skills by implementing graph and Dynamic Programming algorithms
  • Study algorithm techniques for finding patterns in text processing
  • Use preprocessing in the Boyer-Moore and KMP algorithms
  • Explore the problem with hash codes in the Rabin-Karp algorithm
  • Understand the Graph ADT and its representations within auxiliary structures
  • Traverse graphs using the Depth-First and Breadth-First Search algorithms
  • Investigate Dijkstra’s Shortest Path algorithm which operates on weighted graphs
  • Study the Minimum Spanning Tree (MST) problem and its characteristics
  • Utilize Greedy algorithms, like Prim’s and Kruskal’s, to find the MST
  • Decompose large problems using Dynamic Programming techniques
  • Apply Dynamic Programming techniques in the Longest Common Subsequence algorithm

Contact this provider

Contact course provider

Fill out your details to find out more about Data Structures & Algorithms IV: Pattern Matching, Dijkstra’s, MST, and Dynamic Programming Algorithms.

  Contact the provider

  Get more information

  Register your interest

Country *

reCAPTCHA logo This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
edX
141 Portland Street
02139 Cambridge Massachusetts

edX

edX For Business helps leading companies upskill their labor forces by making the world’s greatest educational resources available to learners across a wide variety of in-demand fields. edX For Business delivers high-quality corporate eLearning to train and engage your employees...

Read more and show all training delivered by this supplier

Ads