University of Oxford Logo University of OxfordDepartment of Computer Science - Home

Design and Analysis of Algorithms:  2011-2012

Information

Lecturer

Degrees

ModerationsComputer Science

Term

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:

Synopsis

Syllabus

Basic strategies of algorithm design: top-down design, divide and conquer, average and worst-case criteria, asymptotic costs. Simple recurrence relations for asymptotic costs. Choice of appropriate data structures: arrays, lists, stacks, queues, trees, heaps, priority queues, graphs, hash tables. Applications to sorting and searching, matrix algorithms, shortest-path and spanning tree problems. Introduction to discrete optimisation algorithms: dynamic programming, greedy algorithms. Graph algorithms: depth first and breadth first search.

Reading list