Algorithms on Strings

  • 4.5
Approx. 18 hours to complete

Course Summary

This course teaches the fundamental algorithms for processing strings, including trie, suffix trees, Burrows-Wheeler transform, and FM-index. Students will also learn about applications of these algorithms in fields like computational biology and data compression.

Key Learning Points

  • Gain a deep understanding of fundamental string algorithms
  • Learn about real-world applications of these algorithms in computational biology and data compression
  • Receive hands-on practice implementing string algorithms in programming assignments

Related Topics for further study


Learning Outcomes

  • Understand the fundamental algorithms for processing strings
  • Gain hands-on experience implementing these algorithms in programming assignments
  • Learn about the applications of string algorithms in computational biology and data compression

Prerequisites or good to have knowledge before taking this course

  • Basic knowledge of programming in a high-level language like Python, Java, or C++
  • Familiarity with algorithms and data structures

Course Difficulty Level

Intermediate

Course Format

  • Online
  • Self-paced

Similar Courses

  • Algorithmic Toolbox
  • Data Structures and Algorithms
  • Bioinformatics Specialization

Related Education Paths


Related Books

Description

World and internet is full of textual information. We search for information using textual queries, we read websites, books, e-mails. All those are strings from the point of view of computer science. To make sense of all that information and make search efficient, search engines use many string algorithms. Moreover, the emerging field of personalized medicine uses many search algorithms to find disease-causing mutations in the human genome.

Outline

  • Suffix Trees
  • From Genome Sequencing to Pattern Matching
  • Brute Force Approach to Pattern Matching
  • Herding Patterns into Trie
  • Herding Text into Suffix Trie
  • Suffix Trees
  • About University
  • Trie Construction - Pseudocode
  • FAQ
  • Slides and External References
  • Available Programming Languages
  • FAQ on Programming Assignments
  • Rules on the academic integrity in the course
  • Burrows-Wheeler Transform and Suffix Arrays
  • Burrows-Wheeler Transform
  • Inverting Burrows-Wheeler Transform
  • Using BWT for Pattern Matching
  • Suffix Arrays
  • Approximate Pattern Matching
  • Using BWT for Pattern Matching
  • Pattern Matching with Suffix Array
  • FAQ
  • Slides and External References
  • Knuth–Morris–Pratt Algorithm
  • Exact Pattern Matching
  • Safe Shift
  • Prefix Function
  • Computing Prefix Function
  • Knuth-Morris-Pratt Algorithm
  • Programming Assignment 3 lasts for two weeks
  • Slides and External References
  • Exact Pattern Matching
  • Constructing Suffix Arrays and Suffix Trees
  • Suffix Array
  • General Strategy
  • Initialization
  • Sort Doubled Cyclic Shifts
  • SortDouble Implementation
  • Updating Classes
  • Full Algorithm
  • Suffix Array and Suffix Tree
  • LCP Array
  • Computing the LCP Array
  • Construct Suffix Tree from Suffix Array and LCP Array
  • Counting Sort
  • Slides and External References
  • Computing the LCP Array - Additional Slides
  • Suffix Tree Construction - Pseudocode
  • Slides and External References
  • Suffix Array Construction

Summary of User Reviews

Algorithms on Strings course offers comprehensive knowledge and techniques for dealing with string algorithms. The course has received high praise from its users and is highly recommended for anyone looking to improve their string algorithm skills.

Key Aspect Users Liked About This Course

The course material is well-structured and easy to follow.

Pros from User Reviews

  • Excellent explanations of string algorithms
  • Well-structured course material
  • Great practice problems and quizzes
  • Engaging and knowledgeable instructors
  • Useful real-world applications

Cons from User Reviews

  • Some of the programming assignments are difficult
  • The course can be time-consuming
  • Not suitable for beginners in programming
  • Some of the lectures can be dry
  • Limited interaction with instructors
English
Available now
Approx. 18 hours to complete
Alexander S. Kulikov, Michael Levin, Pavel Pevzner, Neil Rhodes
University of California San Diego, HSE University
Coursera

Instructor

Alexander S. Kulikov

  • 4.5 Raiting
Share
Saved Course list
Cancel
Get Course Update
Computer Courses