EC 235 – Advanced Algorithms and Data Structures
- Prof. Dr. Saleh El Shehaby
Course lecturer :
- Eng Salvia Elmassry
- Eng. Sahar Magdy
Course assistant :
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 objectives :
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 description :
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]
Course assessment :
 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 text books :
Thomas Standish, “Data Structures in Java”, 1st Ed.