Coronavirus information for applicants and offer-holders

We understand that prospective students and offer-holders may have concerns about the ongoing coronavirus outbreak. The University is following the advice from Universities UK, Public Health England and the Foreign and Commonwealth Office.

Read our latest coronavirus information

BSc Computer Science and Mathematics

Year of entry: 2021

Course unit details:
Fundamentals of Computation

Unit code COMP11212
Credit rating 10
Unit level Level 1
Teaching period(s) Semester 2
Offered by Department of Computer Science
Available as a free choice unit? No


Student comments: 'The material was very interesting and I could definitely see it being useful on the near future. Overall, I enjoyed this course unit, because I felt that it extended to other course units.' - 'Through the material covered you understand better how the computer interpretes data (and generally works), and learn more about programming languages and algorithms.' - 'The course content was extremely interesting, and the PhD demonstrators were helpful and approachable. I am glad I took this module.'


Unit title Unit code Requirement type Description
Mathematical Techniques for Computer Science COMP11120 Co-Requisite Compulsory
Students who are not from the School of Computer Science must have permission from both Computer Science and their home School to enrol.


This course unit provides a first approach to answering the following questions. What methods are there that can help understanding complicated systems or programs? How can we make sure that a program does what we intend it to do? How do computers go about recognizing pieces of text? If there are two ways of solving the same problem, how can we compare them? How do we measure that one of them gives the solution faster? How can we understand what computers can do in principle, and are there problems that are not solvable by a computer?

Learning outcomes

  • Describe formal languages using a variety of mechanisms.   
  • Define classes of languages and demonstrate translations between those classes.
  • State key properties of classes of languages and determine when those properties hold.
  • Define models of computation and use those models to demonstrate what can and cannot be computed.


There are two groups of topics covered. One of the lectures will be an introduction to the course unit, and one is reserved for revision. That leaves 10 lectures for each part.

The first part (10 lectures) is concerned with expressing particular strings, and collections of strings, and here we will introduce the methods by which a computer goes about it. The ability to recognize key strings (such as programming constructs or variable names) are, for example, required in every compiler, but they are also used by search engines such as Google.The formalisms introduced include finite state automata, regular expressions (most often used in pattern matching), (regular) grammars. The emphasis is on students being able to use these formalisms to solve problems.

The second half of the course (10 lectures) provides an introduction to the topics of complexity, correctness and computability. There are four big topics:

                • the WHILE programming language

                • asymptotic complexity

                • partial and full program correctness

                • computability

Teaching and learning methods


22 in total, 2 per week

Examples classes

1 per week (starting in week 2)

Employability skills

Analytical skills
Oral communication
Problem solving

Assessment methods

Method Weight
Written exam 80%
Written assignment (inc essay) 20%

Feedback methods

Students present their solutions to set exercises once a week in examples classes. They receive oral feedback to their solutions, and have the opportunity to improve some of their original answers for further feedback.

Recommended reading

COMP11212 reading list can be found on the Department of Computer Science website for current students.

Study hours

Scheduled activity hours
Assessment written exam 2
Lectures 24
Practical classes & workshops 11
Independent study hours
Independent study 63

Teaching staff

Staff member Role
Sean Bechhofer Unit coordinator

Additional notes

Course unit materials

Links to course unit teaching materials can be found on the School of Computer Science website for current students.

Return to course details