Anda di halaman 1dari 84

Proposed Title Project Description

: A Software Environment for Development and Evaluation of Image and Video Processing Algorithms Most of the digital cameras currently available on the market produce images that require further PC based processing. The most commonly applied processing is image enhancement and geometrical manipulations. These operations are usually performed by the users running such applications like Adobe Photoshop, Paint Shop Pro, PhotoFinish, etc. These applications contain a collection of built-in algorithms that cannot be easily extended or modified as they are designed for end users. Thus, these commercial applications cannot be used for development and evaluation of new image enhancement and manipulation technologies and theoretical research. The objective of this project is to create a software environment which can become a flexible and convenient tool for researchers on image processing. The tool shall minimise the programming load on algorithm developers giving them an opportunity to focus mostly on theoretical aspects and experiments. C/C++, Java, HTML, UNIX system programming No previous experience in the area of image processing is required. The key technologies used in this project are UNIX, Windows. Client/Server architecture. Multi-threading. Inter process communication. It is expected the development platform and language will be GNU C/C++, Java.

Assumed Knowledge & Difficulty Platform, Key Technologies &Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Access control framework manager The project should provide a suitable interface to develop access control software for governing specified scenarios. The framework should allow appropriate discretionary and mandatory, multilevel and multilateral, group, privilege and role based access control models to be combined for use with other applications. Thus, for example, an instance of a framework could govern the access control for a database of documents. Queries would necessarily pass through the access control module and be appropriately handled.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Proposed Title Project Description : Access control road grid Consider an intersection of roads. Various rules, both global road rules and local traffic light settings govern the appropriate or legitimate behaviour of travellers. This project aims to provide a package for concisely representing, viewing and changing the setting across a traffic grid. The group will need to think careful about the types of intersections to be modelled, and how this can be appropriately done. They will need to consider how to represent the settings of traffic lights. They may consider the possible discretionary overrides allowed by emergency vehicles, for example. The group could also choice to consider traffic auditing, to check consistency with the rules specified. A decent appreciation of access control models. Difficult to do really well.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Advertising Support Manager Pay per view advertising for websites has been used for quite a long time, as has product placement in television programs and movies. The aim of this project is to build a module for use in some framework, such as XNA, to support the application of domain specific advertising and the associated pricing management. Product placement is also used in computer games. The module should allow image objects within the game to be tagged in such a way that they can be readily replaced in different domains with branded products. So, for example, a generic bottle could be replaced by a Coca Cola bottle in Australia, but by a Sprite bottle in Singapore or simply a differently labelled one. This may be fairly straight forward image substitution. The second component would be managing the amount of revenue a particular advertisement/labelled product would cost the advertising party on the basis of player views. So in a first person shooter for example, a peripheral view of a drink bottle might cost the advertising company 0.01 cents per second, while a front view may earn 0.03 cents per second. Similarly named products could cost the company per use, so somebody drinking a branded product might earn 1 cent.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

Probably fairly straight forward to produce something, but difficult to build a nice product that would make it worthwhile for a software company to use in their games.

For PC.

CSCI321 Project Descriptions

Proposed Title Project Description

: An adventure in Flatland Edwin Abbott Abbott wrote a story in the late 19 th Century based around a 2-dimensional world and designed to illustrate the idea of dimensionality. The book can be found at http://www.ibiblio.org/eldritch/eaa/FL.HTM. There are a couple of movies, one at http://www.flatlandthemovie.com/, and http://www.flatlandthefilm.com/, inspired by the book, as well as several other books inspired by Flatland. The project involves designing and implement a game within this two dimensional world, probably an adventure or problem solving game. The critical feature with there being no third dimension is that you cannot have overlaps between objects at all and even carrying something can be significantly non-trivial. To make the world consistent the group will need to consider such details as the flow of flat water. The group should attempt to make the flatness an interesting feature in itself.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

The difficulty depends on how ambitious a group is. For PC.

CSCI321 Project Descriptions

Proposed Title Project Description

Assumed Knowledge

: An English to sign language translator and a tool for learning sign language. Implement a translator which takes English sentences and renders them in sign language. It would probably be appropriate to use whatever version of sign language is accepted as the standard in Singapore. The translator could be designed to be flexible though and allow for dialects or different sign sets. The same graphical representations can be used in a tool for learning sign language. The group will need to look at formal compact (non-graphical) representations or descriptions of signs, so as to concisely and conveniently allow the addition of new signs to the sign language dictionary. Some members would need familiarity with computer graphics and image representations. Some knowledge of formal languages, for representing the signs non-graphically would be useful. It isnt necessary for the students to know sign language to start with. PC.

Platform, Key Technologie s and Tools to be used Proposed Title Project Description

: Athletics Performance Aid. The aim is to develop a service to support users to manage training and performance plans. Users could record details of training sessions and performances. The system could assist users in developing appropriate training plans for, for example, performing a marathon. Users would be able to enter statistics and track their individual progress. Communities within the service would share information, such as records across events or the total hours trained.

Assumed Knowledge

Nothing in particular.

Platform, Key Technologie s and Tools to be used

CSCI321 Project Descriptions

Proposed Title Project Description

: Augmented Reality Card Game The goal of this project is to design and develop an interactive Augmented Reality (AR) card game. The project will involve overlaying computer graphics onto images of the real world using a web cam and an existing software library. Students must develop their own code, models, artwork, etc. The game must have a functioning user interface and be able to track markers (on the cards) correctly. In addition, the game logic and graphics must respond appropriately. Example games: Sudoku, a 3D trading card style game, etc. Students should have a background in C/C++. Knowledge of computer graphics is desireable. The project is to be developed using ARToolKit.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Additional Resources

Webcam (to be provided by the students)

CSCI321 Project Descriptions

Proposed Title Project Description

: Authorization Engine Documents often require authorization or approval to be obtained at many levels. For example, an exam people requires the approval of the lecturer, who prepares the exam, a moderator who reviews it, and an overall unit head who gives final approval. The aim of this project is to provide a framework for managing the transport and authority checking of documents. An administrator would need to be able to set up classes of document requiring different authorisation phases, and set up users of different classes. Documents created within a particular authorisation class would need authority by other persons before being certified in some sense as meeting that class of authorisation. An exam, to use the same example as before, has the three layers of authorisation. There should be a significant audit infrastructure to allow an auditor to see the chain of authorisations, and maybe a document header, but not the details of documents.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Proposed Title Project Description : Bank Simple. Build a bank. Not a real bank and appropriate disclaimers will be needed to make sure the group isnt accused of an attempted scam. I would suggest an artificial currency be used too although having a real exchange rate with existing currencies might be useful. This will be an online bank and should be able to manage customers and their accounts through a secure web interface. The authentication process, both for the client and server, should be carefully considered. Web design experience would be useful.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Biological ecosystem The project is to develop a model of a specific ecosystem that the group should choose. The group could, alternatively, build a framework for the modelling of such systems. A specific ecosystem should be chosen The design process would be particularly integral to a good job being done on this project. Care will need to be taken in determining an appropriate level of detail. The group will need to consider how the component status and transported information can be appropriately represented. An appropriate level of detail should be chosen, but the model should be such that additional components can be added with minimal hassle.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title

: Block builder

Project This project involves implementing a Lego type block builder kit. Description The group would need to model the pieces. Users would be able & Group Size to select pieces and join them together. It would be important to deal with problems such as piece storage, linkage storage and collision testing. A group of four students would be enough. Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Additional Resources
The difficulty depends on how ambitious a group is. A limited project would be completed fairly easily but there is a lot of room for expansion.

Probably XNA.

Access to Lego or similar block sets would be useful. It would be the responsibility of the group to obtain these.

CSCI321 Project Descriptions

Proposed Title Project Description

: Block cipher design and analysis framework Block ciphers are one of the main classes of modern symmetric key ciphers. They are often based on some standard building blocks and common structures, such as S-boxes, P-boxes and the Feistel structure. This project should develop an interface for the design and analysis of block ciphers, using such abstractly represented structures made concrete, and the subsequent implementation of C/C++ code implementing the cipher. On the analysis side, it should be possible to test ciphers against standard attacks, such as linear and differential cryptanalysis, as well as providing analysis of general statistical properties. Measures of efficiency using the developed code should also be possible. Benchmarking of components may make it possible to determine the efficiency of the cipher prior to its implementation. It is not expected that students will be familiar with substitutionpermutation networks, or linear or differential cryptanalysis already, and the group will need to learn. This project is probably of medium to hard difficulty. PC. The group can decide on an appropriate language to write the interface in, but the code generated by the framework should be C/C++.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Body builder The project is to develop a model of the human body, with the main different organs represented by different processes. These organs can transport material between each other based on external or internal inputs. A user could be responsible for providing external inputs, such as food which would be processed and transformed as it passes through the body. The design process would be particularly integral to a good job being done on this project. Care will need to be taken in determining an appropriate level of detail. The group will need to consider how the organ status and transported information, corresponding to physical entities, can be appropriately represented.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Book mapper/guide Many books are now available in online or electronic versions. The aim of this project is to enrich the experience of reading such books. There are really two possible directions the project could take, although a group could choose to do both. This project could provide a mechanism for mapping the progression of a story through different locations. If a map is provided with a digital story it isnt always easy to follow the progression between locations. This application would need to be able to extract location information, possibly with the aid of the user, from a map, if it exists, and from the book itself. If no map exists with the book there are two options, depending on where the book is set. If the book is a fantasy book set in another world a graph could be constructed indicating the traversals between locations without particular connection to the actual relationship between those locations. If the book is set of Earth something like Google Maps could be used to show real traversal relations. The latter point could be expanded on to include resource drawn from Google Images or similar so, for example, a scene taking place in the St. Pauls Cathedral could have the image of the Cathedral appear in the application.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Boom town This project involves developing a tool for modelling the seeding and growth of a town, such as a settlement rapidly growing on the back of the discovery of natural resources such as gold. It would be necessary to choose a particular period of time and place, which would influence the nature of the housing and support industries. It need not be a boom town, it could be a farming community for example, or a newly colonized port town. The group would need to find historical information appropriate to the system being modelled, to determine the appropriate industries or people likely to be present at a particular stage of the towns evolution. For example, when would a carpenter first arrive, a blacksmith, a tavern (probably immediately) and so on. To be really realistic the analysis would need to include resource analysis, including of building materials and of food supplies and the ability to grow or obtain additional resources. Fairly different models would be needed for different contexts, such as medieval farming against Californian gold rush. However, there would be a lot of common ground and a group could choose to instead develop a framework with parameters which could be set to suit different environments.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

Four to five students would be appropriate for this project. This could be really difficult to do well and completely. It is probably appropriate that the group identify some aspects to focus on. The terrain could be approximately ignored for example. Probably an interest in history would be useful motivation.

CSCI321 Project Descriptions

Proposed Title Project Description

: CAPTCHA secured email server Develop a wrapper around an email server, probably something like JAMES in Apache, which will distinguish between legitimate and illegitimate users. Each user should maintain a black list and a white list of addresses. An email from an unlisted address should be blocked until a CAPTCHA challenge to that address is appropriately added. At that point the address could be added to the white list, or the message could be allowed to pass on a oneoff basis, depending on the configuration settings. Familiarity with Apache would be useful.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools


Proposed Title Project Description

: Car Pooling Manager

With more and more road congestion and higher fuel and parking costs, car pooling is becoming increasingly popular. However, it can be difficult for car pool members to find out exactly who has similar transport needs so that sharing can be done. This project is intended to provide a web based package that can enable commuters who want to share their travel needs to easily find each other on the web. This website should have regional map(s) of suburbs covering the car pool area, although roads may not be necessary where the area is large. For example, cars commuting to Uni and looking for passengers or another car to share travel with, can be shown as lines (or arrows) connecting locations on the map. They could also have a car icon on them that can be clicked on for further details of what is wanted and who to contact. Likewise, a person looking for a ride to Uni can be shown as a person icon on the map with arrows indicating travel desires. To see who is travelling where and when, controls are provided to select the day of the week and the time of day. Thus, by pushing the buttons and moving the slider bar the user can clearly see on the map who is commuting to/from Uni where and when, and what their travel sharing desires are. Users could enter their travel details on the map by simply filling in a web-based form.

CSCI321 Project Descriptions

Assumed Knowledge & Difficulty Platform, Key Web development skills are essential. Experience with html, java, Technologies java script, php, etc. are desirable. and Tools

Proposed Title Project Description

: Car systems The project is to develop a model of a generic car, with the various components, such as the engine, fuel tank and lights, represented by different processes. These components would transport signals or material, such as fuel or water, between each other based on external or internal inputs. A user could be responsible for providing external inputs, such as switching on the lights or applying the brakes, which would be processed and transformed as it passes through the car. The design process would be particularly integral to a good job being done on this project. Care will need to be taken in determining an appropriate level of detail. The group will need to consider how the component status and transported information can be appropriately represented. An appropriate level of detail should be chosen, but the model should be such that additional components can be added with minimal hassle.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Code racer The overall aim of this project is to produce an educational tool for students learning to program, specifically in C++. A framework allowing other languages, possibly scripting languages also, could be developed but doesnt need to be. The tool will be built up of a series of programming challenges, which will increase in difficulty. Given a specific pattern or challenge, the user will need to code the solution within the program and have it tested before moving to the next challenge. For example, the simpler challenges may involve writing code to display n lines each with n stars on them, or in a triangular pattern. More complex tasks could involve the user needing to implement something in accordance with particular inheritance hierarchies or UML specifications, or to solve particular mathematical problems numerically.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

Capable programmers in C++. The project itself doesnt need to be written in C++ but the product should improve C++ programming skills.

CSCI321 Project Descriptions

Proposed Title Project Description

: Colour deficiency testing manager People who are colour deficiency cannot distinguish between certain colours, such as red and green. While red/green colour blindness is probably the best known type other sorts of colour deficiency exist too, even to the point of people seeing the world in black and white. There are various common tests of colour deficiency, such as the Ishikawa test. That test involves the reading of numbers drawn using a collection of differently sized coloured balls surrounded by differently sized and differently coloured balls. Persons with colour deficient persons will not be able to read the numbers if they cannot distinguish between the colours of the balls inside the number and outside the number. There are problems with this test however, since not everybody can read numbers. What if you want to test a typical two-year old for example? The project is to implement a suite of tests to cover such scenarios, and a framework to manage testing collections of persons, such as school classes. The tests should allow the identification of colour deficient persons and the classification into a particular category of colour deficiency. This project could be extended to involve the conversion of images, or videos, from full colour to colour as seen by a person with a particular type of colour deficiency. This would be helpful in educating systems designers regarding the careful choice of colours.

Assumed Knowledge Platform, Key Technologie s and Tools

PC. The group can decide on an appropriate language.

CSCI321 Project Descriptions

CSCI321 Project Descriptions

Proposed Title Project Description

: Conference organizer Conferences are time consuming to organise and manage. This project seeks to make the organisation of a conference end-toend an effortless Web-based process with information collected to be stored in a back-end database for re-use. Collecting delegate details, and presenter contact information, as well as abstracts and completed papers are an important aspect of the Conference Organiser. Speakers should be able to enter and maintain biographies, photos and contact info. One of the most difficult tasks is to facilitate a double blind peer review process of paper submissions and receiving adequate feedback from reviewers in a timely fashion. Automating this process, in addition to giving ongoing feedback to clients is important. Sending email alerts and web links for uploading documents is integral to the Conference Organiser. Another task is to ensure that registration money is collected from all presenters and conference delegates and to allow this to happen via a web-based electronic payment system that accepts Credit Cards. Booking accommodation and air travel is another time-consuming activity. Access to all the data can only be made by the relevant persons who have varying degrees of privileges including, Conference Chair, Author(s), Reviewers, Financial Secretary.The Conference Organiser should facilitate meeting deadlines for various stages of publication including: working paper, camera ready copy, publication date. It should also help to organise ACCEPTED conference submissions in a timetabled format ready for delivery, based on the theme of the paper. The system should also have the ability to determine conference expenses. For example expected numbers, resources needed, meals etc. It should also have the ability to manage resources, helping organisers to answer questions such as: Do room capacities allow for the room set-ups you will need? Will any rooms need different set-ups in the same day? If so, please allow us to confirm that there is adequate time between meetings to complete the change. Has space been reserved for all your needs, including catered breaks, storage, office space, etc.? The system should allow conference presenters to request audio visual equipment, such as microphones and sound systems, podiums, blackboards, projection screens, easels, etc. If presenters plan to provide their own AV equipment, we need to know what they are bringing so we can ensure availability of outlets. The system is to allow management of conference entertainment and meals, such as guest speakers and other special guests, total headcounts and special dietary requirements.

CSCI321 Project Descriptions

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Proposed Title Project Description : Coordinated Movement In many games (such as team sports games; squad-based games; real-time strategy games; first person shooters; driving games, and action adventures) units of virtual characters are required to cooperate with each other to move in the virtual environment with intelligence and cohesion. This coordinated motion can be approached with individuals making a decision as a whole and move in a prescribed, coordinated group. This project looks at ways to move groups of characters in a cohesive way (formation motion), having already made the tactical decision that they should move together. Group of characters move in a manner that retains some group organization. At its simplest form, it can consist of moving in a fixed geometric pattern such as a V shape, but the project will go beyond that to look at different formation patterns. Students should have a programming background. Knowledge of computer graphics and 3D modelling is a must. The project should be developed for Windows using an appropriate game engine approved by the supervisor.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Crash avoidance engine It is useful for an autonomous mobile entity to be able to detect and avoid collisions, with other moving entities or with fixed objects such as walls. The aim of the project is to develop software to detect, in real-time, potential collisions and possibly navigate in accordance with collision avoiding rules. The group will need either sound transmit and receive capability or, and this is the preferred option, video capture from at least mounted cameras. Based on the relative configurations of the cameras the images obtained can determine the distance from objects. Users should be able to describe camera configurations and rules of avoidance, such as allowed proximity. This is probably difficult. Familiarity with image processing would be a good idea.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Additional Resources

To test this would probably require a least two small cameras.

CSCI321 Project Descriptions

Proposed Title Project Description

: Critical infrastructure analysis tool Water and electricity are examples of resources which are critical to the smooth running of most cities. In this project one such resource should be chosen as a focus. It need not be water or electricity, something such as gas could also be used. The project should provide an interface to observe/measure and control the appropriate flow of the resource. Each resource would face distinct challenges, such as overloading or flooding, fires for gas, and the group would need to carefully analyze the real world issues associated with the chosen resource. An analysis of resource usage in different areas would be required too.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Crowd Simulation There has always been interest in understanding and controlling the motion and behaviour of crowds of people. When a group of people become one entity (a crowd), they can lose their individuality and adopt the behaviour of the crowd entity, behaving in a different way than if they were alone. These characteristics of crowds made it highly desirable in interactive applications (such as computer games) as emergent behaviours begin to appear as soon as a group of characters gather together. This increases the immersiveness of these applications as every game play encounter by the user (players) differs according to what emerges from the crowd. This project looks into the simulation of crowds of virtual characters for emergent behaviours. Problems that will be tackled may include: Collision avoidance related to a large number of characters in the same place and motion planning used in a group that moves together (to name a few). The project should be developed for Windows using an appropriate game engine approved by the supervisor.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools to be used

CSCI321 Project Descriptions

Proposed Title Project Description

: Cryptographic web maze generator This project should provide an interface for the generation of cryptographic puzzle mazes within a set of interconnected websites. The group should consider a collection of basic cryptographic puzzles, such as small hashing or simply cipher solving, as a means of linking the websites. The user could start at http://127.0.0.1/begin.html and be given a puzzle. The solution to the puzzle could be in two parts, one B45A specifying the next location http://127.0.0.1/B45A.html which may have the solution B45A, and the password for that location. The passwords would make randomly jumping around difficult. Depending on the setting of the design puzzles a series of ten steps may be required to reach the final location.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Data Migration System

The general objective of the project is to implement a system that allows for the transfer of data between different data containers, e.g. relational tables, persistent objects, XML documents, NoSQL data containers, structured and unstructured data files. The specific objectives include: 1. Establishing connections between different distributed and heterogeneous database systems and file systems. 2. Implementing a simple Data Transfer Language that allows for specification of the sources and destination of data transfer, identification of data components to be transferred together with the possible restructuring of data. 3. Implementation of transfer of data between distributed and heterogeneous databases and file systems. 4. Reporting
Medium difficulty.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

Windows XP environment, a number of DBMSs, Java, JDBC

CSCI321 Project Descriptions

Proposed Title Project Description

: Database Design with Object Constraint Language (OCL)

Object Constraint Language (OCL) is a formal language that can be used to describe UML models and expressions over UML models. An OCL expression can be used to specify operations / actions that can trace a state of a database system and whenever necessary can change a state of database. This is why UML modellers can use OCL to specify application-specific constraints in their conceptual database models. UML modellers can also use OCL to specify queries over UML view of conceptual schemas. The other applications of OCL include: query specification, specification of invariants on classes and types in the class specifications of invariants for stereotypes, specifications of preand post- conditions on Operations and Methods descriptions of guards, specification of derivation rules for attributes for any expression over a UML model. In this project we would like to use OCL to aid the database design. The software implemented should translate complete database design expressed in OCL into an implementation of a relational database. We expect that input to the system includes OCL specification of conceptual schema, specification of consistency constraints, and specification of database applications. Outputs include SQL scripts creating relational tables and other database objects like indexes, materialized views, etc, mechanism that enforce logical consistency (triggers, stored procedures and functions), and implementation of simple database applications.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

Java programming, SQL programming, JDBC, conceptual modelling and database design techniques WindowsXP environment or Linux environment, any DBMS, Java, JDBC, Dresden OCL Toolkit

CSCI321 Project Descriptions

Proposed Title Project Description

: Distributed Protocol framework The aim would be to construct a software toolkit in which the user could specify a protocol and have that specification turned into code. Initially the user would need to describe the participants, possibly simply by name and/or location. Subsequently the protocol itself, basically the interactions between the participants, and the checks or actions after each message, would be specified. Code, maybe in the users choice of Java or C++, could then be constructed with each participant having a compete unit of code include socket code for communication. Having understood the protocols material in CSCI368 well would be useful.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Proposed Title Project Description

: Document re-constructor Youve just found a partially shredded letter which, from the part not shredded, contains instructions to some lost treasure. You want to reconstruct the document as best you can. This software is supposed to help. Given fragments of a document, your program should be able to assist in the reconstruction of the document. There are some similarities with the jigsaw project but there wouldnt be a start image with this, just the fragments scanned in. Various technologies could be used, including edge detection, matching edges of the paper fragments, possibly text recognition of the fragments. See the DARPA http://www.shredderchallenge.com/ competition at

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

The difficulty depends on how ambitious a group is, but this almost certainly isnt going to be easy. For PC.

CSCI321 Project Descriptions

Proposed Title Project Description & Group Size

: Driving Theory

Before people can drive cars they need a drivers license. Before being allowed to drive on a learners license it is necessary that a theory test be taken. The test involves multiple choice questions testing theory and appropriate responses to situations described by static diagrams. The aim of this project is to develop a dynamic learning tool to assist persons wanting to pass the driving theory test, Rather than static images the program would generate dynamic scenarios where the user effectively drives a car in accordance with the road rules and responds to situations and challengers. For example, an instructor might tell the user to drive a car parked at point A to point B, and the user would need to use appropriate signalling, keep appropriate distances from other cars and such like. A possible extension would be to allow maps to be downloaded, from Google maps or similar, so practice on local roads would be possible for any user. This could involve a significant graphical component but the emphasis should not be on producing a full 3D world model in a game engine. The primary emphasis should be on users learning and understanding the appropriate road rules, not on being able to carry out sequences of key presses to perform game-like moves.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

A group of four students should be enough. Some of the group should have passed their driving theory tests This project is probably of medium to hard difficulty.

CSCI321 Project Descriptions

Proposed Title Project Description

: E-auction The purpose of this project is to develop an auction site. The group should explore the varieties of auctions used, such as English and Dutch, and provide support for at least one of these. A decent implementation of a wider range is likely to earn the group a higher mark. Users should be able to act as sellers, buyers or both buyers and sellers. Users should be able to participant in multiple auctions simultaneously and an appropriate interface should allow them to manage their portfolio of active actions. Histories should be maintained. A real payment should not be implemented, rather a token based mechanism might be considered. The group should consider the range of properties offered within electronic auctions, and might use an e-auction protocols to provide some of those properties.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

The client platform could be anything. The server platform should be Unix/Linux, probably running Apache as the web server but the group can decide in consultation with their supervisor. The program may be written in any language.

CSCI321 Project Descriptions

Proposed Title Project Description

: Elect or Reject: Multiparty Election Campaign Game Simulate election campaigns with live interaction between multiple players (candidates). A two-party, multi-state type election, as in the final US Presidential election, would possibly be the best to consider initially but this is flexible. Candidates would have to undertake fund raising, make policy decisions, allocate funding for advertising, allocate staff, select public appearance schedules, interact with special interest groups and so on. Since the game would run interactively the choices of one candidate should influence what the other candidate does. For example, one candidate could suggest a face-to-face debate of some format at a particular location and the other has a limited time to respond. The simulation of the populaces voting preferences could be based on historical data, although an artificial world where candidates must probe for world views, through surveys, would be interesting too and would be easier to implement. Historical data could be maintained between successive instances of an artificial world. More than two candidates could be allowed. An extension could include additional players taking the role of media tycoons who generate funds from the advertising and allocate resources to track and potentially influence the campaign. There could be interesting interactions between the world of journalism and politics, for example, candidates could bribe a tycoon to aid them, but later be found out. This has the potential for a lot of growth and complexity. It would probably be reasonably difficult to do a good job of it. Windows. Group should choose an appropriate language.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: E-voting engine The purpose of this project is to develop an application supporting e-voting. The group should explore the varieties of electronic voting schemes. The group could have an administrator responsible for the setup of elections, or the engine could allow registered users to setup issues to be voted on. In either case protocols for e-voting should be considered to support the efficient and honest resolution of the vote. Participants should be appropriately specified and authenticated when voting. It is likely that on the establishment of a voting issue, and the entering of the authorized parties, information analogous to ballot papers could be sent to participants. The group should consider the range of properties offered within electronic voting schemes, and might use an e-voting protocol to provide some of those properties.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Proposed Title Project Description

The client platform could be anything. The server platform should be Unix/Linux, probably running Apache as the web server but the group can decide in consultation with their supervisor. The program may be written in any language. : Family Tree Manager This would involve developing storage, input interface and display units associated with family trees. The group should become familiar with the typical information stored in family trees, or by family history researchers. It could include facilities for storing pictures of individuals in the tree, or of groups of persons. No particular assumed knowledge. This should be fairly straight forward but has quite a lot of potential for expansion. PC. Language to be chosen by the group.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Final Year Project (CSCI321) Management Tool This project is to develop a tool to support the administration of the final year projects. A database of projects should be able to be maintained by the administrator (Academic Program Director). It should be possible to select the projects to be offered to students, in each stream, in the current session. Students should be able to see those topics visible to them, through a browser, and make a choice of their three preferences within the time frame. The administrator should be able to assign students to groups and produce appropriately formatted documents for use by those involved in overseeing the subject. Groups themselves could be given access codes which could be used to enter links to their websites, and maybe blogs. The administrator should be able to obtain statistics on the projects taken across sessions. This would help to avoid repeating subjects frequently.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

It is likely there is other functionality that would be helpful. Moderate difficulty.

Windows. Support for appropriate versions of common browsers.

CSCI321 Project Descriptions

Proposed Title Project Description

: Fingerprint toolkit This project should deal with the collection, storage and use of fingerprints, both in authentication processes and identification processes. There are various fingerprint matching algorithms that could be implemented and the group will need to put some time into determining which to use. Ideally the toolkit should allow the testing of matching algorithms against a standard database of fingerprints. In particular determining the false acceptance and false rejection rate curves would be useful. The implementation of cancellable appropriate if time permits. templates would be

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Additional Resources Proposed Title Project Description

Some sort of fingerprint scanner will be needed.

: Football manager There are quite a few football (soccer) simulations where in players take the role of manager. It is not expected that any attempt be made to graphically model the games themselves, rather this is primarily an exercise in information management. Players would take on the role of a manager and be able to make decisions regarding the team structure, training, playing style and whatever else is deemed appropriate by the group. It probably isnt particularly difficult to get something going for this but there are some very good (shareware) football managers available and it would be difficult to compete with those.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Genetic data tool Large amounts of genetic data, both human and of other life-forms, has been collected. Various standard operations can be performed on this data, including string searching and string comparison. This tool should provide a friendly interface for performing searches across databases of genetic data. The group will need to identify and implement appropriate algorithms for standard operations, which they will also need to identify. The program may need, for example, to identify all occurrences of some given base sequence across a hundred files. Statistical functionality could also be provided, such as counting the distribution of particular bases. Probably an interest in genetics would be helpful, but it certainly isnt necessary. A good understanding of algorithms and efficiencies would be appropriate.

Assumed Knowledge & Difficulty

Platform, Key PC. Technologies and Tools to be used Additional Databases of genetic material, or samples there-of, are available Resources online.

Proposed Title Project Description

: Graph databases Graph databases are a category of NoSQL database. They avoid the familiar fixed table schemas and are defined as having indexfree adjacency. The aim is to build a graph database. There should be an appropriate methodology for setting up a databases, inserting and manipulating data, as well as reporting on the data in the databases and the database structure itself. The group should be comfortable with databases and graph theory. The graph theory from CSCI103, CSCI203 and MATH121 should be enough. This is probably not easy. To be determined by the group.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Hash kit The aim of this project is to produce a tool for analysing hash functions, cryptographic and otherwise. There are various tests that can be applied to test for the occurrence of collisions for example, and these should be implemented. While some properties are required for cryptographic functions, some other properties are required for other purposes. For hash functions with small enough message digests it should be possible to completely analyse them, rather that just statistically analyse them. When you hash the result of a hash you continue to stay in the message digest space. Continuing this process will eventually result in a cycle in this hash chain. For hash functions with small message digests is should be possible to construct complete resolution of the cycle structures of the hash chain and to represent it in an interesting way. Having a good understanding of the requirements of cryptographic hash functions is a good start. A basic knowledge of statistics would be a good idea too.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Hierarchical trust framework This project would provide a framework for the management of distributed entities interacting with partial or limited trust. In terms of a hierarchy this could be some sort of command structure in a military setting or a less uniform web of trust type model for an anarchy based public key infrastructure. The aim is to allow communication to entities but require that evidence we weighted in accordance with the trust between the entities. For example, as a senior intelligence officer I may only accept evidence when 3 or 4 junior entities report on it. There should be some sort of feedback mechanism so that evidence of an entity telling another the entity the truth reinforces the trust relationship between them. It would be useful for the group to illustrate the framework with a specific implementation, such as in an intelligence gathering setting for example. The concept of robustness in the presence of corruption could be explored.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Proposed Title Project Description : Implementing a strategy game. This project would involve implementing a strategy game, such as Settlers of Catan, Carcassonne or Mahjongg. The primary aim would be to implement the game for multiple players across multiple terminals. Depending on the complexity of the game, and on information available, it may also be possible to implement or develop strategies for a computer player. Old games such as Mahjongg probably have masses of literature on strategy, while for newer games it may be necessary for a project group to use hints included with the game, and their own playing of the game, as a basis for developing appropriate heuristics. Four students would be fine. An interest in strategy games, and generally the analysis of strategies, and probably algorithms, would be appropriate. This project is of medium to hard difficult. Although the primary
CSCI321 Project Descriptions

Assumed Knowledge & Difficulty

multi-player implementation should be fairly straightforward, the inclusion of artificial intelligence for computer players would significantly increase the difficulty. Platform, PC. The group can decide on an appropriate language. Key Use of a communication framework might be helpful. Technologies and Tools Proposed Title Project Description : Inference protection engine for statistical databases Queries to statistical databases need to be monitored to reduce the likelihood of someone obtaining information that is supposed to remain confidential. For example, the salaries of individuals may not be allowed to be revealed. So we restrict queries of any individual salary. But this may not be enough, since a sequence of queries may allow an opponent to determine the individual salary by finding intersections of allowed queries. This project is to build a wrapper around a database, such as an Oracle database, to restrict the interactions with the database in accordance with policies that would need to be able to be set within an administration module. Significant thought would be needed to appropriately represent and apply appropriate policies. Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Databases. Experience with policy design would be useful.

Proposed Title

: Intelligent Spam Filter

CSCI321 Project Descriptions

Project Description

Spam is a problem for any System Administrator. In recent years, spammers have been able to get past the current implementation of spam filters by simply being more creative. For example, viagra could be spelled as v i a g r a. Most of the current spam filters are unable to handle this sort of variation. The problem gets worse when spammers actually embed images or html inside the email. The objective of this project would be for students to write a spam filter that would integrate with the Postfix or Sendmail MTA that would address the problems mentioned above.

It is assumed students have a solid programming background and have received satisfactory grades in CSCI204 (C Family and Unix), CSCI319 (Distributed Systems) and CSCI322 (Systems Administration). Platform, Key 1) Linux / Unix Technologies 2) C / C++ and Tools to 3) Sendmail Milters be used 4) Postfix / Sendmail

Assumed Knowledge

Proposed Title Project Description

: Joust The aim of this project would be to develop a jousting game, in the sense of knights on horses charging at each other. Player versus player action should be possible across a network. A lot of effort could be put into skilful modelling, realistic physics, appropriate environment details and other features. Adding an AI to make single player possible would be a good idea, and there should definitely being a practice mode. Probably fairly straight forward to produce something, but difficult to build a nice product that would grab and keep a players attention. For PC.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: KNOT: A toolbox for the graphical manipulation of knots. The aim of this project is to develop a toolbox to manipulate knots geometrically. It would need to include such features as allowing users to experiment building knots by moving strings around, and demonstrating how knots can be tied with the purpose of educating users.

A method of testing the type of a particular tied knot would be useful, particularly if you want to be able to check if a user understands how to tie a knot. Assumed This will probably not be an easy project. It is unlikely any of the Knowledge & students will be familiar with knot theory and this project may best Difficulty suit students with an interest in mathematics or algorithms. In any case it would be useful for some members to have familiarity with computer graphics and image representations. Platform, Key PC. Probably with some sort of graphics engine. Technologies and Tools to be used

CSCI321 Project Descriptions

Proposed Title Project Description

: LaTex source control LaTex is a document typesetting system invented by Leslie Lamport. LaTex has been widely used and mysteriously numbered 2.09 in its first version appeared in 1985. To date, LaTex has been used as a standard typesetting in the scientific research world, including computer science. LaTex allows documents to be spread across many source files. This project should address four issues in the context of source control. Firstly, to control access to the variable documents for consistency. Secondly, to record the changes made to the source by different persons. Thirdly, to allow flexible reversion when appropriate. Fourthly, to control the versioning of inclusions. The latter point is because LaTex uses many libraries and changes to those can cause the unified generated document to fail. The group will probably need to write a wrapper around an existing LaTex editor, or possibly modify an open source LaTex editor if an appropriate one is available. Some familiarly with LaTex would be helpful but isnt necessary.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

Proposed Title Project Description

: LaTex to Microsoft Word Doc/RTF Converter. LaTex is a document typesetting system invented by Leslie Lamport. LaTex has been widely used and mysteriously numbered 2.09 in its first version appeared in 1985. To date, LaTex has been used as a standard typesetting in the scientific research world, including computer science. The primary competing typesetting is Microsoft Word, provided by Microsoft. MathType is one example of a mathematical package providing support for Microsoft Word. The aim of this project is to produce a LaTex to Word (or RTF) converter, that includes all the mathematics formula. The resulting product should be a package that accepts a LaTex input file and produce the associated Word file that has the same display format as the processed LaTex, including all the mathematics formula.
CSCI321 Project Descriptions

There have been such attempts in the past to provide conversion packages, such as the Latex2Word utility, but none of them are satisfactory or popular since they do not provide correct mathematical conversion.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools to be used

The LaTex file MUST BE standard and must not be altered according to the known standard. Any known LaTex file should be able to be converted with the product. This project is considered to be difficult, as the students need to understand both LaTex syntax together with Word (DOC or RTF) syntax, and make a correct conversion between them. Care must be taken by students who are undertaking this project, as this project looks simple, but it requires a deep understanding of both LaTex and Word. Preferably, the students should start by developing the right method of interpreting LaTex commands (for instance by developing a context free grammar for LaTex) that will make the job clearer and easier. : Life in a 3D Virtual Zoo The goal of this project is to develop a 3D virtual environment with virtual creatures. The creatures should be intelligent and be able to interact with one another as well as with the surrounding environment. The environment should also contain other objects like rocks and vegetation. Furthermore, the virtual environment should be able to display different weather patterns. Based on changes in the worlds climate, the creatures are to react and respond appropriately. The user should be able to view the world from a top-down perspective and also be able to navigate in the virtual zoo from a first person perspective. Knowledge of 3D computer graphics, game engines and modeling is desireable. The project should probably be developed using either OpenGL or DirectX.

Proposed Title Project Description

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools to be used

CSCI321 Project Descriptions

Proposed Title Project Description

: Lift Lab The efficiency of lifts within a multi-storey building can be a significant factor in determining the efficiency of a business. This project is to explore several aspects of lift deployment. These aspects could likely able to be treated as separate modules, using a common core. The group may not choose to implement all. The first module would take surveys of expected traffic within a building and help the user determine the appropriate number and type of lifts. Type would encompass speed and carrying capacity. The group should carry out some research as to reasonable values for these. The amount of help provided by the program could vary significantly depending on the approach taken by the group. The second module would be a lift management system. This would allow the setting of default floors and rules governing the flow of lifts. For example, one lift may travel from the ground floor but only to the top ten floors. The third module, and likely the trickiest, would involve implementing an AI so the lift management can be automated and adapt to appropriate conditions. For example, the lifts would learn that they should default to the entrance floor when many people are arriving at work. Getting something working wouldnt be difficult, getting all the functionality working usefully would be challenging. Some familiarity with AI would be helpful for the last component.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools to be used

CSCI321 Project Descriptions

Proposed Title Project Description & Group Size

: Logical Crime

This would be a detective game centred on logic problems. The suspects might be allowed to lie but it must be possible for the player to deduce the answer based on consistent deductions. The game engine should construct puzzles, not just have some built in. There should be some parameters governing difficulty. Simple cases could, for example, have that the criminal always lies, and that unlimited time is allowed to solve the puzzle. More complex levels could allow anybody to lie in certain ways, but their lie to be worked out by inconsistencies between their statements and others.
Three would probably be enough for this project. Four might be okay but probably three good students would be better. A decent understanding of logic, and the English language, are both critical. An interest in puzzles and problem solving would help. To do this well would be difficult. The ability to handle the information well is critical. The way to handle the consistency of clues and answers may be to use inference methods for statistical databases.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description & Group Size

: MAC Forger The aim of this project is to ease the process of forging a MAC. It is expected that at least two versions of the program will be created (with a complete GUI) in both Linux and Windows. The students are expected to enable to view the network situation and show the picture of the existing and associated MACs. This tool will be useful in the case where MAC protection is used, and while it is well known that WEP is not a secure mechanism, people still employ MAC protection. Having this tool will enable people to change their MAC accordingly and this tool will show that having merely a MAC protection is not a good idea. The students are expected to show their creativity to explore these options and to help the user. A nice GUI is expected in this project.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools to be used

Experience in programming. This project is rather difficult. Programming in Linux and Windows

CSCI321 Project Descriptions

Proposed Title Project Description

: MageDuel The basic idea is to have a terminal versus terminal duel (one mage versus one mage), wherein the mages battle by casting a wide range of defensive and offensive spells. The primary means of casting would be verbal, somatic or some combination. For the verbal system spell phrases could be constructed using a similar mechanism to character completion for Japanese/Chinese. For the somatic system, basically hand waving, a mouse movement tracking and comparison mechanism would need to be developed. The initial offensive spells would simply be elemental bolts which would need to be thrown at the opponent. Defensive shielding could be continual, possibly tuned to different elemental types, but overall limited by the need for the mage to balance offensive and defensive resources. Users could learn spells by experimenting with verbal or somatic constructs, and the appropriate phrases or movements could vary between games. They would be given some very basic spells to begin with. The group should probably have four persons.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools to be used

Most of the members need significant experience with graphics. Some mathematics or experience with formal languages might be useful for some of the group too. This could be quite difficult to do well. PC. The group can decide on an appropriate language. It would be appropriate to use a games/graphics engine of some sort. XNA could be used.

CSCI321 Project Descriptions

Proposed Title Project Description

: Mail distribution maintainer This application should provide support for the management and monitoring of a physical mail distribution network. The items of mail can be treated as being registered mail, which are individually tagged, or unregistered mail where it will be lumped with other mail to the same district or domain and tagged as a boxed lot. There should be flexibility in describing the network infrastructure. There may be several levels of domains, with sorting just to the domain level or more specifically. There should be flexibility for mechanisms to be centralised or decentralised. When mail arrives at a location the tags the scanned and a report will be submitted back to the source.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Proposed Title Project Description
: Market value

One useful indicator of likely value in real estate is the value of advertised home and/or sale Grab data from online real estate sites and add those to a map, to automatically generate price and type details on real estate and trends.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Maths Educator

Develop a fun educational game for primary and/or secondary school students. The program should be capable of testing a range of mathematics based on the level chosen by the student. It should be possible to keep track of statistics for individual users and within different levels and different areas of mathematics. The game should appeal to young users. The game can contain action or other elements but the primary focus required to make progress should be the mathematical problems.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

Nothing in particular.

Proposed Title

: Meccano Mechanic

Project This project involves implementing a Meccano builder kit. The Description group would need to model the pieces. Users would be able to & Group Size select pieces and join them together. It would be important to deal with problems such as piece storage, linkage storage and collision testing. A group of four students would be enough. Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Additional Resources
The difficulty depends on how ambitious a group is. A limited project would be completed fairly easily but there is a lot of room for expansion.

Probably XNA.

Access to Meccano would be useful. It would l ikely be the responsibility of the group to obtain these.

CSCI321 Project Descriptions

Proposed Title Project Description

: Media wars

The project is to build a game based around the world of newspaper moguls. Multiple players would compete to dominate the media market, either in a specific medium such as newspapers, or across the whole range of media. The setting could be the whole world or some subsection of the world such as a specific country. Players would make choices as to the allocation of their resources and the types of approaches they might allow their staff to make. For example, one media company might unofficially sanction direct tampering with the phones of the opponent, while another may activily discourage such illegal behaviour. Group of four or five.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

No particular special knowledge required. Not particularly difficult to get something going but, as with many games, it wont be easy to make something that gets the players attention.

Probably PC.

CSCI321 Project Descriptions

Proposed Title Project Description

: Microsoft Word Doc/RTF to LaTex Converter. LaTex is a document typesetting system invented by Leslie Lamport. LaTex has been widely used and mysteriously numbered 2.09 in its first version appeared in 1985. To date, LaTex has been used as a standard typesetting in the scientific research world, including computer science. The primary competing typesetting is Microsoft Word, provided by Microsoft. MathType is one example of a mathematical package providing support for Microsoft Word. The aim of this project is to produce a Word (or RTF) to LaTex converter, that includes all the mathematics formula. The resulting product is a package produces a LaTex file that is the translation of the associated Word file. There have been such attempts in the past to provide conversion packages, such as the RTF2Tex utility, but none of them are satisfactory or popular since they do not provide correct mathematical conversion. The Latex file MUST BE standard and must not be altered according to the known standard. Any known LaTex file should be able to be converted with the product. This project is considered to be difficult, as the students need to understand both Latex syntax together with Word (DOC or RTF) syntax, and make a correct conversion between them. Care must be taken by students who are undertaking this project, as this project looks simple, but it requires a deep understanding of both LaTex and Word. Preferably, the students should start by developing the right method of interpreting LaTex commands (for instance by developing a context free grammar for LaTex) that will make the job clearer and easier.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools to be used

CSCI321 Project Descriptions

Proposed Title Project Description

: Mode-cipher analysis manager Block ciphers are defined on a block of data, but necessarily function in a mode when messages of arbitrary length are required. This project should provide a workshop for managing the implementation and assessment of a specified mode in the context of a given cipher. This application should allow ciphers and modes to be plugged in. It should come with some common ciphers, such as Rjindael (the AES cipher), and standard modes, such as ECB and Codebook. These plugged in cipher-mode combinations should be assessable, for both performance and security. Ideally automated parallel processing should be recognised and performed. Knowledge of block ciphers. Medium difficulty.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Proposed Title Project Description

: Mood maker Sound and music are integral parts of the gaming experience. This project involves developing a framework, toolbox or plug-in that would modify music and sounds based on environmental effects and action triggers. For example, music and sounds could change as a party of adventurers enters a cave, because of the environment itself. These modifications could be standardised for environments, or built based on actual geometric modelling information available for the environment. The latter would be much more difficult. Triggers, such as the detection of danger, could change the tempo or mood of the music. Certain types of sound are known to be more likely to induce particular moods for example, and this could be exploited. A game could have a piece of background music that the mood maker adjusts dynamically. Familiarity with sound formats would be useful but can be learnt.

Assumed Knowledge &Difficulty Platform, A particular language and development environment should be Key chosen to simplify the development process. Technologies and Tools
CSCI321 Project Descriptions

Proposed Title Project Description

: Multi-terminal spaceship simulator Spaceships could be considered an an example of a system where multiple persons interact in controlling the spaceship as a whole. The crew members could include a captain, a navigator, an engineer, a communications officer, a researcher, a shield/defence controller, and a weapons controller. Assumptions could be made about who can communicate with whom, and what information can be transferred. For example, the communications officer could receive external instructions and pass this to both the captain and the navigator, with the navigator needing to wait for approval from the captain before actioning. GUI design experience will be helpful since there will be distinct interfaces for the different terminals, so potentially a lot of interface work will be required. PC. Something like RakNet, a network communication framework, could be used.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools to be used Proposed Title Project Description

: Multi-terminal submarine simulator Submarines can be considered as distributed systems where multiple persons interact in controlling the submarine as a whole. The crew members could include a captain, a navigator, an engineer, a communications officer, a weapons controller, and so on. Assumptions could be made about who can communicate with whom, and what information can be transferred. For example, the communications officer could receive external instructions and pass this to both the captain and the navigator, with the navigator needing to wait for approval from the captain before actioning.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Music matcher The plan is for a partially educational game. The rough idea would be to play music to the player, who would have to play the appropriate response. The challenges would gradually increase in difficulty, so while they might begin with a single instrument and a single note, and increase to include multiple notes and multiple instruments. Familiarity with, and an interest in, music would be helpful. Familiarity with sound formats would be useful but can be learnt. Almost certainly PC.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Proposed Title Project Description

: NEST/HIVE: A simulator of life in and around an ant/bee nest/hive The group should choose a colony creature; probably either an ant or a bee, and model the nest or hive life. This should include aspects such as building, foraging and patrolling, where such behaviours are typical. Specific species habits, such as bee swarming should also be modelled. Interactions with their physical environment will need to be considered too, including such things as the effect of rain and other weather. There will need to be a fair amount of research into behaviour patterns of the chosen creature. There are many different species of ants, and allowing flexibility for behaviours differing between species would be useful, and shouldnt be too difficult. The expectation is to provide a somewhat graphical simulation, although useful textual reports should be provided by the software. A group of four to five students. There is potentially a fair bit of assumed knowledge but this, and the workload will hopefully be spread across the group. It would be useful for some members of the group to be familiar with artificial intelligence. Some experience with graphical interfaces would be useful too, since a visually appealing simulation would be much nicer. It doesnt have to be 3D, so no familiarity with 3D engines is required or expected. It is likely, but not guaranteed, since it depends on how the group chooses to implement the simulation, that threads will be used, so experience with them would be useful. Probably PC.

Assumed Knowledge

Platform, Key Technologies

CSCI321 Project Descriptions

and Tools Proposed Title Project Description : Network Simulator This would primarily be an educational tool which would simulate communication within networks, wired and wireless if time permits and if desired. It should be possible for users to observe the process of information passing through a stack of protocols. Support should be provided for a range of protocols with the group to choose them. Some should relate specifically to security. For example core protocols such as TCP/IP could be supplemented with the inclusion of IPSec for IP v4. It would useful to include application level formatting in accordance with some SMTP based email protocol, which could have S/MIME transformations applied to it. There is a lot of flexibility in the scope and protocols that could be implemented. Note that actual network communication isnt necessary Familiarity with networking protocols such as TCP/IP would be helpful.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: News-sheet

Rather than a user going to a set of websites to observe the news, this application would gather news in accordance with the users preferences, and present an appropriately organised newssheet. Users would be able to specify rules for the types of articles gathered, including the location, significance requirement, and lengths of time to hold articles. The user would be able to then view the news-sheet, and delete or follow items. Extensive filtering could be including to ensure that certain types of articles were not obtained. This would allow, for example, a child instructed to follow news wouldnt be brought inappropriate articles.
This project would require good organisation, UI design and web interaction skills.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Obfuscation Engine Obfuscation is a mechanism used to protect software against reverse engineering. Obfuscation has several roles in the broad security discipline, including malware design and protection against malware, tamper resistant hardware programming and the slowing of brute force. The aim of this project is to design and build a tool for the automated obfuscation of code, specifically C++ although another language could be used as well. This should almost certainly be an iterative process that adds layers of obfuscation until, if possible, some measure of confusion is obtained, or some degradation of performance is reached. A good understanding of C++ would be required. This project would not be very difficult to do at a basic level but for multiple files and arbitrary applications it may be quite challenging. The platform doesnt matter. C++ would be needed.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Online auction game The purpose of this project is to develop an online auction game. An interactive website will need to run active auctions, with the possibility of multiple players all taking part at once. Player and sale object histories should be appropriately managed. This being a game the objects dont need to be real and disclaimers stating such should be clear. An agent to represent the auction and various AIs to represent artificial bidders will be needed. There are various different types of auctions and it should be possible to choose different ones. Participants will need to register with the site. A game administrator could be responsible for managing some details of the auction setup, possibly remotely but that will need to be given careful though.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

The client platform could be anything. The server platform should be Unix/Linux, probably running Apache as the web server but the group can decide in consultation with their supervisor. The program may be written in any language.

CSCI321 Project Descriptions

Proposed Title Project Description

: Online Chess Competition The goal of this project is to develop a website where users can enrol in a chess competition and play each other until the final winner is decided. The website will require an administrator to set up the competitions. Users can then enrol in a competition by clicking on the appropriate link and logging on. When the competition has sufficient players enrolled, players are randomly selected to play each other in the initial round. Winners and losers are then appropriately selected to play each other until the winner is decided. To inform users that it is their turn to make a move, the server should notify players via email. Winners, losers and new competition announcements are also notified via email. Optionally, the game can have drag and drop interactivity for players to make moves. Players can also nominate to play against one of a number of chess engine on the website if they want. The Administrator has the option to have advertisements sent with the notification email messages. Whenever an advertisement is sent to a player via email the advertiser's account is charged a nominal rate, say 2c per add. The above specifications should be taken as a guide only and may be varied by making a request to the project supervisor. The group is permitted to use an open source chess engine on this project (with acknowledgments). e.g. http://www.linuxlinks.com/Software/Games/Board/Chess/Engines/i ndex.shtml

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools to be used

Language: C++, C#, java, asp. (or other language approved by the supervisor.)

CSCI321 Project Descriptions

Proposed Title Project Description

: Online Go Tournament The goal of this project is to develop a website where users can enrol in a chess tournament and play each other until the final winner is decided. The website will require an administrator to set up the competitions. The competitions can vary in the number of competitors, whether the competition is a knock-out or round robin tournament and so on. Long-term statistics should be maintained. Users can then enrol in a competition by clicking on the appropriate link and logging on. When the competition has sufficient players enrolled, players are randomly selected to play each other in the initial round. Winners and losers are then appropriately selected to play each other until the winner is decided. To inform users that it is their turn to make a move, the server should notify players via email. Winners, losers and new competition announcements are also notified via email. Optionally, the game can have drag and drop interactivity for players to make moves. Players can also nominate to play against one of a number of Go engines on the website if they want. Students could choose to develop their own Go AI engine, or use an existing open source Go AI engine if their supervisor approves. Some familiarity with the game of Go would likely be helpful.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools to be used

CSCI321 Project Descriptions

Proposed Title Project Description

: Origami organizer Origami is the art of paper folding to make geometric constructions. The group should develop an application to provide support in several ways. The application could store Origami designs and go through them step by step to train the user how to fold them. Printing fold lines on paper might be a useful option for beginners. The application could also assist in designing Origami. A user should be able to fix fold lines and then action the fold. It should be possible to store a sequence of steps so the instructions can be played back. The level of difficulty will depend on how ambitious the group is.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Proposed Title Project Description

: Photomosaic jigsaw generator Photomosaic jigsaws appear at a glance as a normal picture. They are however, made of smaller pictures, often with related themes. Thus the picture is a mosaic of pieces. The idea with the project is to be generate photomosaic jigsaws using images of particular types (such as cars, trees, flowers, animals) taken from the internet (Google images or similar) as the components. The user should be able to load a picture, specify the types of component images and some parameters on the jigsaw pattern. The product should then break the image as specified by the pattern, then locate and test images to fit into the grid. Some knowledge of graphical file manipulation and representations would be useful but certainly isnt necessary. Similarly the capturing of the images from Goggle images (or similar) probably would be too difficult. Overall this is probably not particularly difficult, but it depends how much is done on the automated solving/helping side.

Assumed Knowledge & Difficulty

Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Physical Network Aid The job of designing and managing the physical and topological layout of a cabled network can be complex. This project is about designing a tool to help with those processes. Users should be able to, in a user friendly environment, create, view and manipulate virtual environments. Information of the devices in the domain should be able to be stored and called up. Specific cabling connections should be visible and global statistics, such as the amount of cable, should be reportable. An adequate appreciation of and interest in systems administration would be useful for most of the group. This is probably of medium difficulty but to do it well will be a challenge.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Pinball construction kit

Pinball is one of the standard games distributed with many of the Windows OS. Pinball machines were once very popular in video arcades. The basic two flipper models were somewhat analogous to the one-button computer games. The complexity can be in building combos of hits. The idea with the project is not just to build a pinball game, but build a package in which the user can build pinball machines, in the sense of the environment, add in the combos etc. and let the player play their own game or challenge others. A group of four students would be enough.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

The difficulty depends on how ambitious a group is, but this probably isnt going to be easy. A group could choose to build a single pinball game, which would be easier.

For PC.

CSCI321 Project Descriptions

Proposed Title Project Description

: P.I.-CRYPT: A private eye on cryptography To implement a game based around solving cryptographic puzzles. There would be an overall problem could be broken into component puzzles. The solutions of the components could provide clues to the overall solution and/or increased resources (processor speed for example) or tools (of cryptanalysis) or money for purchasing tools or resources. The puzzles would be of varied difficulty and require increasing sophisticated tools and computational resources. It would also serve as an educational tool, in that choosing the appropriate tools would be necessary, as would applying some cryptographic knowledge for solving some of the problems. Some cryptographic algorithms would be implemented, others would just be simulated (or possibly pre-existing versions could be used). A good performance in CSCI361 is probably the most important requirement here.

Assumed Knowledge Platform, Key Technologie s and Tools to be used

CSCI321 Project Descriptions

Proposed Title Project Description

: PKI Authority Framework Certificate authorities, registration authorities and time stamping authorities play important roles in Public Key Infrastructures. The aim of this project is to build a framework to support the establishment of such entities. A user of the framework may choose, for example, to have a single certificate authority encompassing the certificate generation and registration activities, or a chain of certificate authorities with crosscertification, or a single certificate authority with multiple registration authorities. The framework should allow flexibility in specifying the PKI structure with respect to the components and generate such trusted authorities along with suitable keys. Those authorities should then be able to run as active processes that uses can interact with to assist in the later verification of user identities. A good understanding of public key cryptography and public key infrastructures would be helpful.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

Proposed Title Project Description

: Polymorphic Engine Polymorphic engines are used in malware to change the structure of the code from copy to copy. The aim of this project is to build a polymorphic engine. Ideally this will be assembler based. An understanding of assembler language would be necessary, or at least helpful. This is probably not an easy project to do at all. The group can choose an appropriate environment.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools


Proposed Title Project

: PyLint (Python Lint) Lint is a program syntax checker. Typical implementations of Lint will
CSCI321 Project Descriptions

Description

take code and scrutinise them for syntax errors and wasteful constructs. Some of the things it may look for are: 1. Any variable created must be used. 2. Every program has one exit point. 3. Any declared function is used. Now we know that Python is an excellent programming language. One of Pythons features however is that it supports dynamic typing and as a consequence this can introduce many bugs. So for example if you declare X, it can be assigned the values 4, 4.3 and so on. This is bad because it can introduce errors. Other examples of this feature being misused include: 1. Overwriting a module name with a variable name. 2. Using a misspelled variable name in the left hand side of an assignment, creating a new variable rather then assigning to an old one. 3. Assigning an object of the wrong type to a variable. This project is about working out how Python works and how it can be misused accidentally. Once this is done students will develop a Python equivalent to lint which takes syntactically correct Python code as input and produces warnings and error messages about bad things. The lint interpreter should take its instructions from specifically formatted comments in the code. You may use such comments to give a programmer the benefit of static type checking if they want it. For example #!pylint declare integer x may be used to indicate that name x must always be of type integer. Then if someone in the code enters: x=4.2 Pylint should complain.

CSCI321 Project Descriptions

Proposed Title Project Description

: Railway construction kit There are various railway sets available for children, with a variety of components. For example, the Thomas TrackMaster series. The project involves developing a toolkit where the user can select the components they own (from such a series) and design a set on the screen. The construction kit should assist the user, in the sense of being able to help to fill in incomplete circuits. An automated construction process for tracks with specified properties, such as reversibility, would be nice too but may be too difficult. No specific background is necessary. This project shouldnt be too difficult at the basic level but there is a fair bit of room for extension. PC. Use of a graphics engine may be appropriate.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Proposed Title Project Description

: Random Lattice Walks Lattices are an important tool for mathematically representing many physical systems. Behaviour of systems can sometimes be studied by considering the evolution of a random walker on the lattice. The structure of the system itself can be modelled using potentials (which attract or repel walkers) and holes (which exclude walkers). The aim here would be to develop a toolbox for testing walks on lattices with potentials and holes. Flexibility in the lattices, potentials and holes, as well as the nature of the random walker would need to be considered. For example one could allow selfavoiding walkers, where each visited lattice point is excluded from being visited again. Possibly illustrate graphically the path of a walker but more towards defining the lattice etc. and allowing a variety of experiments to be made on the lattice. For example specifying the distribution of 10,000 random walkers after each takes 100 steps. Some statistical tools should be built in. Enough mathematics to understand a lattice would be useful, and shouldnt be a problem. Some basic statistics would be necessary. Probably PC based.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Randomness analysis kit Randomness plays a very important role in cryptography. In particular, some security is measured based on indistinguishability between the ciphertext produced and a random string. Allowing a cipher to be tested would be nice. There are many tests for randomness, and the aim of this project is to provide a kit for testing randomness. Many tests should implemented, both for testing a given data set and for testing a given algorithm. The Diehard and TESTU01 kits can be examined for ideas. There are many tests available. The group should probably initially focus on being able to plug in pseudo-random generators and handle files, and then distribute the battery of tests for implementation by the group members. At least some pseudorandom algorithms should be implemented for testing. The use of parallel processing should be considered, since some randomness tests are computationally demanding. Most of the group should be fairly comfortable with the type of discrete mathematics and statistics used in the pseudo-random number generators and in the measurement of randomness. The group should choose an appropriate platform and language.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Real-Time Strategy (RTS) Game In this project, students are required to develop a Real-Time Strategy (RTS) Game. Players should be able to choose from between at least two different teams/races/armies. Each team in the game should have their own unique buildings/production factories to generate units like troops, vehicles, etc. All different unit types should also have their own unique characteristics. The production of units and the rate of production should depend on at least one type of resource (e.g. money, wood, food, etc.) that the player has to gather over the course of the game. The user interface must have a mini-map, whereby players can focus the game camera on any section of the world they choose by clicking on the mini-map. A fog-of-war to hide unexplored areas of the map is optional. Students must also implement a technology tree and a research tree, whereby certain buildings/units have to be built before others will be made available and researching different technologies will enhance/upgrade the abilities of different units. The amount of resources required for constructing building and units as well as for researching technologies should be allocated appropriately. The game must have a minimum of one complete level and as such it is not vital for the game to have a storyline. Nevertheless, a storyline would definitely help in designing the overall theme for the game. Better students may opt to implement multiplayer capabilities where at least two players can player the game over a network. Students must develop their own code, models, artwork, etc. Students should have a programming background. Knowledge of computer graphics and 3D modeling is desireable. The project should be developed for Windows, using the 3D GameStudio/A7 game engine (or any game engine approved by the supervisor).

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools to be used

CSCI321 Project Descriptions

Proposed Title Project Description

: Restaurant Manager

The aim is to produce an application, or suite of applications, to support the running of a restaurant. A suite of applications might include such modules as stock management, recipe management, customer ordering management, physical layout management and menu management. Some of those components, such as the customer ordering management, could appropriately be designed to work on mobile platforms. Nothing in particular. An investigation as to the types of applications that would be useful should be carried out. This depends on the particular modules used.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Proposed Title Project Description

: Roguelike game Rogue-like games de-emphasise the graphics and emphasise a richness of play and variety. The aim of this project is to develop and implement a rogue-like game with an emphasis of efficient and careful handling of the information. The group should develop decent interfaces to assist in the game development, including data entry screens for such elements as monsters and items. An interest in rogue-like games would be helpful.

Assumed Knowledge & Difficulty Platform, As the group decides. Key Technologies and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Role Playing Game (RPG) The aim of this project is to develop a Role Playing Game (RPG). The game must have a minimum of one complete level and should have a brief storyline to set the mood, style and overall theme for the game. The game is to be avatar based from a 3 rd person camera perspective and the player should be able to choose from between at least four different characters. Each character should have his/her own unique abilities and characteristics. Players must be able to customize the look of their characters to suit their liking (e.g. be able to change the avatars hair style, colour, facial features, etc.) Students must implement an inventory where the player can equip their avatar with various clothing and weaponry, and to store items that they pick up. The game must have shops where the player can buy, sell or trade items. Characters in the game must also have skills and abilities that they can learn and master over the course of the game. Students must implement different animations when different skills are executed in game. The user interface should have customizable shortcut slots to provide fast access to these skills and abilities. The player must be able to gather experience points from battling enemies in the game, the amount of experience gained should commensurate with the strength of the enemies. These experience points are to be used to level up the character in order for the character to be able to learn new skills, equip themselves with new items, etc. Non-Playing Characters (NPCs) should be included in the game to give the players hints and quests that the player can complete for appropriate rewards. The game must have a map to show where the player is currently located in the world. It should also display important landmarks and provides feedback on the players orientation (e.g. facing north).

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools to be used

Students must develop their own code, models, artwork, etc. Students should have a programming background. Knowledge of computer graphics and 3D modeling is desireable. The project should be developed for Windows.

CSCI321 Project Descriptions

Proposed Title Project Description

: Screensaver Creator The purpose of this project is to generate a screen saver from given pictures or album. Although the project seems straightforward, it is hoped that the students can put their imagination to add values to the product so that the resulting product will be comparable with the existing products in the market. It is just simply not sufficient to have a very simple screensaver that could have been produced by the operating system itself. The choice of the screensaver can be negotiated, either for Windows or other OS. Visual programming, C/C++

Assumed Knowledge &Difficulty

Platform, Key Windows or the required OS that is selected. Technologies and Tools to be used

CSCI321 Project Descriptions

Proposed Title Project Description

: Secure document library The aim would be for the group to design and implement a document library which appropriately controlled access for the users. The group could choose the model of access control but it be more than simply registration allows any document to be accessed. The library should provide functionality such as keyword searching, possibly some document analysis functionality, and perhaps support for a cost based download system. Protection against denial of service attacks should be considered in the design of the user registration, user login and user upload features. A good understanding of access control and authentication would be useful. Not a particularly difficult project but there is significant room to add extensions. Probably Windows.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Secure Dungeon: A physical security tool. The aim would be to design software capable of representing the physical security of a dungeon, or more generally a building. The reason for saying a dungeon is to initially limit the technological resources. The software should be able to assist in the management of security systems. For example, by illustrating the illumination of torches, the presence of pressure plates, or the spread of gas trigged by a tripwire or pressure plate. The security components could be static or dynamic (patrol dog) and a time dependent representation would be helpful. Some graphics experience might be useful, depending on how information is represented. Otherwise fairly flexible.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools


Proposed Title Project Description

: Secure House: A building security tool. The aim would be to design software capable of representing the physical security of a house, or more generally a building. The software should be able to assist in the placement of security systems. For example, by illustrating the illumination of spot lights, the coverage of motion senses or cameras, or the temperature dependence of UV detectors. The security components could be static or dynamic (patrol dog/robot) and a time dependent representation would be helpful. Some graphics experience might be useful, depending on how information is represented. Otherwise fairly flexible.

Assumed Knowledge & Difficulty

Platform, Key PC. Technologies and Tools to be used

CSCI321 Project Descriptions

Proposed Title Project Description

: Secure MailServer Builder Nowadays, people tend to have their own mailserver in order to avoid having their privacy exposed. There are plenty of resources for building your own mailserver, that is started with the Webserver like Apache, etc. The aim of this project is to simplify the process of building a mailserver. The project should produce a very nice GUI that enables people to configure the mailserver that they like, and with just a matter of point and click, the new mailserver (configured as requested) will be built successfully. It is aimed that the project should run in at least two different platforms, namely Windows and Linux. In Windows, the project should include the required environment. For example, if students would like to use CygWin, then the installation should provide it altogether and the software will not ask the user to download anything other than having this software itself. In short, the product should enable any non-expert user to setup a mailserver by his choice without the need to understand any setting. Hence, the most important part is the functionality together with the user friendliness. Linux, Windows, Webservers, etc.

Assumed Knowledge & Difficulty Platform, Key Technologies and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Side channel analyser and eliminator Side channel attacks, such as time based attacks, are critical issues in the implementation of cryptographic algorithms. This project should allow the side channel information of some types, probably timing and perhaps other sources such as sound and power usage, to be measured. These measurements would provide a statistical baseline and if there is significant variance detected as a function of key size or key value that may correlated, the application could recommend action be taken. The application could then build a wrapper around the appropriate modules to eliminate the leaked information. Such wrappers could include the use of delays to smooth out the measured provide and make the timing independent of, for example, the specific keys being used. The group should probably initially limit attention to side channels in communication, specifically timing. It would be necessary to be able to modify the code of the analysed program and automating this probably wouldnt be easy. Some understanding of basic statistics would be useful. Probably quite difficult.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

CSCI321 Project Descriptions

Proposed Title Project Description

: Stockmarket simulation This product could be a game, an educational tool, or a mixture of both. The educational benefit could be increased by more accurate modelling of the dependence of the stock market on national or international events. For example, locating new oil fields could significantly influence share prices across the energy sector, as could an invasion or a Middle Eastern oil rich country. As a game it is expected the user would be able to buy and track shares and futures. Trading could also include currency trading. Potentially players could be allowed, at certain stages or levels, to make decisions which could influence the direction of the market itself. The simulation could be made multi-player across multi-terminal but this isnt a primary expectation. An interest in the stockmarket and/or economics could be appropriate for some members of the group.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Proposed Title Project Description

: Super Stocking Manager This project involves building a stock management system for a supermarket and affiliated kitchens. The supermarket server would need to keep records of stock, prices and product details. Each kitchen should operate as a client which would store the local goods and order more when levels were appropriately low. There should be significant client configuration and functionality: For example, would orders would be sent item by item, as they become necessary, or should they be held off and sent together at the end of a week. Recipes could be stored at the client end, and the client could support meal timetabling to assist in appropriate ordering. Client kitchens could be classified as commercial or domestic. Significant server end functionality should be provided: For example, to manage the addition of new items, the adding of discounts, and the advertising of specials and/or new products. Probably decent database and webserver skills, although this depends on how the problem is approached. Medium difficulty.

Assumed Knowledge & Difficulty

CSCI321 Project Descriptions

Platform, Key Technologie s and Tools Proposed Title Project Description

Any as agreed to by the group and the supervisor.

: Terrain modeller This project is to develop a toolkit for building terrain for use with XNA. Ideally the user would be able to visually interact with the terrain to make changes. For example, it would be possible to deform the surface of the world by dragging grid nodes, or raise and lower terrain within some specified region of the visible world. The terrain could be saved and then used in some other XNA based program. Familiarity with XNA. Probably quite difficult to do really well.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

Whatever XNA tools and development environments are needed.

CSCI321 Project Descriptions

Proposed Title Project Description

: The Oracle This is not a database project This project would illustrate how different attack models can be launched against cryptographic algorithms, and allow the management of attack suites against implementations of algorithms, in particular against block ciphers. For a given plugged in algorithm it could run attack models to assist an attacker to collect The query system should work for authentication, encryption and authenticated encryption schemes. The authenticated encryption schemes can be built from authentication and encryption schemes. This system should be implemented for computationally secure cryptosystems and can serve as a useful illustration of cryptographic concepts. A sample system, something like DES, would need to be implemented. A good understanding of the material in CSCI361 is critical.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Additional Resources

CSCI321 Project Descriptions

Proposed Title Project Description

: Timetable manager The expectation is for a web-driven timetable management tool. The product should provide a web-interface for several types of user. Consider a typical scenario of academics within a university school. An administrator would be able to enter mandatory commitments against academic staff, associated with duties such as lecturing and school meetings. Individual staff would be able to add their own commitments or availability. The administrator should be able to choose a subset of people, a meeting length, and receive a list of possible times. Commitments entered on a timetable could be individual or team based. Consistency of team based entries could be determined. Access control with respect to the information would be quite important. For example, seeing that a lecturer is committed to a school meeting is fine, but for many entries they wouldnt need to be public. Users would be expected to have discretionary control over some aspects of the access control. Decent database and web design skills would be appropriate.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Proposed Title Project Description

PC

: Tower Defence Framework Tower defence games are real-time strategy games where the player places towers, of various different types, to stop opponents from capturing or destroying their base or similar valuable resource. This project involves building a framework for developing tower defence games. It should allow pluggable multimedia and configuration of the towers and the attackers. The group should review a range of existing tower defence games so their framework encompasses many of the functionality existing in some games. None. The group can decide on an appropriate language. A lot of existing tower defence games are small and web-based. This framework need not be web based, nor need it generate webbased games.
CSCI321 Project Descriptions

Assumed Knowledge Platform, Key Technologie s and Tools

Proposed Title Project Description

: Uni life This would be a light Sims type game based around university life. Uni life can be explored, from the students perspective and/or from the academics perspective. As a student should you study hard and increase your chances of winning academic awards or gaining top-tier employment? Do you need a part-time job? Skipping assignments might give you extra work shifts, and more money, but in the long run may mean an extra semester of study to complete your degree. How will you deal with troublesome academics or terrible tutors? You could always drop out. As an academic should you focus on teaching, research or management? How much time are you going to allocate to revising that subject you have taught for the past two years? Will an extra few hours polishing a grant application make it a winner? And how much effort are you going to put into that moderation? Interaction with students, other academics, administrators and senior management will all play a role in the evolution of your career! Any resemblance with real people would, of course, be purely coincidental. A group of three to four would be fine for this project.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

Nothing in particular. Graphics can be quite limited. Medium difficulty.

CSCI321 Project Descriptions

Proposed Title Project Description

: User Interface design aid for mobile applications

The usability requirements of mobile applications tend to differ fairly significantly from those of desktop computers. The dimension of the display, and the related resolution issues is an obvious example, but there are others. For example, shallow navigation is desirable. This project would be to develop a user interface design kit which would aid in building an interface prototype, and provide feedback regarding the appropriateness of the prototype for various mobile device. This could go as far as building the interface in the language of the devices. It should be possible to map between the functionality provided on different mobile platforms and the functionality within the design kit. Such a mapping would allow a user to determine that this design works on iPhones but not with Android, or something along those lines. A group may be identify the resource requirements for the platform also, another critical concern with mobile applications. Taking into account the standard look and feel for the devices is vital.
This project would require an interest in mobile applications and a good grasp of usability requirements.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

PC based.

CSCI321 Project Descriptions

Proposed Title Project Description

: ViralFlux A game, possibly two-player, to develop computer malware to take over the world, and/or to protect the world. The idea is motivated by Pandemic II, an online game where players attempt to design and manipulate a biological virus or similar to infect (and kill) as many persons on the world as possible. In ViralFlux a player would instead be designing malware, in the sense of Trojan horses, viruses and worms which would spread across the world by exploiting weaknesses in software or by social engineering. A second player could be responsible for the development and deployment of countermeasures, including social education and government regulation. A group of four students would be enough. Medium to hard difficulty depending on how ambitious the group is.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools

PC.

CSCI321 Project Descriptions

Proposed Title Project Description

: Web city Rather than traversing through web pages in the typical browser fashion build a web city. Travel the streets of your virtual home town with a themed world build from the webpages of industries. This would pretty much be a browser wrapper. Users should be able to choose a real-world town or region, and configure something about the type of virtual district they want to construct. By type this may include the visual theme but also the nature of the shops, possibly to the point of choosing Baker Street, with a row of ten bakeries, or similar. The Web City project should then take this information and crawl websites within the real world domain and gather information to build up the virtual world. The intention is not to make a full 3D world, that is beyond the scope of this project, but rather a traversable display where images would be used as clues to the content of shops they would be passing. Icons could be used to indicate particular properties of the shop/website, such as whether it had been visited before. If the user chooses a partially randomised world they might explore it to find shops of interest. Experience with web development would be fairly important here. Probably not easy to do this well.

Assumed Knowledge & Difficulty Platform, Key Technologies and Tools

CSCI321 Project Descriptions

CSCI321 Project Descriptions

Proposed Title Project Description

: XNA Game Programming for Xbox 360 The goal of this project is to design and develop an interactive 3D game for the Xbox 360 using XNA Game Studio Express. Students must develop their own code, models, artwork, etc. The game must have a functioning user interface, be able to accept user inputs and the graphics must respond appropriately. Better students may also implement AI and physics functions for entities/objects in the game. The development will be on a PC. Optionally, the game can be ported onto the Xbox 360, although students would have to supply their own Xbox 360. Students should have a background in C/C++. They will have to program in C#. Knowledge of computer graphics and 3D games is desireable. The project should be developed on a Windows platform, using XNA Game Studio Express and other appropriate environments. Any Xbox 360 to be used would have to be provided by the project group.

Assumed Knowledge & Difficulty Platform, Key Technologie s and Tools Additional Resources

CSCI321 Project Descriptions