EC 235 – Advanced Algorithms and Data Structures
Course lecturer :
- Prof. Dr. Saleh El Shehaby
Course assistant :
- Eng Salvia Elmassry
- Eng. Sahar Magdy
Course objectives :
To enable students to: i) Identify methods of analyzing algorithm space and time complexity. ii) Apply advanced Sorting Techniques. iii) Apply advanced Searching Techniques. iv) Define advanced Indexing Techniques. v) Show advanced algorithm design techniques. vi) Define NP-complete problems.
Course description :
The course is an introduction to Techniques for analyzing the time and space complexity of algorithms (sequential and recursive). It includes as Applications: sorting, searching, graph problems. It also introduces General design methodologies for problem solving: divide-and-conquer, dynamic programming, B-trees, depth first and breadth first search algorithms, Huffman codes and greedy algorithms. It gives a brief overview of NP-complete problems.
Course assessment :
Solving assignment problems and Lab work [10 marks ] Quizzes [5 marks ] Projects [15 marks] Mid Term Written Exam [20 marks] Final Written Exam [50 marks]
Recommended text books :
 Mark Allen Weiss, \”Data Structures and Algorithm Analysis in Java\”, 2nd Ed., Addison Wesely, 2004.  Thomas H. Cormen, Charles E. Leiserson and Ronald L. Rivest \”Introduction to Algorithms\”, 2nd Ed, 2001.
Recommended refrences :
Thomas Standish, “Data Structures in Java”, 1st Ed.