COMP1004 - Theory II
Note: Whilst every effort is made to keep the syllabus and assessment records correct, the precise details must be checked with the lecturer(s).- Code
- COMP1004
- Year
- 1
- Prerequisites
- COMP1002
- Term
- 2
- Taught By
- Denise Gorse (50%)
Anthony Hunter (50%) - Aims
- To develop programming and problem solving skills, to encourage a thoughtful approach to analysis and design problems, to familiarise students with logical and mathematical inference and argumentation.
- Learning Outcomes
- Students should be able to apply this knowledge to specification of algorithms and logic programming.
Content:
- Searching and sorting algorithms
- Elementary searching - comparing sequential, binary and
interpolation
search.
Binary search trees.
Balanced trees.
B-trees.
Hashing - Graph algorithms
- Depth-first search of undirected and directed graphs.
Articulation points.
Strongly connected components.
Topological sorting of acyclic graphs.
Breadth-first search of directed and undirected graphs.
Network flow.
Ford-Fulkerson method.
Euler circuits. - Text algorithms
- String searching.
File compression including Huffman coding.
Cryptology including public key cryptosystems. - Analysis of algorithms
- Empirical versus theoretical analysis.
Algorithmic complexity.
O notation.
Best, worst and average cases.
Classifications of algorithms.
Hierarchies of complexity.
Tractable and intractable problems.
Sums of series.
Simple summation formulae.
Estimating a sum using integration. - Algorithms with loops
- Nested loops.
Gaussian elimination.
Examples in geometric algorithms: Prim's and Kruskal's algorithms - Recursive algorithms and recurrence relations
- First-order recurrence relations.
Solving recurrence using the characteristic equation.
Change of variable, conditional asymptotic notation.
Examples of maths algorithms including exponentiation and large multiplication. - Analysis of searching and sorting algorithms
- Sequential search in ordered and unordered arrays
Binary search.
Insertion sort, mergesort, quicksort.
Best case for comparison-based sorting.
Method of Instruction:
Lecture presentations with associated courseworks.
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 overall pass mark of 40% for all sections combined
The examination rubric is:
Answer 3 questions; at least 1 (out of 3) from Part I and 1 (out of 3) from Part II. All questions carry equal marks.
Resources:
T. Cormen, S.Clifford C. Leisserson, and R. Rivest, Introduction to Algorithms, MIT Press/McGraw-Hill, 2001
R. Sedgewick, Algorithms, Addison-Wesley, 1998.

