Project Selection Brochure
Brochure for the selection of a project for the partial fulfilment of the requirements for the degree of BSc Computer Science. Swansea University
Department of Computer Science
Table of Contents Introduction 3
Selection Timeline 4
Project Timeline 5
Document Structure 7
The Projects 8
Dr. Arnold Beckmann (email@example.com) 8
Dr. Ulrich Berger (firstname.lastname@example.org) 9
Professor Min Chen (email@example.com) 10
Dr. Parisa Eslambolichar (P.Eslambolchilar@swansea.ac.uk) 11
Dr. Phil Grant (firstname.lastname@example.org) 12
Dr. Neal Harman (email@example.com) 13
Dr. Mark Jones (firstname.lastname@example.org) 14
Dr. Matt Jones (email@example.com) 14
Dr. Oliver Kullmann (firstname.lastname@example.org) 15
Dr. Robert Laramee (email@example.com) 17
Professor Faron Moller (firstname.lastname@example.org) 19
Dr. Ben Mora (email@example.com) 19
Professor Peter Mosses (firstname.lastname@example.org) 20
Dr. Markus Roggenbach (email@example.com) 21
Dr. Monika Seisenberger (firstname.lastname@example.org) 22
Dr. Anton Setzer (email@example.com) 23
Dr. John Sharp (firstname.lastname@example.org) 26
Dr. Roger Stein (email@example.com) 26
Professor John Tucker (firstname.lastname@example.org) 29
Mr. Chris Whyley (email@example.com) 29
Mr. Max Wilson(firstname.lastname@example.org) 30
Dr. X. Xie (email@example.com) 31
Industrial Projects 32
Students’ Projects 38
Industrially Related Projects 38
Intellectual Property Rights 38
Selection Form 39
Students’ Project Form 40
Swansea Computer Science Department states as its Educational Aim No 4
"The ability to plan and accomplish a substantial project". The final year project is your chance to live up to these expectations. Your project can take various forms, for instance it can be on robotics:
Other examples of past project topics include Exponential Notations, Ontologies, Video Visualisation, Haptic Interfaces, CSound Abstractions, Probabilistic Algorithms, Microprocessors, Running Threads in C++, Interactive Tutorial, Cascading Style Sheets,
Veriﬁcation of RSA, Emacs, XML Databases, Mobile Phone evaluation, Parallel deterministic algorithms, Software Plagiarism, Automated web page search (IR), Life performances (IR), ...
The final year project is your chance to study a Computer Science subject of your own choice. To do something that always has interested you, however, never appeared on the Swansea syllabus. After your studies, your project most probably will become your "distinctive feature". Every job interview will include the request: please tell me about your final year project.
In terms of learning skill, what you will gain is experience in project management - within your project you will be your own manager. You will learn how to make good presentations (a talk in Gregynog, a poster at the Project Demonstration Fair), how to write a project proposal or a project report, and you will gain experience in self-organized studies. In summary: step by step you will grow out of a taught university programme and become a computer scientist in your own right.
Projects come in three different flavours: you can choose a project suggested by a member of lecturing staff, you can choose a project suggested by Industry, and you can come up with a project of your own.
Projects suggested by a member of lecturing staff are usually the safest option: based on the experience of many projects, extent, depth, and potential of the project proposal are carefully chosen. Sometimes project proposals go along with the research interest of a staff member: in these cases you can be sure to get optimal supervision.
Industrial related projects can be real career openers. Should you do well, the company might actually offer you a job. And, don’t forget: after two years of theory, finally the practise! There are, however, some potential pitfalls. Sometimes, the company loses its interest in the project during the course of the year. Then, it will be hard to arrange meetings in order to get input for the project. Also, you will serve two "masters": your supervisor at university and the company itself.
Own projects are of course the best! You follow your own path and do what you always dreamt about. In order for you not to struggle, the department requires that you find a member of teaching staff who will support your proposal. The risk in such a project is that, naturally, you don't have much project experience - and your potential supervisor might not be too familiar with the subject of your choice.
This brings us to the question: how much should you know about your project, right now? There are two obvious strategies: you go for those things that you already understand - or you take the challenge to learn something completely new. Both have their pros and cons. Should a project look clear and easy, and you understand it already now completely, it might be the case that the project lacks potential: even if you work it out in a perfect way, as it was so easy from the beginning on, it might not be possible to achieve a high grade with it. Complex projects, on the other side, might first frighten you: so many new things to learn, to understand, come to terms with. However, as they are such a challenge, even if in the end your solution is not a perfect one, you might earn a high grade from them.
One last bit of advice concerning your project choice. Most past students say: the subject of the project is not so relevant, what really matters is that you get on well with your supervisor. Thus, you really should use the Project Selection Fair for a good chat on a project of your interest and check if the communication works out.
Project selection time-line. The first step of project selection has already been accomplished: you hold the Project Selection Brochure in your hands! Well, you need to study it, look at the various projects and decide which of them are interesting to you. Or you come up with a proposal of your own. That is your homework over the Easter Break.
Then, there will be the Project Selection Fair on Wednesday, April 22, 2009, see
This Fair comes in two parts: first, the various project phases will be explained in a lecture, then you will have the chance to meet, hopefully all, lecturing staff in order to discuss the projects you are interested in.
Next is the Project Demonstration Fair in the afternoon of Thursday, May 7, 2009. There you will have the opportunity to see the project outcomes of the current 3rd year
students. This might inspire your own project ideas, and it will give you a good idea what a project might look like.
On Friday May 8, 2009 it is finally time for you to hand in your project choices. You can hand in up to 7 choices, ordered by your preference. Should you really want to do a certain project, speak with the member of teaching staff offering it: projects agreed between student and member of staff are most likely to be allocated. Otherwise, an allocation algorithm is applied that implements the principle: the better your exam results in January 09 the higher your chances of getting the project of your choice.
Finally, you will receive an email concerning the project allocated to you. This will be after your exams, but before the Summer Break. The current plan is to send out the allocation on Friday, June 12.
Project time-line With the announcement of the project allocated to you, the project clock starts to tick! You have about 10 month to finish your work. Overall, the project should take about 300 hours, which is equivalent to about 2 months of full time work.
Your first course of action should be to contact your supervisor. And there is just one big piece of advice: do it immediately after you have been told which project you will be doing! Ask him or her about the necessary background studies on literature, and maybe about first steps of activity: this is what you need to do over the summer.
In September 09, when you are back for your third year studies, things will become a little hectic. The Initial Project Document will be due by the end of the 3rd week of Semester one. Often, this document keeps students completely busy, forcing them to neglect their
other modules. Should you have done some work over the summer, however, you will experience a nice and relaxed time. The initial document shall demonstrate that your project has a clear focus, that you understand what the project is about, and, last but not least, that you have a clear idea of what to do during your project. Thus, an initial document usually states clear project aims. Then, it puts the project into context: Where is it located within the big realm of Computer Science? What have other people already accomplished in the area specific to your project? Additionally, you might want to prove
that you understand the methods and tools involved in your project: for instance, you first describe the nature of the processing involved (e.g., handling XML documents), and then discuss your choice of programming language (in our example, e.g., Java as it has with JAXP an extensive library for processing XML), and give arguments for your choice (continuing our example, you could describe the class javax.xml.parsers, give an example of how to call it, where this example is protypically for what you plan to do in your
project). Finally, you provide a project plan, e.g. in the form of a Gantt chart. This all is rounded up by a vast amount of references, which preferably should be text books and scientific papers, rather than websites.
The Initial Document out of the way, the "real" work of the project begins: probably first experiments with the implementation, and/or more background reading. This will give you the material for your
Project Presentation in Gregynog, end of November 09. The student conference is usually just awesome, ask last year's students how things went. Your contribution to this conference is a presentation of about 15 minutes
(12 minutes presentation + 3 minutes for questions). In the audience you will have your supervisor or 2nd marker (should they be available) as well as other students of your year. Your job is to convince them that you have, of course(!), the best project in the world and that you are completely up to it. For the first point, you will have to discuss the motivation behind your project and why this "naturally" leads to your project aims. For the second point, the best way to convince the audience is to show first project results. Some students will already have a running prototype - with limited functionality, of course, however, they clearly have something running. In a more theoretical project it might be possible to show the proof of a theorem. Or, should your project follow a top-down software development model, you might want to show the first design of the software architecture and discuss how this accomplishes the specified use cases.
The department usually supports your preparation for your talk at the Gregynog student conference with a special lecture "How to cook up a presentation?" which will be held about 2 weeks before the student conference.
After all this, the project does not have any formal demands on you for the rest of the year. In January '10, you can sit your exams without the project interfering, however nearly at the beginning of Semester 2, the Interim Document will be due, namely by the end of week 2. At about half-time of your project, this document gives you the chance to reflect on how you are doing: are you on track with respect to your project plan from the
Initial Document, or are things not going according to plan? In your document you discuss this relation between plan and reality, and come up with a revised project plan - if necessary. Furthermore, you give evidence of the progress you made. For instance, you write a chapter summarising background studies on topics central for your project. Or, you document a running prototype. Or you present collected design documents. Or you give a long proof for a theorem. Or or or.
After all these writing exercises, finally it is time to produce your real "masterpiece", the Project Dissertation.
Probably, it will be due at the end of week 10 of the 2nd term in your 3rd year. The good news is: you can re-use all the documents, pictures and graphics that you have produced so far. Thus, especially with all your writing experience at hand, it should not be too hard to compile a 80 - 100 pages document. Its structure is in some sense simple: First, you discuss the motivation of your project, name your project aims, give an overview on related approaches, discuss the background of your project (what tools are you using, what theoretical knowledge is needed to understand your approach). Then, you describe what you have achieved - this part should be the largest part of your dissertation. In a software oriented project, you simply provide a system handbook including the requirement documents, the design of the software architecture, the coding principles for the individual modules, the testing approach taken (including test documentation). Finally, you take a step back and evaluate what you have achieved: did you really match all your project aims? You also evaluate your project management: what went well within your project, what parts caused trouble? A summary and outlook on possible future work rounds up your dissertation. And, of course, you better have a nice long list of references that prove that you did your homework looking up the standard literature.
Phew. Now your project is nearly done. Only the final presentation is missing, your exhibition at the Project Demonstration Fair probably in the last week of the 2nd Semester of your 3rd year studies.
Do you still remember this Fair? The 2009 fair stood nearly at the beginning of your project life cycle, when you were about to choose a topic. However, now - in 2010 - it is your turn, to show to the departmental public as well as to the local IT industry what you have accomplished over a period of nearly one year. You will have a stand on your own, where you can put up a poster, hand out fliers, have your business card at hand. Quite a few students found their first job thanks to this fair. Anyway: your task at this fair is simple to explain. Within the time-span of, say, 5 minutes you need to be able to explain your project to a visitor of your stand: what it is about, what you have accomplished, what makes your solution special. A project demonstration in the form of a running programme might round up your explanation. To this end, the department will make sure that there are enough computers available, but you might also want to bring a laptop of your own.
Like for your Gregynog presentation, the department will arrange for an extra lecture How to come up with a great poster? which will cover the graphical design principles for posters as well as the technical question of how to actually produce it.
Well, that's about what you need to know right now. What remains is to wish you all the best of luck with your project!
Markus Roggenbach, Chris Whyley
This document should give the title and introduction to the project area. It should detail the scientific and technical background of the project, and present a rigorous discussion of the project. For example, it should contain a design specification of the entire system to be developed or discussion of theoretical problems to be addressed. The document should cover the following topics:
• a study and survey of relevant literature and similar work;
• a detailed project plan;
• a complete discussion of the background and the relation of the project to this;
• the main methods and tools to be employed or evaluated;
• the main scientific questions to be considered;
• the main technical problems to be solved;
• the software and hardware constraints if appropriate;
• anticipated problems and further areas of study or influence.
Interim Document (Semester 2 Week 2)
Length: 10-15 pages.
This document should summarise progress to date, report preliminary results and state changes to the initial plan if any. The document may include the following topics:
• a progress review;
• a further literature survey;
• preliminary results (e.g. problems mathematically formulated, solutions found, algorithms designed and parts of the system formally specified or implemented);
• a revised project plan and timetable.
Dissertation (Semester 2 Week 10)
The dissertation (40-100 pages) is a comprehensive and self-contained report on the work done on the project. The document should include the following topics:
• discussion of the subject area and its history;
• a study and survey of relevant literature and similar work;
• formulation of scientific questions and the answers to them;
• theoretical background and mathematical prerequisites;
• technical problems considered and methods used to solve them;
• discussion of issues arising in specifying, designing and implementing the system (e.g. requirements analysis, user interface, system architecture, algorithms, major data structures, etc.);
• evaluation of results (e.g. complexity, efficiency, user-friendliness, reliability, etc.);
• user and system manual;
• progress and achievements of the project;
• suggestions for further work.
Demonstration and Viva (Semester 2 Week 11)
A project demonstration fair will be held during week 11 of Semester 2. Students will be expected to:
• Display posters explaining their projects.
• Explain their projects to other students and representatives from local IT businesses.
• Demonstrate any software created for the project.
• Answer questions from their supervisors, other students and local business representatives.
The Projects Dr Arnold Beckmann Dr. Beckmann's research is mostly concerned with applications of logic and
complexity to questions in computer science. Here are some possible projects, further information can be found at http://www.cs.swan.ac.uk/~csarnold/Projects/
AB1: Exploring the world of NP-completeness Several projects in this area are possible. For example, one possible project is to choose two NP-complete problems, study their NP-completeness proofs, and describe and implement transformations between these problems. Another could be to transform an NP-complete problem into an instance of Satisfiability and use some off-the-shelf SAT-solver to compute solutions.
Dissertations at all levels are possible with this topic, an interest in theoretical topics is necessary.
AB2: Sparse number representations This project looks at sparse representations of natural numbers (also denoted "exponential notations") which have the nice property that some functions which usually consume a vast amount of space (and hence are unfeasible to compute) become feasibly computable on these representations. For example, the exponentiation function on exponential notations can be computed in polynomial time.
In this project you are going to study sparse number representations, implement exponential notations and modifications thereof, and make experiments with some usually unfeasible functions, testing whether they behave feasibly on exponential notations. E.g., the nth-Fibonacci number or binomial coefficients can be studied. One part of this project will be to look for other examples. (The Project will be based on AB's article "Notations for Exponentiation" http://www.cs.swan.ac.uk/~csarnold/publ/artikel08.html )
Dissertations at all levels are possible with this topic, an interest in theoretical topics is necessary.
AB3: Logic Programs for Fuzzy Control Fuzzy Logic is a way to deal with uncertainty in logic reasoning. Fuzzy Logic is also used to model control systems which is then called Fuzzy Control. Fuzzy Control presents linguistic rules in a simple, human readable way. For example, to model an automated car following another one, one of the rules might be "if distance is close and speed is high then strongly reduce speed".
Logic Programming is an ideal programming language to deal with such rules. In this project, you will look into aspects of Fuzzy Control and how they can be programmed using Prolog. You will also use an interface between Prolog and Java to make use of your Fuzzy Control System, to graphically present some simulated control situation (like the above mentioned automated cars).
This project is intended for an ambitious student with an interest in Prolog and AI. Good programming skills in Java are also needed.
Dr Ulrich Berger Dr Berger's research is concerned with applications of logic to computer science, in particular functional programming. The following projects are about implementing formal logic. A good introduction to the general logical background is provided by the textbook
D. van Dalen. Logic and Structure. Springer 1994.
UB-1 Monadic Parsing
In functional programming monads are used to elegantly model a number of important programming concepts and problems such as input/output, parsing and continuations [1,2]. In this project monads shall be used to write a parser for logical formulas.
 Philipp Wadler. Comprehending monads. Mathematical Structures in Computer Science, Special issue of selected papers from 6'th Conference on Lisp and Functional Programming, 2:461-493, 1992.
 Graham Hutton and Erik Meijer. Monadic Parsing in Haskell. Journal of Functional Programming. Cambridge University Press, Vol 8(4):437--444, 1998.
UB-2 Implementing an interactive proof system.
In this project a simple interactive proof system for propositional logic shall be implemented in Haskell. The user interaction can be in a command line mode, or it can be programmed as a Graphical User Interface (see http://en.wikibooks.org/wiki/Haskell/GUI).
UB-3 Graphical display of proofs.
Formal proofs in propositional logics shall be represented as algebraic data in Haskell and graphically displayed using the Haskell Graphics Library (http://haskell.cs.yale.edu/graphics/). The projects UB-4-6 are concerned with the interactive proof system Minlog (http://www.minlog-system.de for further information). UB-4 Verification and program development in the Minlog system
The interactive Proof System Minlog supports different forms of constructive and non-constructive reasoning and is particularly suited for program verification and program synthesis from proofs. In the project advanced case studies in these areas shall be carried out.
UB-5 Building a proof library for the Minlog system
In the same way as programming languages have program libraries, interactive theorem provers should have proof libraries. The purpose of this project is to build a structured library of commonly used proofs in the interactive Proof System Minlog.
UB-6 Writing an extended Minlog tutorial and reference manual
The purpose of this project is to extend the existing Minlog tutorial so that it covers most of systems functionality and typical applications.
UB-7 Memoization via generic type transformation.
Memoization is a technique for improving the efficiency of programs by storing previous results in a table in order to avoid repeated computation (a special case of this technique is known as dynamic programming). In a lazy functional programming language the effect of memoizing a function can be achieved very elegantly by a type transformation, that is, a uniform modification of the
function's signature [3,4]. In this project the transformational memoization technique shall be implemented in Haskell and applied to problems in, for example,
bio-informatics (protein sequence alignment).
 R. Hinze. Memo functions polytypically!. Proceedings of the Second
Workshop on Generic Programming, Ponte de Lima, Portugal, 2000.
 T. Altenkirch. Representations of first order function types as
terminal coalgebras. Typed Lambda Calculi and Applications, TLCA 2001.
Lecture Notes in Computer Science 2044, pages 8--21, 2001.
Professor Min Chen MC-1: Scientific visualisation in aid of Data Mining
In modern sciences, scientists often encounter a huge amount of data, which is difficult to comprehend directly. This project will study the visualisation techniques designed for interrogating such datasets. Options for the datasets to be studied include simulation results generated by physicists, and imagery datasets captured by environmental scientists. The main objective of the project is to develop a graphical user interface, and a number of visualisation methods for the datasets. [Preferably using OpenGL].
MC-2: A Comparative Study of Information Visualization Methods
This project allows a student to identify a large dataset, such films made around the world, soccer match results, stock market data, network traffic data, or any other appropriate datasets. The project will focus on the two aspects, (i) to conduct a user study to compare the effectiveness of different methods, and (ii) to implement a user interface to support the user study. As an option for a greater effort, the student will attempt to design a new visual representation to address the shortcomings of the existing ones.
MC-3: e-Management Tool
In the first part of this project, the student will conduct an “audit” about the current provision of e-management in Swansea University. It is expected that the student will identify a number of aspects where adoption of an e-management practice will improve the efficiency and effectiveness of the management as well as relieve more staff time for the core business, that is, research and teaching. In the second part of this project, the student will tackle one of the identified shortcomings by designing and implementing a prototype e-management tool to demonstrate the feasibility.
MC-4: Vehicle Detection and Recognition (Industrially-Related Project)
This is a project proposed by an external industrial partner. The main aim of the project is to study the feasibility of the whole concept from the perspective of statistical error analysis. In the project, the student will construct a laboratory environment (yes, you will have “pocket money” to buy model cars) for analysing errors at various stages of a practical vehicle detection and recognition pipeline, including image capturing, image processing, model reconstruction, image- or model-based database queries, environmental variances and human errors. This project involves a substantial literature survey in areas of image processing and computer vision, and also requires a hand-on approach to experience various stages of the vehicle detection and recognition pipeline. (This project offers a very broad scope and it can accommodate two project students).
MC-5: Data Flow Atlas (Industrially-Related Project)
This is an academic project to be carried out in parallel with an industrial project. The main aim of the project is to conduct a comprehensive study on the process of developing and maintaining a data flow atlas as software engineering process. In the project, the student will compare and contrast typical software engineering processes and cartographical processes, and will conduct a number of case studies, including visiting a small number of companies. The goal of the project is to define a special software engineering process (or a few) that can be deployed, efficiently, effectively and economically, in an industrial setting.
Dr Parisa Eslambolchilar Dr. Parisa Eslambolchilar’s are of research interest include dynamics, continuous interaction and gestural interaction with small screen devices.
PE-1: Reminding framework for elders with mild dementia
Dementia occurs much more frequently in the elders who exhibit impairments of memory. This project will investigate a context aware reminding framework intended to help elders improve their level of independence and quality of life using vary simple and accessible technologies.
For the reminding framework explained above (see PE-1) a scheduling mechanism can be designed which handles time-based and event-based reminding services. For instance, if the patient has forgotten to take their medication on a certain time, the system, which has learnt the pattern over a period of time, sends an SMS to the patient’s mobile phone.
PE-3: Object avoiding wheeled robot One exciting research topic in vehicle control is third party and driver safety in accidents. Within this project, interest is pointed toward the automotive applications of Phidgets specifically regarding the authorisation and automatic control of the stopping distance of an automobile. Some manufacturers have already implemented technology for these purposes. In this project you will design a system that includes a wheeled vehicle (uni-or bi-wheeled), i.e., moving object. As soon as the vehicle gets close to an object (50 cm distance) the system will present a warning message on the LCD display or any other warning system (you are allowed to use audio and haptic display as well). If the safety distance reduces to 20cm you have to stop the vehicle and change the direction. You are allowed to use any Phidget sensor or Lego MindStorms robots.
PE-4: Line tracker
The Lego MindStorms robots are wonderful new toys from which a wide variety of robots can be constructed, that can be programmed to do all sorts of complicated tasks. Tracking lines is one of the most important research topics in the field of robotics and artificial intelligence (AI). This project is an exciting hand-on-practice research project for a motivated student.
PE-5: Doppler perception
Reducing the user's visual attention to small screen devices in mobile situations by employing other modalities, for instance touch and hearing is one of important research topics in Mobile Human-Computer interaction. This project will investigate the usability of Doppler feedback in browsing on small screen devices using a tilt sensor.
PE-6: Hick-Hyman law study in auditory/haptic interfaces
Fitts' law is one of the most reliable human-computer interaction predictive models in graphical user interfaces. However, in auditory interfaces as audio targets are invisible it is unclear whether Fitts' law can be applied. This project will study Hick-Hyman law in auditory/haptic interfaces where targets are located or activated randomly and answer questions, for example, how long do users need to familiarise themselves with the system?
PE-7: Classifying human operator's intentional and unintentional behaviour in the interaction
Classifying user behaviour is an important issue in mobile situations especially when the user is interacting with the mobile device using a tilt sensor. During the moments the user is not looking at the screen and is involved in other tasks, i.e., answering a phone call any hand motion causes unwanted tilt input and it affects controlled variables in the application. Thus, recognising unwanted input patterns helps in toggling off the input automatically.
PE-8: Retrieving and sonifying information in documents using Focus+Context visualisation techniques (e.g. fisheye lens) for browsing
Sonifying data in documents, while browsing using focus in context techniques, is a novel approach and can be an exciting student project. This sonified information help the user to feel and even understand data while they are browsing using a fish eye lens, for instance.