Dr Ian Bayley
Senior Lecturer in Computer Science
School of Engineering, Computing and Mathematics
Role
I am the Subject Coordinator for three of our MSc courses: MSc Computing Science, MSc Advanced Computer Science, MSc Computer Science for Cyber Security. This means I work with the Programme Leads to help ensure the students have the best experience possible on our programmes.
Areas of expertise
-
cybersecurity
-
secure programming
-
exploits
-
malware analysis
-
-
software engineering:
-
design patterns
-
web services
-
-
formal methods
-
model-based specification
-
algebraic specification
-
-
programming languages
-
object-oriented programming
-
functional programming
-
agent-oriented programming
-
Teaching and supervision
Modules taught
-
Secure Programming:
You will learn about the fiendish tricks that hackers use to hijack software and gain control of computer systems and then make sure that all the software you work on is free from vulnerabilites. This is an exciting fast evolving field in which there are revelations about new exploits every month. You will learn about many subtleties within C/C++ and the security aspects of, for example, web programming, cryptography, networks, and operating systems including concurrency and access control. I teach both undergraduate and postgraduate versions of this module. -
Professional Programming Practice
This module, for first year undergraduates, teaches you about the skills required for the software developer. This includes essential organisational and critical awareness skills needed for software development. You will learn how to organise your code to facilitate understandability and correctness. You will have hands-on experience of essential tools such as version control software, unit testing, and debuggers.
Supervision
I'm in charge of a number of programming and cybersecurity modules and I have a few ideas for cybersecurity projects.
Research Students
Name
Thesis title
Completed
Debalina Ghosh
Evaluating large language models using scenario-based meta-information.
Active
Supervision
I'm in charge of a number of programming and cybersecurity modules and I have a few ideas for cybersecurity projects.
Research Students
Name | Thesis title | Completed |
---|---|---|
Kieren Stanton | Studying different technologies for authentication in order to prevent impersonation attacks in vehicular ad hoc networks | Active |
Research
I do research with Prof Hong Zhu on a wide variety of topics of importance to practical software engineering.
Example of current and past research topics:
-
Large language models (LLMs) have become increasingly widespread but they are infamously hallucination-prone and prone to giving very low quality results. Given this, the question arises of how can we evaluate LLMs? Important considerations include scenarios (so test data should be tagged with this meta-information) and testing for closeness to a desired output (which requires similarity metrics)
-
How can machine learning applications be tested given the inevitable absence of an oracle? One approach is exploratory testing as a means of mapping out the solution space so that the model can be more thoroughly understood.
-
Software design patterns are widely used in industry to pass on expertise about object-orientation, but can we recognise design patterns in legacy systems and when we compose them together to make larger systems, can we be sure that we have done it correctly?
-
Can we apply the concepts of design patterns to other areas such as security design patterns, which are the practices passed on by security experts to keep computer systems secure?
-
Microservices are a lightweight container technology commonly used to provide SaaS (software-as-a-service). It seems plausible that agent-orientation, in which we supply behavioural rules to react to changes in the environment, may be a better fit to microservices than object-orientation. Inspired by this, we have devised a programming language for programming microservices.
-
Algebraic specification of web services enables us to do automated testing using equations instantiated with random inputs instead of having to supply (input, output) pairs as usually required. However, since the testing is done shortly before use by a client that doesn't even own the service, it is not possible to "reset" the service to a prior state as sometimes is needed when testing such equations. How do we solve this problem and still successfully test web services?
Groups
Centres and institutes
Groups
Projects
- Authentication in VANETs
Publications
Professional information
Conferences
- PC Co-Chair for COMPSAC SETA 2018
Further details
- Lecturer at University of Bournemouth