Learning Outcomes COMP1600
(see also Programs and Courses)
Upon successful completion, students will have the knowledge and skills to:

Apply the concepts of standard mathematical logic to produce proofs or refutations of wellformed propositions or arguments phrased in English or in a variety of formal notations (first order logic, discrete mathematics or Hoare Logic).

Given a description of a regular language, either in English, as a regular expression or as a grammar, generate a finite state automaton that recognizes that language. Similarly, given a deterministic or nondeterministic automaton, give a description of the language which it accepts.

Given an inductive definition of a simple data structure, write a recursive definition of a given simple operation on data of that type. Given some such recursively defined operations, prove simple properties of these functions using the appropriate structural induction principle.

Prove simple programs correct using Hoare Logic.

Design a Turing Machine which will accomplish simple tasks.
Learning Outcomes COMP6260
(see also Programs and Courses)
Upon completion of this course, the student will be able to do the following:

Apply the concepts of standard mathematical logic to produce proofs or refutations of wellformed propositions or arguments phrased in English or in a variety of formal notations (first order logic, discrete mathematics or Hoare logic). Express problems, presented in English, in these formal notations and demonstrate an awareness of the differences between them.

Generate a finite state automaton that recognises a given regular language either described in English or presented as a regular expression; similarly, describe the language accepted by a given deterministic or nondeterministic automaton.

Relate structural induction to other forms of mathematical induction, and write a recursive definition of a given simple operation on data of a given type presented via an inductive definition of the data structure.

Explain the concept of program correctness and prove simple programs correct using Hoare Logic.

Demonstrate understanding of Turing Machine computability, and design Turing Machines to accomplish simple tasks.