EC 233 - Algorithms and Data Structures

Course lecturer :

Prof. Dr. Magdy A. Azim

Course assistant :

  • Eng. Khaled Moussa

Course objectives :

  • Master the implementation of linked data structures such as linked lists, stacks, queues, and trees
  • Be familiar with the advantages of using linked data structure over arrays
  • Be familiar with variations of linked data structures such as circular linked list, doubly linked list, and double ended queues
  • Be familiar with advanced data structures such as binary trees, balanced search trees, hash tables, and priority queues
  • Be familiar with some graph algorithms such as shortest path and minimum spanning tree
  • Master the standard data structure library of a major programming language
  • Master analyzing problems and writing program solutions to problems using the above techniques
  • Be familiar with basic techniques of algorithm analysis
  • Be familiar with writing recursive algorithms

Course description :

In this course, student will study advanced programming techniques including data structures, abstract data types, and algorithms for data structure manipulation. In addition, you will get a taste of “software engineering\’\’–the design and implementation of large programs. The main course topics include the specification, representation, and manipulation of data structures: arrays, lists, stacks, queues, trees, heaps, hash tables, and graphs, introduction to analysis of algorithms and recursive calls. Moreover, the course develops problem solving using the learned data structure.

Course assessment :

Solving assignment problems and Lab work [10 marks ] Quizzes [10 marks ] Projects [10 marks] Mid Term Written Exam [20 marks] Final Written Exam [50 marks]

Recommended text books :

Mark Allen Weiss, “Data Structures and Algorithm Analysis in C++”, 3rd Edition, 2006.

Recommended refrences :

  1. Clifford A. Shaffer, “A Practical Introduction to Data Structures and Algorithm Analysis”, 3rd Edition (C++ Version), Department of Computer Science, Virginia Tech, Blacksburg, VA 24061, January 19, 2010.
  2. Kurt Mehlhorn and Peter Sanders, “Algorithms and data Structures: The basic Toolbox”, Springer, August 2008. • 3. Martin Richards, “Data Structures and Algorithms”, Computer Laboratory, University of Cambridge, October 2001.