Final year B.Sc. projects 2002-2003

Tom Naughton, Room 2.104, tom.naughton@may.ie

Title: Distributed computing for DNA analysis
Pre-Requisites: Good programming skills; Level of project difficulty: high
Description: We are developing a heterogeneous distributed computing environment for the analysis of data from the Human Genome Project. We intend to use all of the 'spare' clock cycles in the Department to effect a virtual supercomputer. It consists of a server capable of accepting an algorithm and a data set, and capable of partitioning the computational load into variable-sized segments. Clients request a segment (in the form of an algorithm plus data) and return the results. The server combines the results from multiple clients. The system could be described as a programmable general-purpose "SETI@Home" system.

The first generation of this system was designed and built by two of last year's 4th year students. At its peak, the unused computing power of approximately 200 of the Department's machines was harnessed and we were averaging 3 'Pentium years' of computation per week. Important discoveries were made about the tuberculosis bacterium that are currently under review for publication in the Journal of Bioinformatics.

New functionality and further enhancements are required for the second generation of our system. These include scheduling and load-balancing at the server to improve efficiency, encryption and compression of transmitted data, a secure remote interface (possibly web-based) to configure the server and submit new jobs, a client that installs itself automatically as a low-priority thread over multiple platforms, and advanced bioinformatics algorithms for the analysis of the Human Genome. It is envisioned that more than one student could work on this multidisciplinary project. Depending on their interests, each student could tailor their project to lean more towards operating systems, parallel computing, algorithm analysis, or bioinformatics aspects. The student would benefit from the support of, and would be expected to contribute to, our active research group. We are also working closely with the Bioinformatics group at the Department of Biology, NUIM, who intend to use our results for the understanding of disease and the improvement of quality of life. If you have any questions, or would like to meet and talk about the project, please feel free to contact me at tom.naughton@may.ie

Language(s): Java
References: References: Publications from last year's students: a conference paper and technical report

******************************************************************

Tom Naughton
Title: Emulation of an unconventional model of computation in Java
Pre-Requisites: Good programming skills; Level of project difficulty: high
Description: An emulator is required for a theoretical model of an optical computer. This novel computer uses continuous space instead of the discrete tape cells of a Turing machine or the discrete registers of a digital electronic computer. It also has a Fourier transform as one of its primitive operations. A programming language for the computer has already been developed, as has an architecture for its emulation. An individual is required to bring the model to life by completing the emulator with which optical computer algorithms could be developed and tested. Since the computer manipulates images rather than bits, a certain level of graphics programming will be involved in this project. A very capable student could win instant international fame by contributing to the development the world's first debugger for an optical computer. If you have any questions, or would like to meet and talk about the project, please feel free to contact me at tom.naughton@may.ie
Language(s): Java
References: References: Publication from last year's student: a conference paper

******************************************************************

Tom Naughton
Title: An automated teaching tool for computer theory
Pre-Requisites: An interest in computer theory and machine learning; Level of project difficulty: medium to high
Description: Multiple-choice test results are particularly suitable for machine analysis. By restricting a user's responses to a finite set of possibilities, it is possible to write an automated teaching tool that guides the user onto more difficult questions if they get questions correct, and onto easier questions otherwise. In an online system, the user's response to a question could be evaluated there and then and their next question chosen immediately. There could be a number of levels of easier questions, depending on "how wrong" the user's response was. This allows users to learn at their own pace and evaluate their progress through a course of study. Where a user chooses incorrectly, they might be referred to a short tutorial explaining why their choice was incorrect, or be referred to a particular page in the course notes.

A student is required to built such a (preferably web-based) automated teaching tool. It will consist of (i) a subject-independent teaching architecture, and (ii) a completely separate "web of knowledge" of computer theory questions, solutions, short tutorials, and course note page numbers, all of which are suitably linked together. I will make available my set of 150 computer theory multiple choice questions. This set could be increased in size by designing a random choice generator. If successful, this teaching tool could be employed during computer theory lab sessions at NUIM. At the student's discretion, this project could also allow scope for an investigation into the relationship between the limits of artificial intelligence and the limits of automated teaching. If you have any questions, or would like to meet and talk about the project, please feel free to contact me at tom.naughton@may.ie

Language(s): Java
References: References: Example multiple-choice questions from a SE307 lab test

******************************************************************

Tom Naughton
Title: Three-dimensional holographic video codec
Pre-Requisites: Good programming skills; Level of project difficulty: high
Description: Do you remember R2D2's hologram message of Leia Organa in Episode IV? Want to make it a reality? Three-dimensional television and video is currently the subject of intensive research. One promising technique for 3D TV uses digital holography. A digital hologram stores multiple perspectives of the same object from different angles. This allows us to reconstruct the 3D object either digitally (on a computer) or optically. In the last five years, digital imaging technology has advanced to a stage where the capture of digital holograms is now a realistic possibility.

A digital holograpic 'camera' has already been built and we have a small database of 3D frames and video clips. The next step is to look at networking issues. We have experimented with coding and compression of digital holograms and want to extend this to video. One or two creative, imaginative, and highly-technical students are required to join our group in the development of the first MPEG-style codec (compressor-decompressor) for digital holographic video. It is hoped that by the end of the project, Internet transmission of holographic video could be demonstrated. If you have any questions, or would like to meet and talk about the project, please feel free to contact me at tom.naughton@may.ie

Language(s): Matlab and/or Java
References: References: A recent presentation on single-frame digital hologram compression. An interesting book on 3D TV and Display Technology that will be published soon (call in to my office for a preview)

******************************************************************

Tom Naughton
Title: A virtual optical computing laboratory
Pre-Requisites: Good programming skills; Level of project difficulty: high
Description: In optical computing, beams of light are used instead of electrical wires to carry data and the actual computation is performed by optical components such as lenses and photo-detectors. Optical computers have the potential to become extremely powerful, due to their inherent parallelism (multiple light beams can pass through the same optical processor at the same time), simplified architectures (light beams can cross without losing information), and low power requirements (optical computers don't create heat and so don't use much energy).

Optical computing laboratories are expensive to maintain and too few students get the opportunity to experiment with the technology. In this project, the student will be exposed to the world of computing with light, will be shown how to build some basic optical computer architectures, and will be required to design graphical demonstrations that will be used to explain the functionality of the architectures to other students. They could be animated to explain how light performs the computation. The demonstrations should act as a virtual optical computing laboratory, allowing users a small degree of freedom to adjust parameters in the architectures and observe the results. If you have any questions, or would like to meet and talk about the project, please feel free to contact me at tom.naughton@may.ie

Language(s): Java
References: References: Some NUIM presentations on optical computing: Multiplying light by sound, Optical neural networks, Face and fingerprint recognition

******************************************************************


NUIM Logo