About the course

Finding specified patterns in large amounts of text data is at the core of how we have come to use search engines on the internet and search capabilities of document databases. The same goes for the analysis of DNA strings and other biological data, which from a computer scientists perspective is essentially the same sort of data as text.

On this course, you have the opportunity to expand your previously acquired knowledge of sorting algorithms and lookup data structures (search trees and hash tables) into specializations for string data, necessary to provide search and pattern matching with enough power for the commonplace and scientific uses that we have grown used to. Furthermore, you acquaint yourself with the closely related topic of algorithms for compressing data to represent information as space-efficiently as possible. In addition to being directly useful, the material on the course serves as examples for a generally deeper knowledge of how to analyze and tackle problems from the perspective of algorithm theory. This knowledge is widely valuable, outside of the application areas we address.

Course content

- Representation of sequential data, such as text or DNA sequences
- Radix sorting methods
- Data structures for efficient string lookup, such as inverted file, trie, suffix tree, and suffix array
- Methods for lossless data compression such as Huffman code, Ziv–Lempel compression, and the Burrows-Wheeler transform
- Methods for string search, and pattern matching using regular expressions
- Inverted file indexes for search engine use

Syllabus and course literature

You can find a list of literature in the syllabus, along with other details about the course.

Entry requirements and selection

Entry requirements


- DA292A or DA252A or DA304A, or:

- 7.5 ECTS in algorithms and data structures which includes prevalent algorithms and data structures for sorting and searching

7.5 ECTS in programming

English B/English 6 or the equivalent.


University credits completed 100%

Course evaluation

The University provides students who are taking or have completed a course with the opportunity to share their experiences of and opinions about the course in the form of a course evaluation that is arranged by the University. The University compiles the course evaluations and notifies the results and any decisions regarding actions brought about by the course evaluations. The results shall be kept available for the students. (HF 1:14).


For more information about the education: