This course is
designed for the students to design and implement abstract data types such as
lists, stacks, queues and trees for solving complex programming problems.
Students will be able to evaluate and assess the efficiency of algorithms in
terms of run-time and memory complexity.