Algorithms and Complexity |
|
---|---|
Professors | George Vouros Panagiotis Rouvelas |
Course category | Core |
Course ID | DS-101 |
Credits | 5 |
Lecture hours | 3 hours |
Lab hours | 2 hours |
Digital resources | View on Aristarchus (Open e-Class) |
Learning Outcomes
Upon successful completion of this course, students should be able:
- to explain and deal with fundamental concepts regarding algorithms and complexity, such as “problem” and “problem class”, algorithm, instance, computational resources and resource requirements as a function of instance’s size, asymptotic behavior, symbols for asymptotic behavior, recursive functions and methods for their resolution.
- to analyse, select and evaluate algorithms based on the concepts and methods mentioned above.
- to design computationally effective algorithms based on the above concepts and algorithms’ design techniques (divide and conquer, greedy, dynamic programming).
- to communicate algorithmic ideas in a concise and formal way.
Towards constructing and evaluating computational programs and advancing their computational effectiveness.
Course Contents
- Asymptotic notation
- Examples of algorithms and their analysis in priority queues and heaps
- Sorting in linear time: Union-Find
- Divide and Conquer: examples of algorithms and their analysis (mergesort, multiplication of numbers and matrices, nearest points), master theorem and proof.
- More on divide and conquer: quicksort and probabilistic quicksort as an example of non-deterministic algorithms and of their analysis
- Selection algorithms and analysis
- Greedy Algorithms, proofs of soundness
- Dynamic programming and examples (including graph problems)
Recommended Readings
- Τ. Cormen, C.Leiserson, R.Rivest, C.Stein (2009): Introduction to Algorithms, The MIT Press
- Papadimitriou C. H. & Steiglitz K. (1982): Combinatorial optimization: algorithms and complexity, Prentice Hall.
- Knuth D. (1997): Fundamental Algorithms, Third Edition. Reading, Massachusetts: Addison-Wesley,
- Kleinberg J. &Tardos E. (2006): Algorithm Design, (Pearson International Edition), Addison Wesley,
- Anany V. Levitin (2007): Introduction to the Design & Analysis of Algorithms, (Pearson International Edition), Addison Wesley.