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.
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.
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.
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).
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.
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
I have a variety of projects in various stages of development. Everything here is changing rapidly, so check first.
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.