UCL Home Page
Home Admissions Students Alumni Research Business People Help
 

 


| STUDENTS > Algorithmics |

Algorithmics

Note: Whilst every effort is made to keep the syllabus and assessment records correct for this course, the precise details must be checked with the lecturer(s).


Code: GC05 (previously D104)
Year:MSc
Prerequisites:This course should be taken in conjunction with the core courses for this programme (ie GC01, GC02, GC03 and GC04)
Term: 2
Taught By: Denise Gorse (50%)
Anthony Steed (50%)
Aims:To introduce more formal aspects of algorithms and data structures than in the first term. Properties of data types such as queues and search trees. Techniques for analysing the complexity and decidability of algorithms. Formal models of computation.
Learning Outcomes: Knowledge of a selection of standard data structures and abstract data types. The ability to choose appropriate data structures for programming problems. Understanding of a variety of common algorithms and why some are more efficient than others. Ability to discuss uncomputable and intractable algorithms.

Content:

Course IntroductionIntroduction to data structures and abstract data types.
Abstract data types and Java classes.
Language facilities. Model of storage in imperative languages. Cells, l-values and r-values. Exceptions.
Data aggregation: arrays, structures and object references.
Linear abstract data typesStacks and queues. Implementations with arrays and linked lists. Applications.
Sequences. Implementations with arrays and linked lists. Circular and double linked lists.
Inheritance relationships between linear linked lists
TablesLinear look-up table.
Linear search.
Binary search.
TreesDefinitions of trees.
Binary search tree.
Insertion, deletion, tree traversal and searching.
Hash tablesChaining.
Open addressing.
Choice of hash function.
GraphsAdjacency lists.
Adjacency matrices.
Depth and breadth first traversal.
SortingInsertion Sort
Mergesort
Quicksort
Analysis of AlgorithmsEmpirical vs theoretical analysis
Algorithmic complexity
O notation
Best, worst, and average cases
Sums of series
Simple summation formulae
Analysis of earlier examplesIncludes linear and binary search
Limits of ComputationTractable and intractable problems; the complexity classes P, NP, NPC
Undecidability; the Halting Problem

Method of Instruction:

Lecture presentations, coursework and associated class problems .

Assessment:

The course has the following assessment components:

  • Written Examination (2.5 hours, 90%)
  • Coursework Section (2 pieces, 10%)
To pass this course, students must:
  • Obtain an average of at least 50% when the coursework and exam components of a course are weighted together
The examination rubric is:
Answer any 3 questions, at least ONE from EACH of Sections A and B, all questions carry equal marks

Resources:

Algorithmics - the science of computing. D. Harel, Addison-Wesley, 1989.

 
Last updated: 15 September, 2007 Maintained by Nicola Jarvis