Semester 3

Course: Algorithms and Data Structures

Course Code: ΜΚ17
Course Level: Undergratuate
Obligatory/Elective: Elective
Semester: 3
Division: Main Course
Group: Main Course
ECTS Credits: 5
Hours Per Week: 4
Language: Greek

• 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



Teaching Methods:
Method Description Semester Workload
Lectures 39
Laboratory practice 13
Exercises 33
Autonomous study 40
Total 125

• 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

Suggested Books:

- Recommended Book Resources:
1. Robert Sedgewick, Αλγόριθμοι σε C, μέρη 1 – 4: θεμελιώδεις έννοιες, δομές δεδομένων,
ταξινόμηση, αναζήτηση, Εκδόσεις Κλειδάριθμος, Έκδοση: 3η αμερικάνικη έκδοση, 1η ελληνική
2. Sahnii Sartaj, Δομές δεδομένων, αλγόριθμοι και εφαρμογές σε C++, Εκδόσεις Τζιόλα, Έκδοση:
3. Παναγιώτης Μποζάνης, Δομές δεδομένων, Εκδόσεις Τζιόλα, Έκδοση: 2η/2016
4. Γεώργιος Γεωργακόπουλος, Δομές δεδομένων, Πανεπιστημιακές Εκδόσεις Κρήτης, Έκδοση:
- Related Scientific Journals:
1. Algorithmica
2. Journal of Algorithms
3. ACM Transactions on Algorithms

Lecturer: Ploskas Nikolaos