Waikato University crest

Department of
Computer Science
Tari Rorohiko

Computing and Mathematical Sciences

COMP477, COMP520, COMP591, ENGG482 and ENGG492
Projects offered in 2014

COMP477 | COMP520, ENGG482, ENGG492 | COMP591


COMP477 Projects

Please print out and complete the COMP477 BCMS Project Selection Form PDF to select your COMP477 project for 2014.


JUDY BOWEN

Designing and Prototyping The Front End of a Combined Modelling Tool
Within the formal methods group we have a number of different tools that have been developed over the years to support our research into modelling interactive systems. Recently we have begun re-implementing these tools in the Scala programming language with the aim of integrating them into a single tool. In this project you will design and prototype an appropriate interface for this new integrated tool. This will involve creating prototypes from requirements, user-testing of your designs and refining your prototypes based on the results of these user evaluations.

 

DORIS JUNG

Fine-tuning Alerting Systems Filter
Alerting systems inform the user of information relevant to their information needs. Unlike databases they work with transient data, constantly entering the alerting system to be filtered against users’ information needs that have been registered with the system. The filtering algorithm is controlled by several parameters. These can be hard-coded or set by a user.

This project takes an existing paper prototype for setting these parameters by a user and realizes its implementation. For this implementation the student will take into account results that have been found by the supervisor and Annika Hinze in an evaluation. Ideally it integrates into an existing wider alerting system solution implemented in C#. Other technical solutions may, however, be negotiated.

Digitally Prototyping a Controller for Multiple Medical Infusion Pumps
The Formal Methods group - in collaboration with Waikato Hospital - has modelled a controller for medical infusion pumps. Some of the aims of this controller are to reduce patients’ fear by eliminating beeping of pumps and to enable nurses to monitor all pumps simultaneously. Paper prototypes have been developed along with corresponding formal models of both functional behaviour and the prototypes.

This project will take these existing paper prototypes and realize their implementation. The aim is to create a testable digital prototype. The project will be realized for an iPad or similar device.

 

RYAN KO

Surveying the Realities of Data Security and Privacy Perceptions (co-supervised with Raja Naeem Akram)
What is the threshold of privacy for the common end-user as compared to industry and government users? Are we really concerned with our data? Which group of users are more relaxed about their data privacy? The student will be designing, conducting and analysing a nation-wide survey with an aim to reveal what users are really concerned about.

 

SIMON SPACEY

Characterising Java Programs with OpenPAT
OpenPAT is a program analysis toolkit that works at the assembly level to analyse the internal operation of programs. By working at the assembly level OpenPAT should be able to work with any compilable language. However, there has been very little work using OpenPAT to analyse natively compiled Java programs.

The aim of this project is to get OpenPAT instrumenting Java programs compiled to native code using gcc on Linux. In doing this you will strengthen (and have evidence of) your skills in: the OpenPAT characterisation framework, Unix tools, x86 assembly, gcc and gas compiler options, Python, C/C++ and the innermost workings of natively optimised Java programs.

The project report should provide details of any changes required to the OpenPAT framework and whether these changes can be made in a Universal Patch to keep a single OpenPAT code base. Additionally, you should spend some time analysing Java kernels and real Java programs with OpenPAT and use OpenPAT to prove that gcc compiled Java is really optimised and not just, say, byte codes packaged with an interpreter in an ELF file. If time permits, you may consider the process of using compiled JARs with natively compiled Java and comment on options from a characterisation point of view.


 

COMP520, ENGG482, ENGG492 Projects

Please print out and complete the COMP520 BCMS Honours Project Selection Form PDF to select your COMP520 project for 2014. Some or all of these projects are also suitable for ENGG492/482—please talk to the supervisor to see whether this is the case for any particular project.


RAJA NAEEM AKRAM (Projects co-supervised with Ryan Ko)

Training Cyber Security Concepts with Project RifleRange (Part 2) (also available to SE students in ENGG482 and ENGG492)
RifleRange is codename for a 2-part new project from the Cyber Security Lab, aimed at creating standalone, safe platform containing hands-on exercises around the key preventative concepts commonly covered in cyber security training. The student will be designing the platform containing experiments educating users on the concepts of applied cryptography, infrastructure hardening and access control.

Cloud Security for Personal Data using Tamper/Attack Resistant Smart Personal Device (e.g. smart card, secure element, and UCTD etc.) (also available to SE students in ENGG482 and ENGG492)
Cloud storage of user’s personal data is becoming common place. Although, in certain cases the user cannot control how and where his/her data will be stored in the cloud environment. If the data is stored in an insecure environment or form (unencrypted) – the data can be accessed without user’s consent/knowledge. In such an environment, how user can secure his/her data using smart personal devices with minimal effort. This project aims to develop a novel prototype address this problem.

Disaster Resilient, Secure, and Privacy-Preserving Crowd based Mobile Network (also available to SE students in ENGG482 and ENGG492)
In this work, we will investigate the possibility of turning mobile phones into sensor nodes that can establish a secure and privacy-preserving mobile network similar to the mobile telecom network (may be with limited features – like only SMS communication). Such a network will be completely decentralised and useful in a disaster struck locality where telecommunication networks are damaged. Students will be developing prototypes proving the feasibility of the proposed idea.

Mobile Voting (M-Voting) for Democracies of the Future (also available to SE students in ENGG482 and ENGG492)
An on-demand, secure, privacy-preserving, time-independent and ubiquitous voting scheme in which voters can change their vote at any time they desire. Voters would also have the ability to track their vote and see whether it is being counted without enabling a centralised authority tracing back to the user. Students will be developing prototypes proving the feasibility of the proposed idea.

Simulation and Study of the impact of Replay Attack on the Contactless Smart Cards (also available to SE students in ENGG482 and ENGG492)
With increase in the use of contactless smart cards in banking and access control applications, the replay attack is becoming the most common attack vector to such applications. In this project, we will use the Near Field Communication (NFC) capability of mobile phones to simulate a replay attack on contactless smart cards so that we can understand the impact of the problem.

 

MARK APPERLEY

Task visualization
Personal task management tools (eg Remember the milk) abound. Typically these are implemented as some form of list manager, with various levels of sophistication including sub-lists, due dates, priorities, estimated time and sub-tasks. On the other hand, there are project management tools such as Gantt charts which can represent a set of tasks, and their interrelationships, in a visual form. This project will investigate and evaluate the potential for a visual representation of personal task lists, possibly using a Gantt chart or a similar representation, in conjunction with an existing task manager.

Virtual electric vehicle
The relatively slow rate of uptake of electric cars can be attributed in part (price is of course a major factor) to misunderstandings, misinformation, and an absence of experience with such vehicles. This project will develop a virtual electric vehicle – effectively a game on a mobile phone – which relates an individual’s use of a conventional fossil fuel powered vehicle to the equivalent experience in an electric vehicle. In the ultimate version, the phone will “know” when it is in the user’s conventional car, and will keep track of its travels. It will simulate the battery charging and usage of the virtual electric vehicle, and will report situations such as driving range exceeded or inability to match performance. It will also be able to provide summaries, such as running costs, and for long term users, indicate the need for battery replacement. In this way, it will allow a user to gain some experience of what it would be like to use an electric vehicle in the long term.

Virtual Cocktail Party Participation
The widespread availability and use of Skype and other video conferencing facilities has led to some challenging applications. One of these is the participation in an informal gathering, say a cocktail party, from a distance. Although it is possible to sit a laptop computer on a high stool or bar-height table, the remote participant is stuck in one spot, if often lower than the real party-goers, who have to consciously come to the screen/camera to interact with this person. Several improvements could be achieved through the development of a partystation, which might be based on a small, circular, bar-height table (so acting as a magnet for the local real participants), above which would be placed a set of screen/camera combinations, perhaps three in a triangular prism arrangement, affording the virtual participant 360˚ viewing and visibility. There are also the further possibilities of (i) a steerable camera, or (ii) a mobile terminal, although this latter idea would bring with it a range of problems from a health and safety perspective. The project would involve:

 

JUDY BOWEN

Developing a Plug-in for the ProB Model Checker (also available to SE students in ENGG492)
As part of our project on modelling interactive systems we typically develop Z specifications and use the ProB tool to model-check these specifications. As part of our ongoing work on visualising models and using models as the basis for deriving training materials we need to find ways to extract dynamic information from the Z specification. In this project you will learn how to write a plug-in for the ProB model-checker which will enable us to remotely interact with a model-checking session as a first step to extracting relevant information from specifications.

Generating Event Sequences from Formal Models of Interactive Systems (also available to SE students in ENGG492)
As part of our project on modelling interactive systems we have a tool called PIMed which allows us to create models of a user interface and its interactive possibilities. We are interested in using these models to derive possible sequences of interactions which can them be compared to actual user event sequences as well as optimal use event sequences derived from task models. The project will involve programming a small extension to the PIMed tool to create sequences as well as research into the area of sequence generation from task models and appropriate mechanisms for comparing and visualising the sequences.

Combined Testing Strategies for Interactive Systems (also available to SE students in ENGG492)
Testing is an increasingly important and popular strategy for helping improve the reliability of software systems. This project builds on previous work which allows us to automatically derive tests for interactive systems from models and will consider appropriate testing strategies for implementing functional and UI tests into a single testing approach. You will experiment with several testing tools using existing models and tests to determine which can be best used to meet our requirements.

 

STEVE JONES

WEKA for Mobile
WEKA (http://www.cs.waikato.ac.nz/ml/weka/) provides a Java library of Machine Learning algorithms that can used from other applications. It would be useful to be able to utilise the WEKA library in mobile applications such as those for the Android platform. However, given the limitations of mobile devices, the Java-based library code can be too slow for scenarios where rapid processing is required. This project will investigate the extent to which performance can be improved by porting the WEKA library to C++ and providing a JNI wrapper so that it can be used from Java applications, particularly those running on Android. A rigorous approach to performance analysis and benchmarking will be required. You will need to be proficient in Java and C++.

Eye Tracking on Mobile Devices
Eye tracking systems detect a user's eyes and record where the user is looking at on the screen from moment to moment, saving the data for later analysis. They conventionally work with desktop computers, require specialist hardware and are expensive. This project will investigate the development of an eye tracking system that runs on a mobile device using its built-in camera. It will target the Android platform and most of the implementation will be at the native level utilising the OpenCV library. You will therefore need to be proficient in C++ and have an interest in computer vision/image processing.

Real-Time Recognition of Traffic Signs on a Mobile Device
Automated recognition of traffic signs has a number of applications including driver assistance (eg reminder of the current speed limit) and road maintenance (eg recording which signs are at which locations). It involves processing images captured by a camera in a moving vehicle to locate and identify the signs present in each image. This project will investigate a solution on a standard consumer handheld device such as a smartphone, and focus on interpreting a subset of signs containing a pictogram. It will be implemented on the Android platform so strong Java and C/C++ skill are required, as is an interest in image processing.

 

DORIS JUNG

Fine-tuning alerting systems filter
Alerting systems inform the user of information relevant to their information needs. Unlike databases they work with transient data, constantly entering the alerting system to be filtered against users’ information needs that have been registered with the system. The filtering algorithm is controlled by several parameters. These can be hard-coded or set by a user.

This project takes an existing paper prototype for setting these parameters by a user and realizes its implementation. For this implementation the student will take into account results that have been found by the supervisor and Annika Hinze in an evaluation. Ideally it integrates into an existing wider alerting system solution implemented in C#. Other technical solutions may, however, be negotiated.

The student will undertake an evaluation appropriate to assess the usability of the solution implemented.

Digitally prototyping a controller for multiple medical infusion pumps
The Formal Methods group - in collaboration with Waikato Hospital - has modelled a controller for medical infusion pumps. Some of the aims of this controller are to reduce patients’ fear by eliminating beeping of pumps and to enable nurses to monitor all pumps simultaneously. Paper prototypes have been developed along with corresponding formal models of both functional behaviour and the prototypes.

This project will take these existing paper prototypes and realize their implementation. The aim is to create a testable digital prototype. The project will be realized for an iPad or similar device.

The student will undertake appropriate user studies to assess the usability of the solution implemented.

 

RYAN KO

Training Cyber Security Concepts with Project RifleRange (Part 1) (co-supervised with Raja Naeem Akram) (also available to SE students in ENGG482 and ENGG492)
RifleRange is codename for a new 2-part education project from the Cyber Security Lab. It aims to create standalone, safe platform containing hands-on exercises around the key offensive (e.g. web security, pen testing) and defensive (e.g. intrusion detection) concepts commonly covered in cyber security training. The student will design, develop and implement the platform exercises using current penetration testing tools and key offensive security concepts.

OpenStack Cafe - Secure Booking System for OpenStack Clouds (also available to SE students in ENGG482 and ENGG492)
Cafe is a new feature set proposed to OpenStack, which allows cloud owners to lease and manage resource requests via temporal-based bookings, just like an Internet Cafe's business model. This novel feature is an official open source project led by the Cyber Security Lab, contributing to a new feature to the OpenStack community, with potential worldwide users, e.g. from NeCTAR and CERN.

Discovering and Addressing Vulnerabilities in an OpenStack Cloud Computing Environment (co-supervised with Raja Naeem Akram) (also available to SE students in ENGG482 and ENGG492)
The aim of this project is to improve the security of the OpenStack project through testing the security of our research OpenStack testbed. You will be researching, planning and conducting a series of security testing. Vulnerabilities will be exposed and reported to the global OpenStack community.

Am I Being Spied on my Phone? (co-supervised with Raja Naeem Akram) (also available to SE students in ENGG482 and ENGG492)
Are our phones used to spy on us? This Cyber Security Lab project looks at addressing data privacy and security concerns by smartphone users by creating novel open source tools for mobile devices to inform users about the provenance of their mobile data, intercept the malicious leakages, and report rouge malware into a blacklist.

Developing a de facto Benchmark Data Set for Provenance Research (co-supervised with Alan Tan) (also available to SE students in ENGG482 and ENGG492)
Data provenance research is concerned with the derivation history of data. In the context of current distributed computing paradigms, provenance enables users to achieve awareness and traceability of their data. To formally describe provenance, and to conduct algorithmic experiments on data with respect to provenance, we need an authoritative data set for experimentation and consistency. This project aims to build a novel suite of data sets which empower data provenance research.

 

ROBI MALIK

Extended Finite-state Machines
The formal methods group at Waikato in collaboration with Chalmers University of Technology in Göteborg, Sweden, is developing WATERS, the Waikato Analysis Toolkit for Events in Reactive System. The software includes a user-friendly graphical editor for finite-state automata models and several tools for the analysis of large finite-state systems.

Extended finite-state machines (EFA) are like ordinary automata, but with the addition of variables and assignments to facilitate the modelling of systems with data. Presently, WATERS converts all EFA models to ordinary automata models before it can verify them. However, this conversion is time-consuming and in some cases not even possible. In this project, we will work on new algorithms to analysis EFA models directly without the conversion. Several projects are possible to improve a few existing EFA algorithms or to develop new ones.

Graphical Animation of Discrete Event Systems
In this project, we will extend the WATERS analysis tool to provide better visualisation. While the WATERS simulator can display the current states of automata while they are executing, this animation remains abstract. Another tool, libFAUDES has the ability to display the actual process being controlled. For example, if an elevator is modelled, the libFAUDES animation will graphically display the position of the cabin and the status of the elevator doors. The objective of the project is to link libFAUDES to WATERS. This involves programming of XML file conversions as well as code to link between the Java implementation of WATERS and the C++ implementation of libFAUDES.

 

MIKE MAYO

Differential Evolution on the Cloud
Differential Evolution (DE) is one of the most effective meta-heuristic optimization techniques in existence today. However, in order to scale DE to problems involving hundreds or thousands of dimensions, cloud computing is needed. This project will require a student to first of all investigate different methods of distributing evolutionary algorithms on the cloud, and then implement a cloud-based platform for running large-scale DE optimizations. The system will be evaluated on some of the 1000-dimensional optimization problems used in the CEC2013 Large Scale Optimization Competition.

Time Series Representation using Optimized Perceptually Important Points
Time series (e.g. stock prices, river flow volumes, earthquake frequencies) are used widely in science. They typically contain a large degree of noise. To reduce the amount of data that needs to be stored, we would like to eliminate the noise while simultaneously keeping the key features of the series for further analysis. Perceptually Important Points (PIPs) is an existing method for doing just that. However, the PIPs method currently uses only very simple heuristics for picking the key points on the time series. This project will use evolutionary methods (e.g. a genetic algorithm) to optimize the selection of PIPs, resulting in a better and therefore more useful representation of the time series for scientists.

 

RICHARD NELSON

Delay Tolerant Networking for Wireless Sensor Networks
Delay Tolerant Networking (DTN) is a protocol suite for environments where the round trip delay is too long to allow efficient end to end acknowledgements and retransmissions. Originally developed for inter-planetary communications, there are several available implementations allowing investigation of terrestrial applications. This project would be to investigate its use in wireless sensor networks (WSNs). WSN nodes are generally very limited in terms of electrical power for long range communications. Using DTN the sensor nodes could upload data when a mobile node approaches (e.g. a farm vehicle or UAV). This would require an implementation using very low power micro processors and radios. It is envisaged that this would be a practical project using Arduino or similar platforms for development.

Improved Active Network Testing
The WAND group has been redeveloping its AMP network measurement system. This project would be to look at new techniques that could be incorporated in AMP.

 

DAVE NICHOLS

Automated Measures of Research Openness
Most research is published in journals and conferences that require subscriptions to read them. Open access is a movement to promote research findings being freely available online. This project will develop methods for estimating how much of a set of research is actually available on the web. It is likely to involve using web search APIs and document analysis technologies.

Linking Wikipedia and OpenStreetMap (co-supervised with Sam Sarjant)
OpenStreetMap is a volunteer-built open alternative to mapping services such as Google Maps: it is Wikipedia for maps. This project will investigate the relationship between these two open services: are they consistent? Can information be transferred from one to the other to improve accuracy? Can manual editing operations be enhanced with information from the other service? This project is likely to involve Java programming and working with large database dumps/web APIs.

 

SAM SARJANT

Discovering Disjointness (co-supervised with Catherine Legg)
Two collections are considered to be 'disjoint' if there is no possible way a thing can be an instance of either collection. For example, something cannot be 'alive' and 'dead' at the same time (zombies aren't really alive). Or something cannot be a 'person' and an 'activity' at the same time. How does one define this information and how can we teach AI to recognise it?

This project is about automatically learning disjointness information from the web and incorporating it into an existing ontology (hierarchically-structured collection of information on all things). This ontology (part of an ongoing research project) already contains a large amount of disjointness information, but this information is messy and unfocused. This research will involve consolidating existing disjointness knowledge, then developing new methods for automatically learning new disjointness knowledge using web resources (e.g. Google, Wikipedia, etc.).

Students will need a strong formal-logic background, along with excellent programming skills (Java). Experience with philosophy, AI and/or formal ontologies would also be an advantage.

 

SIMON SPACEY

A Modern Cache Analysis
OpenPAT is a program characterisation framework that analyses the internal operation of any compilable program. Since 2006, OpenPAT has had the ability to trace data flows in programs which has led to unique tools to evaluate ILP, data dependencies and cache interactions.

The aim of this project is to re-evaluate the classic Hennessy and Patterson cache performance figures for the latest software benchmarks. The project aim can be delivered through the following steps: 1, familiarise your self with OpenPAT and the previous instruction level tools, 2, modify the OpenPAT cache_flow tool to simulate different cache parameters and 3, measure the performance of different caches on appropriate benchmarks -- all with appropriate planning, design and documentation of course. In doing this you will strengthen (and have evidence of) your skills in: the OpenPAT toolkit, software benchmarks and the innermost workings of modern architectures.

The report should explain any changes required to the OpenPAT framework to support the tool and ideally be accompanied by a Technical or Conference paper. The project requires a student who has taken COMP311.

Retargeting OpenPAT for C#, Perl, Javascript, Python and Ruby Programs
OpenPAT is a program characterisation framework that analyses the internal operation of any compilable program. OpenPAT has always been able to analyse any program that compiles to native assembly, but Version 3 of OpenPAT added unique features that extend the concept of "any compilable program" to include C#, Java, Perl, Javascript, Python and Ruby that compile to abstract virtual machine assembly byte codes rather than native assembly.

The aim of this project is to get OpenPAT instrumenting programs compiled to bytecodes that run on a virtual machine. You should select one of the bytecode languages above, identify a suitable runtime engine (e.g. .NET CLR or potentially Parrot for the others) and use the unique Retargetabilty features of OpenPAT version 3 to add features for that language to the OpenPAT toolkit. In doing this you will strengthen (and have evidence of) your skills in: the OpenPAT toolkit, Unix tools, software benchmarks and the innermost workings of the specific bytecode language selected and its associated tool chain. Depending on your approach you may also have demonstrated skills in appropriate bytecode dissassemblers (e.g. the MSIL and PACT Dissassemblers for .NET and Parrot) and cross language interaction technologies such as PInvoke and NCI.

The report should list any dependencies and assumptions required for the retargeting, explain any changes required to the OpenPAT framework and whether these changes can be applied as a universal patch and detail the retargeting approach and architecture specific changes made. Additionally, you should spend some time analysing test kernels with OpenPAT tools to prove that your retargeting is sound. If time permits, you can also compare OpenPAT tool results against any language specific alternates and comment on the advantages/disadvantages, limits and constraints of the different performance analysis toolkits.

Retargeting the OpenPAT Performance Analysis Toolkit for Java Programs
OpenPAT is a program characterisation framework that analyses the internal operation of any compilable program. OpenPAT has always been able to analyse any program that compiles to native assembly, but Version 3 of OpenPAT added unique features that extend the concept of "any compilable program" to include C#, Java, Perl, Javascript, Python and Ruby that compile to abstract virtual machine assembly byte codes rather than native assembly.

The aim of this project is to get OpenPAT instrumenting programs compiled to bytecodes that run on a Java virtual machine. The key research challenges that need to be addressed to achieve this aim include: generating regularised decompiled Java byte codes, creating Java based OpenPAT measurement stubs, ensuring the Java stubs do not alter the original program execution correctness, managing the transition from the Java runtime to the OpenPAT C runtime and tools with JNI and, if time permits, monitoring data dependencies through the Java Stack for OpenPAT data analysis tools. In addressing the challenges you will strengthen (and have evidence of) your skills in: the OpenPAT toolkit, Unix tools, software benchmarks and the innermost workings of the Java bytecode language and its associated tool chain.

The report should list any dependencies and assumptions required for the retargeting, explain any changes required to the OpenPAT framework and whether these changes can be applied as a universal patch and detail the retargeting approach and architecture specific changes made. Additionally, you should spend some time analysing test kernels with OpenPAT tools to prove that your retargeting is sound. If time permits, you can also compare OpenPAT tool results against any language specific alternates and comment on the advantages/disadvantages, limits and constraints of the different performance analysis toolkits.

Characterising Commercial Programs with Open Source Software
OpenPAT is a program characterisation framework that works at the assembly level to analyse the internal operation of programs written in compilable languages. Version 3 of OpenPAT has unique Retargetabilty features that allow the same instrumentation code base and tools to be used to analyse programs on any OS, Compiler or CPU.

The aim of this project is to use the unique Retargetabilty features of OpenPAT to retarget OpenPAT for the OSX and Windows OSs. There are three stages to this project depending on your progress: 1, get OpenPAT working on OSX with gcc, 2, get OpenPAT working on Windows with gcc in the Cygwin environment and 3, get OpenPAT working with Microsoft's own compiler in the standard Windows environment. In doing this you will strengthen (and have evidence of) your skills in: the OpenPAT toolkit, Unix tools, x86 assembly, gcc and gas compiler options, Python, C/C++, software benchmarks, Cygwin and the inner workings of Linux, OSX and Windows executables. Depending on your approach/progress you may also have demonstrated skills in commercial software written in Objective C, C++, MFC, ATL and/or WPF as well as alternate characterisation frameworks such as vTune.

The report should list any dependencies and assumptions required for the environments, explain any changes required to the OpenPAT framework and whether these changes can be applied as a universal patch and detail the retargeting approach and architecture specific changes made. Additionally you should prove the OS migrations were sound by providing OpenPAT characterisation results for the same benchmarks on the systems commenting on any differences. If time permits, you can also compare OpenPAT tool results against OSX and Windows alternates and comment on the advantages/disadvantages, limits and constraints of the different frameworks.

Accelerating Programs Using New Hardware Devices
OpenPAT is a program characterisation framework that works at the assembly level to analyse programs written in compilable languages. OpenPAT has unique tools that analyse the internal control and data flows of programs which allow the estimation of program performance on different computational architectures.

The aim of this project is to create a OpenPAT tool that can provide characterisation figures to estimate the performance of standard software code sections if they were executed on a GPU. To achieve this goal you are going to have to: 1, understand the inner workings of GPUs to abstract out critical hardware and software characteristics, 2, develop an execution timing equation similar to the ones proposed in the Write-Only Architecture paper for ILP, 3, create a OpenPAT tool to measure the software characteristics required to generate the timing estimates. In doing this you will strengthen (and have evidence of) your skills in: the OpenPAT characterisation framework, Unix tools, x86 assembly, gcc and gas compiler options, Python, C/C++, software benchmarks and the inner workings of heterogeneous architectures, GPUs and, depending on your approach/progress, GPU programming languages such as CUDA and OpenGL.

The report should detail GPU chips and communication models from different vendors, provide abstract characteristics and models and explain the OpenPAT tool and any framework changes required to gather the software information required for the model. Additionally you should provide GPU timing measurements for MiBench benchmarks and compare them against the FPU timings provided in previous work (max, averages and mins will be sufficient) explaining any obvious anomalies and trends. If time permits, you could compare your performance estimate results against actual implementations for commercial GPUs.

Heterogeneous Performance Analysis
OpenPAT is a program characterisation framework that analyses the internal operation of any compilable program. In 2011, OpenPAT introduced unique retargeting abilities that allowed the same analysis tools to be used with programs running on any computational architecture.

The aim of this project is to get OpenPAT instrumenting programs compiled for a GPU. The key research challenges that need to be addressed include: generating GPU assembly, creating heterogeneous GPU/CPU OpenPAT measurement stubs, ensuring the stubs do not alter the original program execution correctness and managing the transition from the GPU runtime to the OpenPAT C runtime and tools. In addressing the challenges you will strengthen (and have evidence of) your skills in: theOpenPAT toolkit, Unix tools, software benchmarks and the innermost workings of GPUs and their associated compiler chains.

The report should list any dependencies and assumptions required for the retargeting, explain any changes required to the OpenPAT framework and ideally be accompanied by a Technical or Conference paper. The project requires a student who has a high grade in COMP200 and is already familiar with OpenCL, C and OpenPAT.

 

IAN WITTEN

Learning facts from the Web
This project will build a system that learns facts and relations from text on the Web. The raw input is a few seed facts plus a ginormous existing collection of one billion text fragments. From the fact that, say, London, Hamilton, New York, and Frankfurt are all cities, text fragments that mention them will be analysed to locate contexts in which these words occur and identify common patterns—from which other potential cities can be inferred. This will overgeneralise, and one key to solving this problem is to find a way in which unlabelled data can be used to help bootstrap the process. The inspirational Never-Ending Language Learning project (Google "never ending language learning webinar" to learn about it) provides some useful ideas.

The project has strong links with our Massive Ontology research project, and some with our FLAX language learning project, and will be co-supervised by Sam Sarjant and Shaoqun Wu. You will learn a lot about large-scale language processing, machine learning, and artificial intelligence; and will need to be expert in Java programming.

 

SHAOQUN WU

Learning Chinese with FLAX
FLAX (Flexible language acquisition) is an open source system that we have developed for teaching and learning a second language such as English or Spanish (and soon German and French). URL: Flexible Language Acquisition project.

This project will build and incorporate a component to support Chinese language learning. It will be built upon the FLAX infrastructure, and comprise a parser that analyses Chinese text, along with a set of language activities. The Fudan NLP tool will be used to segment Chinese text and extract syntactic structures. The will make existing FLAX activities work with the Chinese language, and implement new ones that are particularly pertinent to Chinese.

Text-to-speech tool for FLAX
FLAX (Flexible language acquisition) is an open source system that we have developed for teaching and learning a second language such as English or Spanish (and soon German and French). URL: Flexible Language Acquisition project.

This project involves integrating an open source English text-to-speech tool into FLAX that can read out the text naturally. The tool needs to support different voices e.g. male and female, and American and British accent. The student will investigate existing text-to-speech tools on the Web and identify a suitable one for FLAX. The project will use Java, XML, CSS, JavaScript, Ajax, and other Web programming technologies.


 

COMP591 Projects

COMP520 projects are also available for COMP591 students - choose from the list of projects above. Please print out and complete the COMP591 BSc Honours Project Selection Form PDF to select your COMP591 project for 2014.

NOTE: If you are enrolled in a Postgraduate Diploma in Computer Science (PGDipCompSci) you also need to make sure the PGDipCompSci Coordinator has completed a PGDipCompSci Form outlining the start and end dates of your PGDipCompSci before selecting a COMP591 project.



Last updated 9 October 2013