John Hamer's Project and Thesis Topics

My main research interests are in Software Engineering and Computer Science Education, although I am willing to consider topics outside this area for single-semester projects.

The topics listed here are not exhaustive, and this list gets updated rather infrequently. If you are interested in undertaking a project or thesis under my supervision, please see me as soon as possible.

Peer assessment (Aropä)

Aropä is a web-based tool that supports peer assessment activities. It is now used by a number of department, and there is a demand for many new features and improvements. Some of these are mentioned here.

Adopting google's AJAX map technology to document review

Rather than downloading a PDF or DOC file to review, the idea is to generate a bitmap image of the document and view it using google's map navigation technology. The technology will also allow a reviewer to place annotations (ink) on top of the map, and for these annotations to be stored compactly and separately from the document.

XML-ify Aropä

Aropä currently emits HTML output directly. A more flexible interface could be achieved by generating XML and translating to HTML (perhaps using the client-side XSLT translators in Firefox and IE).

Performance analysis

Very little is currently known about the performance bottlenecks in Aropä. How many users can a typical server be expected to support? A study is needed to provide some guidelines.

The Outrageous Software Project

As a whole, the project is probably not suitable for anything, but parts can be broken off for PhD, MSc thesis or project.
Today, most software exists, not to solve a problem, but to interface with other software. --- I.O.Angell

"Outrageous Software" is a combination of three radical software technologies: prevaylance, naked objects and the Mozart programming language.

Taken together, these technologies reduce the traditional 3-tier software architecture into a single tier devoted exclusively to business logic. More details can be found in this talk

Computer Science Education

Mostly suitable for MSc or PhD.

I have a variety of projects in various stages of development. Everything here is changing rapidly, so check first.

A Haskell typesetter

Suitable for MSc thesis or project.

Program listings can be made considerably more attractive to read if they are printed using an automatic code typesetter. Typically, typesetting code involves formatting identifiers in an italic font, bolding reserved words, and replacing symbols with their mathematical equivalents.

The close relationship between modern functional languages (such as Haskell) and the lambda-calculus makes more radical forms of typesetting possible. For example, it is often desirable to use specialist notations (e.g., write lists as sets) rename functions in an extended typeface (e.g., using greek letters), etc.

Such typesetting transformations cannot be performed fully automatically. Code annotations are required to specify how data types, functions and variables are to be formatted. These annotations may take the form of a mini-language, defining translation rules for converting Haskell expressions into TeX.

The topic requires a student with a firm grasp of functional programming and the basics of language implementation. No previous experience with TeX is necessary, although this would be an advantage.


John Hamer