|
OHJ-2156 Analysis of Algorithms, 4 cr |
Henri Hansen, Antti Valmari
Lecture times and places | Target group recommended to | |
Implementation 1 |
|
We learn by doing: We analyze many algorithms both during lectures and during exercises. Independent implementation (i.e. coding) of algorithms for simulating and testing the ideas presented in the course is encouraged.
Understanding and analyzing correctness and efficiency of algorithms. Understanding proofs of correctness, understanding the principles of simple algorithms. Use of Theta-notation.
Content | Core content | Complementary knowledge | Specialist knowledge |
1. | Simple loop structures and their invariants with proofs. | Extensive use of state propositions. More complicated invariants | Difficult proofs of correctness, underlying mathematical structures. |
2. | Analysis of time consumption of simple iterative programs. Elimination of tail recursion, simple recursive algorithms and recurrences, elements of amortized analysis. | Master Theorem, amortized analysis using potential functions, complicated iterative algoritms. | Complexity issues, exponential algorithms. |
3. | Properties of basic algorithms: Sorting, Graph algorithms (BFS, DFS etc), the selection of a data structure from the point of view of efficiency, both memory and time. | More advanced algorithms: greedy algorithms, dynamic programming, high level implementation details, amortized costs of data structure operations as part of an algorithm. | Difficult algorithms and advanced proofs. |
Grading is based on exam. Questions are graded based how correct results are gained by using clearly presented reasoning.
Numerical evaluation scale (1-5) will be used on the course
Type | Name | Author | ISBN | URL | Edition, availability, ... | Examination material | Language |
Book | Introduction to Algorithms, 2nd edition | Cormen et. al | English |
Course | Mandatory/Advisable | Description |
OHJ-2010 Utilization of Data Structures | Mandatory | |
OHJ-2100 Basic Tools for Software Science | Mandatory |
Course | Corresponds course | Description |
|
|
Description | Methods of instruction | Implementation | |
Implementation 1 |