Suggestions For BSc/MSci/MSc Projects
I'm willing to supervise projects in various areas, in particular maths-related areas, programming language theory and also music-related projects. Here are some suggestions.
Implementing call-by-push-value
Call-by-push-value is a kind of lambda-calculus that accommodates both imperative and functional features in a smooth way. For this project, you would have to take in a program, execute it and display the final result, perhaps also displaying execution in some way.
Jumping semantics
A jumping machine is a way of depicting the execution of a program that jumps between different parts of a program. For a language with higher-order functions (like lambda-calculus) each call makes a binding, so a more sophisticated depiction is used: you have a tree of bindings and jump around it. Implementing such a machine could make an interesting project.
Music and just intonation
In music, an interval (two notes played together) sounds consonant when its frequency ratio is a ratio of small whole numbers; for example a perfect fifth corresponds to a frequency ratio of 3:2. (On a piano this would be approximated as seven semitones.) The traditional musical notation puts emphasis on the difference between high and low notes, but it is possible to display notes as adjacent when they form a consonant interval. This could be the basis of a piece of educational software that teaches harmonic relationships.
Student-suggested projects
I am also happy to supervise projects suggested by individual students.
Paul B Levy
Last modified: Tue Oct 1 12:44:25 BST 2002