Algorithms and Data Structures 2020

Practical Information

Learning Outcomes

1.1 Learning Outcomes

A module on Algorithms and Data Structures is supposed to make you better programmers. We do that by stepping away from actual programming, and try to view computer programs from the outside. We shall learn to solve problems, describe solutions, analyse properties of the program, and prove correctness without being distracted by the details of implementation.

For most students it may be a good idea to do some programming exercises in order to link what you learn to what you already knew. That will often help you learn the new material better. This module, however, will be assessed based on abstract discussion of programmable solutions, rather than on actual programmed solutions.

The key skills and competencies to learn are

being able to communicate, discuss, and evaluate potential solutions and partial designs for computer programs.
being able to prove that an algorithm is correct.
being able to assess the runtime complexity of an an algorithm.
being able to choose suitable algorithms and data structures for a given information system. (This will also require you to be familiar with a range of standard algorithms and data structures.)
being able to construct variations of algorithms.