Module Title: Data Structures and Algorithms
Teaching hours: 39
Credits: 7,5
Semester: 2nd
Instructor: Fragopoulou Paraskevi Professor
Course Objectives
The course commands a central role in computer science it both theoretical and practical levels, in many cases covering themes beyond the subject of informatics. The course strives for students to understand fundamental ways or data organization in computer memory and to learn and implement techniques for the handling of that data. Special attention is placed on creating new data algorithms with an obvious result on the dexterities of students to handle such problems.
Indicative Syllabus
- Introduction to Algorithms
- Nomenclature
- Problem Types
- Fundamental Data Structures
- Lists
- Graphs
- Trees
- Efficiency of Algorithms
- Brute Force
- Sorting (Selection sort, Bubblesort)
- Search (σειριακή).
- Wandering Salesman
- Divide and Conquer
- Sorting (Mergesort, Quicksort).
- Binary Search
- Binary Tree traversal
- Handling of large integers
- Decrease and Conquer
- Insertion Sort
- DFS, BFS Search
- Constant factor reduction algorithms
- Variable factor reduction algorithms
- Transformation Algorithms
- Inverse Matrix, determinant
- AVL, 2-3 Trees
- Heapsort
- Dynamic Programming
- Warshall and Floyd Algorithms
- Best BST.
- Greedy Algorithms
- Prim, Kruskal, Dijkstra algorithms
- Huffman trees
- Solution Optimization
- Capabilities
- Limits
- Decision Trees
- P and ΝΡ Problems
Bibliography:
[1] Algorithm Design: Foundations, Analysis, and Internet Examples
[2] Michael T. Goodrich and Roberto Tamassia
[3] John Wileay & Sons, Inc, ISBN: 0-471-38365-1