-------- LyIT BSc Final Year Project Titles Offers -------- -------- Jonathan Campbell, 2009-09-08 --------- Points to note: 1. The topic must be surveyed and analysed; a software program must be designed, implemented, and tested. You must study and evaluate competing/state-of-the-art approaches; you must be able to place your chosen approach in perspective. 2. The project is preparation for the sort of project you might undertake in the first few years at work. 3. Because of 2. employers at job interviews tend to focus on the project; you must be able to describe it clearly and convincingly; there should be some challenge in it. 4. A slightly extended continuous assessment assignment will attract few marks. To get marks above 45% you must show that you left the 'comfort-zone' of what was covered in taught modules. 5. Beware of relying on software or hardware resources that are not available and installed in the college *now* (i.e. September). 6. Related to 3. Ideally the project should have a name which is s single word or very short phrase, e.g. Golf game. Ideally also, you should be able to describe the project in about 20 words. LyIT Final Year Project Offering (golfgame.txt) Supervisor Name: Jonathan G. Campbell Project Title: Golf game. Project Aims: Realistic simulation of golf shots with a nice user interface. Project Description: Grant Palmer's book contains software which implements realistic simulations of many physical systems (using solutions to differential equations --- but don't worry, see below!). Palmer's software outputs just numbers. I have added crude OpenGL graphical output to two of the simulations (golf and soccer penalty kicks). There is a lot of scope for adding to the graphics, e.g. animated players, realistic background; there is scope for adding to the user input, e.g. instead of setting up the club and the speed and angle of the hit through a set of parameters, this could be captured from (?) mouse input. You could use Simple DirectMedia Layer (SDL) for user input and for sound output. Hardware and Software Prerequisites: Up to date compiler in the chosen language (C++ or Java; if anyone has a preference for C#, we can discuss it. Project Deliverables (this is flexible and depends on the emphasis of the project): requirements analysis (in my opinion, this is a project which will benefit from careful analysis); survey and discussion of the physics and mathematics; design; prototype software implementation; test reports; evaluation. References: Grant Palmer, Physics for Game Programmers, APress, 2006 end. ----------------------------------------------------------- LyIT Final Year Project Offering (soccer.txt) Supervisor Name: Jonathan G. Campbell Project Title: Soccer penalty kicks. Project Aims: Realistic simulation of soccer penalty kicks with a nice user interface. Project Description: Grant Palmer's book contains software which implements realistic simulations of many physical systems (using solutions to differential equations --- but don't worry, see below!). Palmer's software outputs just numbers. I have added crude OpenGL graphical output to two of the simulations (golf and soccer penalty kicks). There is a lot of scope for adding to the graphics, e.g. animated players, realistic background; there is scope for adding to the user input, e.g. instead of setting up the speed and angle of the kick through a set of parameters, this could be captured from (?) mouse input. You could use Simple DirectMedia Layer (SDL) for user input and for sound output. Hardware and Software Prerequisites: Up to date compiler in the chosen language (C++ or Java; if anyone has a preference for C#, we can discuss it. Project Deliverables (this is flexible and depends on the emphasis of the project): requirements analysis (in my opinion, this is a project which will benefit from careful analysis); survey and discussion of the physics and mathematics; design; prototype software implementation; test reports; evaluation. References: Grant Palmer, Physics for Game Programmers, APress, 2006 Current software available at: http://www.jgcampbell.com/teamp/sports.zip end. ----------------------------------------------------------- LyIT Final Year Project Offering Supervisor Name: Jonathan G. Campbell Project Title: Simple Game Engine. Project Aims: Develop a simple game engine using Brackeen chapters 7 to 11 as a guide. Project Description: Brackeen's book contains Java software that is the basis for a simple game engine. Build one or more simple demonstrations, for example: (a) a simple model viewer; (b) a few game objects interacting with walls demonstrating collision detection and reactions to collisions. You could use Ian Parberry's SAGE: A Simple Academic Game Engine as a guideline, http://larc.unt.edu/sage/. See also, J.G. Campbell, What is a Game Engine, LyIT, 2009, available at: http://www.jgcampbell.com/teamp/whatIsAGameEngine.pdf References: David Brackeen, Developing Games in Java, New Riders, 2003. J.G. Campbell, What is a Game Engine, LyIT, 2008, available at: http://www.jgcampbell.com/teamp/whatIsAGameEngine.pdf end. ----------------------------------------------------------- LyIT Final Year Project Offering Supervisor Name: Jonathan G. Campbell Project Title: Use of and Extension of Ian Parberry's SAGE: A Simple Academic Game Engine, http://larc.unt.edu/sage/ Project Aims: Develop a simple game engine using SAGE; make simple modifications, e.g. collision detection, to SAGE. Project Description: Ian Parberry's SAGE: A Simple Academic Game Engine is a game engine that is simple enough to modify and extend. (a) Build a simple game using SAGE; I mean /simple/ but demonstrating plenty of features of a game engine; (b) Add some extensions to SAGE, e.g. your own collision detection/ See also, J.G. Campbell, What is a Game Engine, LyIT, 2009, available at: http://www.jgcampbell.com/teamp/whatIsAGameEngine.pdf References: Ian Parberry. SAGE: A Simple Academic Game Engine, http://larc.unt.edu/sage/ J.G. Campbell, What is a Game Engine, LyIT, 2008, available at: http://www.jgcampbell.com/teamp/whatIsAGameEngine.pdf end. ----------------------------------------------------------- LyIT Final Year Project Offering (graphicsgames.txt) Supervisor Name: Jonathan G. Campbell Project Title: Game using SDL. Project Aims: Development of two- or three-dimensional graphics games. Project Description: I have managed to port Brackeen's Java platform game to SDL (Simple DirectMedia Layer --- those of you who have done Graphics for Games I and Algorithms and Data Structures for games will know it). However, my port is a pretty nasty hack in places and could do with a redesign. There is scope for: (i) Redesign of my C++ port; (ii) Design and development of a different game (probably 2D). References: Brackeen book. LazyFoo SDL website. My Algorithms and Data Structures notes. end. ----------------------------------------------------------- LyIT Final Year Project Offering (dlcpp.txt) Supervisor Name: Jonathan G. Campbell Project Title: Design and implementation of an image processing system. Field of Computer Science: Image Processing, Object-oriented Design; Project Aims: Development of a prototype `image' processing system in C++. Project Description: DataLab-J is a software signal and image processing laboratory (Campbell et al, 2001); a new version (DataLab-JN) is under development. DataLab-J handles monochrome images and colour images and provides a wide variety of operations on these data types. It also handles multivariate data sets for the purposes of 'pattern recognition' work. The system is implemented in the programming language Java. The porting of DataLab-J to C++- is to be studied. See also an earlier version of DataLab -- written in C, see (Campbell, 1994). The project /could/ proceed as follows: evaluation of current image ADTs; identify capabilities of C++ (especially STL); establish requirements; design image ADTs; code, test, evaluate, etc. Data structure efficiency issues may be important (this is one of the reasons to look to C++ in preference to Java), e.g. comparison of performance of chosen design with C++ native arrays, STL's 'valarray', custom template design (Campbell, 1999), etc. Evaluation of the utility iterators and certain algorithms is encouraged. Project 1: Emphasis on nice GUI (Windows or Linux; QT GUI toolkit a good idea); restrict to pure images (no need for the extended images of DataLab-J). Project 2: No GUI; can be in Windows or UNIX; each function is in a spearate executable (cf. UNIX filters, pipes), communication between separate programs via file; the file format should be carefully designed, use e.g. XML. Project 3: For C++, read C#. Hardware and Software Prerequisites: Up to date C++- compiler with Standard Library. Current DataLab-J software and documentation will be supplied by supervisor. Project Deliverables (this is flexible and depends on the emphasis of the project): survey of STL and image ADTs; design of image ADT; prototype software; test reports; evaluation of efficiency; Additional Remarks: If you want to use C#, check carefully about compiler availability. References: J. Campbell, 1994, DataLab documentation contained in http://www.cs.qub.ac.uk/~J.Campbell/myweb/dl/. J. Campbell, F. Murtagh, and Munevver Kokuer. DataLab-J: a signal and image processing laboratory for teaching and research. IEEE Trans. Education, 44(4):329-335, 2001. B. Stroustrup, 1998, The C++ Programming Language, Addison Wesley. A. Koenig and B. Moo, 2000, Accelerated C++, Addison-Wesley. end. ----------------------------------------------------------- LyIT Final Year Project Offering (dljiface.txt) Supervisor Name: Jonathan G. Campbell Project Title: User Interface for DataLab-J. Project Aims: Develop a prototype user interface for DataLab-J. Provide recommendations and eventual design. Project Description: DataLab-J is a software signal and image processing laboratory (Campbell et al, 2001); a new version (DataLab-JN) is under development. DataLab-J handles monochrome images and colour images and provides a wide variety of operations on these data types. It also handles multivariate data sets for the purposes of 'pattern recognition' work. The system is implemented in the programming language Java. Currently, DataLab-J has a purely command-line user-interface. We require a GUI user-interface. The project /could/ proceed as follows: define the problem by surveying the current version of DataLab-J plus some commercial image processing system(s) (see refs. in (Campbell et al)); prototype image display using Java Foundation Classes (see Knudsen, Topley, Eckstein et al); see also Knudsen, 1999 (Java 2D Graphics). The program should be able to display images from a range of file types (e.g. .pgm, .jpg); prototype point-and-click interface (event driven); specify user-interface (requirements); design prototype user interface [prototype may proceed in two stages -- (1) one that is GUI and just feeds into current command-line system; (2) a full GUI design]; design, test, evaluate, etc. Hardware and Software Prerequisites: Java 1.2, incl. JDK --- Java Swing. Project Deliverables: survey of user-interfaces for image processing systems; brief evaluation of image display techniques in Java; brief description of HCI issues for such a program (& generally if desired); system design for a prototype user interface, at least to stage (1) above; prototype software; test reports. Additional Remarks: References to commercial packages available in our papers. References: J. Campbell, F. Murtagh, and Munevver Kokuer. DataLab-J: a signal and image processing laboratory for teaching and research. IEEE Trans. Education, 44(4):329-335, 2001. J. Knudsen. 1999. Java 2D Graphics. O'Reilly and Assoc. R. Eckstein, M. Loy and D. Wood, 1998, Java Swing, O'Reilly and Assoc. K. Topley, 1998, Core Java Foundation Classes, PTR Prentice Hall end. ----------------------------------------------------------- LyIT Final Year Project Offering (image.txt) Supervisor Name: Jonathan G. Campbell Project Title: Image processing and pattern recognition algorithms for inspection. Project Aims: Study and implementation of image processing and pattern recognition algorithms (this is a generic aim -- specific projects are detailed below). Project Description: Increasingly, it is possible to automate inspection tasks previously done by humans (Campbell et al, 1998). Examples of projects being undertaken by the Image Processing and Pattern Recognition group at LyIT are: MSc project on machine inspection of potatoes (for quality control); and, in conjunction with the Marine Biology Group, application of image processing and pattern recognition techniques to the identification of bivalve larvae (identification of scallop larvae amongst other shellfish larvae -- this has application for those who wish to harvest the larvae, which can be sold to fish-farmers for a further two or three years growing). If you are interested in neural networks, there are plenty of applications for them here. Likewise fuzzy logic. Mostly, this work is done using DataLab-J (developed by J. Campbell). However, there is no reason why other packages (see Campbell et al, 2001) could not be used. DataLab-J is a software signal and image processing laboratory (Campbell et al, 2001); a new version (DataLab-JN) is under development. DataLab-J handles monochrome images and colour images and provides a wide variety of operations on these data types. It also handles multivariate data sets for the purposes of 'pattern recognition' work. The system is implemented in the programming language Java. Project 1. Identification of Euro coins by their shape and size; perhaps add colour. Project 2. Hand shape recognition as an authentication method. Project 3. Image processing for machine inspection of textiles (see Campbell et al, 1998). Project 4. Automated analysis of satellite imagery of the earth; e.g. land-use mapping; I have a satellite image of East Donegal area (however, old, circa 1988). Other pattern recognition projects: - Recognition of bird-songs; classify birds by their sounds; spectral method could be used. Other image processing projects: - Data compression; - Applications of Wavelet Transforms; Hardware and Software Prerequisites: Up to date Java compiler. Current DataLab-J software and documentation will be supplied by supervisor. In most cases, images can be supplied by the supervisor. Project Deliverables (this is flexible and depends on the emphasis of the project): survey of relevant image processing and pattern recognition methods; identification and analysis of requirements; design and implementation of software; test reports; evaluation of algorithms; Additional Remarks: None. References: J. Campbell, F. Murtagh, and Munevver Kokuer. DataLab-J: a signal and image processing laboratory for teaching and research. IEEE Trans. Education, 44(4):329-335, 2001. J.G. Campbell and F. Murtagh. Automatic Visual Inspection of Woven Textiles using a Two-stage Defect Detector. Optical Engineering, 37(9):2536-2542, September 1998. end. ----------------------------------------------------------- LyIT Final Year Project Offering (scrabble.txt) Supervisor Name: Jonathan G. Campbell Project Title: Scrabble game. Project Aims: Development of a computer-based version of the board game Scrabble. Project Description: The Scrabble board game is a crossword-like board game. Players draw letters (randomly) from a pool so that they have seven letters. Taking turns, players are allowed to place letters on the board such that the letters make (a) (dictionary) word(s) and such that this word connects with other words on the board. Each letter has a score (e.g. E = 1, K = 5, H = 4, Z = 10, etc.) and the score obtained for a word is obtained by counting the scores of of the words made by the player. Some positions (tiles) on the board attract higher scores: double letter, triple letter; in addition there are double word and triple word tiles that affect the score of whole words. There are a number possibilities: - human player against computer player; - human player against human player; - computer player against computer player -- perhaps with players using different algorithms/dictionaries. In each case the computer: (a) keeps track of the game state including the letter pool; (b) deals out letters randomly; (c) displays the game state; (d) acts as referee -- checks if words are legal, that players have played words available to them, etc.; (e) provides user-interaction. For the 'computer player', you will have to devise a way of selecting 'skill level', e.g. his 'word power' by deleting words from his dictionary. The basic project offers fine opportunity to demonstrate good requirements analysis, good object-oriented design, good user-interface design, etc. Graphics could be used, but would not be essential. As with most 'artificial intelligence' software (most software in fact), representation (of the players letters, of the letter pool, of the board and the state of the game) will be crucial. Make sure to keep the representation separate from user-interaction and display. If there are existing scrabble games, I'm not worried; this will be a good exercise if designed from scratch. Hardware and Software Prerequisites: Up to date compiler in the chosen language (C++ or Java; if anyone has a preference for C, C# or even VisualBasic, we can discuss it). In Linux/UNIX many dictionaries are available, I'm not sure about Windows. It will help to know the game, but if you like the sound of it and don't know the game, then I'm happy to demonstrate -- the rules are simple and you should be able to grasp it within 15 minutes or so. If using C++, make sure to use the containers and algorithms of the C++ standard library; likewise, if using Java, make sure to use the corresponding libraries. Those of you who have attended my courses will know Simple DirectMedia Layer (SDL). Incidentally, I have ported the Brackeen latform game to SDL (2008-08-20). Project Deliverables (this is flexible and depends on the emphasis of the project): requirements analysis (in my opinion, this is a project which will benefit from careful analysis); survey of 'artificial intelligence' playing algorithms (in reality, we probably need only good search algorithms); design; prototype software implementation; test reports; evaluation by real players. Other ideas: - Personal Data Assistant (PDA) (e.g. Palm, Pocket PC) version; - mobile phone version; - Web version. References: Google for . end. ----------------------------------------------------------- LyIT Final Year Project Offering (boardgame.txt) Supervisor Name: Jonathan G. Campbell Project Title: Appropriate board game. Project Aims: Development of a computer-based version of a board game. Project Description: See my description of the Scrabble game. Substitute another appropriate game. By 'appropriate', I mean that it offers similar difficulties and opportunities: internal representation, development of 'artificial intelligence' algorithms; external representation and display. References: end. ----------------------------------------------------------- LyIT Final Year Project Offering (authent.txt) Supervisor Name: Jonathan G. Campbell Project Title: User authentication via drawn 'signature'. Project Aims: Study and implementation of alternatives to text passwords such as simple drawings as 'signatures'. Project Description: We all know that passwords have insecurities (people record them where imposters can find them; they can be captured from data links; they can be extracted under duress; etc. In (Everitt and McOwan, 2003) a scheme is described in which users input a simple signature (drawing) using a mouse. There are many interesting aspects to the project (and a successful project might cover only a few of them): 1. Input of the signature/drawing; Everitt and McOwan use a Java program; in a practical system, it would probably be necessary to capture the dynamics of the drawing, i.e. what strokes are drawn in which order -- rather than look just at the final drawing; 2. Representation of the signature/drawing -- what sort of data structure to store it in? 3. Comparison of an attempt with a stored master -- this is pattern recognition; I have software that addresses this, see (Campbell, Murtagh, Kokuer, 2001). etc. Hardware and Software Prerequisites: Up to date compiler for the languages. Current DataLab-J software and documentation will be supplied by supervisor. Project Deliverables (this is flexible and depends on the emphasis of the project): survey of authentication, survey of relevant pattern recognition methods; identification and analysis of requirements; design and implementation of software; test reports; evaluation of algorithms; Additional Remarks: None. References: J. Campbell, F. Murtagh, and Munevver Kokuer. DataLab-J: a signal and image processing laboratory for teaching and research. IEEE Trans. Education, 44(4):329-335, 2001. R. A. J. Everitt and P.W. McOwan, Java-based Internet Biometric Authentication System. IEEE Trans on Pattern Analysis and Machine Intelligence, Vol. 25, No. 9, September 2003. end. ----------------------------------------------------------- LyIT Final Year Project Offering (elect.txt) Supervisor Name: Jonathan G. Campbell Project Title: On-line large-scale election voting using WWW. Field of Computer Science: WWW, security, authentication, safety-critical systems. Project Aims: To develop a prototype on-line election voting system. Project Description I suggest use Student Union elections as a test bed, i.e. acquire your reequirements from their rules and regulations. [More detail can be filled in during initial discussion.] Hardware and Software Prerequisites: need server, or simulated server. Should work on normal browsers. Project Deliverables: survey of methods currently in use; identification and analysis of requirements; design of prototype software; implementation of prototype software; test reports; evaluation of usability and robustness. References end. ----------------------------------------------------------- LyIT Final Year Project Offering (ocr.txt) Supervisor Name: Jonathan G. Campbell Project Title: OCR for ballot paper counting. Field of Computer Science: pattern recognition, image processing, OCR. Project Aims: To study optical character recognition for (voting) ballot paper counting. Project Description References J.R. Parker, Algorithms for Image Processing and Computer Vision, Wiley, 1997. This has OCR code in C++. end. ----------------------------------------------------------- LyIT Final Year Project Offering (mac1.txt) Supervisor Name: Jonathan G. Campbell Project Title: Development of a CPU simulator. Field of Computer Science: Computer Architecture; simulation; object-oriented design. Project Aims: To develop a simulator for a computer central processing unit. Project Description: The Mac-1 computer (Tanenbaum, 1990, Campbell, 2003) is the computer used to introduce the principles of computer architecture and organisation in my course on Computer Systems. It would be nice to have a simulator that would show (pictorially) the operation of Mac-1. Considerable work has been done before. A simulator, DPSim, has been written by Emily Ezust (search for it using Google) -- in the C programming language. This simulator is limited by it's use of a special UNIX display library called 'curses'. There is also a simulator written in Java called MicMac (search for this using Google). I think that a project would better start from scratch -- these other simulators would be useful only as a guide and to identify requirements. See also Ontko and Stones simulator, but that is for a different machine. The C software is available at: http://www.cs.qub.ac.uk/~J.Campbell/myweb/proj/dpsim/ Hardware and Software Prerequisites: Appropriate Java (1.2) or C++ compiler. Additional Remark: this projects has plenty of scope; provided you can program, it will be easy to do a middling project (50--55%); and, for those who want a project with first class potential (70%+), therr is plenty of scope to add nice features. Project Deliverables: identification and analysis of requirements; design of software (including relevant classes/objects); implementation of prototype software; test report. References; A. Tanenbaum, Structured Computer Organization, 3rd ed, Prentice Hall, 1990. J.G. Campbell, Lecture Notes on Computer Systems, Letterkenny Institute of Technology, 2003. Ray Ontko and Dan Stone, Mic1 simulator: http://www.ontko.com/mic1/ end. ----------------------------------------------------------- LyIT Final Year Project Offering (spam.txt) Supervisor Name: Jonathan G. Campbell Project Title: Spam filter. [Difficult] Project Aims: Development of a prototype text document filtering system (spam filter). Project Description: Hardware and Software Prerequisites: Project Deliverables (this is flexible and depends on the emphasis of the project): survey of competing methods; identification and analysis of requirements; design and implementation of prototype software; test reports. Additional Remarks: References: end. ----------------------------------------------------------- LyIT Final Year Project Offering (oglgraphics.txt) Supervisor Name: Jonathan G. Campbell Project Title: Interactive OpenGL graphics. Project Aims: Development of an interactive robot using OpenGL. Project Description: Development of (for example) a three-dimensional robot with which the user can interact (command it to walk in a certain direction, jump, smile, speak?, ... You could start off with a simple robot, see (Angel, 2003) chapter 9.6.6, composed of cylinders for the body and limbs, and a sphere for the head and build on that. You could use Simple DirectMedia Layer (SDL) for user input and for sound output. Hardware and Software Prerequisites: Up to date compiler in the chosen language (e.g. Visual C++). Machine needs to have OpenGL installed. (Of course, this can be done on a Linux machine and OpenGL is available for all platforms.) Project Deliverables (this is flexible and depends on the emphasis of the project): requirements analysis; survey and discussion of the graphics; design; prototype software implementation; test reports; evaluation. References: E. Angel, Interactive Computer Graphics: a top-down approach using OpenGL, 3rd edition, Addison Wesley, 2003, ISBN 0-201-77343-0. F.S. Hill, Jr., Computer Graphics Using Open GL, 2nd ed., Prentice Hall, 2001, ISBN 0-13-320326-3. Nehe Productions, Online OpenGL Tutorials, available at http://nehe.gamedev.net/. D. Astle and K. Hawkins, OpenGL Game Programming, Prima Publishing, 2001, ISBN 0-7615-3330-3. J.D. Foley, A. Van Dam, S.K. Feiner, and J.F. Hughes, and R.L Phillips, Introduction to Computer Graphics, Addison-Wesley, 1994, ISBN 0-201-60921-5. A. Watt, 3D Computer Graphics, 3rd ed., Addison-Wesley, 2000, ISBN 0-201-39855-9. M. Woo, J. Neider, T. Davis and D. Shreiner (OpenGL Architecture Review Board), OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 1.2, 3rd ed., Addison Wesley, 1999, ISBN 0-201-60458-2. OpenGL Architecture Review Board (D. Shreiner, ed.), OpenGL Reference Manual: The Official Reference Document to OpenGL, Version 1.2, 3rd ed., Addison Wesley, 1999, ISBN 0-201-65765-1. end. ----------------------------------------------------------- BSc Final Year Project Topics -- Other Possibilities jg.campbell 2008-08-25 Before you read this, make sure you have read my main offerings (which are considerably better specified that what is here). Major Subject Areas. Image and Signal Processing. Multivariate Data Analysis. Pattern Recognition. Machine Inspection (esp. textiles). Remote Sensing. Neural Networks. Fuzzy Sets and Soft Computing. Genetic Algorithms. Simulation. Wavelet Transforms. Data Compression. Estimation Theory. Software Engineering. Automation of Business Activities via WWW. Java. Software Architectures. Object-oriented programming. Games programming. Graphics programming. For references and further information, see my publications list: http://homepage.ntlworld.com/jg.campbell/cv/node1.html Software/languages to be used: I am open to most languages; I know C, C++, Java well, and so would be more comfortable providing supervision/assistance on projects implemented using these languages. - Simulation -- of anything that you understand well and/or are interested in. See for example (in my main offerings) the detailed specification of the simulation of a CPU. - Automated software testing. Rationale: regression testing is time consuming and troublesome -- need automation. See Bruce Eckel's online book 'Thinking in Patterns' (use Google to find it). Or see my links: http://homepage.ntlworld.com/jg.campbell/links/patterns.html Search also for "JUnit", a freeware product. Languages: C++ (harder); Java (see Eckel book); C(?). - Development of an XML based file storage format for images (include graphics overlays) and other data. - Genetic Algorithms (I mention this because: (a) I have G.A. software written in C, and that could be redesigned using objcts/classes in C++ or Java; (b) it was the subject of quite a successful project a few years ago -- but not supervised by me); - Reading of analog clocks/metres from images. See my detailed project offerings. end. -----------------------------------------------------------