MEng Software Engineering

Year of entry: 2020

Course unit details:
Symbolic AI

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


Intelligent systems need to be able to represent and reason about the world. This course provides an introduction to the key ideas in knowledge representation and different types of automated reasoning. The course is a mixture of theoretical and practical work: at the end of the course students will know the principles that such systems use, and they will have experience of implementing those principles in running systems.


Students who are not from the School of Computer Science must have permission from both Computer Science and their home School to enrol.


The aim of this course is to provide the conceptual and practical (systems building) foundations for knowledge representation and reasoning in Artificial Intelligence.

Learning outcomes

  • Describe the syntax and semantics of first-order logic and use it to model problems

  • Apply reasoning techniques (transformation to clausal form, resolution, saturation) to establish properties of first-order problems 

  • Explain the theoretical limitations of automated theorem provers

  • Write Prolog programs to solve automated reasoning tasks and explain how they will execute

  • Describe, differentiate and apply different knowledge representation formalisms for modelling knowledge bases.

  • Explain how these formalisms affect the reasoning process.

  • Apply, demonstrate and program knowledge-based learning methods.

  • Apply, demonstrate and program formal models for natural language processing in the context of semantic parsing and natural logic inference.


First-Order Logic and Automated Reasoning
Syntax and Semantics
Translation to clausal form
Ordered Resolution
Saturation based proof search
Model Construction
Syntax and execution
Simple logical programs
Relation to backward chaining with Horn clauses
Theorem Proving with Prolog
Knowledge Representation
Ontological Engineering
Categories and Objects
Reasoning Systems for Categories
Semantic networks
Description logics
Reasoning with Default Information
Knowledge in Learning
A Logical Formulation of Learning
Inductive Logic Programming
Knowledge in Learning
Explanation-Based Learning
Learning Using Relevance Information
Natural Language Semantics
Interfacing with Natural Language Processing
Grammar & parsing
Montague Semantics
Semantic Parsing
Natural Logic Inference

Teaching and learning methods


22 in total, 2 per week


10 hours in total, 5 2-hour sessions.

Employability skills

Analytical skills
Problem solving

Assessment methods

Method Weight
Written exam 70%
Written assignment (inc essay) 5%
Practical skills assessment 25%

Feedback methods

The course has a number of lab exercises which are marked in the lab as usual, and feedback on these exercises is provided by written comments on the work and orally by the marker.

Recommended reading

COMP24412 reading list can be found on the School of Computer Science website for current students.

Study hours

Scheduled activity hours
Assessment written exam 2
Lectures 24
Practical classes & workshops 10
Independent study hours
Independent study 64

Teaching staff

Staff member Role
Giles Reger 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