During busy times in a computer lab practical, it can be difficult for students to find an available TA in a timely manner and for TAs to decide which student to help next. Computer lab practicals differ from other teaching settings, such as lectures and tutorials, in that students and TAs do not maintain visual contact during a session. Indeed, students tend to focus on their screen and keyboard as they complete their lab tasks and TAs tend to focus on an individual student. As the Department has recently grown considerably and it now has very large labs in which practicals are organised, this issue has been exacerbated.
This project aims to produce a software based call button system that allows students with a question to identify themselves and their location, and that directs free TAs to those students. The system is expected to enable or facility meeting the following objectives:
The challenge of this project is to specify, design, build and evaluate a system that meets these objectives. Note that I have kept the objectives quite broad and you are free to choose how you translate these objectives into requirements and specifications. I do not have a particular system in mind. That said, I would urge you not to jump to conclusions and take your time to identify a coherent set of specifications. Note that the objectives are not independent from one another and that sophistication in working on some objectives will make meeting other objectives much harder. For example, the more sophisticated the queueing system (Objective 2), the harder it becomes to estimate waiting times (Objective 4).
It may be possible to evaluate the work in term 2 by using it in an actual lab. However, this would require a prototype system to be produced in time.
You may be able to produce a good solution to this problem with limited background reading. Nonetheless, a strong project is able to identify useful existing techniques and adapt them to this project. To develop a sophisticated approach to assign TAs to students, you may wish to familiarise yourself with multi-criteria decision making approaches. If you wish to learn more about how you could calculate expected waiting times for students, queueing theory is a good start.
This project is aimed primarily at BSc students who aim to begin a career in industry, ideally in software engineering. It can be tackled by an MSci student, though it is essential that the work engages sufficiently with suitable peer-reviewed literature. Ideally, the student who takes this project is organised, capable of tackling a complex problem in a systematic manner and enjoys substantial development work.
Note that you are not required to have a specific idea for features to incorporate in this project. Instead, I would prefer the student taking this project to take some time carefully analysing the project objectives after they have been allocated the project, rather than rush this crucial activity of the project.
Q: Can I discuss this project with you in person?
A: Yes, I have arrange a project Q&A session on Thursday 27 September, 18:00%—20:00 in Bush House (SE) 2.12. All students in an undergraduate Computer Science programme doing an individual project this year are welcome. I'm afraid it is not feasible to meet all students with questions on a one-to-one basis this week. I am supervising 11 undergraduate projects this year and usually receive 5-6 meeting requests per project on average (because most students explore a range of different projects). As it is simply not feasible to schedule that many meetings in a single week, a group Q&A session seems to me to be the fairest approach to meet everyone.
Q: Does this project involve any hardware development?
A: No, normally, this project would not involve any hardware development and the solution would be entirely software based. I suspect that a software based solution is more likely to be adopted as that limits the investment required to deploy it.