COMP1002 - Theory I

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
COMP1002
Year
1
Prerequisites
A-level Mathematics
Term
1
Taught By
Juan Navarro Perez (50%)
Anthony Hunter (50%)
Aims
To introduce formal methods for reasoning about algorithms and, more generally, to formalise the reasoning process.
Learning Outcomes
Students should be familiar with the techniques listed below and should be able to apply them to real problems. They should be able to extract the logical content of a (propositional) argument and prove its validity. They should be able to formalise an algorithm and analyse its efficiency.

Content:

Argumention
what is logic?
what is a rational argument?
what are common fallacies?
Boolean algebra
examples
axiomatisation
normal forms
connections with hardware design and programming
logic gates and circuits
Induction
Simple arithmetic induction
Weak and strong induction
Structured induction
Language
Syntax of propositional logic and predicate logic.
    Translating English into logical formulas and vice versa.
    Propositional semantics - truth tables.
    First 0rder Semantics .
    Satisfiability, validity, equivalence.
    Other languages - Kleene Algebra.
Introduction to algorithms
What are algorithms?
Why study algorithms?
Pseudocode
Efficiency of algorithms
Elementary operations
Examples of maths algorithms
Recurrence and recursion
Example: Insertion sort
Optimisation problems
Introduction to data structures
Lists, arrays, linked lists, stacks, queues
Graphs and trees
Tree traversal
Heaps
Greedy algorithms
What are greedy algorithms?
Minimum spanning trees
Kruskal's algorithm
Prim's algorithm
Dijkstra's algorithm
Greedy heuristics
Divide and conquer algorithms
What are divide and conquer algorithms?
Binary search
Quicksort algorithm
Dynamic programming
What is dynamic programming?
Calculating binomial coefficients
Floyd's algorithm
Warsall's algorithm

Method of Instruction:

Lecture presentations with associated courseworks.

Assessment:

The course has the following assessment components:

  • Written Examination (2.5 hours, 95%)
  • Coursework Section (2 pieces, 5%)

To pass this course, students must:

  • Obtain an overall pass mark of 40% for all sections combined

The examination rubric is:
Answer all three questions. The questions carry equal marks.

Resources:

T. Cormen, S.Clifford, C. Leisserson, and R. Rivest, Introduction to Algorithms, MIT Press, 2001

W. Hodges, Logic: an introduction to elementary logic, Penguin, 1977.

R. Sedgewick, Algorithms, Addison-Wesley, 1998.

R. Sedgewick, Algorithms in C++, Addison-Wesley, 1992.

J. Truss, Discrete mathematics for computer scientists, Addison-Wesley, 2nd edition, 1999.