At the end of this course the students will be:

- write programs for sorting objects efficiently

- write programs for efficient searching of a particular object in a set

- design algorithms to solve complex problems recursively

- learn and apply the stack data structure

- learn and apply the queue data structure

- learn and apply the binary tree data structure

- analyze time and space complexity of algorithms