Software+Engineering

__**Software Engineering**__

This page has three main sections:

Staff Interests shows a list of members of staff in the subject group, and some keywords that identify their areas of interest. • Use this to find out which member of staff has the right expertise to supervise the type of project that you want to do. Carry out some research into your topic, and then arrange to meet the relevant member of staff to discuss further.

Broad Project Ideas provides some outline ideas for projects that you can use to develop a more specific idea for your project • If one of these interests you, read the requirements for a project in that area, carry out some background research and then arrange to meet the relevant member of staff to discuss further.

Specific Project Ideas • These are detailed and well-defined, and you should know immediately whether any of these are of interest to you. If so, carry out some background research into the topic and then arrange to meet the relevant member of staff as soon as possible.

Please remember that other pages, such as the Computer Systems & Networks pages, have projects that will be suitable for software engineering students.



Staff Interests
Anything that involves parallel processing using a languge called Occam, or a Java library and Groovy on distributed systems eg the School's Beowulf cluster, Raspberry PIs ||
 * Dr Kevin Chalmers, C48 || Games programming, graphics programming, GPU, parallel systems, concurrent systems, distributed systems, software engineering, game technologies, formal methods. ||
 * Andrew Cumming, C39 || JavaScript and Web 2.0 applications, Database systems, Teaching tools, Educational Games, Cooperative games. Image processing. ||
 * Brian Davison, C56 || Universal mobile interface for the Internet of Things; Application of IT to energy generation and use. Mobile app development using Android. Location-based games (mobile, GPS, etc.). Data/information visualisation. Open and linked data. ||
 * Prof Emma Hart, C54 || Bio-inspired computing (including evolutionary algorithms, artificial immune systems), Optimisation, Machine learning, Computational Intelligence in Games, Applications to support green computing/sustainable travel ||
 * Rob Kemmer, C59 || Ethical decision support systems, Predictive texting for the PC, Software engineering, Database systems. ||
 * Prof Jessie Kennedy, C53 || Information Visualisation - there are lots of opportunities to do cool visualisation projects - come and see what we do.... ||
 * Prof Jon Kerridge, D30 || Analysing data obtained from children undertaking dyslexia assessment using some form of data mining techniques
 * Prof Jessie Kennedy, C53 || Information Visualisation - there are lots of opportunities to do cool visualisation projects - come and see what we do.... ||
 * Prof Jon Kerridge, D30 || Analysing data obtained from children undertaking dyslexia assessment using some form of data mining techniques
 * Alistair Lawson, C38 || Healthcare Applications, Spoken Language Learning Applications, Software Localisation, Minority Language Applications, Speech synthesis, Speech analysis, Software for Kids. Content management systems, technologies such as C#.Net XML, XAML, WPF, WCF, Silverlight, Flash, Google Maps API, Picasa API ||
 * Dr Xiaodong Liu, C55 || Software reuse, Component-based systems, Pervasive services and context awareness, SOA, Software evolution, Cloud services. ||
 * Dr Simon Powers, C42 || Artificial intelligence, Swarm robotics, Modelling human societies, Artificial immune systems, Agent-based modelling, Computational economics, Network intrusion detection, Machine learning, Neural networks, Simulation of social behaviour, Evolutionary algorithms, Evolution of cooperation. ||
 * Dr John Owens, C61 || Software Engineerting, Tutoring and Learning Systems, AI, Processing applications ||
 * Dr Taoxin Peng, C55 || Data Cleaning, Data warehousing and Data Mining ||
 * Dr Malcolm Rutter, C67 || Microprocessor Applications, HCI, Multimedia, Music and Sound, Educational Techniques, Tutoring and Learning Systems, Signal Processing, Adaptive Systems ||
 * Andrea Scott, C42 || Human-computer interaction, Internet technologies, Learning technologies: Dyslexia related computing topics, including websites and open source software projects ||
 * Sally Smith, C66 || Mobile applications, Real-time systems ||
 * Neil Urquhart C59 || Evolutionary Algorithms and AI in general. Also interested in mapping applications, transportation and logistics and "green" computing ||
 * Elias Ekonomou || Web Applications (possibly with mobile/tablet interfaces) ||
 * Simon Wells C37 || Theoretical projects centered on: Arguments & Dialogue, Artificial Intelligence, Multi-Agent Systems, Machine Learning with applied projects in the same topics utilsing web, desktop, server, or mobile implementations. ||
 * Peter Cruickshank C56 || Data collection / analysis to understand behaviors - eg social media/twitter to understand communities, or authentication logs to understand actual security behaviours ||



Dr Kevin Chalmers

 * All project ideas are considered challenging. If you want a challenge in your honours project, and you want to learn something new, then read on.**

__CUDA/OpenCL Related Projects__ Applicable Programmes: Games Development / Software Engineering / Computing Outline: nVidia has recently enabled general purpose programming of their Graphics Programming Units (GPU) via the CUDA framework: http://www.nvidia.com/object/cuda_home_new.html (OpenCL is another possibility for any graphic card) Various possible projects are possible. However, you will need strong C++ skills, or your willingness to adapt your strong programming skills to C++. Deliverables: An application demonstrating the capabilities of CUDA. Skillsets: Good programming skills. Knowledge of parallel computing architectures also an advantage. Requirements: A PC with an nVidia graphics card that supports CUDA, or using OpenCL any suitable graphics card.

__Concurrency / Parallelism Projects__ Applicable Programmes: Games Development / Software Engineering / Computing Outline: Concurrency (multi-threading) and parallelism (multi-core) are becoming key skills in the software industry. Because of this shift, various platforms and frameworks have emerged to support concurrent and parallel programming. Building a suitable application (attacking a particular problem) using one or more of these platforms / frameworks would provide insight into how we can solve problems using concurrent / parallel techniques. Possible platforms / frameworks worth exploring are: Google's Go language [] Intel Threading Building Blocks [] Although there are numerous others. Deliverables: An application demonstrating concurrent / parallel programming techniques Skillsets: Good programming skills. Knowledge of concurrent / parallel computing architectures also an advantage

__Formal Modelling Projects__ Applicable Programmes: Software Engineering / Computing Outline: Formal modelling of software helps us build systems that can be shown to be correct under particular conditions. We do this by building mathematical models of our software and then prove certain features of the software. Traditionally, this has been a very manual process, requiring human definition, proof, and modification to allow the implementation of the system modelled. Lately, tools have become more available which allow not only a more automated form of model definition, but simpler methods of implementation. In particular, the use of the B-Method and Microsoft Code Contracts enables us to both specify and implement our formal model and see the similarities between the two. A project in this area will involve building a particular application, from formal model to implementation. Deliverables: An application demonstrating formal modelling techniques Skillsets: Good programming skills, analytical skills, and an understanding of core computer science mathematics (logic, set theory, etc.)

Andrew Cumming
__MediaWiki Extensions/Facebook/GoogleApps__ Each of these technologies permit the creation of small applications that can be embedded into web pages. Applications such as simple (or complex) games, real time traffic indicators and other gimmicks.

__Robot Applications__ We have a number of Lego robots that are available for use by project students. These devices have motors and a variety of sensors and they can be programmed in Java or C# (and various other languages).

__SketchUp and GoogleEarth__ SketchUp is a 3D modelling tool that can take scripts in Ruby. This allows the possibility of building educational or instructive toys and games that illustrate physics.

__Simple Image processing__ I have a requirement for tools to process the sign sheets used to record attendance. We can scan the paper documents and process them. We need to be able to find the boxes; decide which boxes have been marked; verify and correct errors.

Mr. Brian Davison
__Universal mobile interface for the Internet of Things__ Projects in this area would focus on the development of techniques for constructing on-the-fly interfaces for services and devices in the immediate environment. Typical projects would demonstrate the operation of a mobile application which communicates with services provided by a test setup built from components such as Raspberry Pi and Arduino units. The main interest would be the development of generic approaches to service description, interface generation, communication of control and status requests, and service contention. In contrast, the construction of a single interface restricted to only one context of use would be of limited value. __Renewable energy instrumentation and control__ Projects in this area would involve the processing of energy data from measurement sensors. Sensors could include for example motion sensors on measurement buoys, or wind speed readings from anemometers. Work would either be based in a university lab or by arrangement with a partner organisation. Projects in this area would be highly technical.

__Energy usage modelling__ A great deal of energy is wasted in current buildings and the management of this type of resource is becoming more of a priority for organisations. A project in this area would consist of constructing a theoretical model of energy use for a particular environment such as a house, flat, office or other institutional building using tools such as Excel and Visual Basic, and comparing the model's predictions with actual use.

__Mobile apps and location-based games__ Location-based games make use of mobile platforms and GPS to allow players to interact within a geographical area. Games might be based on conventions drawn from a range of existing activities including treasure hunts, orienteering and geocaching, and may or may not include a narrative element. An example of this type of development is Coderace which was run as a public competition event in August 2012.

__Data/information visualisation__ Data or information in numeric or text format is often difficult to understand whereas presentation in visual form can be much more intuitive. Projects in this area would require a source of data, and some general ideas about how that data could be presented. The range of technologies is very wide, and so could suit many different skill sets. I am particularly interested in projects where information could be presented in a timeline format.

Professor Emma Hart
__Computational modelling of biological systems__ Applicable Programmes : Software Engineering/Software Technology OUTLINE : Computer scientists have many skills which can be employed to help biologists understand better the systems they are researching. Computing tools such as uml modelling, cellular-automata, agent-based systems, graphical simulations are just some example of tools which can be used effectively to study aspects of biological systems. This is a broad project, suitable for someone with good programming skills which would examine an aspect of biology of the student's choice (suggestions provided) and utilise some computational techniques which can be used analyse and validate understanding of the biology. DELIVERABLES : Software: A model (or set of models) Skillsets : good programming Skills in e.g java, C#, preferably knowledge of a graphical programming environment

__Online Adaptation in Computer Game__s Characters or objects (such as vehicles, space-ships) etc. in computer games should be able to adapt their behaviours according to the particular style or ability of a player. Online adaptation, i.e. adaptation that takes places as the game is being played, is difficult in that it shouldn't slow down the game and should produce believable behaviours. Artificial Intelligence techniques such as neural networks can be used although a challenge with these type of emergent techniques is that unexpected or unbelievable behaviours might emerge. Projects would involve creating a simple computer game and implementing and evaluating a range of AI techniques, to analyse speed to adaptation, resource usage etc. The focus of the project is on the AI, not in just creating a game. Strong programming skills required and a willingness to learn about neural networks or similar techniques which the student may have not have covered.

Deliverables : environment to experiment in, experimental analysis Skillsets: excellent programming skills in C++ or Java (possibly C#)

__Choosing optimisation algorithms: mapping problem characteristics to algorithm performance__ Many different optimisation algorithms are now available which make it very hard for practitioners to select the best one for their problem or predict what might work on future instances. A lot of data has been collected on performance of heuristics on bin-packing problems that is ripe for analysis. The project would involve finding low-dimensional mappings of the data in order to visualise it, and applying some machine-learning algorithms to find predictions. Good programming skills and a willingness to learn about machine-learning - many tools are available to actual apply the algorithms

Prof Jessie Kennedy
__Information Visualisation__ I have several research and commercial projects investigating information visualisation. Information Visualisation projects can vary from design and evaluation to challenging programming. If you're creative and want to learn a new and topical area of computing then you might like to undertake an information visualisation project with my research group. If you want to look at some of our research projects then please get in touch for a demo and to discuss some ideas.

Prof Jon Kerridge
1Analysing Data from a System Used to Detect Dyslexia and Other Learning Difficulties in Primary School Children

A system has been developed that enables testing of Primary School children to determine whether or not specific learning support interventions are required for each child. The test involves the child joining a pattern of dots that appear in sequence. The data is held in an SQL database and needs to be analysed using data mining techniques. This is an exploratory project for someone who wants to learn about the use of modern data mining techniques. This project requires an enthusiastic programmer, who is also undertaking Professor Hart's AI module.

2 General Purpose Parallel Programming on the School's Beowulf Cluster or any other collection of parallel machines The aim of this project is create a mecahnism whereby a network of parallel processes can be distributred over the nodes and cores of the School's Beowulf cluster. The cluster comprises a collection of fast multi-core processors connected using a gigabit ethernet. The proposed solution would take the application, already written in parallel form and distribute it over the Beowulf automatically. The project would investigate certain standard workload distrbution architectures; farmer, worker, harvester or star networks in which the work would be distributed in such a way that the worker nodes would not need to be aware of the actual applcation that is being executed. The ability to distribute work to nodes and the associated class files is already well developed and provides a basis for the project. This would be a fun project for anyone that likes programming and wants to find out about things parallel. Copious documentation and support material is already available together with the basic systems to build a star network. if you do not know what that is and are intrigued, come and talk to me!

**Alistair Lawson**

 * 1) Spoken Speech Analysis
 * 2) Natural Language Processing
 * 3) Social Media Mining and Network Analysis

**Dr Taoxin Peng**
__An investigation into data error types and factors__ Style: Research on data error types and factors that affect the way to identify/correct the error data, developing a method to classify these types and a prototype to evaluate the factors identified. Outline: There is variety of data error types. Different type of error data can be identified/corrected by different methods/algorithms. Also the factors that affect the way to identify/correct the error data make contribution to the efficiency of data cleaning tools. This project is to investigate data error types and such factors, and build up an approach to classify data errors. Oracle and Java or C# might be used for implementing a prototype.

**Dr Neil Urquhart**
I'm interested in Software Engineering tools and methodologies, some ideas include investigating was of overcomming the "impedance mismatch" between Object Orientation and relational databases. I'm also very interesting in noSQL databases.

I have previously supervised projects based around ArtificiaI Intelligence techniques, such as Evolutionary Computing, especially in solving real world problems, such as planning delivery routes for trucks or other types of vehicle. I'm particluarly interested in the use of maping services such as Google Maps or Bing Maps.

"Green" computing also interests me;
 * can we produce software applications that help solve problems in ways that will reduce our carbon footprint?
 * can we alter how we use computers to reduce the environmental impact of computing?


 * Dr John Owens**

Previous projects include:
 * An expert system athletics coach.
 * An Android app which creates a meaningful learning environment for for learning sign language
 * A fun Android app to aid students who are learning Java
 * Pitch analysis software to aid coaching of choir singers
 * Using object-oriented metrics for coursework plagarism detection

**Dr Simon Powers**
__Swarm robotics__ The idea of swarm robotics is to use a group of robots that are each relatively cheap and simple to work together to perform a complex task. This approach is useful both for engineering, and for simulating animal behaviour (e.g. ant and bee colonies). The School is currently building a swarm robotics lab. Projects can be started in simulation, with the possibility of later transferring them into real robots.

__Machine learning for network intrusion detection__ Network intrusion detection is the problem of detecting unauthorised use of computer networks, for example detecting denial-of-service attacks or port scans in network traffic. There are two main types of network intrusion detection systems: misuse detectors and anomaly detectors. Misuse detectors (such as the open-source system SNORT) look for signatures of known attacks. However, these cannot recognise new and unknown attacks. On the other hand, anomaly detectors build a model of normal network traffic, and then monitor the network for abnormal traffic. These systems can detect new attacks, but tend to have a high false alarm rate. I am interested in implementing and testing various machine learning algorithms for anomaly detection, including neural networks, evolutionary algorithms, and artificial immune systems. We will test the algorithms on the [|KDD 1999 Cup benchmark dataset]. Projects would involve developing an application that you can plug a machine learning algorithm into, plug in a dataset of network traffic, and then evaluate the performance of the algorithm. You will implement one or more algorithms and compare their performance at detecting network intrusions. This project does not require any background in networks or security, but you must be willing to study some machine learning.

__Computational economics__ I am interested in projects that develop agent-based computer simulations of markets, auctions, institutions, etc.

__Neural networks__ I am interested in using neural networks to simulate animal behaviour. This includes the use of neural networks to control creatures in games, or to control robots. I am also interested in combining neural networks with evolutionary algorithms for pattern recognition, e.g. for breast cancer detection.

__Evolution of cooperation__ In many of our social interactions, we have the potential to benefit by cheating others. Social scientists and economists are interested in why humans don't do this, why we tend to cooperate with others. This can be simulated by the [|Prisoner's Dilemma game]. I am interested in projects that simulate the Prisoner's Dilemma game. One possible area is to use an evolutionary algorithm to evolve strategies for it, to see when cooperative strategies are favoured by evolution.

__Simulation of social behaviour__ Simulating animal flocking behaviour, simulations of the spread of human culture, simulating the spread of diseases



Prof David Benyon (MISD subject group, C43)
__Multi-touch and gesture-based interaction__ There are a limited number of projects in the area of human-computer interaction (HCI) using the very latest technologies. We have access to a large multi-touch table and wall-sized displays in the Faculty’s ‘Future Meeting Room’. Novel forms of interaction can be developed and evaluated in the room. Students should be good programmers and interested in using PyMT (python for multi-touch). Develop new forms of interaction and new types of user interface.

Other opportunities are available for students wanting to look at gesture-based interaction, perhaps by interacting with large displays through mobile phones. The ability to source and implement appropriate interaction methods is critical

**Dr Kevin Chalmers**
__Algorithmic Skeletons Using Google's Go__ Computation is now parallel computation. Algorithmic skeletons ([|Cole, 2004]) are a method to construct parallel applications with reusable blocks. These blocks include ideas such as pipeline, work-farm, map-reduce, scatter-gather, fold, zip, etc. Algorithmic skeletons are becoming popular in parallel computing, providing non-domain experts the ability to construct parallel solutions to their problems. Example frameworks are [|SkePu], [|FastFlow], and [|Skel].

[|Google's Go] language promotes message passing concurrency. Processes share data using a channel construct. You are not permitted to share memory. Message passing is becoming popular, with Go and [|Mozilla's Rust] promoting the style. Many of these languages claim process calculi as their underpinning theory. An example process calculi is Hoare's Communicating Sequential Processes (CSP).

The proposed project will bridge the areas of message passing concurrency and algorithmic skeletons. The aim is to build a skeleton library using Google's Go. You will test the library with a set of test applications seen in the parallel computing domain. The 13 computation patterns from [|Berkely] are a good target.

As related work, a parallel skeleton library exists for Erlang (Skel). The idea of skeletons also exist in CSP inspired libraries such as JCSP. The plug and play library defines such processes.

The proposed project has the following stages:
 * 1) Literature review into skeleton frameworks.
 * 2) Determination of a set of skeletons to develop.
 * 3) Implementation of these skeletons in a message passing style using Google's Go.
 * 4) Building test applications. The project will use standard measures (speedup, efficiency).

The project requires good programming skills and an understanding of concurrency. You will also need a good understanding of data analysis and presentation.

__Determining Visual Patterns of Concurrent Behaviour__ For evolutionary reasons, humans are primarily visual creatures; our most developed sense is sight. We use vision to make sense of the world, to find things, to distinguish one object from another. When we use a visual representation of our data, we seek to leverage this visual capability.

Card defined Information Visualisation (IV) as "the use of computer-supported, interactive, visual representations of abstract data to amplify cognition". Computers represent the data visually, allowing interaction to increase our understanding of the data. IV is an emerging area of study, drawing upon computer science, psychology, and design. Industry and academia use visualisation techniques to support data analysis and communication.

Visualisation is useful for exploratory data analysis of large and complicated datasets. Where we are not familiar with the data or sure what we are looking for, visualisation is useful. Visualisation can help us understand the internal structure and relationships within data:
 * 1) finding patterns and trends.
 * 2) spotting outliers and anomalies.

In so doing, we gain insight into and make discoveries about our dataset. Such insights may help us formulate explanations and make decisions.

When used to present data, visualisation offers a powerful medium with which to engage a wide range of audiences. IV allows us to communicate ideas, explain and inform, influence and persuade, and provide evidence and support for our findings. Concurrency is the ability to execute many computations, aparentely at the same time. Parallelism is the actual running of many computations at the same time. Concurrency frameworks for the CPU include OpenMP, Intel's TBB, standard multithreading, OpenCL, etc. Such approaches allow distribution of work across cores on the CPU.

Microsoft have provided a Visual Studio plugin called Concurrency Visualizer (CV). CV allows exploration of runtime behaviour of a concurrent application.

The aim of this project is to discover pattherns of behaviour using concurrency visualizer. The project has the following stages:
 * 1) Development of test applications using some frameworks, such as OpenMP, Intel TBB, etc.
 * 2) Executing these applications through Concurrency Visualizer.
 * 3) Discovery and definition of common patterns of concurrent behaviour.
 * 4) Evaluation of the defined patterns. You will need some form of human input.

To undertake this project you will need excellent C++ programming skills. You will also need to be willing to learn some different concurrency frameworks. Finally, you must be willing to undertake some form of user study. For the test applications, you can use Berkley's 13 parallel computation patterns or similar.

__Visualizing GPU Performance__ The School of Computing has a very active research group in the area of [|Information Visualization]. Information Visualization aims to allow investigation and analyses of complex data in manners that are easy for a human to understand.

Graphic Processing Units (GPUs) are becoming more and more an integral part of the programmers tool set when requiring raw performance of large data sets. However, at present the tool chains for using GPUs do not make it easy to debug and analyse the current state and performance of the GPU. This project will aim to assess the existing GPU tools out there, and then develop a tool which allows exploration of the information available about the current state of the GPU. This may involve using CUDA, OpenCL, OpenGL or DirectX - it really depends on the most suitable method of extracting data from the GPU. Excellent programming skills are required, as well as a good understanding of design issues for data exploration.

__Exploring Concurrency Design Patterns using Visual Studio Concurrency Visualizer__ Much like object-oriented approaches, [|concurrent systems development] can be supported by the use of reusable design patterns. However, these design patterns are generally developed to solve particular problems when running and coordinating multiple running threads and processes. The aim of this project is to analyse a number of existing concurrency patterns and apply then to the solving of particular problems.

The Concurrency Visualizer that is part of Visual Studio 2013 Ultimate edition enables applications to be examined at the core, process and thread level to determine how the application has performed in the completion of its task. For example, it can determine when a thread is under contention (blocked from doing anything), running, or similar. The goal is to use the Concurrency Visualizer to better understand what is happening within an application when particular concurrency patterns are applied.

__Using C++ AMP to Build Parallel Applications__ Microsoft's C++ AMP allows programmers to write code that can execute on the CPU or GPU. C++ AMP only requires C++ code to do this. Microsoft's C++ compiler will manage the transformation of code for different targets. Therefore, a programmer can target the CPU or the GPU easily.

Within parallel systems development we perform certain measures. In particular, application speedup and efficiency are key. This project aims to investigate the impact of using a high level framework such as C++ AMP. To do so, you will need to undertake the following stages of work:
 * 1) Development of a suite of test applications using C++ AMP.
 * 2) Running of these applications to gather test results:
 * Single threaded CPU
 * Multithreaded CPU
 * Single threaded GPU
 * Multithreaded GPU
 * 1) Determination of metrics based on gathered results.

Berkeley's 13 computation patterns provide a good basis for building test applications. Other possibilities include the Java Grande Benchmark suite and the Linpack suite.

The project will need a lot of C++ programming, a good deal of data analysis, and running applications that will take a long time.

Andrew Cumming
__Tutorial Quality Metrics__ The web sites sqlzoo.net and progzoo.net and xmlzoo.net are being used by hundreds of students. We have collected all of the attempts made over several years. We need to be able to mine this data in order to establish which questions are most effective and which are most in need of being replaced. We would like to be able to measure question difficulty and the suitability of each question with respect to level. The identification of and the diagnosis of common misunderstandings could be considered.

__Topic-Specific Brain Training Games__ Applicable Programmes : Software Engineering, Computing Outline : There are a number of Brain Training games available for platforms such as the Nintendo DS. These games typically involve solving 5-10 similar puzzles, they last for one minute and they feature: 1) Increasing level of difficultly – the puzzles share the same format but become increasingly difficult. 2) Each puzzle can be solved in a few seconds. 3) The puzzles are randomly generated so users can play over and over again. There are a number of topics in computer science that could be used as a basis for such puzzles. Examples include: 1) Logic gate circuits 2) Programming tasks such as string manipulation or evaluating expressions 3) Database functions such as calculating joins These puzzles can be implemented in Flash or JavaScript or Microsoft’s Silverlight. See [] for an example. Deliverables : Several games together with a high score facility and a mechanism for selecting the game/level. Required Resources : Compilers. Skillsets : Any programming language.

__Automatic Processing of Student Attendance Records__ Applicable Programmes : Software Engineering, Computing Outline : Student attendance data is gathered on paper forms that have a predictable layout. An application is required to process png or jpeg images of these sheets and extract the attendance data to a database. This will require image processing and a little web work and a little database knowledge. There will be some maths! Deliverables : Application to process images and update an existing database. Evaluation to demonstrate the reliability/robustness of the application Required Resources : Document scanner with sheet feeder. Compilers. Skillsets : Any programming language. SQL. Reasonable level of mathematics – or skill in tracking down suitable open source pre-processing tools.

Mr Brian Davison
__Universal Interface for Internet of Things__ Applicable Programmes : Software Engineering, Systems & Networks Style : Software development using, for example, C on Linux

Outline:
The Internet of Things will make a huge number of location-based services available and it will be important to have a simple means of accessing them. The main concept behind projects in this area is that a mobile device should be able to discover available services automatically and present the user with an appropriate user interface. This presents a whole range of more specific problems that individual projects could explore:


 * Standardised service description possibly based on SNMP - how can a device communicate its available services to a mobile application?
 * Interaction with available services possible using COAP - how can a mobile application send requests to a device?
 * Security/priority control - what mechanisms can be used to determine who has control over a particular device or service at any one time?
 * etc.

The Raspberry Pi is a cheap computer based on the Intel Atom processor and Arduino is a range of cheap microprocessor boards for system prototyping. Competitor products also exist. Because of their low price and small footprint they have potential as an alternative to embedded control systems or systems based on expensive programmable logic controllers (PLCs). These devices can be used to simulate a network of real-world devices as a test and prototyping environment.

Aims : The aims this project are :
 * Identify one particular aspect of the Universal Interface concept for investigation
 * Design a simulation scenario
 * Implement the required hardware and software components
 * Design and carry out an appropriate evaluation on the resulting prototype

__Exploiting local authority data__ Edinburgh City Council collects large amounts of data and is always keen to discuss new way that data can be used, presented or otherwise exploited. A project in this area would explore the challenges of using Open Data, select a particular area of interest based on Council data, and would create an experimental prototype that adds value to existing Council services, either for the public user or for the Council itself. Examples might include the combination of datasets to provide new insights or the visualisation of data in a novel way.

__Software simulation of electrical devices__ The development and testing of devices such as wind turbines requires the use of complex pieces of electrical equipment. These pieces of equipment are typically expensive, difficult to install and potentially dangerous. A solution to all of these problems is to develop a software simulation with equivalent behaviour to the real device. This project is highly practical and would suit an undergraduate in software engineering and an interest in renewable energy technology. The proposed development environment is Microsoft Visual C# using Visual Studio. Part of the project would involve a visit to a site where the real device is in use.

__ Improvisor __ Most teachers have a range of materials that are applicable in different situations. Often, however, it is not easy to disaggregate existing set of notes and slides to suit a new purpose. This project involves the development of a software application which maintains a repository of small items such as single slides which are tagged with metadata. Using speech recognition, the software application monitors the teacher's words for metadata items and constantly updates a list of matching items of content. The teacher can then select items from the list to be displayed on a data projector.

Although this is a highly technical project, most of the components already exist as libraries that can be integrated into a .NET development (see for example []). Thus the project would build as far as possible on the standard functionality of PowerPoint and SQL Server.

__Coderace version n__ Running Coderace as a public event has identified a number of improvements that could be made. Some are fundamental to the way the game works and would involve a major re-write, while others are more incremental. An Honours or MSc project could be built around one or more of these modifications. Coderace is built in Java using the Android development kit, and a project in this area would be suitable for a strong software engineering student.

__Coderace monitor version n__ The Coderace application itself runs on an Android device, but there is also a Web-based interface for following the progress of a game. The monitor follows many of the conventions of the game itself, but provides more information for spectators. The Coderace monitor is built using HTML, CSS, Javascript, PHP and MySQL and a project in this area would therefore suit a strong Web developer.

__Comparative timelines__ Open source technology already exists which allows you to present a dataset on a timeline (eg Simile). However, it would be useful to be able to generate timeline representations according to the user's preferences (restricted to a particular time range, for example), and also to be able to select more than one dataset to compare them. This project would make use of the Simile widget and would also make use of a central database repository. The skills required would therefore include relational database design, Web technologies (especially Javascript) and PHP.

Professor Emma Hart
__Application of data-analysis techniques to movement dyspraxia__ Outline: A previous Honours Project conducted research into movement dyspraxia. This project has resulted in the accumulation of 2 data sets, from 20 normal people and 20 people with Parkinson’s Disease. During the data collection, each person wore a haptic device to point at four points on a screen following instructions for an observer. The data comprises the acceleration, velocity and position information in three dimensions. The aim of the project would be to see if there are any differences between the normal and Parkinsons patients and if so can it be quantified. The project would conduct some research to investigate suitable data-analysis and clustering techniques, then apply them to the available data to see what would be learnt.

__Improving Road Cyclists performance (a data-mining approach)__ Outline: The British Cycle Association have a very large data set which comprises biometric measurements from road race cyclists concerning their power output, particularly over a series of hills, as per Tour de France. The data is at one second intervals. They want to know if they can modify a cyclist’s behaviour so they retain more energy for climbs later in the day so as to improve overall performance. The project would investigate suitable techniques for analysing time-varying data, and then apply some of these techniques to the data in order to analyse it and see what could be learnt.

__Simulating the Origins of the Immune System__ Outline: The vertebrate immune system is an incredibly complex but possible inefficient system which nevertheless, plays a key role in ensuring the survival of our species, by conferring immunity and providing body maintenance. It consists of many different types of interacting cells and is a product of evolution over many thousands of years. Why did it evolve like that, and are all those cells really necessary ? This project would involve creating an Artificial Life simulation of a cell or organism attempting to survive in an environment in which it was attacked by viruses and pathogens, to see if it could evolve its own immune system. The project would investigate what kind of components are necessary in such a system, and what environmental conditions are required for the evolution to occur. Any graphical programming language would be suitable: Java, C#, C++ or modelling tools such as NetLogo.

__Artificial Immune Systems__ Overview: My interests are in applying ideas from the natural immune system to computational systems. Current applications of this metaphor range from data-mining to robot control. If you are interested in a project in this new and exciting area, and have good programming skills, please contact me. Projects will require excellent programming skills and a willingness to learn some very high-level immunology (no previous knowledge required though)

__Evolution of Trust and Cooperation in Pervasive Adaptive Systems__ Overview: The study of the conditions under which cooperation exists among groups of individuals has been of major interest in many different fields, such as sociology, economics, and more recently in social networking. Co-operation and the ability to trust in another parties cooperation is also becoming highly relevant to many contemporary communication systems and applications. This is particularly important in distributed electronic systems such as peer-to-peer networks, ad-hoc networks and more recently opportunistic networks. This project will examine the application of a trust model to the Prisoner's Dilemma problem, in which nodes in a network can invite other nodes to play and invited nodes have to decide whether to accept. The project will focus on applying the model to different network topologies of nodes, to understand the effect of the network structure on the trust model.

__Use of cellular Automata/agent based modelling to investigate fungal networks__ Overview: Fungal networks have remarkable properties such as emergence and decentralisation; plasticity and remodelling; resilience and robustness; invasion prevention and self-healing; self-organisation, optimisation and complexity. These properties are desirable in engineered networks such as WSN or ad-hoc networks and hence fungal systems are attracting the attention of computer scientists; for example, an algorithm has been recently developed for efficient routing in telecommunications networks based on the flow of biomass through a fungal network. This algorithm was derived from a mathematical model of a fungal network. This project will build a graphical, computational model of a fungal network using either cellular-automata modelling or agent-based modelling. The model will then be analysed to see how it is affected by its parameters.

Rob Kemmer
__Bluetooth Predictive Texting for the PC__ Overview: Predictive texting is widely used on mobile devices. The aim of this project is to provide a similar systems for the PC. A student last year very successfully completed a system that uses use the numeric keypad to enter text into Windows applications in Java using the Swing libraries I imagine something similar either in Java or C# would be appropriate. The work would use Bluetooth so that a phone could be used to enter text directly into PC applications.

__Ethical Decision Support Environment__ Overview: Over the next few years I want to construct a prototype decisison support environment. The focus of this will be on supporting decision making in a computer ethics environment. Initial requirements include a variety of diagrammatic and textual recording techniques, such as decision trees, obligations relations diagrams and decision table generators, although there will also be room for investigation into knowledge based systems. The tools will need good visual and algorithmic programming skills as well as an interest in the social aspects of computing.

Prof Jessie Kennedy
__Information Visualisation Ontology__ Outline: Over the past 10 years the Information Visualisation group within the School of Computing have been developing information visualisation tools to allow users to interactively explore their data. As a result we have several different tools. However these tools have been developed by different people with different objectives and as a result it is not straightforward to combine components developed in one project with those in another. There is therefore scope for students to assist us in designing a model for reuse of information visualisation components. All of the tools developed in the group use Java and Swing. This project will give the students an opportunity to learn about the Java Swing in depth and to investigate different modelling approaches including Semantic Web technologies. The first stage in developing a reusable set of components is to understand how the Java Swing library is modelled and to try to capture its design. We would like to use Semantic Web technologies for this purpose, in particular the language OWL. Students would need to familiarise themselves with OWL and learn to use the OWL editors for trying to describe the structure of the Swing library and the relationships between the components in the library. The Information Visualisation group will hold a project afternoon in C51 where the team can show students the type of tools we work on and explore possible projects. Interested students should contact J Kennedy by email ASAP to receive information about the IV demo afternoon.

__Reuse of visualisation components Creator: Prof. J Kennedy/ Dr M Graham__ Over the past 10 years the Information Visualisation group within the School of Computing have been developing information visualisation tools to allow users to interactively explore their data. As a result we have several different tools. However these tools have been developed by different people with different objectives and as a result it is not straightforward to combine components developed in one project with those in another. There is therefore scope for students to assist us in taking the existing visualisation tools and redesigning them to allow them to become reusable. All of the tools developed in the group use Java and Swing. This project will give the students an opportunity to learn about Java and Swing in depth and to learn about how to make code reusable. Depending on the interest of the student the possibility is there to either develop a new visualisation tool from the components developed or simply to concentrate on creating reusable components. The Information Visualisation group will hold a project afternoon in C51 where the team can show students the type of tools we work on and explore possible projects.

__Web Visualization__ Web Analytics is the support for visual data analytics on the web. There are several visualization tools which we have developed over the years for which we would like a web version for use on our own web site and for developing for commercial purposes. There are several specific visualizations that could be developed for different types of data and purposes with emphasis on different visualization skills form graphic design and aesthetics to software engineering and algorithm development. The web based visualizations will be built using Javascript/d3/SVG. Please contact Jessie C53 or Martin C51 for more information.

Prof Jon Kerridge
__Create an App on tablet or mobile device to test boys for red green colour blindness__ As a result of collecting data associated with testing children for dyslexia it has become apparent that there is a need for a simple app that will allow teachers to quickly test boys for red-green colour blindness. This has to be undertaken with 5 year-old boys and should be simple to administer and fun for the child. Red-green colour blindness only affects boys and is known to affect about 6% boys to some extent.( see http://www.color-blindness.com/deuteranopia-red-green-color-blindness/ )

__Analysis of Patterns from Dyslexia Experiments__ Currently we use a statistical method to analyse data collected as part of the dyslexia screening we are undertaking. The actual patterns drawn contain much more information. This project would seek to use pattern classifiers to extract more richer information from the patterns.

__Mobile processes on the school's 40-node machine__ Overview: We have built a system that allows a network of processes to run on the Beowulf. Each node runs a single process that loads the work to be done. The system requires the further construction of a flexible management system to automatically distribute the workload. This project is for someone who likes programming in Java and is interested in parallel processing. It builds upon a mobile process package we have built here at Napier.

__Running programs on the 40 node School multi-processor__ Overview: The school has a large Beowolf system which is a collection of PCs on their own high performance communications infrastructure. The Beowolf can be accessed from the Napier network, which is achieved by a bridge process between the two systems so that we can tansfer messages from the Napier network to the private Beowolf network. One machine is connected to both networks. This bridge process needs to be made dynamic so that we can deal with multiple users running programs on the Beowulf from their office PC

Alistair Lawson
... updates for Jan 2015 coming soon

Dr Taoxin Peng
__An investigation of Data Cleaning methods and techniques__ Applicable Programmes: Software Engineering, Computing, Internet Computing OUTLINE : Data in databases is unlikely to be 100% correct. Dirty data, such as duplicates is popular. There are algorithms/methods/approaches dealing with such problems. Given a type of dirty data, such as duplicates, algorithms (methods/approaches) might perform differently. This project is to investigate such algorithms/methods/approaches and evaluate some of them by using a developed prototype. DELIVERABLES : • A technical investigation into current methods and techniques • Implementing a couple of reviewed methods/algorithms • Test, evaluate the implemented methods. SKILLSETS : C#/Java, Oracle/MySQL

Dr Malcolm Rutter
__The use of a thesaurus to augment folksonomy-based indexing__ Style: Research / Requirements Gathering / Build / Evaluate / Lessons Learned Outline: There is a need to be able to archive, catalogue and retrieve multimedia assets, such as video and photographs. In a larger company, a huge bank of assets can soon become unmanageable. These items are not easy to automatically catalogue and search in the way that Google handles web pages, because it is difficult for a machine to describe a photograph. Many systems use ad-hoc user-generated indexing terms (e.g. Flickr). These have the disadvantage that there are many alternative words which might be selected to describe the same thing. This project explores the possibility of using a thesaurus to tie up groups of words which have the same meaning.

__Advice for charity web sites__ Style: Research + exemplar web site Outline: Many charities rely on volunteer help when setting up their own web sites. There is no guarantee that the volunteers will have deep expertise in web design. The problem is exacerbated by the fact that many charities are for disabilities and these special needs must be taken into account by the non-specialist designers. Another serious problem is that of maintenance and content management - the site must live on long after the volunteers have moved on. This project will be distinguished by a deep literature search, culminating in a report on best practice. This will then be disseminated, via an exemplar web site, which explains best practice both in words and by example on the site. This will provide an easily accessed web-based resource for those seeking to create such a site.

__A web-based customer support helpdesk__ Style: Research / Requirements Gathering / Build / Evaluate / Lessons Learned Outline: Some features of a helpdesk could be static - FAQ, for example. Other problems may require the booking of a call and subsequent follow-up. Communication with a helpdesk typically happens in real time (as in telephone contact), or asynchronously (as in email contact). The reception, handling and monitoring of call administration will require time sensitive software. With a web-based system there will also be a need to protect it from abuse.

__A teaching package for JavaScript DOM__ Outline: There is a need for a package which teaches the JavaScript Document Object Model. This is a way for writers of JavaScript web pages to read, access and change elements within files, usually without having to refresh the page. The aim is to produce a one hour tutorial which will be used as part of the teaching. Evaluation is always tricky. It makes the difference between an ordinary and a special project. In this case, one evaluation technique would be to try it out on students, note their response and use this either as a way of fixing the initial bugs or to give a balanced appraisal of the whole package.

__A light Content Management system for individual module delivery__ Style: Research / Requirements Gathering / Build / Evaluate / Lessons Learned Outline: Large module delivery systems are often fragile and difficult to administer. They are at the mercy of the network on which they operate. They are also prone to the exclusion of legitimate students. This project is to develop a small delivery system for a school or college, which is flexible enough to offer some of the advantages of a large system. It is hoped that the result would be suitable for running on a professionally run ISP.

__A Content Management System for a Society Website__ Style: Research / Requirements Gathering / Build / Evaluate / Lessons Learned Outline: Most readers of this document will belong to at least one society outside of their work discipline, in order to maintain their equilibrium. While a website is an asset, and even a status symbol for a society, it can also be a burden. A website must change and live if it is not to fall into disuse. It is possible that the society was lucky enough to have a member with the technical skill to set up the site. However, it is likely that the person providing content on a weekly basis is not technically oriented, nor should they need to be. There is therefore a need, a wide need, for a web delivery system simple enough for ordinary people to use.

Sally Smith
__Measuring performance in mobile apps__ Outline: With 4G around the corner is performance going to continue to be an issue for mobile apps? If so how do you measure the performance of your application the how do you speed it up? This project will explore the options available and develop profiling tools to support performance testing of mobile apps. A student undertaking this project should already be reasonably competent at Java.

__Developing Mobile Applications__ Applicable Programmes : Software Engineering and Computing Outline: This project will include a review of recent mobile platforms (Android, Windows, iPhone), look at their app markets then specify and develop an application – on two or more platforms and conduct an evaluation. Programming experience essential, one of Java/ Objective C/ C# preferable.

**Neil Urquhart**

 * Process re-engineering for the Scottish Energy Centre**

The Scottish Energy Centre (based within Napier) have a process for estimating the energy consumption of buildings, currently this is based upon multiple spreadhseets with VBA marcos. This project involves analysing the existing work flow and specifying a single piece of software that can perform the estimation calculations. This is an excellent case study working on a deliverable that will be used by an external client.


 * Measuring the carbon footprint of computing**

This project seeks to build a windows client that will monitor the activites on a machine and attempt to calculate the carbon footprint of the user. It will need to monitor the following: Stats will be compiled and the environmental impact assessed using services such as AMEE (www.amee.com).
 * CPU hours
 * Existing power saving methods
 * Printer usage
 * Web usage

Skills/attributes
 * .NET development
 * Web services
 * An interest in enviornmental issues


 * A mobile app for carbon footprinting**

This project seeks to build a mobile app (Android or i-Phone) that will allow use GPS to track the users travel activities. The user will note down the modes of transport used and combined with GPS data and AMEE (www.amee.com) the carbon footprint will be calculated.

Skills/Attributes
 * Mobile developement
 * Web servives
 * An interest in enviornmental issues
 * GPS/mapping

Dr Xiaodong Liu

 * Title: An architecture specification language for service-oriented systems **

Applicable Programmes: BEng Software Engineering, BEng Computing, BEng Games Engineering, BSc Computing

Style: research plus prototype development

Outline:

Service-Oriented Architecture (SOA) offers a distributed computing model in which applications from different providers are used, composed and coordinated as services in a loosely-coupled manner. It represents a new trend and a popular computing model. Web services are currently the major means to implement SOA.

ADL (Architecture Specification Language) is a popular technique to specify the architectures of software systems. ADL helps to make the high-level design clear and easy to understand.

In this project you will develop an ADL which is specially suitable for the specification of the architecture of Web Services based systems. You will then apply your ADL to the development of a small service-oriented system.


 * Title: A new testing approach to Aspect-Oriented Software Systems **

Creator: Xiaodong Liu Room: C55

Applicable Programmes: BEng Software Engineering, BEng Computing, BSc Computing, BEng Games Engineering

Style: research plus prototype development

Outline:

Aspect-Oriented Software Architecture (AOSA) is an emerging approach to software development that is intended to address the "cross-cutting concerns" problem and make software easier to maintain and reuse. AOSA is based around a new type of abstraction called an aspect. Aspects are used alongside other abstractions such as objects and methods. They encapsulate functionality that cross-cuts and co-exist with other functionality that is included in the system. It provides an auxiliary architecture with some other architecture types.

However, the problem of deriving tests for aspect-oriented software has been a big barrier to the adoption of AOSA, due to the following difficulties:
 * How should aspects be specified so that tests can be derived?
 * How can aspects be tested independently of the base system?
 * How can aspect interference be tested?
 * How can tests be designed so that all join points are executed and appropriate aspect tests applied?

In this project you will develop a new testing approach to solve (some) of the above problems. The approach should be effective to the testing of aspect-oriented software, e.g., having good testing coverage including both traditional system components and aspects, easy to use and less effort, etc. Use your talent here. You will later apply your approach to a couple of sample software systems, to verify and evaluate your approach.


 * Title: Service-Oriented Architecture for real-time software systems **

<span style="font-family: Arial,sans-serif;">Creator: Xiaodong Liu Room: C55

<span style="font-family: Arial,sans-serif;">Applicable Programmes: BEng Software Engineering, BEng Computing, BEng Games Engineering, BSc Computing

<span style="font-family: Arial,sans-serif;">Style: research plus prototype development

<span style="font-family: Arial,sans-serif;">Outline:

<span style="font-family: Arial,sans-serif;">Service-oriented development has been reckoned as a key technology in achieving efficient software development. i.e., saving time and cost in development. Service-oriented architecture (SOA) has been used in developing many types of software systems, mostly enterprise computing systems. Recently, people have been trying to expand service-oriented architecture to real-time software systems, which have quite some unique challenging features to address, e.g., deadline and restricted resources.

<span style="font-family: Arial,sans-serif;">In this project you will investigate the current state of the art of the above areas, and then develop a new architecture model for the development of service-oriented real-time software systems, covering how to find appropriate service protocols and how to select and integrate services in a real-time environment.


 * <span style="font-family: Arial,sans-serif;">Title: Migrating software services to a cloud **

<span style="font-family: Arial,sans-serif;">Creator: Xiaodong Liu Room: C55

<span style="font-family: Arial,sans-serif;">Applicable Programmes: BEng Software Engineering, BEng Computing, BEng Games Engineering, BSc Computing

<span style="font-family: Arial,sans-serif;">Style: research plus prototype development

<span style="font-family: Arial,sans-serif;">Outline:

<span style="font-family: Arial,sans-serif;">Service-Oriented Architecture (SOA) offers a distributed computing model in which applications from different providers are used, composed and coordinated as services in a loosely-coupled manner. It represents a new trend and a popular computing model.

<span style="font-family: Arial,sans-serif;">Clouds represent a new delivery model of software services, which could be greener and more economic.

<span style="font-family: Arial,sans-serif;">In this project you will explore the factors that affect the decision making of service providers to move their services into various clouds, e.g., public cloud, private clouds and community clouds, including both economic and technical factors. You will propose a guidance model for such decision and try it in a case study.

Idea 1:Discourse analysis of social media conversations (eg Facebook)
This project would involve creating a reusable tool for extracting data on conversations on Facebook (eg in a public group) and then analysing number and range of participants and at content level for for themes, sentiment etc.

This would involve use of natural language toolkits and possibly social network analysis approaches to understanding the dialogs.

Idea 2: Combining social media data and social network analysis (SNA) to understand a community
This is an idea from the Information Systems page that could lead to some interesting (but fairly straightforward) coding solutions which could generate data which would need further analysis and interpretation (and visualisation?). The project would explore different aspects of how SNA can be used for understanding the existing and potential relationships relationships between the individuals and communities.

An example area of application: Edinburgh has several IS-related communities (in the public and private sectors) which are active on social media such as Twitter. What can be found out about them? For example, the project could:
 * Explore how are relationships on twitter or Facebook reflected in 'real world' work and business?
 * Develop or adapt data-mining, analysis and visualisation tools to explore this area.
 * Explore the issues around identity and privacy expectations that arise for this public online interaction.

**Dr Elias Ekonomou**
ENU runs timetable service where members of staff can see timetables for modules, rooms, persons etc. The current service is good but there is no provision for using it through a mobile device. In this project, the student will:
 * A mobile/tablet wrapper for Staff Timetables**
 * Investigate how this service can be improved, assuming that the university cannot spent any additional resources (staff time/money) for helping the project or changing anything to the current service
 * Design and implement a service that can improve on this problem, it may be a simple parser (of the current service) and then converter to a more flexible one or may also have advanced features like cacheing locally to the mobile browser etc
 * Design a usable mobile/tablet interface

HTML tags (e.g. ) are relatively large. Could they be translated to JSON in order to make them smaller? This should come with an associated JavaScript/jQuery library that handles the conversion back to HTML tags at the client side. Ideally, the project should:
 * HTML to JSON**
 * Investigate for any existing solutions
 * Define a model for converting HTML tags and attribute names to JSON objects
 * Design an server-side program that translates from HTML to the JSON objects
 * Design and implement a JS/jQuery API to consume the server output, convert it back to HTML and render it on the client side
 * Evaluate performance differences in terms of resource utilisation (bandwidth, processing power, battery etc)

=**Dr Simon Wells**=
 * 1) Natural Language Argument Analysis Projects: Build small dataset, analyse, draw conclusions for a given domain
 * 2) Applications of Machine Learning techniques to argument identification & extraction from natural language (**challenging**)
 * 3) Computing fast, accurate, and scalable abstract argumentation semantics (**challenging**)
 * 4) Enhance existing argumentation research software developed at Napier, either for Web, Desktop, or Mobile (see the projects tab at []), particularly:
 * 5) Take the existing Monkeypuzzle tool & use it as a basic to explore visualisation techniques for argumentation datasets
 * 6) Build Skype bots that argue constructively with people (or similar for other social media sites that have APIs)
 * 7) Build an argument-based online learning environment to help students explore contentious real-world topics
 * 8) Investigate novel methods to visualise and navigate argument or dialogue structure, for example:
 * 9) Investigate development of a gesture based language for navigating structured argument data on mobile devices using multi-touch
 * 10) Building multiagent simulations of large-scale agent-agent argumentative communication, for example, building and exploring models for particular behaviours, such as lying, simulating dialogue strategies, or investigating particular interactions, such as interrogation dialogues
 * 11) Visualing argumentative dialog using flowmaps
 * 12) Investigate the application of vector based models to automated argument analysis
 * 13) Software Tool to map analysed arguments to argumentation schemes
 * 14) Prototype mobile apps to support voluntary behaviour change, for example, helping people to travel more sustainably or eat more healthily
 * 15) Investigate use of augmented reality to experience information, particularly arguments & contentious debate, in situ.
 * 16) Argument & dialogue generation for explainable & scrutable decisions made by automated, intelligent computing systems.

Page