Course goal is to gain an understanding of algorithms, data organization and data abstraction. Study of advanced programming
techniques and data representations, including data structures, recursion, stacks and queues; packaging data
abstraction; advanced searching, sorting and hashing; files; binary search trees; analysis of algorithms and
computational complexity. The algorithms will be written in pseudocode, without details of a particular programming
language.