Overview
This core course covers good principles of algorithm design, elementary analysis of
algorithms, and fundamental data structures. The emphasis is on choosing appropriate
data structures and designing correct and efficient algorithms to operate on these
data structures.
Learning Outcomes
This is a first course in data structures and algorithm design.
Students will:
- learn good principles of algorithm design;
- learn how to analyse algorithms and estimate their worst-case and average-case behaviour (in easy cases);
- become familiar with fundamental data structures and with the manner in which these data structures can best be implemented;
- become accustomed to the description of algorithms in both functional and procedural styles;
- learn how to apply their theoretical knowledge in practice (via the practical component of the course).