(a) Analysis and design of algorithms for a given
situation.
(b) The suitability of different algorithms for a given
task and data set, in terms of execution time and
space.
(c) Measures and methods to determine the efficiency
of different algorithms, Big O notation (constant,
linear, polynomial, exponential and logarithmic
complexity).
(d) Comparison of the complexity of algorithms.
(e) Algorithms for the main data structures, (stacks,
queues, trees, linked lists, depth-first (post-order)
and