next up previous
Next: MC115 Information Systems Up: Year 1 Previous: MC106 Software Engineering and

MC111 Logic and Discrete Structures


MC111 Logic and Discrete Structures

Credits: 20 Convenor: Prof. R. M. Thomas Semester: 1


Prerequisites:
Assessment: Continual assessment: 30% Three hour exam in January: 70%

Lectures: 48 Classes: 12
Tutorials: 12 Private Study: 78
Labs: none Seminars: none
Project: none Other: none
Total: 150

Explanation of Pre-requisites

There is no prerequisite knowledge required for this module apart from some topics from GCSE Mathematics (or the equivalent).

Course Description

The main purpose of this course is to teach the basic concepts from Discrete Mathematics and Logic that are needed in the study of Computer Science; indeed, this module is a pre-requisite for many of the Computer Science modules offered by the department. While the main purpose is to learn the necessary Mathematics, the course is taught from a Computer Science viewpoint throughout.

There is no specific pre-supposed knowledge required for this module (other than some elementary topics from Mathematics GCSE or the equivalent) and so the course will start from a fairly basic level. The topics will generally be motivated by examples from Computer Science (and other areas), although no actual knowledge of Computer Science will be assumed.

The course covers both Discrete Mathematics and Logic. In the first half, we start by giving a (somewhat informal) idea of a mathematical argument and then go on to cover topics which are useful in describing computational systems (such as sets, relations, graphs and functions). We next investigate some special functions and their properties (which occur, amongst other places, when analysing the performance of algorithms), and contine this theme by solving certain simple types of recurrence relations (equations where the value of the function at a number is defined in terms of its values at smaller numbers). We then go on study of formal logic; we want to be able to reason about computer systems (for examples, statements like `if we replace ths component then the system will run faster' or `for all possible values of the input my program will terminate'). We will introduce the notation for modelling such statements and then describe the rules for drawing conclusions. We finish the course by drawing many of these strands together by considering formal specifications (i.e. precise mathematical descriptions of what a system is supposed to do).

This material will be described in the lectures (four per week); there will also be a weekly tutorial session (for sorting out problems, including difficulties with the assessed work) and a problem class (for going through the previous worksheet). A full set of printed lecture notes for the module is also available.

Aims

As Computer Science has developed as a serious scientific discipline, the use of Mathematics in describing and reasoning about computational systems has become an indispensable part of the subject; indeed, it is now impossible to make a proper study of the theory and practice of computation without acquiring the necessary mathematical tools.

The aim of this course is to provide a basic knowledge of some of the Mathematics required for the study of Computer Science. By the end of the module, the students should be able to think abstractly and have some appreciation of the role of Mathematics in Computer Science. In particular, they should understand how Mathematics provides an elegant and efficient framework for modelling (and inferring properties of) computational systems and processes.

Objectives

By the end of the module the students should be familiar with the fundamental concepts (and accompanying notation) introduced in the course. They should be able to follow basic mathematical arguments and also construct simple examples of these. They should be able to write such arguments clearly and correctly with a proper use of mathematical notation. In addition, they should have understood the various specific techniques covered in the module (such as developing inductive proofs, solving recurrence relations and constructing semantic tableaux) and be able to perform these techniques in practice.

Transferable Skills

The main purpose of this course is to provide the mathematical skills necessary for understanding Computer Science, particularly those aspects of the subject taught in the other modules in the department; almost all the ideas and techniques introduced here will be needed in future modules.

Apart from the use of Mathematics in Computer Science, the study of the material in this course should help students develop their general ability to think abstractly and, consequently, provide them with the ability to be adaptable in a fast-changing subject area. In addition, the module should make a contribution to the general development of problem-solving skills.

Syllabus

An introduction to mathematical reasoning. The notion of proof and examples of proofs. Direct proofs. Proofs by contradiction and contraposition.

Sets. Elements, subsets and proper subsets. Operations on sets (union, intersection, difference). Basic properties of these operations (including De Morgan's laws). Power sets. Orders of sets. Inductive definitions. Proof by induction. Summation of arithmetic series.

Ordered pairs, Cartesian products. Relations. Composition of relations. Graphs. Paths, trees and branches. Matrices (including adjacency matrices of graphs) and matrix operations. Equivalence relations. Partitions and equivalence classes. Modular arithmetic. Partial and total orders.

Functions: partial and total functions. Composition of functions. Non-determinism and determinism. Injections, surjections and bijections. The identity map. Inverse of a function.

Factorials. Polynomials (including addition, subtraction and multiplication of polynomials). Exponentials, logarithms and their properties. Counting: permutations and combinations. Pascal's triangle. Elementary probability. Simple recurrence relations and their solution. Summation of geometric series.

Propositional logic. Connectives and bracketing. Main connectives. Turning English statements into formal logic. Syntax versus semantics. Truth tables. Logical equivalence. Validity. Interdefinability of connectives. Proof theory. Soundness and completeness. Theorems and tautologies. Satisfiability. Semantic tableaux: tableaux rules, open and closed tableaux.

Introduction to predicate logic. Predicates, function symbols and names. Quantifiers. Free and bound variables. Terms. Atomic formulae, formulae and sentences. Interpretations and models. Substitution. Predicate tableaux: tableaux rules, open and closed tableaux.

Introduction to formal specifications. The idea of a specification. Basic constructs. Attributes, invariants and methods. Pre-conditions and post-conditions.

Reading list

Recommended:

D. F. Stanat and D. F. McAllister, Discrete Mathematics in Computer Science, Prentice Hall, 1977.

D. J. Velleman, How to Prove It, Cambridge University Press, 1995.

J. Kelly, The Essence of Logic, Prentice Hall, 1997.

Background:

W. K. Grassmann and J-P Tremblay, Logic and Discrete Mathematics - a Computer Science Perspective, Prentice Hall, 1996.

S. Reeves and M. Clarke, Logic for Computer Science, Addison Wesley, 1990.

W. Hodges, Logic, Pelican, 1977.

K. G. Binmore, Logic, Sets and Numbers, Cambridge University Press, 1980.

A. Galton, Logic for Information Technology, Wiley, 1990 (out of print but in the Library).

D. Richardson, Logic, Language, Formalism, Informalism, International Thomson Computer Press, 1995.

R. Johnsonbaugh, Discrete Mathematics, Prentice Hall, 1997.

A. B. Shiflet, Discrete Mathematics for Computer Science, West Publishing Company, 1987.

Details of Assessment

The coursework for the continual assessment consists of weekly problem sheets throughout the module. Any problems with these can be discussed in the tutorials preceding the hand-in (or, if extra help is needed, by seeing the lecturer). Your work will be marked within a few days of submission and then gone through in the next problem class.

The written January examination will contain six questions. These are equally weighted; any number of questions may be attempted, but only the best four answers will be taken into account.


next up previous
Next: MC115 Information Systems Up: Year 1 Previous: MC106 Software Engineering and
S. J. Ambler
11/20/1999