This unit is an introductory study of algorithms and how to design and specify correct and efficient simple algorithms. Topics covered are: problem assessment, ways of expressing algorithms, analysis of simple algorithms, and evaluation of appropriate algorithms.

Candidates are then introduced to various data structures (ways of representing values and associations between values), how these data structures can be represented in computer memory, and algorithms for manipulating these data structures. Important characteristics (e.g. efficiency, time and space complexity) of algorithms with respect to various data structures are examined.