When you enroll in this course, you'll also be enrolled in this Specialization.
Learn new concepts from industry experts
Gain a foundational understanding of a subject or tool
Develop job-relevant skills with hands-on projects
Earn a shareable career certificate
There are 4 modules in this course
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. In this online course you will learn key pattern matching concepts: tries, suffix trees, suffix arrays and even the Burrows-Wheeler transform.
How would you search for a longest repeat in a string in LINEAR time? In 1973, Peter Weiner came up with a surprising solution that was based on suffix trees, the key data structure in pattern matching. Computer scientists were so impressed with his algorithm that they called it the Algorithm of the Year. In this lesson, we will explore some key ideas for pattern matching that will - through a series of trials and errors - bring us to suffix trees.
From Genome Sequencing to Pattern Matching•8 minutes
Brute Force Approach to Pattern Matching•2 minutes
Herding Patterns into Trie•5 minutes
Herding Text into Suffix Trie•6 minutes
Suffix Trees•5 minutes
5 readings•Total 50 minutes
Trie Construction - Pseudocode•10 minutes
FAQ•10 minutes
Slides and External References•10 minutes
Available Programming Languages•10 minutes
FAQ on Programming Assignments•10 minutes
1 assignment•Total 30 minutes
Tries and Suffix Trees•30 minutes
1 programming assignment•Total 180 minutes
Programming Assignment 1•180 minutes
Burrows-Wheeler Transform and Suffix Arrays
Module 2•5 hours to complete
Module details
Although EXACT pattern matching with suffix trees is fast, it is not clear how to use suffix trees for APPROXIMATE pattern matching. In 1994, Michael Burrows and David Wheeler invented an ingenious algorithm for text compression that is now known as Burrows-Wheeler Transform. They knew nothing about genomics, and they could not have imagined that 15 years later their algorithm will become the workhorse of biologists searching for genomic mutations. But what text compression has to do with pattern matching??? In this lesson you will learn that the fate of an algorithm is often hard to predict – its applications may appear in a field that has nothing to do with the original plan of its inventors.
Burrows-Wheeler Transform and Suffix Arrays•30 minutes
1 programming assignment•Total 180 minutes
Programming Assignment 2•180 minutes
Knuth–Morris–Pratt Algorithm
Module 3•4 hours to complete
Module details
Congratulations, you have now learned the key pattern matching concepts: tries, suffix trees, suffix arrays and even the Burrows-Wheeler transform! However, some of the results Pavel mentioned remain mysterious: e.g., how can we perform exact pattern matching in O(|Text|) time rather than in O(|Text|*|Pattern|) time as in the naïve brute force algorithm? How can it be that matching a 1000-nucleotide pattern against the human genome is nearly as fast as matching a 3-nucleotide pattern??? Also, even though Pavel showed how to quickly construct the suffix array given the suffix tree, he has not revealed the magic behind the fast algorithms for the suffix tree construction!In this module, Miсhael will address some algorithmic challenges that Pavel tried to hide from you :) such as the Knuth-Morris-Pratt algorithm for exact pattern matching and more efficient algorithms for suffix tree and suffix array construction.
What's included
8 videos2 readings1 assignment
Show info about module content
8 videos•Total 54 minutes
Exact Pattern Matching•7 minutes
Skipping Positions•10 minutes
Safe Shift•4 minutes
Prefix Function•12 minutes
Computing Prefix Function•7 minutes
Implementation•5 minutes
Analysis•4 minutes
Knuth-Morris-Pratt Algorithm•7 minutes
2 readings•Total 130 minutes
Programming Assignment 3 lasts for two weeks•120 minutes
Slides and External References•10 minutes
1 assignment•Total 30 minutes
Exact Pattern Matching•30 minutes
Constructing Suffix Arrays and Suffix Trees
Module 4•6 hours to complete
Module details
In this module we continue studying algorithmic challenges of the string algorithms. You will learn an O(n log n) algorithm for suffix array construction and a linear time algorithm for construction of suffix tree from a suffix array. You will also implement these algorithms and the Knuth-Morris-Pratt algorithm in the last Programming Assignment in this course.
UC San Diego is an academic powerhouse and economic engine, recognized as one of the top 10 public universities by U.S. News and World Report. Innovation is central to who we are and what we do. Here, students learn that knowledge isn't just acquired in the classroom—life is their laboratory.
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."
Learner reviews
4.5
1,090 reviews
5 stars
67.43%
4 stars
21%
3 stars
7.52%
2 stars
2.29%
1 star
1.74%
Showing 3 of 1090
R
RS
5·
Reviewed on Jul 23, 2023
I only wish I could get an 'gold-standard' sample of the programs I wasn't capable of writing after course completion, so I can see where I made my mistakes.
P
PA
5·
Reviewed on May 12, 2020
course content was great but i personally feels some difficulties in the implementation part so the course is meant to be more implementation oriented . thank you for the wondorful course
P
PG
5·
Reviewed on Dec 1, 2023
Very well explained and the exercises truely checks your understanding. The level of hardness of this course is medium-hard. So definitely learned a lot.
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I subscribe to this Specialization?
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.