I welcome students wishing to take projects outlined below or similar to them. Some additional information can be seen on my WWW site
and go to “Teaching”.
Topic 1: Design of an Intelligent Agent/Multi-Agent System
Backround: An intelligent agent is a software that acts autonomously satisfying some objectives. Agents act in a non-deterministic environment and are capable of making their own decisions. This autonomy is based on their ability to build a model of what is happening around, so called internal representation of the environment. The powerful technique which is behind such representation is called state based representation. I am interested in supervising various projects centered around this state based representation.
Project 1. Bringing intelligency into games
Idea: You would design a computer game bringing intelligency into it. You would use a game engine of your choice and the type of the game is not restricted where one of the players is a computer (agent). The important part is that you use object-oriented development techniques to link the engine and the agent design. You will simulate the state based representation of the agent and use it to assist an intelligent play by the computer. It could be, for example, learning of the patterns of the behaviour of the opponents (reasoning about the history of the game played) and the development of the agent’s strategy based on it. This way an agent playing the game will be able to behave autonomously but not just randomly chosing actions.
Project 2. Representing sensual data in intelligent agent. LEGO robotics based projects.
Idea 1. You would design an agent which is capable of building the representation of the world from its senses. You will use LEGO robotics (provided to the students) environment and hardware. Assembling a simple moving vehicle equipped with the WEB CAM you would enable passing the data obtained from the camera to the “brain”, build a model of the world and apply some AI techniques to calculate an optimal behaviour.
Idea 2. You would design a multi-agent system using LEGO robotics environment. It could be two simple vehicles equipped with LEGO brain bricks which communicate to achieve some common goal, e.g. going through some space, delivering things, etc. It could be the “main frame” computer, “the brain”, which monitors the behaviour of “slave” agents, guiding them through the space.
Topic 2. Automated Reasoning (proof search techniques and their implementation).
Background. Let’s just imagine what will happen if suddenly services that are crucial for our society go wrong – the consequences could be even catastrophic. Consider what a tiny mistake in a program controlling an artificial heart or air traffic can cause. Imagine an absolute waste of billions of pounds if an auto-navigating space shuttle would miss its target flying into the infinite depth of the Universe as an extremely expensive but useless toy. It becomes obvious that both the hardware and relevant computer programs around us need to be tested. In this project we are interested in software testing. The idea is rather transparent. If we have a mathematical model of a computer system which we are testing then we run experiments with this model to identify where things can go wrong. However, generally the programs we mentioned above are so complex that neither an individual nor even a group of experts are able to test them. Is there a solution to this problem? Yes, there is an elegant solution – to use computer power. It means that we need special programs designed for checking other programs and we need to organize some reasoning to guide this process.
I welcome projects to tackle this reasoning framework. From early years we solve problems in different subjects by reasoning about them. These could be mathematical problems such as solving equations, solving triangles, problems in physics, chemistry, etc. In any of these cases, however, we reason applying more or less standard principles. For example, if we know that some conditions cause a particular chemical reaction then if the conditions are met, the reaction will start. Is it NATURAL to think like that? Yes, it is and there is a branch of mathematics which studies these general principles of reasoning. It is called Natural Deduction. It is worth to remind Conan Doyle’s Sherlock Holmes with his favourite technique, DEDUCTION. Paraphrasing it - take all possible observations, deduce what could be hidden behind these observations, and “when you have eliminated the impossible, whatever remains, however improbable, must be the truth…”.
Project 1. You will design an interactive WEB based reasoning application. Idea: The use will be able to input a string into the application which is then passed to the reasoning engine. This input is a formalisation of the world, i.e. some statement that such and such objects have such and such properties or are in such and such relationships. You will work on the implementation of this reasoning engine and the result of this reasoning are passed back to be published for the user.
Project 2. You will be working on the development of the reasoning engine for an ontology. Ontologies are used in order to represent some desired information about a specific domain in a rigorous way, for example, we can speak about ontologies of vehicles, plants, or you may speak about ontologies related to tourism or airfare sale. Surely, the latter are absolutely crucial in the modern e-commerce. The modern community pays more and more attention to ontologies with the growth of Semantic Web. This project will require a student to learn some ground reasoning techniques and implement some of them such as reasoning about classes.
Project 2. Extraction of Metadata. It is often very useful to have tools that enable building models of working software/hardware. It is particularly essential in component based software engineering where reasoning about the composition of components is crucial to avoid inconsistency, conflicts, achieve optimal configuration, etc. The idea of the project is to analyse a specific composition environment, to classify data that describe components and the targeted composition and design tools to extract metadata of components. This is a simulation project and students can think of their own scenarios of the composition (could be, for example, simulation of the composition of various wireless devices).
TOPIC 3. OBJECT-ORIENTED GAME DEVELOPMENT
Object orientation is a powerful approach in game design and development. There are various object-oriented (C++ based) game engines available which often provide an easy way of making a game. However, another, educational aspect of using game engines is essential.
Project 1. Design of a game engine.
Idea. You will design a game engine as a dedicated teaching and development platform either from the scratch or improving, together with the supervisor, an existing engine. You may wish to concentrate on some specific aspects such as collision, or graphics, or motion.
TOPIC 4. DEVELOPMENT OF INTERACTIVE SOFTWARE ASSISTING TEACHING MATHEMATICS
Project idea: You will be working on the design of the interactive software to teach such topics in mathematics as sets, relations, functions and basic reasoning. Multi-Media, Computer Science and Software Engineering Students are specifically invited!