PřF:C2142 Design of algorithms in life s - Course Information
C2142 Design of algorithms in life sciencesFaculty of Science
- 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).
- doc. RNDr. Radka Svobodová, Ph.D. (lecturer)
RNDr. Tomáš Raček (lecturer)
- Guaranteed by
- doc. RNDr. Radka Svobodová, Ph.D.
National Centre for Biomolecular Research - Faculty of Science
Supplier department: National Centre for Biomolecular Research - Faculty of Science
- 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: 0/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.
- 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.
- 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