Вы находитесь на странице: 1из 40

Computer Science

Gwyddor Cyfrifiadur
Project Selection Brochure

March 2009

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

PRIFYSGOL ABERTAWE
SWANSEA UNIVERSITY
Table of Contents
Introduction.........................................................................................3
Selection Timeline..............................................................................4
Project Timeline..................................................................................5
Document Structure............................................................................7
The Projects........................................................................................8
Dr. Arnold Beckmann (a.beckmann@swan.ac.uk)...........................8
Dr. Ulrich Berger (u.berger@swan.ac.uk)........................................9
Professor Min Chen (m.chen@swansea.ac.uk).................................10
Dr. Parisa Eslambolichar (P.Eslambolchilar@swansea.ac.uk)........11
Dr. Phil Grant (p.w.grant@swan.ac.uk)............................................12
Dr. Neal Harman (n.a.harman@swan.ac.uk)....................................13
Dr. Mark Jones (m.w.jones@swan.ac.uk).........................................14
Dr. Matt Jones (matt.jones@swan.ac.uk).........................................14
Dr. Oliver Kullmann (o.kullmann@swan.ac.uk)..............................15
Dr. Robert Laramee (r.s.laramee@swansea.ac.uk)..............................17
Professor Faron Moller (f.g.moller@swan.ac.uk)...............................19
Dr. Ben Mora (b.mora@swan.ac.uk)................................................19
Professor Peter Mosses (p.d.mosses@swan.ac.uk)...........................20
Dr. Markus Roggenbach (m.roggenbach@swan.ac.uk)....................21
Dr. Monika Seisenberger (csmona@swan.ac.uk)..............................22
Dr. Anton Setzer (a.g.setzer@swan.ac.uk)........................................23
Dr. John Sharp (j.a.sharp@swan.ac.uk)............................................26
Dr. Roger Stein (r.d.stein@swan.ac.uk)............................................26
Professor John Tucker (j.v.tucker@swan.ac.uk)..............................29
Mr. Chris Whyley (c.j.whyley@swan.ac.uk).....................................29
Mr. Max Wilson(m.l.wilson@swansea.ac.uk)..................................30
Dr. X. Xie (x.xie@swansea.ac.uk).....................................................31
Industrial Projects...............................................................................32
Students’ Projects................................................................................38
Industrially Related Projects...............................................................38
Intellectual Property Rights.................................................................38
Selection Form....................................................................................39
Students’ Project Form........................................................................40

2
Introduction
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,
Verification 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.

3
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
http://cs.swan.ac.uk/~csbob/admin/projectFair/.
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
4
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
5
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
(3rd year project coordinators)

Document Structure

Initial Document (Semester 1 Week 3)


Length: 15-20 pages.
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
6
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.

7
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
8
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.
[1] 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.
[2] 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

9
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).
[3] R. Hinze. Memo functions polytypically!. Proceedings of the Second
Workshop on Generic Programming, Ponte de Lima, Portugal, 2000.
[4] 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

10
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.

PE-2: Hybrid reminding framework


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
11
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.

Dr Phil Grant
PWG-1: Solving Kakuro using Constraint Logic Programming over
Finite Domains
Kakuro is a puzzle which has recently become popular and appears in many daily
newspapers. Sicstus Prolog has a library (clpfd) for handling constraints over finite
domains. The constraint solver is very efficient and makes it ideal for tackling this
puzzle. The Kakuro solver will be written using the clpfd library and a UI will be
designed using PrologBeans (a Java interface to Prolog). An investigation into
generating Kakuro puzzles should also be undertaken and attempt to classify the
difficulty of the puzzle.

PWG-2: Using Pattern Databases to solve sliding puzzle problems


There are standard algorithms such as A* and IDA* for solving puzzles such as the
15 and 24 puzzle. However, in order for efficient solutions, good heuristics are
required. One way to obtain good heuristics is to obtain complete solutions to
subproblems by exhaustive search and then combine these to produce admissible
heuristics, thus guaranteeing optimum solutions. The solutions to the subproblems
12
are called pattern databases. The project is to produce different pattern databases
and compare their efficiency in solving the complete puzzle.

PWG-3: Membrane Computing


A new theoretical model of computation has been developed by Paun, called a P
system. This is a parallel Molecular Computing model based on processing
multisets of objects in cell-like membrane structures, being inspired by the
behaviour of biological cells. A simulator for such systems and their many variants
is to be constructed and several programs for P systems developed and illustrated.

PWG-4: An Investigation and Simulation of two Sorting Algorithms


based on Natural Computing
The project involves both a theoretical study and simulation of two recent sorting
algorithms, bead sort and rainbow sort. Both are physically based algorithms, one
relying on beads dropping under gravity to perform a sort and the other using the
physical properties of light and prisms to undertake the sort. Both algorithms have
complexity better than sorting based on comparisons. The simulations should be
used to illustrate the ideas.

PWG-5: Solving Tantrix using Genetic Algorithms


The game of Tantrix™ provides a challenging, mathematical and graphic domain
for evolutionary computation. The simple task of forming long loops of colored
arcs quickly becomes a search nightmare for humans and computers alike as the
number of game pieces scales linearly. The aim is to use a genetic algorithm to
solve several types and sizes of Tantrix. The technique is described in the recent
article Tantrix: A Minute to Learn, 100 (Genetic Algorithm) Generations to Master
by K. L. Downing, Genetic Programming and Evolvable Machines, 6, 381–406,
2005.

PWG-6: Discovering Possible Taxicab Numbers using Probabilistic


Algorithms
The n-th taxicab number is the smallest number expressible as the sum of two cubes
in n different ways. Taxicab(2) = 1729 and was introduced by Ramanujan. Taxicab
numbers up to 5 are known, but taxicab(6) is only known to be correct within a
certain probability as a 21 digit number. The project is concerned with computing
such numbers or finding taxicab(6) to a high probability. The starting point is a
paper ‘What is Taxicab(6)’ by Calude, Calude and Denning. Other similar type
problems can be investigated.

Dr Neal Harman
Neal Harman’s research interests include algebraic specification of hardware,
algebraic specification languages and environments, and formal specification
methodologies. Students wishing to discuss a project with Dr. Harman should talk
to him during the project selection fair or call on him in his office (Room 301).

Dr Mark W. Jones
This year I will offer projects on Ray Tracing with different areas of research /
emphasis.
The first part of each project will be to implement the technique of ray tracing as
demonstrated in the level 2 Graphics course. The primary areas of coding will be

13
the 3D viewing transform, an efficient triangle intersection test, the Phong shading
model, the use of an open source mesh reader, texture mapping and a kd-tree.

MWJ-1: Emphasis on global illumination


The secondary area of this project will be to introduce aspects of global
illumination and BRDFs into the ray-tracer to provide high quality images.

MWJ-2: Emphasis on kd-trees


The secondary area of this project will be to improve the efficiency of ray tracing by
trying out various optimisations and heuristics for building the kd-tree. A very
successful project will provide artefact free visualisations of various test models,
and will include a thorough analysis of the performance of the ray tracer (including
the performance of various heuristics used for building the kd-tree, relating run-
time to size of model, and any other optimisations that are implemented).

MWJ-3: Emphasis high dynamic range


The secondary area of this project will be to implement techniques to support high
dynamic range and environment mapping.
Other variants are possible to suit your interest.

Dr Matt Jones
Matt Jones is interested in interaction design especially of mobile devices and
services. He is also keen to show how computer science can positively shape
communities and society.
In addition to the projects listed below, he would be keen to talk to students about
their own ideas in these areas. More info at: www.undofuture.com

MJ-1: Pico Projectors for Mobile Information Access


Pico projectors are mobile-phone sized devices that can project video output - a
data projector you can hold in your hand.
This project will investigate the value and uses of such a device for mobile
information access in a range of realistic contexts. We will provide you with the
projector and starting points for information visualization / interaction schemes.
You will build and evaluate prototypes.

MJ-2: Gestural Interaction with non-mobile computers


How can we make lectures even livelier by combining sophisticated gesture sensors
with a large-screen display?
The aim is to research, implement and evaluate successors for
the current ‘next-slide’ clickers.

MJ-3: Gestural/Haptic interaction with mobile devices


Some of our recent research has looked at interacting with the environment using
basic vibrotactile feedback (we have a tech report you can read) - different pulses to
mean different types of information, and the buzz increasing in intensity to guide
the user to a target.
Could this be enhanced by providing a richer haptic feedback interface? What sorts
of alternative feedback could be used - multiple vibrator motors, one device in each
hand etc, and how could this be integrated into a device that people might actually
use (i.e. mobile phone)?

14
MJ-4: Exertion interfaces
There has been a range of research into providing systems to support or to be driven
by exercise. I am interested in any proposals that build on such previous pieces of
literature. You might be interested in improving skill (say in running or surfing);
encouraging healthier lifestyles; or just providing new ways to have fun.
MJ-5: My Virtual Bookshelf
I download lots of reports, research articles etc. I’d love to have them visualised on
a large-screen display. I’d love even more to be able to interact with this
information – e.g. touching the display with a mobile device to take that document
away with me when I travel. This project will look at related research in this area
and develop and evaluate a prototype.

Dr Oliver Kullmann
Main fields of interest:
Development of the OKlibrary, an open-source library for "solving hard problems",
see http://ok-sat-library.org, which is about algorithms and implementations for
hard algorithmic problems, and all connected aspects (for example combinatorics or
software engineering), and applications of such methods to various areas
(verification or optimisation, for example).
Besides that, in the rare case that your are interested in mathematical foundations of
combinatorics, algorithmics, or complexity theory, there are plenty of opportunities
(which are perhaps better discussed personally).
Some concrete projects related to the OKlibrary:

OK-1: Graph isomorphisms and beyond


There are interesting algorithms out there, which should be studied and compared
(mostly experimentally). And then we want to apply these algorithms (and their
implementations, possibly our own, and definitely available open-source
implementations) to a number of problems, and see what can be done (and how).

OK-2: Documentation for a holistic open-source library


The OKlibrary introduces some novel software engineering approaches, first of all
that of a "holistic library", which roughly said gives every user the same power as
the creator --- with respect to every aspect!
Documentation in its many forms (extracted and created, HTML and Latex, about
technical details and about the basics, etc.) is crucial, and the OKlibrary offers a
"recursive" multi-layered scheme. When you are about to start your project, this
might be just the right time to really getting it into shape! Of course I don't mean
here the specific texts, but the whole (open-source) system, rom style-sheets to
automatically extracted class diagrams, rom specific foundational documents to
the Internet page nd mailing lists.
You need to be a bit well-organised for that project, and better you shouldn't fear a
task with many facets --- but then it might be just right for you!

OK-3: Counting queens


Perhaps you've heard about the 8-queens problems, how to place 8 queens on a
chess board so that none of them can capture any other. There are 92 such solutions.
Only recently the number of possibilities for a 25 x 25 board has been counted ---

15
do you dare to attack the 26-queens problems?! This project is about to study given
implementations, comparing them, and perhaps coming up with something better.

OK-4: Enigma 1277: A tough nut


>From New Scientist:
"Draw a 4-by-4 grid. Colour each square red or blue. Select any square, S, and
write 1 in it. Then write 1 in every square you can reach from S by a series of
moves, where each move is from a square to an adjacent, horizontally, vertically or
diagonally, square of the same colour.
Select any empty square, T, and write 2 in it. Then write 2 in every square you can
reach from T by a series of moves. Repeat this procedure for 3 and then 4 and so
on until every square has a number. The last number you write down is called the
``score'' for that colouring. If we imagine the grid is the map of a farm, then you
have divided the farm into fields, one field for each number.
1. What is the largest score possible?
2. If we work with a 5-by-5 grid, what is the largest score possible?"
The goal of this project is to perform a comparative study in the various methods of
"automated reasoning" for handling this problem (and various generalisations), like
- SAT solvers
- Constraint solvers
- Integer programming solvers
- Logic programming solvers
- Automatic theorem proving.
The OKlibrary provides a platform and work bench. The problem also has several
more theoretical facets which could be explored, like solving it in general, or
showing that generalisations are actually "really hard" problems (or not).

OK-5: Visualising search trees


A previous project has produced a C++ library for drawing very large trees
(possibly millions of nodes). The geometry of the trees is handled well, but
colouring of nodes (to show how some properties of nodes are distributed) is
handled yet only in a simple form. Your task is to study the use of colouring
schemes in this context, and to improve the library. Another very interesting task
is the application of these visualisation tools to trees produced by search
algorithms from artificial intelligence (like search trees produced by SAT solvers).
The previous project used Qt, but possibly OpenGL is more suitable.

OK-6: Solving large Sudoku problems


Sudoku problems for arbitrary dimensions (not just the standard 9 x 9 problems)
are NP-complete, i.e., they are hard combinatorial problems, which can express a
large number of other problems (like colouring problems or satisfiability
problems) relevant for practice.
This project will first give a thorough review of the literature on Sudoku (and
beyond). Then we investigate methods for creating large problems, and, of course,
also for solving them.

OK-7: Belief propagation


Belief propagation is a powerful method in AI, constraint solving and engineering
to estimate certain probabilities ("beliefs"). In [Maneva: Belief propagation
algorithms for constraint satisfaction problems, 2006] it has been shown that a
certain generalisation also is able to capture "survey propagation", a fascinating
propagation method from statistical physics, which is especially successful on

16
large random problems. We want to look into these algorithms, implement some
of them, and we want to experimenting with our and other implementations.

Generic projects:
OK-8: Algorithms and implementations for satisfiability problems
(several projects)
In CS-232 at the end we touched the satisfiability problem. Here is your chance to
get more involved in it, either from the practical or from a more theoretical side.
You could work on a certain aspect of the OKlibrary, or apply it to solve some
problems, or you might test its performance, try to analyse its cache behaviour, ...
If you found some interest in SAT, and you also don't shy away from C++, then
speak to me, so that we can find something for you. If you actually do shy away
from C++, then you might like programming in Maxima/Lisp, a very convenient
computer algebra environment. (Of course, more theoretical projects are also
possible.)

OK-9: Graph theory: Theory, applications and implementations


(several projects)
If you find graph theory in any of its aspects interesting, please come and see me,
so that we can find an appropriate mix of theory, applications and
implementations for you (from pure theory to pure implementations everything is
possible). No special knowledge required other than interest in graphs.

Dr Robert Laramee.
Robert S. Laramee is a member of the visual and interactive computing group.
His research is focused on to use computers and their graphic capabilities in order
to generate images, either automatically or interactively, from data, in order to gain
insight into that data.
Visualization is also a very application-oriented field of computer science. Thus,
any project undertaken with Bob will allow you to finally apply those theoretical
skills learned in lectures, improve your programming ability, and supply you with
other necessary skills that are directly applicable both in the real world and in
research. Visualization is also very rewarding because you can actually see the
results of your work and easily show it to others. The following projects are only a
sample of suggested topics. If you would like to discuss other possibilities, please
contact Bob directly. Note also that an effort will be made to tailor the projects in
order to suit the student's interests.

RSL-1: Visualizing Brain Activity Data


Cognitive Psychologists spend a lot of time studying the brain and its behavior.
Some do this by measuring the brain electrical activity using something called an
electroencephalogram (EEG) in order to monitor and study the voltage fluctuations
that can be measured at the human scalp. Currently, scientists use very primitive,
2D line plots to visualize the data collected during the brain activity monitoring
process. This project aims to develop more sophisticated 3D visualization
techniques to analyze and present the data. This project is in fact inter-disciplinary
and involves collaboration with the department of psychology.

RSL-2: Visualization of Animal Tracking Data

17
A new area of biological research is identifying and grouping patterns of behaviour
in wild animals by analysing data obtained through the attachment of tri-axial
accelerometers. As these recording devices become smaller and less expensive their
use has increased. Currently acceleration data are visualised as 2D time series plots,
and analyses are based on summary statistics and the application of Fourier
transforms. The goal of this project is to develop alternate visualisations of this
data so as to analyse, explore and present new patterns of animal behaviour.
Some possibilities include interactive spherical scatterplots, spherical histograms,
clustering methods, feature-based state diagrams, as well as the use of multiple, co-
ordinated linked views of the data.
This project studies the application of visualisation methods to accelerometry data
from animal movement. This project can involve collaboration with the Biology
department.

RSL-3: Special Topics in Information Visualization: Interactive


Parallel Coordinates
Information visualization is concerned with the depiction of abstract data, that is,
data with no inherent geometry, e.g., a list of names and addresses. Parallel
coordinates (google "parallel coordinates") is a classic information visualization
technique. This project is the implement the standard parallel coordinates
visualization including associated interactive features that allow the users to tune
the result. The standard algorithm will then be enhanced in some way, for example,
by adding some advanced features.
Of course other special topics in information visualization are possible.

RSL-4: Special Topics in Information Visualization: Extending the


World Mapper
The world mapper project (www.worldmapper.org) generates maps of the world in
a way you've never seen before by distorting the size and positions of countries
based on attributes such as population, manufacturing, and resources. This project
intends to add some missing features to this software including the ability to
interact with the maps using the mouse and solving a correspondence problem, i.e.,
easily identifying countries after they have been distorted. Of course other special
topics in information visualization are possible.

RSL-5: Human-Centered Evaluation of Transfer Functions used in


Volume Rendering
A fundamental concept used in volume rendering is described as a transfer function.
Transfer functions determine which subset of a 3D data set is visible to the user at
rendering time. And there are many different transfer functions available to the user
depending on what the user is interested in seeing. This project aims to carry out a
human-computer interaction study in order to evaluate several transfer functions
relative to one another. The goal is to find out which transfer functions are
appropriate for basic visual search tasks from a human-centered point of view.

RSL-6: Special Topics in Flow Visualization: Visualizing Boundary


Surfaces from Computational Fluid Dynamics Data
Computational Fluid Dynamics (CFD) is the discipline of predicting the behavior of
flow as it moves through some space, in a quantitative fashion. For example, CFD
is used to study the behavior of a liquid as it travels down a winding pipe. The goal
of this project is to visualize given CFD simulation data at the boundary surfaces of
various geometries such intake ports, cooling jackets, and other automotive
components. Of course other special topics in flow visualization are possible.
18
RSL-7: Special Topics in Scientific Visualization: Isosurface Extraction
Illustrated
Isosurfacing is a classic visualization technique used in volume visualization.
Isosurfaces are surfaces of constant scalar value (google "isosurfaces") and provide
very valuable insight into scientific data. Marching Cubes (google "marching
cubes") is the most well known isosurface extraction technique. This project's goal
is to write a pedagogical, illustrative, interactive version of the marching cubes
algorithm that can be used to teach others how the algorithm works. Of course
other special topics in scientific visualization are possible.

RSL-8: Visualization of Document Triage Data


Document triage is the critical point in the information seeking process when the
user first decides the relevance of a document to their information need. This
complex process is not yet well understood. Computer scientists from the human-
computer interaction (HCI) community have carried out several HCI experiments in
order to investigate this information seeking process in both electronic and paper
media. The goal of this project is to explore and investigate means by which to
visualize the document triage data. This project may involve collaboration with a
member(s) of the HCI group. The feasibility of this project depends on the
availability of corresponding HCI scientist.

Prof Faron Moller


Professor Moller's research interests span Theoretical Computer Science, mainly
centred on logic and verification but also in algorithms and complexity theory. He
is willing to propose and explore any topic with any student who has strengths and
interests in mathematical/logical/theoretical aspects of Computer Science. Such
students are welcome to knock on his door.

Dr Benjamin Mora
BM-1: Writing text with the 3D OpenGL library.
OpenGL is a powerful library, but does not provide the ability to write text inside a
3D window. The project will consist of finding the best way to write some text
inside an OpenGL window using OpenGL calls.

BM-2 and BM-3: CUDA library.


CUDA is a powerful library to allows using the GPU for common non-graphical
tasks that require much floating-point processing power, like large mathematical
simulations. One project will be around video compression while the other will be
on ray-tracing on a GPU. A CUDA unit should be available.

BM-4: Better 2D OS interfaces.


Current windowing systems (especially under Windows) are very neat, but are
cumbersome for experienced users. In this project, the student will have to model
better ways of interacting with windows inside a graphical interface, possibly using
3D hardware!

Professor Peter Mosses

19
Peter Mosses’ research interests include algebraic specification languages,
advanced support tools (ASF+SDF, Maude, Stratego), and formal description of the
syntax and semantics of programming languages.

PDM-1: Object-oriented modelling and simulation using Modelica


"Modelica is an object-oriented language designed to allow convenient, component-
oriented modelling of complex physical systems, e.g., systems containing
mechanical, electrical, electronic, hydraulic, thermal, control, electric power or
process-oriented subcomponents" [http://www.modelica.org/]. A model of a
component is described using differential and algebraic equations, and components
are combined into complex systems using graphical editors (see the overview
article at the above site). Extensive libraries of reusable components are freely
available. Modelling and simulation are scientifically interesting, and widely used
in industrial design.

The project involves studying how to use Modelica, constructing a model of a


nontrivial system, and generating a graphical simulation of the modelled system
using the available tools. The student should be familiar with differential equations,
and have an interest in simulation of at least one of the mentioned kinds of physical
system; students aiming at an industrial career should find this project particularly
attractive.

PDM-2: Parsing and running programs using the Meta-


Environment
The TPL course (CS-216) gives a grammar and a semantics for a simple
programming language called WP. It should be possible to generate a parser for WP
programs directly from the given grammar, and to generate an interpreter from the
semantics, allowing WP programs to be parsed and run (and thereby testing the
grammar and semantics).

The project is to generate such parsers and interpreters using an advanced tool: The
Meta-Environment [http://www.meta-environment.org]. This tool can generate
parsers for general context-free grammars – in contrast to lex/yacc or Javacc, which
can handle only restricted kinds of grammars – and evaluate terms using rewriting
rules (more efficiently than Maude!). The project would be suitable for a student
having a good grasp of TPL and functional programming.

PDM-3: Parsing programs using Prolog


Definite Clause Grammars (DCGs) are far more powerful than context-free
grammars: they can deal with context-sensitive features such as type-checking.
Generation of parsers from DCGs is a standard feature of Prolog implementations.
The project involves the study of DCGs – they are fully explained in a free online
book [http://www.learnprolognow.org/] – and investigation of their usefulness for
parsing programming languages. The project combines theoretical and practical
topics, and should suit students with a good grasp of basic logic programming
techniques.

PDM-4: CSS features in LaTeX


Cascading Style Sheets (CSS) allow the layout of web pages (fonts, colour,
position, etc.) to be specified separately from their content (hierarchical structure,
text, images, etc.). However, CSS can also be used for the layout of books
[http://www.alistapart.com/articles/boom/]. The project involves studying those
features of CSS relevant for book layout, and designing and implementing
20
corresponding commands in LaTeX. The result should be a LaTeX package that
supports better separation between layout and content – possibly providing a new
way of generating both PDFs and web pages from the same LaTeX sources.
Previous familiarity with CSS is not required.

Dr Markus Roggenbach
Markus Roggenbach’s research interest is formal methods, from semantical
foundations through tool support to industrial applications. However, he supervises
projects on all sorts of other topics, including algorithmic topics, studies on
programming language, or industrial related projects.

MR-1: Producing Magic Moving Images

Optical illusions have fascinated mankind ever since. A ‘magic moving image’ -
see Picture 1 - encodes a sequence of several images. Taking a partially transparent
overlay - see Picture 2 - makes a single image visible - see Picture 3. Moving the
overlay over the magic moving image shows apparent motion.

In the project, the student shall write a software that automatically encodes a
sequence of several images into a ``magic moving image'' and that simulates the
effect of the overlay.

MR-2: Tool support for White Box Testing


My program is written, the deadline is close - however: does my program really
work as it should? Well, I better do some tests - not too many, of course, time is
pressing. However, how to come up with some good tests?
This project shall focus on the technique of White Box Testing, where tests are
selected using information extracted from the program text.
MR-3: Correcting Typos
If you type into google the string "rooggenbach", part of the response is the
question: "Did you mean: roggenbach?" The algorithmic technique behind this is
called Approximate String Matching.
The student will compile a survey of such techniques, implement selected
matching algorithms and measure their performance.

MR-4: Concurrency - Programming with JCSP


JCSP provides a complete library for building complex functionality through
layered networks of communicating processes. It conforms to the CSP model of
communicating systems so that twenty years of theory, tools and practical
experience can be brought to bear in the support of Java multi-threaded
applications.
The student shall implement a concurrent system in JCSP, verify its concurrent
aspects with the model checker FDR, and - should time allow this - add a new
operator for optional parallelism to the JCSP library.
21
Dr Monika Seisenberger
MS-1: Comparison of Interactive Proof Assistants
Interactive proof assistants are powerful tools used for both the formalisation of
mathematical theorems and the specification and verification of hardware and
software. In the book `The Seventeen Provers of the World', LNCS 3600, 2006, 17
theorem provers are introduced and compared by means of a given example.
Objective of this project is to choose a few of these theorem provers and to compare
them in more detail eg with regard their ability to formalise (co)inductive proofs or
verifying/extracting programs.

MS-2: Specification and Verification in Maude


The aim of this project is to explore the state of the art of Maude and to come up
with new specification examples which may be used in the System Specification
module in future. Depending on the interest of the student this project may also be
extended to examine Maude ITP a tool built on Maude which can be used for the
verification of programs.

MS-3: MINLOG into English


The objective of this project is to create a module that translates machine generated
proofs, i.e. proofs which have been generated using the interactive proof system
Minlog, into Latex code. A prototype of such a translator exists. Background:
Logic, Functional programming.

MS-4: Computer Science for the Blind


A blind person studying Computer Science comes across many problems such as
accessing visual information or the use of tools that are not compatible with screen
readers. The objective of this project is to explore available solutions for the blind
and to come with own solutions which support a blind student. This may include
the automatic creation of audio-tacile information or research into OCR systems or
on a more general level, looking into ways of supporting programming for the
blind. Students interested are advised to have a chat with me to explore possible
applications.

MS-5: Automatic Coursework Marking Tool


The objective of this project is the build a tool which automatically marks JAVA
programming assignments. Ideally, the tool checks whether a submission compiles,
yields the desired output when run on a set of specific inputs, and fulfills a certain
number of given criteria.

MS-6: Gender issues in Computer Science


This project is on the Gender Imbalance in Computer Science. It should investigate
the development of the situation during the past years and study relevant research
projects in the literature. Ideally this project will come up with ideas of how to
improve the situation regarding gender imbalance in our department.

Dr Anton Setzer

AGS-1: Generative Programming using the C++ Library Loki.

22
Andrei Alexandrescu has written a fascinating book “Modern C++ Design.
Generic Programming and Design Patterns Applied.”, Addison-Wesley, 2001.
In this book he documents the library Loki, which simplifies the development
of highly generative programs in C++. This library exploits the limits of the
template mechanism of C++ and is an example of highly advanced programming
techniques. The goal of this project is to study this library in depth and carry
out some small case studies in it.
Language requirements: C++. It is part of the project to learn C++ in depth.
Any software written should run under Linux and the Gnu compiler.

AGS-2: (can be taken by up to 3 students) Development of verified


software.
This project is a case study in the research area with the goal of defining
programming languages for the development of verified correct software. Such
programming languages are especially needed in the area of safety critical systems
– computer systems, the failure of which might cause death or injuries of human
beings. Examples of safety critical systems are the steering of an air plane system,
control of railway systems and medical software.
One promising approach for developing secure software is the use of the new
program language paradigm of dependent type theory, and the goal of this project is
to carry out some case studies based on that approach.
In dependent type theory, it is possible to develop programs in an ordinary way.
However, we can as well specify algorithms more precisely. For instance, we can
express that a sorting algorithm is a function mapping lists to sorted lists (rather
than stating that it as a function from lists to lists as it is done in other languages).
Developing algorithms, which fulfil such more precise specifications, takes longer,
but is rewarded by the fact that the correctness of the result is guaranteed.
In this project we will make use of the IDE Agda http://unit.aist.go.jp/cvs/Agda/,
see as well http://www.cs.swan.ac.uk/~csetzer/lectures/intertheo/07/index.html,
a relatively easy to use system for developing programs in dependent type theory,
which is as well used in the interactive theorem proving part of the module
interactive theorem proving (CS 336). In the past, students enjoyed using that
system very much.
In this project we will focus on relatively easy case studies. One goal would be the
development of verified sorting algorithms using this new technology, i.e. to write
existing algorithms in Agda and verify (using already existing proofs in the
literature) that they convert lists into sorted lists having the same algorithms.
Another topic would be the verification of simple properties of matrix
multiplication, which have well-documented proofs in the literature, or to verify
basic algorithms like the gcd. Ideas of students for interesting algorithms to be
verified in this project would be most welcome.
Language requirements: Agda version2. It will be part of the project to learn that
language. Agda can be installed under Windows, Macintosh and Linux.

AGS-3: Modelling of distributed algorithms in Agda


The motivation for this project is as that of the previous one. The goal would to
model a basic concept for distributed algorithm, as they occur for instance in
networking, in Agda, to model distributed algorithms in them, to simulate them and
23
to verify basic properties, based on informal proofs which are well-documented in
the literature.
Language requirements: Agda version2. It will be part of the project to learn
that language. Agda can be installed under Windows, Macintosh and Linux.

AGS-4: A user manual for Agda.


Agda (http://unit.aist.go.jp/cvs/Agda/, see as well
http://www.cs.swan.ac.uk/~csetzer/lectures/intertheo/07/index.html) is the system
of dependent type theory used in the above-mentioned projects.
It is as well the basis of the module interactive theorem proving (CS 336). The goal
of this project is to write a user manual for it, aimed especially at students in
Swansea studying this language for the first time. The lecture notes for the module
CS 336 already contain a substantial documentation of the language and some
examples, which can be used for developing this manual.
Language requirements: Agda version2. It will be part of the project to learn that
language. Agda can be installed under Windows, Macintosh and Linux.

AGS-5: Documentation of the architecture of Agda.


Agda (http://unit.aist.go.jp/cvs/Agda/, see as well
http://www.cs.swan.ac.uk/~csetzer/lectures/intertheo/07/index.html) is the system
of dependent type theory used in the above-mentioned projects. It is as well the
basis of the module interactive theorem proving (CS 336). The goal of this project
is to analyse the architecture of the Agda system and to document it in a better way.
This would form the basis for future additions and modifications of the Agda
system.
Language requirements: Agda version2. It will be part of the project to learn that
language. Agda can be installed under Windows, Macintosh and Linux.

AGS-6: Implementation of interactive programs in dependent type


theory
A. Setzer and P. Hancock have together developed a concept for the representation
of interactive programs in dependent type theory. This allows to have a
programming language in which verified interactive programs can be developed.
There exists an advanced implementation of dependent type theory (Agda,
http://unit.aist.go.jp/cvs/Agda/, see as well
http://www.cs.swan.ac.uk/~csetzer/lectures/intertheo/07/index.html), however the
new feature, which allows to execute interactive programs, is not implemented yet.
The goal of this project is to add such features. If time permits, some small
examples of interactive programs, like a small editor, should be carried out in this
system.
Language requirements: Agda version2. It will be part of the project to learn
that language. Agda can be installed under Windows, Macintosh and Linux.

AGS-7: Foundations of mathematics - Ordinal notation systems


Ordinals generalise the notion of a natural number to the infinite in a very natural
way. They are used in many studies on the foundations of mathematics, since they
allow to measure the infinite. For instance, cardinal numbers are some ordinals
which can be used to measure cardinalities of sets. We can use ordinals as well to

24
measure mathematical theories and therefore to determine the limits of what can be
proved in them.
An ordinal notation system is a set of terms denoting ordinals. The goal of this
project is to study simple ordinal notation systems and to prove the standard
conditions on ordinal notation systems (linearity and well-foundedness). This
project can be done purely theoretically, or we can start developing some of this
theory using the theorem prover Agda.
Language requirements, in case ordinal notation systems are implemented in
Agda: Agda version2. It will be part of the project to learn that language.
Agda can be installed under Windows, Macintosh and Linux.

AGS-8: Verification of interactive programs in Agda.


Agda is an interactive theorem prover, which is used for developing provably
correct programs. Several projects based on it have been carried out. Agda is used
in the module interactive theorem proving (CS 336). Anton Setzer has recently
developed together with other researchers the theory of interactive programs in
dependent type theory, and the goal of this project is to develop some of this theory
in Agda. A substantial code basis has already been developed, and the main goal of
this project would be to improve and cleanup that existing code basis.
Language requirements: Agda version2. It will be part of the project to learn
that language. Agda can be installed under Windows, Macintosh and Linux.

AGS-9: Philosophy of Computer Science


The goal of this project to obtain an overview over the area of Philosophy of
Computer Science. What are the questions asked? Who are the key researchers of
this area? What kind of literature does there exist? If the student is particularly
interested in one particular area of philosophy of computer science, we can dive
deeper into that area.

Dr John Sharp

JAS-1: Analysis of Programs for Potential Parallel Processing


The aim of this project would be to implement a tool which would analyse a
program in the same way as a compiler, but whose object would be to identify the
potential flow of control through a program when it is executed and determine
whether or not there are any parts of the program that could be executed in parallel.
A subsequent step could be to actually modify the program to be run in parallel
either by using a tool such as PVM for C programs, or by implementing threads for
a Java program. It would be possible for two (or more) students to work on
analysing programs written in different languages.

JAS-2: A program style analysis package


The assessment of a program submitted as coursework often comprises two aspects:
does it work? And how well is it written? The first is relatively easy to check
automatically (run it with typical input data). The second is harder to measure
automatically, but nevertheless it can be done (to some extent). By parsing the code
submitted checks can be made for features such as global variables, size of
procedures, use of if then else etc. The aim of this project would be to develop a
style analysis package, probably initially for Java programs, which would perform

25
simple style analysis on programs. Ideally the project should be modular so that
different analyses could be easily added, and adaptations made for different
languages.

JAS-3: Automatic testing of submitted coursework programs


It is tedious for a marker to compile and execute all programs submitted for a
particular piece of coursework. This project would aim to develop a system which
could automatically compile and execute programs and compare their outputs with
the desired output. In order to avoid unfairly penalising students who produce
almost correct output (eg a missing space or blank line) there would be a need to
develop a method of specifying the desired output in a fairly flexible manner.

Dr Roger Stein

RDS-1: Timetable/Schedule Management


To create a timetable (e.g. exam or lecture) is one task, but typically after creating a
large timetable some changes are requested and these can be difficult to manage
because of all the conflicts that can occur. This project will look at implementing a
novel approach to managing a timetable. Imagine a board game with tokens set out
on a large grid. Each token represents an event to be scheduled e.g. CS-219 exam.
Each cell on the board represents a slot for an event e.g. 2.00pm Monday. An exam
timetable can be represented as piles of tokens on various cells on the board. If we
want to move the CS-219 exam, we just slide the token around the board and
(assuming this is now represented on a computer screen) we get immediate
feedback about whether there is a clash such as if a student who is taking the
CS-219 exam is also taking any other exam on that cell. We can then quickly
identify free slots. And we could even look at say moving CS-219 exam from
2.00pm Monday to 2.00pm Tuesday temporarily and then moving another token i.e.
exam with which it clashes, on to another slot, and maybe click 'undo' if it cannot
get a satisfactory conclusion.

RDS-2: VoiceXML
What is VoiceXML? What applications are suited to the use this technology? What
factors need to be considered when developing the user interface for VoiceXML
application? What software development methodology is best suited to developing
a VoiceXML application? This project will investigate and review the current status
of VoiceXML technology and seek to answer some of these questions by
implementing a suitable example application. (cf. www.voicexml.org and
www.w3.org/Voice/Guide/)
A possible example application is a student information centre. We could have a
database to which lecturers could easily upload marks and comments for module
coursework, and also module examination results. Students could then access their
coursework marks using a mobile phone through your VoiceXML application.

RDS-3: Twenty Questions


You may have played the game (www.20q.net) or bought the toy
(www.firebox.com and search by keyword "20Q"). Basically you think of an object
and then the system identifies it (usually correctly) by asking 20 questions. The
project will investigate artificial intelligence strategies for implementing this game.

RDS-4: Student Administration Support


I would like a system which would simplify and enhance the recording of
information for MSc projects / dissertations. The system would support the process
26
from the initial proposal of projects, through the allocation process, recording of
submissions and of final results. Management information should also be easily
made available, such as, the completion rates of students per academic year. An
alternative though possibly related system would be the management of final year
undergraduate projects. This could be separately implemented by another project
student. There are many aspects to both projects which would allow the
investigation of a variety of technologies to provide an up to date departmental
student information system benefiting both academic staff and students.

RDS-5: Mass Spectrometry Laboratory Information Management


System
The EPSRC National Mass Spectrometry Service Centre
(www.swan.ac.uk/nmssc/), which is based in the Institute of Mass Spectrometry,
Swansea University, provides a chemical analysis service for researchers in all
universities in the U.K. The current 5-year plan includes a major development of
the facilities for processing the application, submission and return of samples and
results, with a view to reducing costs and improving efficiency and turnaround
time. Previously a project was done to look at ways to automate the application for
a quota. This project will look at the process of sample submission. This is
currently paper based but we would like to see a web-based submission system
which will link in the data to the Centre's database and extract data to build sample
lists for processing by the mass spectrometers. The project will form part of the
development of a prototype Laboratory Information Management System (LIMS) to
satisfy the needs of the Centre.

RDS-6: Relational Algebra Interpreter


The project will develop a system which will allow students to enter and execute
relational algebra statements. The system may display the equivalent SQL query. It
will be preferable if any syntax/semantic errors are clearly reported to the user. As
part of the project specification we shall decide whether to support relational
algebra constructs to create the tables and data in the database or use an existing
database. The system can either be internet based or installed on a PC. Ideally the
application is aimed at a tool to support a course on relational databases.

RDS-7: Personal Information Manager


Older versions of Windows provided a program called Cardfile which allowed you
to create a simple database which was equivalent to a set of index cards. AZZ
Cardfile is a more modern replacement for that program (www.azzcardfile.com).
This project will develop something equivalent but web based. There are some
types of system already available e.g. if you want to record all the books you have
you could use the system at www.librarything.com. I have got several ideas on this
but you might be able to come up with your own?

RDS-8: LINQ
Microsoft has recently released the .NET Framework 3.5. LINQ (Language
Integrated Query) is a key component of that release and looks to be an important
development in tools to access database systems. It provides a common syntax for
accessing SQL data, XML data, object collections and other datasets. This project
will research the background to the language and develop an educational tool for
use by students on a database course. For example, an interactive LINQ execution
monitor or tool to learn LINQ. (See www.linqpad.net for an example.) The project

27
could alternatively concentrate more on LINQ's connections to functional
programming and the use of lambda expressions.

RDS-9: Allocation of Start Times for Orienteering Events


Orienteering is a sport combining cross-country running and navigation (map
reading) skills. Competitions typically involve several different courses with
competitors starting at different pre-allocated times. Large events (involving
hundreds or possibly thousands of competitors and maybe with multiple days) are
typically managed using electronic pre-entry systems (internet based) and on-the-
day electronic recording of start/finish times for results. What is missing is a simple
way to allocate competitors to start times. Currently this is handled by taking an
extract from the entry system and then someone messing around a lot with
spreadsheets/editors/paper and pencil to generate an import file for the on-the-day
system. The aim of the project is to assist with this process by providing tools for
the user and implementing in some cases an automatic allocation system. An
additional option is to enhance the pre-entry system to allow pre-selection of start
time by the competitor (in a similar fashion to selecting you aeroplane seat when
booking a flight). We hope to implement the project in conjunction with a leading
company in this field (www.fabian4.co.uk), though this will be agreed with the
student after selection of the project. The likely tools to be used for implementation
are VB.NET or C#.NET, ASP.NET and SQL Server (this may depend on how
closely we link the project to outside partners).

RDS-10: Matching Algorithms for Person-Based Records


This project is in collaboration with the Health Informatics Research Unit in the
School of Medicine (http://www.ils.swan.ac.uk/chiral_health_informatics.html).
Basically it is an investigation of algorithms for matching patient based records.
This is an important part of the work done in the ILS (Institute of Life Science)
where various medical records need to be merged into one large database for further
medical research. An overview of the project can be obtained from and initial
questions regarding it should be directed to Dr R D Stein.

RDS-11: Analysis of Vehicle GPS Data


This project is being done for the School of Medicine. In essence the project will
analyse large amounts of GPS data recorded from vehicles travelling around the
Swansea area and try to identify which traffic calming measures are having the best
effect, if any. An overview of the project can be obtained from and initial questions
regarding it should be directed to Dr R D Stein.

Prof John Tucker


John Tucker’s research interests include (i) programming and specification methods
and languages; (i) algebraic methods for modelling and specification, with
applications to microprocessors and volume graphics; (iii) computability theory for
topological data types, analogue computers and physical systems; (iv) synchronous
concurrent algorithms and dynamical systems. He is also studies the historical,
economic, social and cultural foundations of computing. Students wishing to
discuss a project with Professor Tucker should talk to him during the project
selection fair or call on him in his office (Room 309).

28
Mr Chris Whyley
CJW-1: Data Flow Analysis Tools for Java
ADA is a programming language often used for writing safety-critical systems, as
described in the module CS-313, High Integrity Systems. Spark Ada can be
regarded as a set of tools which statically analyse the flow of data within a legal
Ada program to ensure, for instance, that a function cannot have unexpected side
effects. The purpose of this project is to produce similar tools for the static analysis
of the data flow within Java programs. It is not necessary to learn Ada for this
project, but some research into the language will be required.

CJW-2: Contract Cheating Detection


Contract cheating websites where students buy solutions to courseworks are
becoming more prevalent. The purpose of this project is to buy some code from
several of these sites and analyse the code for quality. The code should also be very
closely examined for clues to see if tools can be written to automate the detection of
such code. This project would suit a student who enjoyed CS-218 – Compilers, and
is confident with tools such as jjtree, javacc etc.

CJW-3: Stylometrics
Stylometrics are the means by which various texts are analysed for “style” so that
another piece of work, alleged to be by the same author can be attributed. This
project seeks to determine whether or not different programming “styles” can be
detected and utilised in Unfair Practice detection. Requires good marks in
Compilers - CS-218, and lots of use of jjtree, javacc etc.

CJW-4: DotPlots
DotPlots are a fun and interesting way to compare two pieces of text for
similarities. The idea of this project is to see whether they can be usefully used to
discover possible plagiarism in software, or find duplicated code (for re-factoring)
etc.

CJW-5: AHDL Compilation from C (IR project with Dr. Proudfoot)


Flowcode is a package which provides a Flowcharting GUI which is translated to C
and thence compiled to (PIC) microcontroller assembly-language. It provides a
quick and simple route for the development of simple microcontroller-based
applications.
Given the synergy between software and hardware implementations, the similarities
between ASM (used to design sequential hardware applications) and flowcharts and
indeed the use of System-C as an HDL, it seemed reasonable that Flowcode might
be a possible “front-end” for Altera’s HDL (AHDL) used to specify fpga / cpld
asics.
An initial assessment has developed basic rules to produce AHDL from the
annotated C produced by Flowcode (attached). This project is to write a compiler to
automate this conversion. An interest in compilers is necessary as will be a
discussion with Dr. Proudfoot.

CJW-6: Is The Lecture Dead?


“Why don’t my students attend lectures”? “You can only learn to program by doing
it, not by attending my lectures”
If I can make both these statements, and believe in them then clearly I am confused.
The purpose of this project is to carry out a detailed study of lectures, what lecturers
expect and what students expect, specifically with the teaching of programming in
29
mind. This would not suit the very best student, but can offer a hard-working 3rd or
2/2 a chance to raise their final degree by at least one grade.

CJW-7: An Improved Taskbook for CS-141


The taskbook that you all filled in when you studied CS-141 has been admired (and
adapted) by several colleagues from other Universities. However, I feel that it is
“tired”, very vulnerable to plagiarism and needs revitilisation. The purpose of this
project is to integrate the way I now teach the course with a graphical demonstration
of the principles I teach, such as a robot maze solving problem.

Mr Max Wilson
Web search related topics:
(good for people who might one day want to work somewhere like google!)

MLW-1: Showing novelty in web search results


When people search on the web, many queries are vague and produce many similar
results. So which do you read first? The standard is to read the 2 lines of text under
each link that have your search terms in them. But wouldn’t it be better to say how
each page is different? Novelty detection research has begun to work out what is
unique about a website, compared to others. What we are interested in is what we
can do with that information in the search engine user interface! Involves using
something like the google API, processing web-pages, and running a user study.

MLW-2: Using thumbnails in web search


Some search engines put thumbnails of webpages next to each search result and
research tells us that thumbnails of web pages are useful for when people are trying
to re-find webpages they have found before - and research tells us that people do
this a lot! This project is exploring alternatives to putting one thumbnail per result,
such as all in a row across the top. Involves using something like the google API,
creating images, and running a user study.

MLW-3: What information did you miss during search?


There is so much information on the web, and Google is how most of us filter it
out. But what if we accidentally filtered out something useful? How would you
know? This project will explore how to tell people what they have just excluded
from their results, and how that helps people searching on the web. Involves using
something like the google API, processing web-pages, and running a user study.

Dr Xianghua Xie
XX-1: Computer Vision - Object Tracking
This year I am looking for one student to take on a computer vision project. It will
involve developing a computer vision algorithm to track a single object in a video
sequence. The object of interest can be a person or a moving vehicle. Tracking is an
important problem in Computer Vision and has numerous applications, such as
sport analysis (football, tennis, swimming etc.), wildlife conservation, and
surveillance.
The student needs to be very good at programming and has good mathematical
skills. This project will use an open source library, OpenCV. OpenCV is similar to

30
OpenGL but for computer vision tasks. So, previous knowledge on OpenGL will be
helpful but not essential.
If you are interested in practical computer vision problems and keen to learn more
programming through practicing, this project can be a good opportunity to do so.
If you are interested in other computer vision and image processing problems (for
example medical image analysis) but not necessary tracking, please feel free to talk
to me.

Industrial Projects
Working with an industrial partner on a project gives students very valuable
experience and makes for very impressive reading on their CV. Students selecting
one of the following projects will be assigned a supervisor during the summer. They
will also be encouraged to contact their chosen company to discuss the project with
them. Such meetings will usually take place with the supervisor.
As industry works on tighter time schedules IR projects are sometimes withdrawn
by the companies.
Other industrial projects may arise over the summer, especially as a result of
placements. Any student who finds (early on) that their placement could lead to a
possible project that they may wish to continue as their third year project should
contact Mr. Chris Whyley as soon as possible.

IR-1: Database Encryption – Client relationship Project


Company – 3x Software Ltd.
The basic data is supplied by Royal Mail, and, as a Value Added Reseller, 3X
Software Limited has taken the data and created addressing files for use on the IBM
iSeries computer, along with application software to maintain and distribute it on a
periodic basis (usually every 3 months).
There are written 3 Application Program Interfaces (APIs)
We now wish to modernise our application and make it available to a multi-
platform customer base. We will achieve this by:Developing the APIs in java to
make them portable and also to allow them to run on the IBM iSeries of our
existing customer base.
Designing and developing a graphical interface to enable customers to run the APIs
Incorporate additional features such as: links to maps, mailing list creation by
postcode etc.

IR-2: Dettica Consulting & Training Ltd


A project to research the causes of IT Project failures and how these failures could
have been mitigated through improved project governance. PRINCE 2 is the de
facto standard for governing projects within the public sector and to a lesser extent
in the private sector. My significant experience in global tier one IT consulting has

31
shown that the use of a governance methodology such as PRINCE 2 does not
mitigate many of the causal factors behind IT project failure. By understanding the
nature of these causal factors and incorporating strategies to mitigate them,
organisations within Wales would benefit greatly from improved IT project delivery
capability and ROI. My companies mission is to improve IT project delivery
capability within welsh organisations and in particular those based within the
Swansea area. As a MSc Computer Science graduate of Swansea University I am
well aware of the departments excellent teaching and research capability and would
very much enjoy engaging the University once again. Best Regards Leyton Price
(Director) Dettica Consulting & Training Ltd .

IR-3: Canolfan Bedwyr


Canolfan Bedwyr was established in 1996 - The Center specializes in developing
language tools for Welsh, ranging from developing software that corrects
misspelled and incorrectly mutated words to producing standardized terminology
lists to aid those working through the medium of Welsh.
Project Brief - The project will form part of a web design and database development
of a Welsh language learning game for mobile phones and/or handheld devices
using Java.
Students who have some experience of Flash, ActionScript and a working knowledge of
HTML, XML, SQL, and JavaScript would be very welcome.

IR-4: Science Made Simple


A Science communication company based in Cardiff, travelling around schools,
festivals and public events worldwide, performing science shows and a theater
performance called 'Visualise'.
For more information on our company, please visit our website
www.sciencemadesimple.co.uk
Project Brief – We are currently using a database package, Filemaker, to record
our accounting transactions, issuing invoices and recording staff expense claims.
I believe Filemaker was originally released for the Apple Macintosh operating
systems, though I understand it is now also available in Windows format.
Our staff operate Apple Macintosh computers, resulting in the vast majority of
available software packages not being compatible with our hardware, we have also
found that of those which are compatible, none (to our knowledge) are able to
adequately address our needs.
Together with the accounting/book-keeping requirements above, we'd like to
include the following in our system:
1. Contacts Database - To be able to manage both customers and suppliers and aid
in the process of marketing campaigns.
2. Diary system - A full diary system to book shows and allocate individual staff
members to the shows.
3. Marketing Database - linked to the contacts database, we would like to be able
to contact existing customers with any new shows we feel they would be interested
in booking, together with holding information on potential customers.
4. Show/Project database - to record the development and setup cost of any new
shows, together with ongoing costs to existing shows/projects and income
generated as a result of presentations. This would need to be linked to he marketing
database,our existing accounting database and the booking database (below)
5. Booking database - Recording the progress of our shows/bookings from an
initial enquiry, to a booking and once a presentation has been done, to record any
expenses incurred in relation the individual bookings, invoice and later reconcile
32
payments. This would need to be linked to our existing accounting database,
together with the diary system and contacts database.
6. Staff database - Manage staff records, and to better record staff expense claims,
which can be allocated (where applicable) to the development of shows and
expenses incurred through bookings.

The above would need to be available to multiple users, with the option of user
restrictions for accounts purposes. We would also like the database/system to be
available for staff to access remotely, as we frequently travel, and enabling our staff
the opportunity to view new/amended bookings would be a great benefit.

IR-5: The Wild Life Trust


The Wild Life Trust has a number of projects on offer and listed briefly below. Please
contact ITWales for more information.:

1. Website development – complete re-vamp and re-build


2. Database to contain survey data
3. Online Forum - to support communication and collaboration
4. E-Timesheet - online development – external and staff related
5. Application required to develop an online system to automate the collation of monthly
reports
6. Webcam – remote-site link development
7. Nation-wide, data management system and related access protocol development

IR-6: Create New Sample interfaces


Company - ETL Solutions Technium CAST
Create Open Interface Samples for access to other forms of data. Involves writing
Java program to implement TM Open Interface for reading and writing data. SOAP
and LDAP. SOAP is a very interesting subject area for ETL. SOAP. Use soap as a
source (and target) for TM. Google as an example. Use wizard to load the WSDL
file and produce meta model (quite a fun lots of examples)
LDAP. Get data from/to LDAP .
Produce regression tests HTML pages
Review existing regression test framework. Determine extensions to create TM
transforms to generate XHTML and replace existing regression test pages to
including new functionality (better summaries, graphs, speed, get at stdout etc)
Dynamic HTML generation

IR-7: Anchor Computers Ltd


Integration of a new online service from a 3rd party supplier into Anchor’s existing
systems
Creation of a self contained module for interface and control, this will include:
Provide consistent interface for Anchor’s systems
Configuration and deployment module including diagnostics
Test cases & program for developers to check internal interface
Ability to handle multiple 3rd party applications of a similar form
“Wrapper” for existing legacy COM applications
Information required to complete the project will come from 2 main sources:
Anchor developers
External 3rd party technical assistance
Interface documentation for Anchor developers
Technical Requirements
Main modules to be written in VB.NET 2003
All development is to stay within Microsoft’s development toolkits

33
Some of the test and deployment modules may be in Visual Basic 6

IR-8: Database storage integrity validation tool.


Company - Accountis Ltd
Accountis makes substantial use of SQL databases to store critical business
documents for many years. Currently, we validate the information when creating,
modifying or reading the data, but would like to extend this into a standalone
validating tool that would confirm that nothing had changed or been corrupted in
the database.
The project would require writing a command line or graphical tool that would
trawl through an entire SQL database, computing the secure hash (SHA-1) of each
data, and comparing it to the signed hash stored with the data. An understanding of
public / private key encryption, secure hashing technologies and their use in
validating data will need to be developed. The programming environment will be
the Python language, using both Microsoft SQL Server and MySQL as the database
servers.
Intelligent Forms Discovery.
Accountis deals with common business documents such as Purchase Orders and
Invoices. When printed, these are often formatted in rows of columns, with totals
that are seemingly orderly. Currently, Accountis has to manually map each format
to show where each column begins and ends, where the totals are etc., but there is
scope to create a self-discovery process that generates these mappings
automatically.

IR-9: Enhanced 3D Virtual Environments


Company - Movix Media
This project involves prototyping and developing objects in Second Life type
enhanced 3D environments. Graphic application work and State Machine
development using scripting languages to create objects and their respective
functionality - in a number of training development project scenarios now under
development..

IR-10: GT WebMarque Ltd


GTWM has a team of four young programmers who have spent the last four years
developing a Software Application Development Tool for a client in the Education
Sector that collates data for submission to WAG to draw down funds for the
delivery of training. The tool is now expanding to facilitate the tracking of
compliance evidence relating to the data submitted.
As the volume of data grows senior management are struggling to identify the most
important issues to focus on, and this concern underpins the desire to investigate
data visualisation tools.
This project involves investigating a particular tool (TreeMap) and piloting its use
in the above environment.

IR-11: Glass Shot


Live performance is a thrilling, experience – a journey beyond . We want to create
the software that offers this event to a Web audience. We want to offer interactive
live performances. The link between live performance and the Internet is essentially
real-time streaming with rudimentary messaging. We want to move this to the next
stage and create a technology that allows not only real-time web viewing of live
performances, but also enables the viewer to interact with the performance and the
online audience. You could, for example, create a mood by voting for a lighting
effect, select the next song, interact with others in the virtual and physical audience,

34
chose what happens next in a story or change the scenery – the possibilities are
endless. You’d be creating your own performance shared with millions of others
and the performers themselves.
Live, interactive events for a global family.
There are many potential users – Rock Groups, Large-Scale Outdoor Events, Live
Theatre, Music Festivals and much more. And, of course, there are business
applications – getting your message to worldwide clients in an innovative and
irresistible way.
Coding Language
Probably Open-Source? JavaScript? What would work best?

IR-12: Draig Technology Ltd


The Company -Draig Technology are a software house based in Bangor with clients
across the UK. They are a Microsoft Gold Partner and specialise in Microsoft
development technologies (VB, SQL Server, .Net). Though Draig have a number of
clients for who they develop bespoke solutions, the company has, and continues to,
invest heavily in product development and has an emerging portfolio of software
solutions. Most notably: Content management, collaboration portal and document
management solutions built upon Microsoft Office SharePoint Server 2007;
A web information directory and knowledge management solution used in local and
regional government;
An innovative multilingual wrapper for web applications.
The Project(s)
A range of projects are possible and a specific project can be determined through
discussions with interested candidates. An example of some currently planned
projects that would be ideal for the MSc programme are: Development a
configuration tool in VB.Net & SQL Server for the company’s proVision
information directory to enable developers to expedite the configuration of standard
features of the system for a specific client implementation;
Overhaul and refinement of the set of .Net based SharePoint enhancement
components, development of new components and unifying components into
packages and providing configuration user interfaces; Creation of standard
document management and collaboration portal solutions for SharePoint 2007, will
involve requirements specification, product configuration, workflow design,
some .Net development; Porting the web integration engine for the multingual
wrapper solution to C, integrating it with Apache and iPlanet web servers and
improving memory management and multi-threading capabilities

IR-13: Shopfitter.com
Company Profile - Shopfitter is a business that gives buinesses the tools to set up a
secure e-commerce site. Employing a standard Windows interface, you are able to
create a web based product catalogue with 'fill the fields' simplicity. No web
development skills are required. Site properties such as styles, colours and fonts can
be set globally, along with your company's trading terms and details. Shopfitter
allows businesses to produce catalogues to be browsed easily by potential customer
Project Brief – is to develop an XTML editor and a database for the
shoppfitter.com The exact content of the project can be discussed with the
company in detail, please contact ITWales for this.

IR-14: File system performance analysis

35
Company - Redhat
The intention of this project is to compare the information gathered at the system
call level (read/write/etc) from common applications with that gathered at the block
device level, to see what conclusions can be drawn about the performance of the
file system.The data can easily be gathered on any reasonably up to date Linux
system, the former with strace and the latter with blktrace. Therequirement is thus
to take the text files generated by these tools to create a Markov model of the
application's use of the file system. I can assist in providing traces from
"real"applications if and when required. There are then two possible extensions to
this basic project ,the first one is to write a program to emulate the application so
that its possible to reproduce the same I/O conditions but without the complication
of setting the application up. The second possible extension of this project is to
compare the I/O patterns generated by the application with the file systems I/O to
the block device in order to compare the efficiency of different file systems. An
efficient file system is one which generates fewer, large contiguous disk I/Os in a
mostly linear manner. Disk performance is very good for contiguous writes, but
poor when seeks are required, so a good filesystem tries to minimise the number of
seeks for a given amount of I/O.
IR-15: OpenStreetMap
Company – Redhat
There are a large number of possible investigations relating to the openstreetmap
mapping project which would be interesting. Probably one of the more important at
the moment is the scope for automatic means of detecting errors in the OSM
database. The OSM database consists of two parts. Firstly there is a collection of
GPS tracks, and secondly there is the vector map database itself. Either or both of
these two data sources could form the basis for a project, and in the case of the GPS
track database, there is also scope for automatic classification of tracks according to
the timing information.

36
Student Project Proposals
Students that have a particular interest that they think will make a good
third year project may propose that project. The project may have a
basis within a summer placement, personal interest or a commercial
use. Each proposal must contain:
A project title.
A brief description (about 300 words).
Specific hardware and software requirements, if any.
The main features of the project, such as links with industry, the reason
for personal curiosity, or the target market.
This proposal should be shown to members of staff who you think may
be interested in supervising such a project. You should obtain the
signature of any member of staff who is interested on the appropriate
part of the project selection form. In the absence of any staff
signatures, the project will not be considered. Students should bear in
mind that suggested projects offer students a very wide scope, and
most projects can be tailored to student interest.
Industrially Related Projects
In the light of a summer placement (either by our own Industrial
Placement Scheme, or your own means), you may have a substantial
problem which could make an interesting 3rd year project. During the
summer you should contact your supervisor (or Mr. C. Whyley) with a
proposal as above. If the supervisor is willing you may be allowed to
follow this new project.
Please note that the acceptance of a proposal is subject to some form
of quality control to ensure that the project meets the standards
required by the department.

University Policy on
Intellectual Property of Projects
As part of your degree course you will from time to time become
involved in projects within the University* or on placement with
outside companies or organisations. These projects are usually
regarded as an integral part of your studies and in most instances will
form part of your degree syllabus.

The development or writing of computer software which may be


involved in these projects gives rise to the question of ownership of the
copyright of software. It is necessary, therefore, that you are informed
of University Policy as regards Intellectual Property.

The regulations state that all "Intellectual Property generated by the


staff of the University in the course of their duties to and employment
with the University belongs to the University". Students are treated in

37
this respect in the same way as staff. Thus, Intellectual Property
belongs to the University in the first instance.

However, if you are involved in a project which is based or partly based


with an outside sponsor then the outside organisation will enjoy rights
associated with their work which you are doing. In most instances they will
own any Intellectual Property generated by the project.

In cases of doubt or uncertainty, please check with your supervisor


who will guide you or seek advice from the Head of Department or
Business Services Manager of the University.
*

University for the purposes of this document is to be read as


Swansea. University.

38
Department of Computer Science
Swansea University

Project Selection Form (Academic Year 2009/2010)

Return to Student Enquiries Office (Room 206)


Deadline Friday 8th May 2009
(Any returned after this deadline will be treated with less importance).

Surname:

Other Names:

Student Number:

Section 1: CHOICES.
Please state up to seven choices in order of preference. You should select no more than
two projects from any one lecturer. Lecturers may give precedence to students who have
discussed projects with them.

Order Project (e.g. MWJ-2, OWN-1) Comment

39
Section 2: STUDENT'S OWN PROPOSAL(S).
Omit this section if you do not have your own proposals.

Proposal (about 300 words): (or on an attached sheet)

Signature(s) of Possible
Code Project Title
Supervisor(s)

OWN-1

OWN-2

Signature:

Date:

40

Вам также может понравиться