Home

Research

Publications

Teaching

Project Proposals

Computing Home

DCU Home

 

Project Proposals

3rd/4th Year Projects

I would be interested in supervising any projects in the areas of programming language implementation, program parallelisation and formal methods. Some suggestions for particular projects are given below, although I would be interested in supervising any projects in related areas.

Programming Language Implementation

  • Design Your Own Programming Language. Not entirely satisifed with the programming languages currently out there? Think you can do better yourself? The aim of this project is to design your own programming language which will compile to the MIPS64 instruction set. You can build this on top of Mike Scott's command line assembler for MIPS64 (see here). This can then be used to demonstrate the connection between the high-level language, the assembly language and the simulated hardware.

Program Parallelisation

  • Program Parallelisation Using Data Parallel Haskell. As the number of cores on a chip continues to increase, there is an increasing need for efficient parallel implementations of programs. Data Parallel Haskell is an extension of the Haskell programming language with a novel approach to the implementation of parallism through the use of nested data parallelism. The aim of this project is to perform a number of different parallel implementations of programs using Data Parallel Haskell and to compare the performance of these programs with parallel implementations written in other languages.

Formal Methods

  • Teaching Tool for Formal Methods. The aim of this project is to develop a tool which will support the teaching of formal methods in the course CA648 Formal Programming. The tool will provide an environment within which students on this course can enter programs written in the small programming language used in the course. The tool should then aid the student by allowing them to add assertions to the program, and then displaying the verification conditions which would be generated from these assertions. Support for proving the generated verification conditions could also be provided

Other

  • Fantasy Football Manager. Fantasy Premier League is a well-known fantasy football game where each player can pick their own team and do transfers each week. A wealth of information is available for each player on the website including value, form, transfers in, transfers out, etc. The aim of this project is to scrape this data from the website, and use it to implement a number of automated strategies for fantasy football teams. These automated teams could then compete against each other and against other teams in the fantasy premier league to see how well they fare.