One aspect which makes each academic year different from the previous one is the supervision of final year projects, and each crop of students comes up with different ideas they want to explore. My approach to signing up students is to give them some suggested areas, but mostly accept any student who has real enthusiasm and drive towards the topic they choose. I have usually been very pleased with the topics, sometimes they expand my knowledge into new areas I hadn’t thought of and sometimes they provide me real outcomes that I will be following up. (An example of the latter is synthetic biology software that I will be presenting in a poster session at the forthcoming ACM-BCB conference.
For the 15/16 year, I already have students signed up to work on the following topics:
- A type-system learning tool, which will hopefully provide software support for my CS349: Principles of Programming Languages module.
- Algorithm visualization tool based on the Processing environment: again, a teaching support tool to allow other students to learn intricacies of various algorithms such as shortest path, etc.
- Analysing web browsing activity using Machine LEarning tools to improve search history.
- An auction site geared to local students.
- An industry-led project in Security
All very interesting, some more in my domain than others.
More generally, about projects, I am going to be coordinating the management of all the third year projects in the department. This is quite a complex task in terms of logistics, but I am looking forward to it. One of the issues I want to tackle is: how can we help projects to be more effective? And by that, I mean what kind of training as a department can we give so that students are more confident in the “transferable” skills that they are intended to learn in the process of developing and finishing their projects? Project management and communication skills come to mind. In the next few months, I hope to get a better grasp of how these skills can be taught to our students.