Content: | • Abstract Data Types • Compound Data Structures. • Arrays, Pointers, Linked Lists. • Stacks, Queues. • Algorithms and Complexity. • Recursive Algorithms. • Searching and Sorting Algorithms. • Graphs and Trees. • Search Trees. • Priority Queues. • Heap. • Hashing. • Programming in C. |
Learning Outcomes: | Upon successful completion of this course, students will: • analyze and compare the efficiency of algorithms in terms of their theoretical complexity • use, develop and extend the data structures arrays, lists, queues, stacks and trees and understand their applications • apply the algorithms that will studied in this course to unknown problems • select and/or develop appropriate data structures and algorithms for implementing abstract data types • design and implement efficient solutions in complex computational problems • understand and implement sorting algorithms • use various hashing techniques for data storage • handle basic functions in priority queues General Competences: • Search for, analysis and synthesis of data and information by the use of appropriate technologies • Decision-making • Individual/Independent work • Algorithmic thinking • Solve complex algorithmic problems |
Validation: | • The language of evaluation is Greek. The assessment method consists of an intermediate written examination (10%), three assignments (30%) and a final written examination (60%). The intermediate and final examinations include multiple choice questions, short answer questions, and problem-solving questions. The three assignments require the implementation of algorithms in the C programming language. • The above evaluation criteria are posted on the course website. |
Suggested Books: | - Recommended Book Resources: 1. Robert Sedgewick, Αλγόριθμοι σε C, μέρη 1 – 4: θεμελιώδεις έννοιες, δομές δεδομένων, ταξινόμηση, αναζήτηση, Εκδόσεις Κλειδάριθμος, Έκδοση: 3η αμερικάνικη έκδοση, 1η ελληνική έκδοση/2005 2. Sahnii Sartaj, Δομές δεδομένων, αλγόριθμοι και εφαρμογές σε C++, Εκδόσεις Τζιόλα, Έκδοση: 1η/2004 3. Παναγιώτης Μποζάνης, Δομές δεδομένων, Εκδόσεις Τζιόλα, Έκδοση: 2η/2016 4. Γεώργιος Γεωργακόπουλος, Δομές δεδομένων, Πανεπιστημιακές Εκδόσεις Κρήτης, Έκδοση: 2η/2002 - Related Scientific Journals: 1. Algorithmica 2. Journal of Algorithms 3. ACM Transactions on Algorithms |