HomeAboutLecturesProblem ClassesAssessmentResources

About CS2515

Algorithms are specifications of processes for carrying out tasks. Implementations of algorithms are running on every computer, and they are at the core of much of what happens in modern life. Understanding algorithms and being able to design algorithms for specific tasks are fundamental skills for computer scientists and software engineers.

Algorithms (and the programs that implement them) must be efficient, to ensure that results for realistic tasks can be obtained in good time. Understanding efficiency, and being able to analyse the runtime and the space requirements of an algorithm are also fundamental skills. Algorithms require data as input, and generate and manipulate data as they progress, and so well-defined and efficient data structures are needed. In turn, data structures and abstract data types may employ algorithms in order to manipulate their data correctly and efficiently. Algorithms and data structures are the building blocks of complex software.

In this module, we will study basic data structures, abstract data types and associated algorithms. We will learn how to specify them and how to analyse them. We will see how to implement them using the Python programming language.