Skip to main content
School of Electronic Engineering and Computer Science

Mr Hamza Bandukara


Room Number: Peter Landin, CS 319


Automata and Formal Languages (Undergraduate)

Automata and formal languages are fundamental concepts in Computer Science. Automata are abstract machines that are used for representing computational processes in a mathematically precise fashion. Moreover, any device interacting with the outside world, whether a simple program or a complex system, requires well-defined, formal input and output languages. We will study automata and their relationship with formal languages and grammars.

Operating Systems (Undergraduate)

What is an Operating System for and how does it work? How can a computer run, or appear to run, many programs at once? This module introduces Operating Systems, with a combination of study of the principles and practical skills in scripting and monitoring an Operating System kernel. Concepts of processes and concurrency are introduced in the context of Operating Systems and then pursued further as a tool for an application programmer wishing to exploit the full potential of a multicore processor. The module prepares students for further studies in distributed systems and high performance computing at the next level.

Probability and Matrices (Undergraduate)

This module covers: Probability theory Counting permutations and combinations Conditional probabilities Bayesian probability Random variables and probability models Vector and matrix algebra Linear equations Vector spaces Linear combinations, linear independence