Course Contents (Syllabus):
Introduction to Algorithms. Abstract Data Types. Array, List, Stack, Queue, Heap. Sorting Algorithms. Trees and Graphs. Binary Search Trees, AVL, Red-Black Trees. Sets, Union-Find and Dictionary Structures. Hashing. Heaps and Priority Queues.
Required course, 2nd year
Prerequisites and/or related courses:
Discrete Mathematics, Introduction to Programming, Object-oriented Programming, Algorithms and Complexity, Graph Theory
Objectives:
- Introduction to algorithms
- Abstract Data Types
- Analysis (proof of correctness and complexity) of basic and advanced data structures
Teaching Methods:
Theory lectures (4h/week) and lab exercises (1h/week).
Assessment methods:
One group of exercises (homework) every 3 weeks, mid-term written examination, final written examination.
Teaching Material: Notes, Slides
Recommended reading:
- Data structures, P. Bozanis, Ekdosis A. Tziola and Sons A. E., 2006 (in Greek).
- Data structures, algorithms and applications in C++, Sahnii Sartaj, Ekdosis A. Tziola and Sons A. E., 2004 (in Greek).
- Design and analysis of algorithms, K. Paparrizos, Ekdosis A. Tziola and Sons A. E., 2010 (in Greek).
- Introduction to Algorithms vol. 1, T. Cormen, C. Leiserson, R. Rivest, C. Stein, Panepistimiakes Ekdosis Kritis, 2009 (in Greek).
Bibliography:
- Data structures, P. Bozanis, Ekdosis A. Tziola and Sons A. E., 2006 (in Greek).
- Data Structures and Algorithms, A. Aho, J. Hopcroft, J. Ullman. Addison-Wesley Publishing Company, 1983
- Introduction to Algorithms vol. 1, T. Cormen, C. Leiserson, R. Rivest, C. Stein, Panepistimiakes Ekdosis Kritis, 2009 (in Greek).
- Algorithms and Complexity, E. Zachos, Notes, National Technical University of Athens, 2007 (in Greek).
- Data structures with C, N. Misirlis, 2008 (in Greek).
- Algorithms in C, Parts 1-4: Fundamental Algorithms, Data Structures, Sorting, Searching, R. Sedgewick, Ekdosis Klidarithmos EPE, 2006 (in Greek).