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.
My research interests focus around Educational Technology and Computer Science Education, and I am open to suggestions with an educational theme. However, I would discourage the creation of software which would be evaluated on "real people", since ethical consent is likely to be required, which would complicate the project significantly.
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.
Railway Signalling Tutorial
The problem this project seeks to address is that of the complexity of railway signalling practice. A use case might be a railway modeller who seeks to incorporate authentic signalling on their layout.
The project would include a number of components.
(1) Basic visual software which would display a simple rail network together with (very simple) trains and signalling infrastructure.
(2) Implementation of various signalling protocols to be displayed using the software in (1).
(3) Educational tools which use the above as visualisation tools.
For anyone interested in railways and signalling, this is a potentially very large project, and so a realistic project would focus on a defined part of the above.
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. There are other plagiarism detection tools, such as JPlag and MOSS.
The technologies employed by these tools are now somewhat out of date, but the aim of this project is to explore whether that is in fact the case.
There are a number of "lenses" on this which can be explored.
Two recent projects have already addressed refactoring the Sherlock 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.
Project (1). Develop the Sherlock code to interface it with other systems (for example, automatic assessment software, visualisation tools, and internet search tools, and AI software).
Project (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). The algorithms might include ML algorithms.
Project (3). Expand Sherlock (and the algorithms it supports) to work with languages other than Java. This is essentially a "software development" project.
Project (4). Explore the pedagogy of source-code plagiarism detection through the development of novel interfaces to the Sherlock software which would software which provide both formative guidance to students, and clear support for investigating academics. This project would include a substantial amount of software development in addition to serious educational exploration.
Project (5). Choose a plagiarism detection engine (we recommend JPlag or Sherlock, both of which are Open Source), together with one or more AI tools, and explore how well an AI tool can "fool" the plagiarism detection software. This is a research focused project.
Reference
Mike Joy and Michael Luck (1999), “Plagiarism in Programming Assignments”, IEEE Transactions on Education 42(2), pp. 129-133. (doi: 10.1109/13.762946)
Resources
Sherlock (GitHub).
Automatic Assessment
One of my research interests is automatic assessment (both of programming assignments and of other types of submissions such as essays). This project would investigate the automatic assessment of either an essay or an item of software. It would be particularly suitable for an MSc student due to the research nature of the activity, or for an MEng group.
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.
It is worth mentioning that learning objects have become unfashionable, and a project which approaches this "from scratch" would be acceptable.
Reference
Jane Sinclair, Mike Joy, Jane Yau and Stephen 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).
Kirsi-Maria Rinneheimo, Hanna Kinnari-Korpela, Russell Boyatt and Mike Joy (2012). “MALog: A New Way to Teach And Learn Mathematical Logic”, 16th SEFI Mathematics Working Group Seminar, Salamanca, Spain, 28-30 June 2012.
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).
Previous iterations of this work have focused on the following:
- 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.
However, these tasks have increasingly been overtaken by available external software, and are no longer particularly interesting. However, the development of basic software (leveraging on external open-source tools where available) could be extended as follows:
- 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.
Reference
Mike Joy and Saba Khalil Toor (2014). Investigative Study about Errors in References and Citation in the Work of Students in Higher Education. Working draft of paper.