Course Syllabus

This course covers a range of string matching/sequence alignment topics with a focus on biological applications. In addition to a survey of several classical algorithms in string matching and alignment, a major focus will be placed on recent advances in this field, including space-efficient indices (e.g. extensions of the Burrows-Wheeler transform) and parallel string-matching algorithms.

While the focus of the course is on biological applications, the algorithms and techniques described in the course have broader application in other areas of CS (including NLP, software engineering, and security).

This course is intended for graduate students with a strong background in algorithms and data-structures. Programming expertise is a must. No background in biology is required. If you are uncertain about meeting these requirements please contact me.


IMPORTANT: all communication with the instructors should be conducted through Piazza. 

Piazza page: 

Instructors: Mihai Pop, Stephen Altschul, Adam Phillippy

Office hours: by appointment

Class location: Brendan Iribe Center Room 2107
Class days/time: Tuesdays/Thursdays 9:30-10:45 am

TA: Victoria Cepeda Espinoza

Important dates

Thursday, March 14, 9:30-10:45am - Midterm exam
Friday, May 17, 8:00-10:00am - Final exam

Course schedule (will be adjusted as needed throughout the semester)


This course does not require a textbook.  We will use lecture notes as well as additional papers that will be posted throughout the semester.


Homework - 20%
Class project - 25%
Midterm - 25%
Final - 30%

Attendance policy

Please notify me in advance if you will miss any exam due to a University sanctioned excuse (medical absence, religious observance, etc.).  In case of sudden illness that causes you to miss an exam you must provide me with a medical note documenting the illness, and clearly specifying the days/times that you were incapacitated due to illness. 

Part of the class grade is participation/quizzes.  Reasonable absences will be accommodated when grading - please inform me in advance if you will miss a class. Please see here: and below for further details.

Any student who needs to be excused for an absence from a single lecture, recitation, or lab due to a medically necessitated absence shall:
a) Make a reasonable attempt to inform the instructor of his/her illness prior to the class.
b) Upon returning to the class, present their instructor with a self-signed note attesting to the date of their illness. Each note must contain an acknowledgment by the student that the information provided is true and correct. Providing false information to University officials is prohibited under Part 10(j) of the Code of Student Conduct (V-1.00(B) University of Maryland Code of Student Conduct) and may result in disciplinary action.

The self-documentation may not be used for exams (midterm or final) and it may be used for only 2 non-consecutive class meetings during the semester. Any student who needs to be excused for a prolonged absence (2 or more consecutive class meetings), or for an exam, must provide written documentation of the illness from the Health Center or from an outside health care provider. This documentation must verify dates of treatment and indicate the time frame during which student was unable to meet academic responsibilities. In addition, it must contain the name and phone number of the medical service provider to be used if verification is needed. No diagnostic information will ever be requested.

Religious observances

You must notify me within 2 weeks from the beginning of class if you will miss a class or exam due to a religious observance.  Requests received after two weeks will not be accommodated. Please check university policies from the following 2 links.

Accommodations for disabilities

You must notify me within 2 weeks from the beginning of class if you require special accommodations due to disabilities.  All such requests must be accompanied by documentation from the Accessibility and Disability Service. Requests received after this deadline will not be accommodated.

IMPORTANT: Time and a half or double time accommodations generally only apply to timed assignments such as in-class quizzes and exams. They do not apply to reading or programming assignments, or other assignments that can be completed outside of the classroom.   If you think that your particular situation requires accommodations for such assignments, please meet with me within the first 2 weeks of class to discuss whether reasonable accommodations can be made.  As for any other accommodations, formal support from ADS is mandatory.

Communication is key

Please participate in Piazza discussions, interact with  your colleagues, and contact the instructors and the TA if you have questions or concerns.

For general questions about class materials and discussion use Piazza.

To contact the instructors and TA directly, please use Piazza rather than our individual emails. This ensures that all emails are recorded and associated with the course, and also that no emails get lost in spam folders or the general email deluge that we are often faced with.

Academic honesty

Simply put: cheating will not be tolerated under any circumstance.  While you are allowed to prepare for assignments together, you must complete all individual assignments by yourselves.  Also, all exams are strictly individual.

In particular, the code you submit to Rosalind must be your own.  We will run plagiarism detection software, and we are well aware of the various code floating around github and other online forums.

Further information on academic integrity is available here: .

IMPORTANT:   I will refer all cases of academic dishonesty directly to the Office of Student Conduct. In other words - I will not provide you the opportunity to "make a deal" or provide an excuse.

Course Summary:

Date Details