University of Sheffield

Anthony J H Simons, MA PhD

Senior Lecturer in Computer Science
University Computer Science Testing Group Space Tech Europe Industry

Undergraduate Projects, 2020-21

Schedule Introduction Description Survey/Analysis Dissertation Poster Session Last Year
Project Code Project Description Student

AJHS-UG -1, -2, -3

The UML Model Tutor: assessing correctness and giving feedback on UML diagrams

The aim of this project is to build a tutoring tool to complement any of the existing free UML design tools. The premise behind this is that it is difficult for novices to learn how to use UML really well, and that they could benefit from more practice exercises and feedback. However, giving individual feedback is typically labour-intensive and it would be better to have tool support to offer automatic feedback at scale. This project aims to use one of: Papyrus, Astah, Modelio, UMLet, or other freeware UML tools to create diagrams, which will be exported as XML to the tutoring tool, which will compare student attempts against the tutor's fair-copy solutions and automatically score the student attempts, giving as much constructive feedback as possible.

What starting resources exist? There are websites devoted to Papyrus, Astah, Modelio, UMLet, and other freeware UML tools. There are a number of XML processing tools for Java, including JAST, a local Sheffield tool. What skills are required? You will need to investigate how compliant to UML 2.5 each UML tool is and select an appropriate candidate. You will need to find out how to export XML models through the XMI interface. You will need to navigate XML trees and be able to compare tree structures and approximate label matching. You will need to devise a fair scoring system to award credit for correct portions of a student's effort and deduct points for errors. You will need to provide constructive feedback. Finally, you will need to devise a graded set of UML exercises that take the novice learner from simple to complex comprehension problems.

This project can be offered to multiple students. One way of splitting the work is to have different students working on different types of UML diagram (Use-Case, Activity, State Machine, Class Diagram). Students will be supervised together as a team. The UML Tutor software could be built in any programming language, although we assume Java by default, which then allows use of the JAST XML processing tools. You may need ethical approval if you wish to use other students as test subjects when evaluating your UML Tutor tools.


Mr Chen Guo

Mr Alex Hall

Mr Hao Li

AJHS-UG -4, -5

EYUP: the Yorkshire programming language and environment

This project aims to build a novel programming language and environment as a game. EYUP is a brand-new programming language just for Yorkshire folk. It is simple, honest, straightforward and, when necessary, brutally forthright. Its keywords and error messages are quirky, all based on Yorkshire dialect, which injects a sense of fun. The EYUP language will execute in an interpreter in the "Yorkshire 1.0" environment. EYUP is structured around agents known as "Bodgers", with whom the programmer interacts at the command-line prompt, or indirectly through other programs. Each Bodger defines "summat" by way of data and "fettles" a number of executable programs. Larger programs call on the services of other Bodgers, which constitute a software library.

What starting resources are there? There is a detailed working document defining how EYUP should work. It explains the major language constructs and the desired behaviour of the interpreter. It goes on to describe some of the Bodgers in the software library (and we will add to this). What skills are needed? This project gives scope for compiler- and interpreter-writing skills. It will require parsing (analysis of input text), modelling (the constructs of the EYUP language) and simulation (execution of EYUP constructs). What is the goal? You should aim to have a working programming environment that could be used e.g. in STEM outreach, or as a game.

We offer this project to more than one student. Work could be split a number of ways, for example, building multiple implementations either in Java Swing, or in a directly compiled language (your choice). The workload could be split within a team along the lines of building the parser, building the execution engine and implementing the software libraries. We would expect to supervise all students together. You may require ethics approval if you wish to try out your environment on other student test subjects.


Mr Charlie Moynihan

Mr Thomas Tonner