Skip to main content
School of Electronic Engineering and Computer Science

Dr Soren Riis



Telephone: +44 20 7882 6284
Room Number: Peter Landin, CS 420
Office Hours: Thursday 11:30-13:30, Wednesday 13:00-15:00


Computability, Complexity and Algorithms (Undergraduate)

A theoretical course, which concerned with the theoretical core of Computer Science. The course covers some of the most successful algorithms as well as some of the most central decision problems. A large part of the course will focus on the NP versus P problem as well as other famous unsolved problem in Computer Science. To understand this problem we consider the issue of how one programming problem can be disguised as another apparently very different problem. This idea is very important in designing algorithms and plays a crucial role in the theory of NP-completeness.

Logic and Discrete Structures (Undergraduate)

The module consists of two parts, each of fundamental importance for any serious approach to Computer Science: Logic and Discrete Structures. Logic has been called the Calculus of Computer Science. It plays a very important role in computer architecture (logic gates), software engineering (specification and verification), programming languages (semantics, logic programming), databases (relational algebra and SQL the standard computer language for accessing and manipulating databases), artificial intelligence (automatic theorem proving), algorithms (complexity and expressiveness), and theory of computation (general notions of computability). Computer scientists use Discrete Mathematics to think about their subject and to communicate their ideas independently of particular computers and programs. They expect other computer scientists to be fluent in the language and methods of Discrete Mathematics. In the module we consider Propositional logic as well as Predicate Calculus. We will treat Propositional Logic and Predicate Calculus as formal systems. You will learn how to produce and annotate formal proofs. As application we will briefly consider the programming language Prolog. This module will also cover a variety of standard representations, operations, properties, constructions and applications associated with selected structures from Discrete Mathematics (sets, relations, functions, directed graphs, orders).


Research Interests:

Mathematical Logic, Complexity Theory, Proof Complexity, Algebraic Proof Complexity, Information Theory, Network Coding, Combinatorics and Reinforced Learning.


Back to top