Mapping the Indoor Environment Using Radio Angle-of-Arrival
Dr Kyle Jamieson & Dr Niloy Mitra
Ongoing research in indoor wireless localization is showing thatprocessing angle-of-arrival information---the physical angles at which a wireless signal arrives---from WiFi access points can achieve very fine-grained accuracy. This project will use radio angle-of-arrival information to map geometric locations of objects and walls in the indoor environment.
Using an eight-antenna experimental mobile 802.11 WiFi radio platform, we will measure the ambient radio signals in our building as they bounce off walls and other objects. Then we will apply novel search algorithms to deduce where walls are, using Markov chain Monte-Carlo and ray-tracing techniques to prune the enormous search space.
Practical Sphere Decoding for High-Throughput, Future Wireless Systems
Dr Kyle Jamieson & Dr Konstantinos Nikitopoulos
Spatial Multiplexing (SM) is an efficient transmission technique thatcan increase the throughput of wireless communication systems when they are equipped with multiple transmit and receive antennas (i.e., MIMO systems). In contrast to single antenna systems, which can transmit only one information stream at a specific frequency band over a specific time period, SM systems can transmit concurrent multiple information streams. At the receiver, each antenna receives the superposition of all transmitted information streams, which are reflected off walls and nearby objects. Then, under certain conditions, the transmitted information streams can be recovered by using cutting-edge detection/decoding techniques.
Several approaches of different complexity and performance have been proposed, however, the well-known sphere decoder (SD) lies at the core of all known methods able to maximize throughput. SD is a very promising technique able to provide the optimal solution for (traditionally NP-hard) multidimensional optimization problems, by transforming them into equivalent tree search problems. Still, the high complexity of SD methods makes their implementation in real systems impractical when the system uses large numbers of antennas and a very high transmission rate. Current SD-based systems are, therefore, still far from providing the performance gains predicted by theory.
The purpose of this internship is to investigate advanced approaches to efficiently traverse and narrow the corresponding SD tree search without compromising the expected SD performance. Such methods will reduce the complexity of the SD-based decoding approaches and will bring us closer to the pragmatic wireless communication able to deliver the throughputs predicted in theory.
Practical Rateless Codes For High-Throughput Multi-Antenna Wireless
Dr Kyle Jamieson & Dr Konstantinos Nikitopoulos
One of the most promising ways to increase the capacity (i.e., theachievable throughput) of a wireless communication system is to equip both transmitters and receivers with multiple antennas (i.e., MIMO systems). In contrast to single antenna systems, which can transmit only one information stream at a specific frequency band over a specific time period, MIMO systems can increase capacity by concurrently transmitting multiple information streams. However, achieving the available capacity (i.e., achieving the maximum possible throughput) in practical systems, is not a trivial task. In particular, if for any reason the transmitted information cannot be correctly decoded, retransmissions of a large amount of information take place, resulting in a significant throughput reduction. Such large retransmissions are not always necessary, since under conditions, only a small amount of additional information can be enough to allow correct decoding.
In order to avoid such an unnecessary throughput reduction, a new family of sophisticated codes has been recently proposed called Rateless Codes. These codes allow the decoder to combine recently received (coded) information with previously received one, until the transmitted information is successfully decoded. Therefore, rateless systems transmit redundant information (and therefore reduce the throughput) until the transmitted information is correctly decoded. This is achieved without any a-priori knowledge on the transmission conditions. Therefore, rateless codes hold a great potential for capacity achieving performance, even if the transmission channel (therefore the capacity) changes dynamically (i.e. mobile environments). However, recently proposed, cutting-edge rateless codes (e.g., ³Spinal Codes²) apply to single antenna systems only, and their high complexity is prohibitive for practical wireless networks.
The purpose of this project is to investigate practical rateless codes which can achieve the increased capacity of a multi-antenna system. Such codes will maximize the throughput of a MIMO wireless network and will bring us closer to high-throughput, pragmatic wireless communication systems, able to provide the performance predicted in theory.
Web interface to illustrate search results
To develop a Web interface to illustrate search results (from Google, Bing etc) in an interactive and intelligent way so that users can easily find what they want. Strong Java programming skills are required.
Web-based service to transform the business of property conveyancing
To develop a Web-based service to transform the business of property conveyancing (currently based on email and post communications) into an online process. This can be a group project. Strong programming skills for Web applications are required.
BOSAM network visualisation technique to illustrate network dynamic processes
To use the BOSAM network visualisation technique to illustrate network dynamic processes, e.g. epidemic spreading and traffic congestion, as colourful pictures and videos. Strong programming skills (C++ and like) are required.
Building a hash database for source files stored in git
The best approach to detect duplicated code is to detect it as soon asit is created and stored in a version control system. This project will have to develop a software that retrieves all files from a git repository, separates the files into blocks of source code, computes a hash from the block, and stores the hash in a database. The second part is a tool that analyses a fresh piece of software by again computing the hashes for it. The hashes are then looked up in the database and the findings are reported. The second part can then be used to check if and where a piece of software already exists in the project as soon as a new piece of software will be committed to the version control system.
Detection of cut-copy-paste changes in a file
Traditional change detection as it can be found in diff for example canonly detect additions and deletions. However, typical operations during editing a file also involves cut, copy, and paste operations. This project will develop a tool that finds the pieces of text that have been added to a file, deleted from a file, or that have been cut or copied and pasted elsewhere in the file. This can be used for text files or source code. In the end, the developed tool will be made available as an open source tool.
Discovering inductive datatype definitions from low-level code
Nikos Gorogiannis & Dr James Brotherston
Data structures such as lists, trees etc, are inductively-defined datatypes that are pervasive in software. System code withoutannotations (such as contracts) can be challenging to analyse and verify, partly because the exact shape of the data structures it uses is unknown beforehand. Recent theoretical advances open up the way for automatic techniques that, by analysing bare code, attempt to discover the definitions of data structures such that the code executes correctly. The purpose of the internship project is to extend an existing tool for the discovery of inductive preconditions with methods for detecting when an inductive definition is consistent/optimal (e.g., with most inductive cases being satisfiable), and with methods for the simplification of inductive definitions (i.e., the production of equivalent and smaller definitions). Familiarity with OCaml and logic/verification is necessary.
Extending a Theorem Prover for Separation Logic
Computer programs often require a tight interaction between arithmetic, arrays and manipulation of dynamic memory. In order to programatically analyse and verify such programs, we have developed an automated theorem prover for separation logic, able to simultaneously reason about numbers and dynamically allocated linked lists. The purpose of this project is to extend such a tool with reasoning capabilities for more general kinds of data structures (e.g., trees, doubly linked lists and nested structures) in a sound and complete manner (i.e., able to provide proofs and counterexamples). Experience in logic and functional programming is needed, additional experience in theorem proving systems is desired but not essential.
Simulating financial market instability Programming Language: Miranda
We have developed an agent- based simulator for financial marketinstability. The simulator is written in Miranda. We have already successfully demonstrated how this new approach can explain several puzzling types of instability, but we need to do more work - extend the simulator, run more experiments, etc. The primary requirements for the intern are: programming skill, enthusiasm, willingness to work hard, an interest in financial markets and problem-solving skills.
3D Modelling for Simulating Emergency Response Simulation
When emergencies arise, a rapid informed response is required to minimise the potential for damage or loss of life. One means of creating an informed response is to predict how an emergency will evolve over time and use this prediction in decision making. The goal of this project is to explore the impact that different 3D modelling techniques have on the performance of simulation systems used to develop the movement of crowds and fires in buildings. The project will be conducted in collaboration with the Fire Safety Engineering Group at the University of Greenwich.
The fire safety simulation systems require models of an environment to identify the locations of building features (such as walls or doors) or potential obstacles. Traditionally, these models have been created by hand using floor plans and manual measurements. However, there has been a great increase in the availability of new types of measurement systems including precision 3D laser scanners and cheap time-of-flight cameras. Different systems have different measurement capabilities.
The goal of this project would be to explore whether there is a measurable impact on the performance of the simulation systems using different modelling systems. In particular, several models of the same environment will be constructed using different techniques (such as dense 3D laser scanners, mobile robots equipped with Kinects). The performance of each environment will be tested with the simulation system.
The potential outcome of this project will be to define the type of sensing systems and the level of accuracy required to model an environment to support the prediction of how fires can spread and how crowds can react.
Simulation Model Developer
(2 positions for pair programming)
The term Compliance Budget represents the limited capacity that employees have to comply with growing information security policies and procedures. Currently an exploratory simulation game is being developed to illustrate this concept to its prospective users – security manager trainees.
It is a simulation aiming to model behaviour of employees when security restrictions conflict with their everyday work practice. Users need to be able to design a security policy and see how the behaviour of company employees changes according to the simulation model. The game will simulate the effects of security policy on user behaviour and the resulting security costs. Trainees need get a chance to experience effects of different security decisions over several iterations.
This summer internship position is for developing the simulation model of the game. The model should be grounded on already collected empirical data and should extrapolate it to new scenarios. Accuracy of the model will be measured based on believability judgement by experts.
Project Benefits for Student:
· Will be provided coaching by experienced researchers and software developers
· Will develop experience with agile software development, test-driven development, rapid prototyping, pair programming
· Will develop experience with FOSS technologies, exact tools will be negotiated at the start of the project. Possible technologies include Java or Python.
Applicant Prerequisites:
· Ability to develop software in a team towards common objectives. The student should be able to demonstrate previous projects, done as a hobby, as university coursework or at a company. They should be able to explain what their contribution was, what they did well and what needed further development.
· Previous experience with software development. Experience with Java, Python or any other high-level general-purpose programming language is recommended.
· Previous experience with or strong interest in simulations development. Experience with Weka, RapidMiner or similar data mining software is recommended.
· Familiarity with optimisation algorithms is recommended. Awareness of the knapsack problem, linear programming and/or structural equations modelling is beneficial
Start Date: ASAP after the exam period
Duration: 8-10 weeks
Contact: Martin Ruskov (m.ruskov@ucl.ac.uk), M. Angela Sasse
Funding: Industry-funded UCL-based work
Web Developer
(2 positions for pair programming)
The term Compliance Budget represents the limited capacity that employees have to comply with growing information security policies and procedures. Currently an exploratory simulation game is being developed to illustrate this concept to its prospective users – security manager trainees.
It is a simulation aiming to model behaviour of employees when security restrictions conflict with their everyday work practice. Users need to be able to design a security policy and see how the behaviour of company employees changes according to the simulation model. The game will simulate the effects of security policy on user behaviour and the resulting security costs. Trainees need get a chance to experience effects of different security decisions over several iterations.
This summer internship position is for developing the website for the simulation game. Users should be able to interact with the simulation and observe the effects of their interaction through the website. The website should allow users to maintain persistent profiles, scores and ranking.
Project Benefits for Student:
· Will be provided coaching by experienced researchers and software developers
· Will develop experience with agile software development, rapid prototyping, pair programming
· Will develop experience with FOSS technologies, exact tools will be negotiated at the start of the project. Possible technologies include HTML5/CSS3/JavaScript, Ruby on Rails, Python or Java, MySQL.
Applicant Prerequisites:
· Ability to develop software in a team towards common objectives. The student should be able to demonstrate previous projects, done as a hobby, as university coursework or at a company. They should be able to explain what their contribution was, what they did well and what needs further development.
· Previous experience with web development. Experience with web development technologies like JavaScript or Ruby on Rails.
· Previous experience with database management, e.g. with MySQL or PostgreSQL is recommended.
Start Date: ASAP after the exam period
Duration: 8-10 weeks
Contact: Martin Ruskov (m.ruskov@ucl.ac.uk), M. Angela Sasse
Funding: Industry-funded UCL-based work












