## C2142 Design of algorithms in life sciences

Faculty of Science
Spring 2022
Extent and Intensity
1/2/0. 3 credit(s) (plus extra credits for completion). Recommended Type of Completion: zk (examination). Other types of completion: z (credit).
Teacher(s)
RNDr. Tomáš Raček, Ph.D. (lecturer)
doc. RNDr. Radka Svobodová, Ph.D. (lecturer)
Guaranteed by
National Centre for Biomolecular Research - Faculty of Science
Supplier department: National Centre for Biomolecular Research - Faculty of Science
Timetable
Mon 18:00–18:50 B11/205
• Timetable of Seminar Groups:
C2142/01: Tue 12:00–13:50 C04/211, T. Raček
C2142/02: Tue 14:00–15:50 C04/211, T. Raček
Prerequisites
Basic familiarity with an arbitrary programming language is an advantage, but it's not required. Programming examples are written in Python.
Course Enrolment Limitations
The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 50 student(s).
Current registration and enrolment status: enrolled: 16/50, only registered: 0/50, only registered with preference (fields directly associated with the programme): 0/50
fields of study / plans the course is directly associated with
Course objectives
Introduce the fundamental principles for efficient algorithms and data structures design demonstrated on interesting science examples.
Learning outcomes
At the end of the course the students will be able to describe and to use known algorithms for solving common problems.
Moreover, they will be able to design new approaches to the particular applications with an emphasis on efficiency of the solution.
The graduates will also have the ability to critically evaluate and choose optimal solution to the uncommon problems.
Syllabus
• 1. From problem to algorithm. Specification, correctness.
• 2. Introduction to complexity. Examples of life science problems with logarithmic, polynomial and exponential complexity.
• 3. Basic data structures (linked list, queue, stack). Applications in biology and chemistry.
• 4. Motivation to the data searching, sorting algorithms (binary search, Selection sort, Merge sort). Applications in processing chemoinformatics and bioinformatics data.
• 5. Search trees, heaps (BST, Heap sort). Applications in processing chemoinformatics and bioinformatics data.
• 6. Hashes, indices. Possibilities of use in biology and computer chemistry.
• 7. Basic graph theory terms, graph representation, methods of traversal (BFS, DFS). Molecular graph.
• 8. Shortest path problem (Dijkstra, Bellman-Ford). Application in working with molecular graph.
• 9. Spanning trees (Prim, Kruskal, Union-Find). Application in processing molecular graph.
• 10. Approaches to solving problems I (brute force, recursive algorithms, divide and conquer, greedy algorithms). Application in chemoinformatics and bioinformatics.
• 11. Approaches to solving problems II (backtracking, dynamic programming, heuristics). Applications in biology and chemistry.
• 12. Hard problems (TSP, P vs. NP). Examples of life science hard problems.
Literature
recommended literature
• Introduction to algorithms. Edited by Thomas H. Cormen. 3rd ed. Cambridge, Mass.: MIT Press, 2009. 1 online r. ISBN 0262533057. info
• COMPEAU, Phillip and Pavel PEVZNER. Bioinformatics algorithms : an active learning approach. La Jolla, Calif.: Active Learning Publishers, 2014. xxii, 362. ISBN 9780990374602. info
Teaching methods
Lectures supplemented by seminars. Optional homework.
Assessment methods
Final written exam. For successful completion of the course at least 60 % of points is required for examination and 40 % for credit.
Language of instruction
Czech