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:
- Person: Read me the second paragraph.
- Computer: Now we are engaged in a great civic war, testing...
- Person: Stop. Change "civic" to "civil".
- Computer: OK.
- Person: Read that paragraph again.
- Computer: Now we are engaged in a great civil war, testing...
- Person: Stop. Now read the next paragraph.
- Computer: But, in a larger sense, we can not dedicate...
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.