3 x 1-hour lectures weekly
1 x 90-minute tutorial weekly
1 of MATH1121, MATH1203
Enrolment not permitted
COMP8781 has been successfully completed
Topic description
This topic includes: Basic Logic (propositional logic, truth tables, tautology, contradiction, logical equivalences, predicate logic, quantifiers, valid arguments); Proof Techniques and Elementary Number Theory (nature of proof, direct/indirect proofs, mathematical induction, proofs by contradiction, existence and constructive proofs, counterexamples, divisibility, factorization theorem, quotient-remainder theorem); Functions, Relations, Sets (set theoretic proofs, functions, cardinality, partial order relations), Basics of Counting (addition/multiplication principle, permutations and combinations, pigeonhole principle, binomial theorem); Recursion (method of iteration, second-order linear homogeneous relations, recursive definitions); Elements of Cryptography (modular arithmetic, congruence relations, Euclid's lemma, Fermat's Little Theorem, Chinese Remainder Theorem, RSA cipher); Graphs and Trees (paths and circuits, Euler and Hamiltonian circuits, matrix representations, Dijkstra's shortest path algorithm, isomorphism of graphs, spanning trees, minimum spanning trees, Kruskal's algorithm). Variety of applications of the covered material will be discussed throughout the topic.
Educational aims
This topic builds a solid discrete mathematics and logic foundation for a computer scientist.
Expected learning outcomes
At the completion of this topic, students are expected to be able to:

  1. Understand and apply formal logic system on which mathematical reasoning is based
  2. Analyse and construct valid mathematical arguments - proofs - and understand mathematical statements - theorems
  3. Utilize important discrete date structures such as sets, relations, discrete functions, graphs and trees
  4. Use various problem-solving strategies including algorithmic thinking (both iterative and recursive) and various counting techniques to create appropriate solutions to computing problems
  5. Understand the importance of formal mathematical structures and techniques for computing applications