This page contains project ideas both for BSc final year projects and MSc projects.
If you like Haskell, you should try Agda, it is even cooler. Agda has a rich Type System which combines logical reasoning and programming. Projects include an implementation of code related to G52MAL, developing domain specific solvers, or verifying a small compiler.
Related to G52MC2, G53CFR, G51FUN and G53AFP.
Quantum computing is an exciting new approach to unleash the power of quantum physics to speed up computing. Together with my student Alexander Green, we have been developing a Haskell library (the QIO monad) to write quantum programs. Projects include building a compiler for QIO, implement measurement based quantum computing or using QIO to implemenet some interesting quantum algorithms.
Related to G51FUN and G53NSC.
If you have enjoyed G52MC2 and want to play a bit more with Coq, here is your opportunity. Prove some simple, or not so simple programs correct with COQ. Maybe extend the simple compiler from MC2 or write your own. Or prove some interesting mathematical theorems.
Related to G52MC2 and G53CFR.
I like to teach my 9 year old son some programming and I think functional programming is a good way to do this. To make it more fun I'd like to use a graphical library like gtk2hs.
I have recently got an iphone and would like to figure out how to program it using Objective C and Cocoa. I think it is useful to have a Mac around of you want to do this sort of thing. Some ideas include clients for online gamesor ann app which helps you to looku timetabling and other infromation for the University.
GO is a japanese board game played on a 19x19 grid. It is a challenge to implement a reasonable go-playing programme because the brute force approach which is quite successful in chess doesn't work here. This project involves surverying approaches used in existing go programs and use them to implement your own player.
Connect 4 is a well known strategy game. This project involves doing some research on a good strategy for connect 4 and implementing it with a small user interface. Other similar games would do as well.
Develop an interactive editor which simplifies the development of correct programs in a reasonable rich subset of Haskell. The editor should make sure that all programs are well-typed and have only complete patterns.
This project involves exploring one of the Haskell GUI library wxHaskell and implementing some simple interactive games. See Dan Leijen's article which uses the game asteroids as an example.
The FP group uses Joomla a poblic domain CMS to manage its webpages. Some additional support for mainting semnar pages, publication pages etc would be useful and could be also shared by other research groups.<