The purpose of this course is to introduce students
to the topics of data structures and algorithm design along with their respective applications. The topics that will be covered are:
- Algorithms Analysis
- Sorting Algorithms
- Algorithmic Paradigms
- Graphs
- Intractable problems
The use of data structures in programming languages and
relevant aspects of data and file management will be illustrated by using a high level language. |
Basic knowledge of C programming language. |
The primary goal of this course is to enhance the students’ knowledge and understanding of algorithms and data structures and the associated design and analysis techniques. This course aims at developing the students’ ability to design and implement data structures and algorithms, analyze them for correctness and efficiency, and choose the right data structure/algorithm for a particular job. |
Advanced C programming (dynamic memory allocation, pointers)
Data structures (list, stack, queue, hash table)
Algorithms (ordering, graph algorithms, tree algorithms)
Computational complexity. |
T.H.Cohen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduction to Algorithms, 3° ed, McGraw-Hill, 2010. |
The proposed exercises cover the whole program of the course. |
Professor/Tutor responsible for teaching
|
|