Software Project Ideas

If you are interested in working on these project ideas or have other proposals, please contact me (Adam Dingle) by email.

Individual Software Projects (bachelor's students)

An individual software project is a substantial program written in a language of your choice. There are no restrictions on topics; you can choose anything reasonable that interests you.

Implementing a computer game can be interesting. I like games and am happy to lead game-based projects.

You could consider implementing an existing board game, allowing players to play versus each other or possibly versus the computer. Abstract strategy games are interesting choices. it may be a significant challenge to implement an artificial intelligence that allows a computer to play well.

Group Software Projects (master's students)

WYSIWYG Equation Editor for LibreOffice

LibreOffice is a popular and powerful suite of open source applications including a word processor, spreadsheet and other programs. It includes an equation editor for embedding mathematical formulas in LibreOffice documents. Unfortunately the existing equation editor is awkward to use, since it requires equations to be written in a verbose markup language that appears in a separate editing pane.

In this project we'll write a new equation editor for LibreOffice that works in an entirely WYSIWYG fashion. It will let the user enter equations directly in AsciiMath syntax. As the user types an equation, it will immediately appear inline in the containing document, properly formatted. The user will be able to edit equations by simply clicking and typing. This tool should make it much easier to write mathematical or technical papers in LibreOffice.

Conversational Text Editor

Conversersational user interfaces are a hot topic these days. Conversational interfaces allow a user to converse with a computer in natural language. With recent advances in speech recognition, this style of communication is now becoming possible even without a keyboard and mouse.

The goal of this project is to build a system that lets a user compose and edit text documents using conversational commands, as if they were dictating to a human secretary. An interaction in this system might sound something like this:

This tool could be useful for composing emails or other documents whenever typing is inconvenient, such as when a person is walking or performing some other task, such as cooking. It could also be extremely useful for vision-impaired users.