Final Year Project Ideas

2007 - 2008

 

News

8/10/2007: Added new projects from Paul Kelly

5/10/2007: Added new projects from Dave Carroll and John Kelleher

2/10/2007: Added new projects from Paul Kelly and Peter Lawless

1/10/2007: Added new projects from Kude Duba

27/9/2007: Added new projects from Richard Lawlor

26/9/2007: Added new projects from Richard Lawlor, Patricia O'Bryne, Deirdre Lawless and from Damian Gordon

25/9/2007: Added new projects from John Gilligan

24/9/2007: Added new projects from John Gilligan, Denis Manley, and from Fred Mtenzi

21/9/2007: Added new projects from Brendan Tierney, Pat Browne and from Sarah Jane Delany

20/9/2007: Added new projects from Brendan Coburn and from Damian Gordon

 

Project Ideas

Pat Browne

Dave Carroll

Brendan Coburn

Sarah Jane Delany

Kuda Dube

Bryan Duggan

Mark Foley

John Gilligan

Damian Gordon

John Kelleher

Paul Kelly

Deirdre Lawless

Peter Lawless

Richard Lawlor

Brian MacNamee

Denis Manley

Hugh McAtamney

Fred Mtenzi

Particia O'Bryne

Ciarán O'Leary

Brendan Tierney

Bing Wu

 

June Barrett & Dagmar Fischer

 

Title: "Discover Germany" a new multimedia language course for beginners

Description: The aim of "Discover Germany" is to create an innovative and enjoyable interactive learning environment which is attractive to today’s 3rd-level students in Ireland. Initially, it will be developed for students in Ireland who want to learn German. Subsequently the course can be modified to suit all other languages taught in the Dublin Institute of Technology. "Discover Germany"will cover topics that students are interested in and can relate to, it will be entertaining, visually stimulating, varied, informative and user-friendly. The course will offer a wealth of culturally authentic and relevant full-motion video clips, animation, photos, graphics, illustrations and a variety of reading and audio texts. Each unit will provide a wide choice of well-designed activities which are task-orientated, learner-centred, cater for multiple learning styles and practise all four language skills (reading, writing, listening and speaking). Students will be given sophisticated error correction and feedback. Their motivation will be encouraged through the use of games, quizzes, jigsaws, riddles and cartoons which will bring an element of fun to the process of language learning. Great emphasis will be put on pronunciation. Students will be introduced to the sound and rhythm of spoken German from the beginning. Speech Recognition Technology will allow them to find out how well their pronunciation corresponds to that of a native speaker.

The aim of the project is to design the software for a certain number of activities that can be integrated into this multimedia language course. The finished software can then be tested by students in the School of Languages.

 

Dave Carroll

 

Data Visualisation Projects

for timetabling

Quality Assurance processes

 

Brendan Coburn

I plan to add more project ideas asap so check back often. Also if you have any ideas of your own that involve music/audio/audio in games, feel free to contact me.

Title: Musical Symphony Composer

Description: Musical Symphonies have a well-known structure (four movements, sonata form etc.). The idea behind this project is to investigate and implement techniques that would automatically generate a computer composed symphony. This is a huge goal, so in reality the project would mainly deal with the musical structure of the piece. The user would provide the system with a motif or number of motifs (motif is simply a short musical theme) which would then be used by the system to create one movement by modifying the motif, passing it around instrument sections etc. and most importantly, automatically creating the exposition, development and recapitulation sections of a symphonic movement. (Don't worry if you don't understand the musical terms, they're easily learned)

 

Title: Dynamic Audio Mixing System Based on Image Frame Content

Description: A number of applications have used images as a basis for creating algorithmic music. The idea behind this project is to use images as a basis for mixing, the end application being a dynamic mixing system for games. A simple example would be a player walking along with the music soundtrack playing. If the graphics engine renders a sunflare as the player looks around, the mixing system would detect this from the image frame and add a piccolo or a chimes line to the music mix. This project would be an initial investigation into the possibility of such a system and the creation of a prototype to demonstrate findings.

 

Title: Musical Tuning Systems Visualizer

Description: There are numerous musical tuning systems available to musicians, equal-temperament being what we are most used to. In simple terms, musical tuning systems basically determine how many notes are in a musical scale and what those notes sound like (what pitches they are)

http://www.users.dircon.co.uk/~oneskull/3.6.04.htm

for a quick introduction to tuning systems. The idea for this project is to develop an application that will allow the user to explore tuning systems both being able to hear them, but also by being able to visualize them on some form of frequency display to help them understand the difference between systems. I would also suggest that the application be compatible with Scala http://www.xs4all.nl/~huygensf/scala/

 

Title: Physical Models Based MIDI System

Description: A lot of MIDI synths use wavetables or various sound synthesis methods to create their instruments. This can cause a number of problems such as MIDI renditions sounding different on different computers and a lack of expressive control over the instruments. This project involves creating a suite of physically based synthesis engines that can be controlled by MIDI data with an aim to make them as expressive as possible.

 

Title: Spectral Composers Sketchbook

Description: The main focus of this project is to develop a user interface for an application which Ive been working on. The interface will not be your standard widget type UI, it will use the piccolo Zoomable User Interface Java library http://www.cs.umd.edu/hcil/jazz/ The application itself is designed to help spectral composers graphically construct a musical score from information extracted from sound samples. Spectral composition is a compositional approach that concentrates on the sonority of sounds as opposed to the more traditional melody/chord progression focus of "traditional" (I use the term loosely) western music http://www.byz.org/~tildy/spectral.html The main idea is to automatically extract frequency information from recorded sounds, allow the composer to graphically specify which frequency components should be played by which instruments, how they should interact and then automatically generate a musical score from this information. While the interface is a major part of this project, there are other issues which will need to be addressed such as potentially adding scripting functionality to the application (possibly using Groovy http://groovy.codehaus.org/). At the moment, the code I have (written in Java) performs all the analysis and frequency information extraction and also transcribes this data directly to a musical score (the application uses http://www.algomusic.com/jmsl/). However some parts will need to be improved and changed to facilitate the integration of a front end. While the main focus of this project is the development and integration of a UI, don't be fooled into thinking its "simply build a user interface". It will not be a standard UI and as stated there are more issues than just the interface development part.

 

Title: Real-Time Integration of Sound Effects and Music

Description: This project involves the design and development of a music engine that will integrate sounds into its musical score in real-time. Such an engine could be used in games or interactive installations to modify a musical score by somehow using environmental sounds (for example sounds effects in a game) to enhance the music that is playing. The idea came about while thinking about alternative approaches to audio and music in a game environment. For example, imagine a player walking through an environment such as a forest. Environmental sound effects such as birds singing or leaves rustling could be somehow incorporated into the background music. A simple way of achieving this could be to simply use the effect as a sample in the music, however such a straightforward technique would likely blur the line between the sound effects and music. Therefore more subtle ways should be investigated such as using a spectral music approach whereby the frequencies present in a sound could be integrated into the score. http://www.byz.org/~tildy/spectral.html Technical approaches could include building everything from the ground up (e.g. DirectX) or possibly using a graphical audio programming environment such as MAX/MSP http://www.cycling74.com/products/maxmsp or PD http://puredata.info/ Part of this project would also involve an investigation into game music in general and alternative approaches to the standard linear score paradigm.

 

Title: Musically Controlled Facial Animation

Description: The idea behind this project is to develop an application that displays a 3D facial model whose expression is controlled by and reflects the "feel" of music currently playing. It is envisioned that the Half Life 2 Source engine would be used for the facial modeling. The Source engine http://developer.valvesoftware.com/wiki/Main_Page is the games engine behind the Half Life 2 game and the developers provide an extensive list of applications and SDKs that allow third parties to develop games and applications based on the engine. The engine includes impressive facial modeling functionality. Broadly, the two main challenges of the project are; * Using the Source engine to perform the facial animations and investigating if its possible to interface with this functionality using an API. There is an application called FacePoser which allows a developer to script facial animations, however this project requires realtime control. If it is not possible to do this using API calls, an alternative might be to call a number of facial animation scripts in realtime. * Determination of the facial expression required from a give music source (it is based on the "feel" of the music; happy, sad, intense etc.). To do this algorithmically is very involved, however for the purpose of the project it may suffice to base the analysis on something simple like the tempo or dynamics of the music. Another approach could be to forget about the "feel" of the music and simply control the movements of the animation using a characteristic of the music (e.g. animate the face in time with the beat). While the Source engine is suggested, the project is not tied to this particular technology.

 

Title: Real-Time Four-Part Harmonisation using Case-Based Reasoning

Description: This idea is based on a project that was developed by two students in previous years (the theses are available from the library, email me for the student names). They investigated applying case-based reasoning techniques to automatically harmonise a melody, adding the Alto, Tenor and Bass parts to a Soprano line (Bach chorales are a good example of this type of harmonisation). They also developed a prototype application in Java as proof of concept and the resulting harmonisations were quite good. This project involves the design and implementation of a system (most likely a VST based plug-in http://en.wikipedia.org/wiki/Virtual_Studio_Technology ) that would allow a user to play a soprano line which would then be harmonised in real-time using the case-based reasoning approach. Essentially a user would use a MIDI keyboard to play the melody and the system would provide the other three voices. There will be many new challenges that will need to be addressed due to the real-time nature of the application. A possible approach would be to incorporate some predictive technique to calculate the most likely notes the player will choose next and calculate a set of potential harmonisations. Other issues such as what resolution the harmonisation should be (i.e. every quarter, half note etc.) will need to be addressed.

 

Title: Modifiable Music Game / Music-Based Puzzle/Action Game

Description: A number of games have integrated the action of the gameplay and the music playing to greater or lesser degrees. http://www.luminesgame.com/uk/ is an example of a tetris type puzzle game where the players actions and the games reactions directly affect the music (check out the videos for a good example). http://www.sonicteam.com/rez/e/movie_clips/index.html is a shooter type game which also modifies the soundtrack based on the players actions. The idea behind this project is to conceptualise, design and implement some form of game where music plays an important and direct role. There are many approaches that could be taken from a puzzle based game ala Lumines, to a virtual world where the player interacts with objects in some way which have musical attributes associated with them. An interesting angle for this project might be to create some form of game where not only does the music have such a direct role, but also to base the gameplay design on the domain OF music. An example might be a tetris style game except instead of trying to match up geometrical shapes, the aim is to match up objects that make musical sense. So an object could fall which represents and plays a C chord, graphically pulsing in time to the audition of the chord. The next object might "match up" with the C chord musically and if it is dropped beside the chord, they would disappear from the soundtrack. This is just a very general idea, there are tons of issues for such a game. There is a lot of scope for this project so let me know of any ideas you might have for a game where music plays a central role.

 

Title: Sound Synthesis as a Basis for a Music Focused Game

Description: Following on from the Modifiable Music Game project idea, the focus of this project would be to create an imaginative game where music plays a direct role. The unique angle however would be the use of sound synthesis techniques to produce the soundtrack. In other words, instead of using sound samples and MIDI as the basis of the music engine, one would use sound synthesis and processing techniques. For example, in a "standard" based music game, when the player performs some action, a recorded sample (drum kit, guitar chord etc.) is played which merges with the soundtrack. In the synthesis approach you would perhaps modify some parameter of a sound generating process instead (filter a sound, add modulation, modify its harmonic spectrum etc.). This idea has a lot of scope. Perhaps the focus could be on the development of a fully featured adaptive synthesis music engine that could be used in a number of games, or you could focus on creating a specific game as described above. Design wise, while it would be possible to build it from the ground up, possibly a better approach would be to use a third party sound synthesis library e.g. http://www.softsynth.com/jsyn/

 

John Gilligan

 

1: Development of Assistive Technology information systems.

2: Building an AT systems visual analysis tool

3: Bridging the information gap in AT information systems to complement Matching Person and Technology factors.

4: A graph (drawing) tutorial system for data structures and algorithms.

5: Robotic jigsaw making

6: Speech Interface to the game PONG

7: An accessible program Construction Assistant

8: Developing a multimedia information system for potential access students. Showing paths to careers via colleges. points requirements. Access help and so on.

John Kelleher

 

Anaphora resolution in text processing

A referring expression is a natural language expression that denotes an entity. In English, referring expressions come in a variety of forms including: definite descriptions, indefinites, pronouns, demonstratives. Each referring expression introduces a representation into the semantics of its utterance and this representation must be bound to an element in the context for the utterance's semantics to be fully resolved. Reference resolution is one of the most important tasks for any Natural Language Processing system and not surprisingly many theories of discourse reference have been proposed: (Alshawi, 1987; Ariel, 1990; Asher and Lascarides, 2003; Gundel, et al., 1993; Lappin and Leass, 1994; Grosz, et al., 1995, Kamp and Reyle, 1993).

Applying and extending these techniques to anaphor resolution in text processing is a rich area of research, see for example the International Conference on Computational Linguistics (Coling) and the Conference of the Association of Computational Linguistics (ACL).

 

Generating Referring Expressions

The task of generating a referring expressions can be describe as: given a domain description and a target object in the domain, generate a description of the target object that distinguishes it from the other objects in the domain.

Recently a corpus of domain descriptions, target objects and mathcing human generated referring expressions was released. The project would used this data set to develop and test new GRE algorithms.

 

Semantc Role Labelling

A semantic role in language is the relationship that a syntactic constituent has with a predicate. Typical semantic arguments include Agent, Patient, Instrument, etc. and also adjunctive arguments indicating Locative, Temporal, Manner, Cause, etc. aspects. Recognizing and labeling semantic arguments is a key task for answering "Who", "When", "What", "Where", "Why", etc. questions in Information Extraction, Question Answering, Summarization, and, in general, in all NLP tasks in which some kind of semantic interpretation is needed.

The following sentence, taken from the PropBank corpus, exemplifies the annotation of semantic roles:

[A0 He ] [AM-MOD would ] [AM-NEG n't ] [V accept ] [A1 anything of value ] from [A2 those he was writing about ] .

Here, the roles for the predicate accept (that is, the roleset of the predicate) are defined in the PropBank Frames scheme as:

  • V: verb
  • A0: acceptor
  • A1: thing accepted
  • A2: accepted-from
  • A3: attribute
  • AM-MOD: modal
  • AM-NEG: negation

The project would use the data provide by the CoNLL 2004 and 2005 compeitions to develop new algorithms for semantic role labeling.

 

Predictive Text Entry for Mobile Devices

Predictive text input using a single-tap entry method (widely known as T9) is currently the de-facto standard for text entry for mobile devices. One problem facing the single-tap approach is the selection of which word to present to the user when more than one word matches an input sequence. Accurate selection from the set of possible words reduces the number of key presses required to input text, and leads to a reduction in word entry errors. However, the standard single-tap approach selects words using word frequencies, ignoring the context provided by previous interactions with the system b. This can lead to the selection of words that are unrelated to the current context. Previous work (Hawes & Kelleher, 04) extended the standard T9 so that word selection was based not only on word frequency but also on word co-occurrence and Word-Net relationships.

A possible research project would be the application, development and extension of these statistical predictive text techniques to Chinese.

Paul Kelly

 

Title: Interactive Crossword System

Description: This system requires the development of an interactive crossword that students fill out on the screen. The new sofware will be completely integrated with moodle.

Skills required: Strong programming. The majority of the code will be in PHP, so the student must teach themselves PHP. Strong web skills.

Title: EDSAD - an E-learning tool to Demonstration Storage and Deallocation

Description:A file system is the general term given to the logical structures and software routines used to control access to storage on hardware devices such as hard disks, CD-ROMS, USBs etc. and involve maintaining the physical location of the files. Different Operatring System uses different file systems; for example, DOS uses FAT12/16)m Win95 uses VFAT, WIN98 uses FAT32, NTFS and Linux uses ext2,3. In general, file systems make use of an underlying data storage device that offers access to an array of fixed-size blocks (e.g.512 bytes sectors). The file system software is responsible for organising these sectors into files and directories, and keeping track of which sectors belong to which file and which blocks are not being used.

The demonstration of file systems is done in a 'static' method with the demonstrator sketching the allocation and freeing of storage blocks. Although useful to trace the algorithms used, this method of instruction is difficult for the demonstrator and is not very stimulating for students. What is required is a learning aid that uses a much more 'dynamic' approach. ESAD is an e-learning tool that would show the allocation and de-allocation of storage in a 'dynamic' way. Given some program code, the tool will simulate the running of the code in a particular OS, showing the state of the storage device as each line of code is executed. The tool will display the satte of the storage device in a graphical way and should idellay be paltform independent.

Title: REBE: (Regular Expressions by Example)

Description: Front end GUI for regular expressions used in SED, AWK and Perl. Basically, the idea is that regular expressions would be generated automatically by the user giving examples to the system. The system should run on Linux using a graphical package such as GTK.

Peter Lawless

 

Title: Pre-Qualifying Questionaire System Development

Description: The ability to perform 2-way pre-qualifying is essential in modren enterprises. Many of you might be familiar with the ideas of Psychometric testing, whereby a student is presented with multiple choice questions and a report from a database of answers is compiled. This is also used by a number of the networking or dating sites, so as to provide prospective people with a "profile" of the person. The project that I am envisaging is to create a web based engine, which will gather information, whether from multiple choice and indeed narrative responses to provide a report back to the person automatically, sending a copy of the report back to the person, and also keeping it on file.

e.g. -

Question: Do you have a compelling urgency to increase sales [Yes / No] ?

If Yes the report writer will produce. "Congratulations, you realise that increased sales is vital to your business"

If No "Without clear goals and a desire to succeed, any money that you invest in a marketing budget is likely to be wasted, I would strongly advise that you rethink your urgency to expand sales, and what benefits that will ultimately bring you"

The key to the system should be that it is customisable - ie there should be a wizard design, enabling the creator of the questionnaire/report to be able to enter the questions, have them formatted on a webpage, and to be able to supply the answers or answer tree, and have that formatted in a word/pdf report.

 

Title: An On-line Marketing Leads and budget Calculator

Description: Often people set up marketing budgets, without a clear idea of what they want to achieve. Like anything else, marketing should be considered a science. In order to determine how much you should spend, you need to work out how many leads you require to make your revenue target.

Factors such as conversion ration, average cost of sale, sale value, commissions etc are used to calculate this There are a number of steps that need to be performed, and this system will guide people though answering these questions, delivering a set of key performance metrics, they can use to determine their budget and measure effectiveness of marketing campaigns.

In addition, this sort of tool, would be supplied free to marketing companies, to distribute to their clients, however we want to include automatic sign up to a web site and news letter. This is like an advanced concept of the eBook, that creates value and provides its creator with leads.

 

Title: An On-line Motivation Analysis System

Description: This system gives the user an opportunity to use their own words to find and locate their ultimate core values - or what drives them into action, life fulfilment and joy. I believe there are 5 key areas for fulfilment in ones life and in order to reach your peak levels of motivation, you need to know what really means something to you - or in other words your "core values"

The system would describe each of the 5 areas and would prompt you with 10 suggested phrases or words to suggest some core values. We then attach a phrase/word thesaurus to each suggestion and allow the user pick the words or phrases that mean the most to them - we also will offer a free format possibility that they could fill in themselves, which would also be added to the base core value database, upon master verification that it made sense.

So let's say we are looking at the core values around "Finance" the system will offer up 10 words or phrases which suggest core values to people. Let's say the first on the list is "free from money worries" - the user would have the chance to accept that one or to interrogate the thesaurus for different phrasings or to add a word or phrase that means the same to them - such as "no more debt" Once they have all 10 phrases or key words for the suggested core values around finance they are then asked to rank them. rankings is done by taking the first one and comparing it to the second one (Which could say "have a million euro in the bank")- which ever ranks higher is then moved to the first spot.

The current first one is now compared with the third one on the list - which ever is higher is moved up to the first spot - if the first spot changes - i.e. the 3rd one replaces the 1st - the new 3rd is then compared with the 2nd, to see which is higher, with the appropriate swap if appropriate. We now compare the 1st slot to the 4th, and continue rippling down the whole list until we now have the 10 values in the correct order. This is quite difficult to explain in English - but the value of it is immense - hence the requirement to automate this.

Finally we will keep an anonymous data response of core value responses and ranking, so that we are able to tell people where they fit within the overall populations desires or core values.

Richard Lawlor

Preamble

Model Driven Architecture (MDA) is an evolution of a number of Object Management Group (OMG) standards, including the Unified Modeling Language (UML), along with an emerging philosophy for how best to apply modeling to the software development process. It is an initiative that formalizes the evolution of model-driven development by defining models at distinct levels of abstraction, and then defining the transformations that map and manage the relationships between those models and various implementation technologies.

IBM Rational software has several products that support MDA and Model Driven Development (MDD) in varying capacities.

In the general purpose category is IBM Rational Software Architect. Rational Software Architect supports both the principles of MDA as well as the standards upon which MDA is based. Actually, Rational Software Architect supports a broad spectrum of code-centric, wizard-based and model-driven design and development paradigms, with MDA being but one of them.

Model Driven Architecture and Rational Software Architect

Investigate the use of Rational Software Architect (RSA) in Model Driven Architecture (MDA) and Model Driven Development (MDD).

Design Patterns and Rational Software Architect

Investigate the incorporation of design patterns in UML models and their subsequent transformations in code.

Graph Alogorithm Animation with Haskell

Investigate the potential of Haskell and its graphics library to animate a graph algorithm, e.g. shortest path algorithm Haskell is a computer programming language. In particular, it is a polymorphically typed, lazy, purely functional language, quite different from most other programming languages.. It is a wide-spectrum language, suitable for a variety of applications. It is particularly suitable for programs which need to be highly modifiable and maintainable. Much of a software product's life is spent in specification, design and maintenance, and not in programming. Functional languages are superb for writing specifications which can actually be executed. Such a specification then is the first prototype of the final program. Functional programs are also relatively easy to maintain, because the code is shorter, clearer, and the rigorous control of side effects eliminates a huge class of unforeseen interactions.

 

Denis Manley

1. The most efficient ways of storing "biological data" for combating Cancer and other fatal pathologies.

2. Artificial intelligence and its application in the field of "Bioinformatics" (the area of computing that will revolutionise medicine...)

Hugh McAtamney

 

Creating a 3D music browser

Using an emotional symantic model to allow uses browse their music collection in 3D

Creating a new layer of behaviour for the CryTek game engine

Using the grangegorman VR model to create new AI behviour types using C++and Lua

Using the CryPhysics Engine to create a school physics experiment

Take a leaving cert or junior cert physics lesson and use the crytek game physics engine as a tutor

Patricia O'Byrne

 

Enhanced Learning Tool

Develop an application to assist secondary or primary school children in learning topics they find difficult. For example, http://www.skoool.ie has a very good structure for learning English Poetry and Scoilnet has a collection of interactive applications to help learning, for example, Irish words. There are a huge number of areas in which those students could be offered further learning, but it would be best something similar to the Skoool website were developed, in that there is a structure on the learning process, addressing several modes of learning .

Brendan Tierney

Data Mining Interface

A GUI front end to the Oracle Data Mining build in routines, implementing the Oracle database queuing and scheduling build-in features. GUI to be developed in Java. Other skills will be necessary and will be using is SQL, PL/SQL, etc

 

Lecturer's with there own Project Ideas Pages

 

Sarah Jane Delany

 

http://www.comp.dit.ie/sjdelany/FYP.htm

 

Kuda Dube

 

Kude's Wiki go to section 3. "Undergraduate & Postgraduate Computing Projects"