FYP idea: use code similarity measures to cluster similar approaches to solve a lab
JPlag is typically used to detect plagiarism, but for very small code assignments you could have high similarities just by chance. Another way to use it would be to cluster similar attempts - these clusters could be used to design better feedback for common mistakes / misconceptions.