This unit teaches you data structures, algorithms, and algorithm analysis. When faced with a
challenging software problem to solve, it is important to be familiar with a range of clever, but
general, algorithms and data structures that others in the field have already developed. When
no ready-made solution exists, it is important to understand and be guided by the general
principles of algorithm design, and to draw upon the experience of the profession in creating
new methods. You will learn how to analyse the time efficiency of new and existing algorithms,
to determine their suitability for the task at hand. And most importantly, you will learn how to
apply your knowledge to solve practical, real-world problems.