This paper introduces computer science and mathematics students to the formal theory of computation, as well as some important ideas in discrete mathematics of relevance to computer science and IT.
In the discrete mathematics half of the paper, a formal approach to logic is introduced: the basic connectives, well-formed formulas, truth tables, laws of equivalence, testing validity of logical arguments, plus an introduction to predicates and quantifiers. Also covered are modular arithmetic and its applications (to coding and cryptography for example) as well as an introduction to binary relations and directed graphs (connectivity and Warshall’s algorithm).
The other half of the paper deals with the theory of computation. Topics include: finite state automata and regular languages, Kleene’s theorem, Turing machines and the Halting problem, formal grammars and the Chomsky hierarchy. There is laboratory work in which students design Turing Machines.
MATH102 Introduction to Algebra
MATH258 Introduction to Discrete Mathematics
Internal assessment/final examination ratio 1:1
This paper is compulsory for a major in Computer Science, except for the Applied Computing specialisation.
Three to four lectures per week, a weekly tutorial and up to five hours in total of supervised laboratory work.