## Learning Outcomes COMP1600

Upon successful completion, students will have the knowledge and skills to:

• Apply the concepts of standard mathematical logic to produce proofs or refutations of well-formed 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

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 well-formed 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.

Updated:    18 May 2022 / Responsible Officer:    Head of School / Page Contact:    Victor Rivera