Search Contact information
University of Cambridge Home Department of Engineering
University of Cambridge > Department of Engineering >  Teaching Office index page >  Year group page >  Syllabus index page

ENGINEERING TRIPOS PART IIA – 2011/2012

Module 3I1 – Data Structures & Algorithms

Leader:

Dr AC Norman


Timing:

Michaelmas

Prerequisites:

None

Structure:

16L

AIMS

The aim of this course is to provide a comprehensive introduction to computer algorithms taken from many different areas of application. The course will concentrate on algorithms that are of fundamental importance and the efficiency of most of them will be analysed.

SYLLABUS

Fundamentals

Models of a computer, costs, growth rates.

Simple data structures

Arrays, lists, trees. Idea of abstract data type.

Ideas for algorithm design

Divide and Conquer and othe important styles of algorithm.

The TABLE data type.

Multiple implementation models for a single ADT, including hash tables.

Free storage management.

Reference counts and garbage collection.

Sorting.

Insertion, Shell, Quick, Heap, Tree, Merge and Radix. Selection of kth element in O(n) time.

Storage on external media.

Larsen's method, B-trees.

Variants on the SET data type.

Balanced, 2-3-4, red-black, splay and ternary trees.

String searching.

Brute force, Knuth-Morris-Pratt, Boyer-Moore, Rabin-Karp algorithms.

Data compression.

Run length encoding, prediction, Move-to-Front, Huffman, arithmetic encoding, Lempel-Ziv, and Wheeler's Block Compression.

Algorithms on graphs.

Reachability and shortest paths. Warshall, Floyd, Dijkstra, Prim and Kruskal algorithms. Depth first and breadth first traversal, strongly connected components. Matchings in bi-partite graphs.

Geometric algorithms.

Inside-outside a closed figure? Do line segments cross? Convex hull.

OBJECTIVES

At the end of the course students should:

ASSESSMENT

Written examination, 100%

REFERENCES

Please see the Booklist for Part IIA Courses for references for this module.


Last updated: August 2011
teaching-office@eng.cam.ac.uk