Skip to main content Skip to navigation

Project Ideas

General Interests

I am happy to supervise most "software development" type projects that involve the complete software lifecycle and have a clearly specified software deliverable. However, I would prefer not to be involved in projects which are AI related.

Specific Ideas

The following project ideas are suitable for both undergraduate and taught masters students, although the format and scope will vary depending on the level.

Reference Citation Marking and Feedback Software (RCMFS)

This is a large project which is particularly suitable for an MEng group project or an MSc student. A BSc student might take a subset of the material to form a project.

The objective of developing this software is to provide feedback to students about how they cite references, as well as to automatically grade their citations. The target audience for this software is mainly teachers or individuals who are responsible for the grading of thesis or project work, as well as students (for the provision of formative feedback).

The functionalities will include:

  • extracting references from documents written using common formats (ODT, Word, TeX, etc.);
  • processing references to identify the components of the references;
  • comparing references against data sources (such as EndNote or CiteSeer) to identify discrepancies;
  • providing a framework to be incorporated in a VLE (such as Moodle - moodle.orgLink opens in a new window) to allow the preceeding functionalities to be combined in a formative and summative assessment tool.


M.S. Joy and S.K. Toor (2014). Investigative Study about Errors in References and Citation in the Work of Students in Higher Education. Working draft of paper.

Extension of Sherlock Plagiarism Detection Software

This is a tightly-focused project suitable for an MSc student or for a BSc student who is looking for a challenging programming project (2-4), or for a MEng group project (1-4).

The "Sherlock" source-code plagiarism detection software has been used at Warwick for several years now. It compares items in a collection of (Java) source files for similarities and outputs a report as to what those similarities are.

Two recent projects have already addressed refactoring of the code, so the core of the system should now be in a good state to move forward, and is structured using a highly modular architecture using current "good practice". This is therefore an ideal time to look again at the whole Sherlock project.

There are at least four possible (and interlinked) projects:

  1. Develop the Sherlock code to interface it with other systems (for example, automatic assessment software, visualisation tools, and internet search tools);
  2. Expand Sherlock to include further algorithms not currently supported by the tool - these would include novel algorithms, or refactoring algorithms used by other tools such as JPlag or MOSS);
  3. Expand Sherlock (and the algorithms it supports) to work with languages other than Java;
  4. Explore the pedagogy of source-code plagiarism detection through the development of novel interfaces to the software which would software which provide both formative guidance to students, and clear support for investigating academics.


M.S. Joy and M. Luck (1999), “Plagiarism in Programming Assignments”, IEEE Transactions on Education 42(2), pp. 129-133. (DOI 10.1109/13.762946)


Sherlock (GitHub).

Building Learning Objects

This project is suitable for all students, and its scope can be extended as much or as little as required.

Learning objects (LOs) are units of learning material packaged together with appropriate meta-data. A learning object may include a variety of content, such as background reading, interactive elements or quizzes. There are various tools available to create content but it can be difficult to select the most appropriate tool whilst maintaining compatibility across learning environments and platforms. You would evaluate the existing tools and be able to develop a good strategy for producing learning objects.

Computer Science has also been involved in a EU-project to develop learning materials in the general area of mathematical logic. You would use what you learn about the tools to create a few interesting learning objects relating to this theme. This may include writing new material, developing interactive examples or building on-line quiz material.

You would:

  • evaluate existing tools available for the creation of learning objects;
  • develop a series of learning objects, probably in the area of mathematical logic;
  • deploy and evaluate your material in a learning environment (such as Moodle);
  • possibility of developing plug-ins or enhancements to Moodle.


J.E. Sinclair, M.S. Joy, J.Y-K. Yau and S.J. Hagan (2013), “A Practice-oriented Review of Learning Objects”, IEEE Transactions on Learning Technologies 6(2) pp. 177-192 (DOI 10.1109/TLT.2013.6)..

Automatic assessment

One of my research interests is automatic assessment (both of programming assignments and of other types of submissions such as essays). Projects in the past have included for example add-ons to BOSS ( opens in a new window) or Moodle (moodle.orgLink opens in a new window).

In particular, the current version of BOSS allows for "plugins" to be written to add to its functionality. This would be a particularly interesting task, and plugins might include an automatic essay-marking tool or a port of plagiarism detection software. If this interests you, we can discuss the possibilities for plugins in more detail.