Unit name | Topics in Theoretical Computer Science |
---|---|
Unit code | COMS21400 |
Credit points | 10 |
Level of study | I/5 |
Teaching block(s) |
Teaching Block 1 (weeks 1 - 12) |
Unit director | Dr. Ray |
Open unit status | Not open |
Pre-requisites |
COMS11700 Theory of Computation COMS11600 Principles of Programming |
Co-requisites |
None |
School/department | Department of Computer Science |
Faculty | Faculty of Engineering |
This unit covers two core areas of theoretical computer science: semantics and complexity theory. Semantics provide a means to attach precise meaning to a computer program, which in turn allows reasoning about correctness and feasibility (what programs make sense). Complexity theory looks at feasibility from a different perspective, emphasizing the problems (for which problems do we or don't we expect efficient solutions).
On successful completion of this unit you will be able to:
Lectures and problem classes
Coursework (20%) and a three-hour examination (80%) The examination will consist of a series of questions, that combined will cover all the learning objectives.
The coursework will consist of a series of questions, the answers of which the students can work on in their own time (unsupervised). It will cover a selection of the learning objectives, depending on the order they are being taught, and have a diagnostic and formative element to it.
Formal Introduction, originally published in 1992 by John Wiley and Sons, revised edition: http://www.doc.ic.ac.uk/~pg/Computation/book.pdf
Press. This is an excellent introduction to both the operational and denotational semantics of programming languages.