Lecturer
Schedule & room
TBA
Office hours
TBA
Pre-requisites
There are no formal pre-requisites but students are strongly advised to take IF672-"Algorithms and data structures" before. You will need familiarity with the design, analysis and implementation of basic data structures and algorithms such as sorting and searching.
Syllabus (tentative)
- Basic concepts
- Alphabets, strings, substrings
- String distances
- String matching
- Exact string matching
(Sliding window methods, semi-numerical methods, bit-parallelism methods)
- Approximate string matching
(Distance-matrix methods, automata-theoretic methods, bit-parallelism)
- Exact string matching
- Indexing
- Suffix trees
(Efficient construction and representation, string matching, other applications)
- Suffix arrays
(Efficient construction and representation, string matching)
- Suffix trees
- Text compression
- Huffman coding
- Lempel-Ziv factorisation
Basic bibliography
- Dan Gusfield. Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology. Cambridge Univ Press, 1997.
- M. Crochemore and W. Rytter, Text Algorithms, Oxford University Press, New York, 1994.
Grading
The final grade will be weighted as follows
- 40% will correspond to 4 individual written assignments
- 60% will correspond to an implementation project in groups up to 2 (two) students
Academic ethics
Students are expected to do their own work, to understand what they have done, and to be able to explain their reasoning without assistance. It is OK to discuss with colleagues about problems in written assignments, but one must write down the detailed solutions in one's own words. It is also OK to study existing code, but it is not OK to copy and paste substantial parts of it and present as one's own work. Plagiarism and cheating do not contribute to the educational process and will not be accepted.