This course is an introduction to algorithmic
processes and their implementation on
computers. Concepts taught include functional, logical and imperative programming. Principles of abstraction for data and procedures, and application of these principles to reduce the complexity of problems is covered. Also included is a discussion of dynamic data structures such
as stacks, queues, lists, and trees.