1. Some Final year Projects ideas:Predictive AnalyticsPredictive Analytics is primarily based on the concept of modeling business problems usingstatistical ad data mining algorithms. These algorithms use a set of input variables from a givendata set to predict target variables that will support decision-making.Predictive analytics is used in financial services, insurance, telecommunications, retail,travel, healthcare, pharmaceuticals and other fields.Good understanding of statistical and data mining algorithms.Soccer Playing Agent Team for the RobocupSimulation --- by Chris CarterThis project creates a football team that competes in the Robocup Simulation tournament.Robocup is an international joint project to promote artificial intelligence, robotics, and relatedfields. The ultimate goal of the Robocup project is to develop a team of fully autonomoushumanoid robots that can win against human world champion team in football. At the end of theproject, the student has produced a working team of 11 agents, capable of performing in theSimulation, carrying out functions including running around the pitch, locating and chasing theball, passing to fellow team-mates, and shooting towards the goal. The system is written in Java.Some screenshots are shown here (click on the picture to see a larger version).The initial setup of 11 players in each team.
2. As the game plays onThe Game of Hex --- by Hayley TinklerHex is a board game played on a hexagonal grid. Two players take it in turns to fill in the boardin their colour. Player one is to form a path of their colour from the top to the bottom whileplayer two is to form a path going from one side to another. This project implements this gamefor a user to play against the computer. Artificial intelligence algorithm has been incorporated todetermine the computers moves. Some screenshots are shown here.User (black pieces) trying to get a chain across the bottom of the board, while the computer (white) attempts to block the move.User (black pieces) trying to get a chain across the top of the board, while the computer (white) attempts to block the move.Using Semantic Knowledge for ImplementingIntelligent Web Search --- by Joseph McElroySearch engine technology on the internet is a multibillion dollar industry. The next step indeveloping search engine technology is utilising semantic knowledge to satisfy customers searchrequirements (semantics refers to aspects of meaning). This entails using experts knowledge tomake search results more refined and ultimately improve the result over conventional methods.The enhanced search engine utilises a chosen Wikipedias article raw data and Yahoos Keyword
3. extraction engine to extract important phrases / words which are closely related to the userssearch request. This hopefully presents the user with results which are closely linked with theusers request. For instance, searching "David Beckham metatarsal injury" would bring up thedate of injury, name of player who injured him (Aldo Duscher) and their search results. Aconventional search request would only focus its search on "David Beckham metatarsal injury". In addition to allowing user to enter a query, the interface of the search engine also shows a list of recent search results. For example, searching "Tony Blair" would bring not just articles about Tony Blair, but others like Labour Party, Blairs Cabinets Further topics may be suggested like background and family life, political career, etc.Plagiarism Detector --- by Tarek MenacereWhat is plagiarism? Plagiarism occurs when a student misrepresents, as his/her own work, thework, written or otherwise, of any other person (including another student) or of any institution.A recent survey of UK university students found that about one quarter of them admitted toplagiarism and 16% said that they have done so more than once. The aim of this project is toimplement a plagiarism detector to compare to what extent two documents overlap and to
4. compare a document to sources available on the internet. Research shows that using a detector isnot only useful for identifying plagiarism, but also being able to warn students that their workwould be scrutinised electronically acts as a much stronger deterrent than simply issuing awarning not to plagiarise.The detector produced in this project is able to compare both text files and MS Word documents.The system uses several pattern matching algorithms, such as the Longest Common Subsequence(LCS) and the Smith-Waterman algorithm, to calculate a verbatim score, a paraphrasing score,and word count matching score etc, in order to determine the similarity of two files or a file andweb pages. These are some screenshots of the system. Non-plagiarism case - software returns a low similarity score Plagiarism case - software returns a high similarity score A quick sort program that is similar to many programs in the internet - a list of websites with a similar program is returned Efficient Text Compression via LZW Method --- by Nikolaos Patras
5. Data compression is the process of encoding information using fewer bits. Some compression schemes are reversible so that the original data can be reconstructed (lossless data compression) while others accept some loss of data to achieve higher compression (lossy data compression). This project is mainly concerned with using the lossless data compression method, called LZW (Lempel-Ziv-Welch). This method is used in the UNIX program "compress" and GIF (Graphics Interchange Format) image format. In this project, the LZW method is implemented and experiments are carried out to evaluate the performance. The design of the interface of the program is shown below: The algorithm implemented is tested against several files and the results show that the compression ratio for text is promising. It is found that the compression ratio depends highly on the repetitions in the original file. The following table gives a rough idea of the results. Original size Size after compressionFile Name Description Ratio (bytes) (bytes)bible.txt a large file with content from the bible 4.53M 3.37M 74% a file contains some DNA sequences containingdna.txt 1.09M 0.47M 43% only characters A, C, G, Taas.txt a file containing only as 0.98M 45K 5% Other Projects Searching the Searchers --- by Daniel Nicolson There are many web searching tools available on the internet. This project attempts to implement a web service client which searches multiple search engines, and obtain and collate results from them. In particular, this project incorporates search results from Google, Amazon, US Library of Congress and Resource Discovery Network. The project provides a single platform for the users to search multiple search engines and provides flexibility as of which search engines to exclude if it is not expected to return relevant results (e.g., user can specify excluding US Library of Congress when searching the term "Merseyside"). Who Would be Interested in Me? --- by James Squires
6. It is a common practice that academic staff maintained webpages describing their research workand provding a list of their papers for other researchers to download. It would be nice if everynow and then one would receive an overview, in adjustable detail, of all the users that have hithis page. From which external page did they come to the page? Which pages on his site wherethey actually looking at, and did they download any paper? how often have they visited hispages, recently? who are they, what do their home pages tell him? The project aims to trackingthe access to the academic staffs website and produce a number of statistics in relation to theweb traffic onto the website.Mobile Phone Location --- by Neil LindonLocation Based Services are a new concept to integrate the users geographic location with thenotion of a service, e.g., to find the nearest restaurant or taxi rank. This project aims to researchand develop a method of locating a mobile device within a GSM network. A web applicationwas developed using the mobile positioning system software development kit developed byEricsson. The application was able to track the position of a mobile in the GSM network.Image AnalysisAimThe aim of this project is to:Offer a set of tools for analysing images.Objectives / major tasksIn order to complete this project fully a student will have to meet the following objectives. 1. Load, display and save image files in one or more formats. 2. Provide the user with tools to select certain parts of the image and then display information about that selection such as number of pixels, or even better, total amount of a particular colour within the selection, taking account of different amounts of that colour in each pixel. 3. Fancy selection aids, some examples being (i) choose a colour and select all those pixels within certain limits; (ii). within certain range of target colour, within certain range of target hue, ignoring saturation and lightness etc; (iii) click on a pixel (or swipe over a small rectangle) and automatically select suitably similar pixels. 4. Provide other analytical information about the image. 5. Advanced: automatically scan the image and decide what features to meaasure - getting into AI now. 6. Advanced: Provide a means for the user to set complex criteria for analysis and save that set of criteria for reuse. 7. Advanced: Provide a means to compare a set of images under certain criteria and output the results in some suitable format (such as CSV) for use in other data-processing packages.
7. TitleFurther development of a web-based plagiarism search toolAimThe aim of this project is to:Improve an existing plagiarism detection tool to automatically find sources of plagiarism withouthuman interventionObjectives / major tasksIn order to complete this project fully a student will have to: 1. Determine and document the requirements of the system 2. Write a programmatic interface to an existing web search engine 3. Integrate the new code into the existing plagiarism detector 4. Test and evaluate the new development 5. Design and implement a user interface to the systemMeasuring the subject bias of different web search enginesAimThe aim of this project is to:Discover the extent to which specific search engines have selected the kinds of Web page thatthey find.
8. Objectives / major tasksIn order to complete this project fully a student will have to: 1. Conduct a careful series of experiments, making "neutral" requests to a series of search engines and classifying the pages returned 2. Write a program to automate the experiments done in step 1, so as to repeat the experiments on a larger scale 3. Test the effectiveness of the system both for identifying the type of page returned and measuring the search engines bias 4. Prepare the results for publicationTitleVirtual Private NetworksAimThe aim of this project is to:Simulate and evaluate the tunnelling protocols used in virtual private networksObjectives / major tasksIn order to complete this project fully a student will have to: 1. Learn how to write networking programs, and implement a communication channel between two programs (or two copies of the same program), on the same or different PCs. 2. Produce a user interface allowing tunnelling protocols to be demonstrated between multiple (simulated) hosts. 3. Evaluate available tunnelling protocols (such as PPTP, L2TP, IPsec) and implement one of them.TitleRISK: A computer version of the gameAimThe aim of this project is to:
9. Design and implement a computer version of the strategy game "RISK".Objectives / major tasksIn order to complete this project fully a student will have to: 1. Implement (a subset of) the rules of the game. 2. Design and develop a graphical interface suitable for playing RISK. 3. Implement a multi player option for the game.TitleParallel processing implementation of the Mandelbrot setAimThe aim of this project is to:Implement the Mandelbrot set as a distributed algorithm, and demonstrate the advantage ofdistributing it.Objectives / major tasksIn order to complete this project fully a student will have to: 1. Implement the Mandelbrot set algorithm as an ordinary program. 2. Develop and implement a technique to divide up the Mandelbrot set problem space. 3. Design and implement a communication protocol to allow parts of the problem space to be sent from machine to machine. 4. Implement server programs to perform the calculation. 5. Implement a client program to control the computation and to display the result. 6. Implement parts of the system in a different language and on a different machine, to evaluate the platform independence of the system. 7. Evaluate the performance of the implemented system for this and other distributed applications.Title
10. Application of the Google API to detect plagiarismAimThe aim of this project is to:Automatically (and efficiently) scan Google for documents similar to agiven sample.Objectives / major tasksIn order to complete this project fully a student will have to: 1. Register with Google API, in accordance with their terms for free, non-commercial use. See http://www.google.com/apis/api_terms.html 2. Understand how the Ferret plagiarism detector works 3. Investigate which file formats can be accepted by Ferret 4. Write a program to download relevant pages from the web and run them through Ferret together with the sample, in order to detect similar passages 5. Evaluate your method 6. Advanced objective: write a program to convert .pdf files to .txt, retaining only text.Development of Scalable video streaming over streaming over heterogenours networkRecently, TV broadcasting has been widely adapted on different platforms, including desktops and smartphones. To provide a high reliability and quality TV stream is always a challenging task for thedevelopers.Our project aim to:1. build Peer to Peer system with a real time live streaming application for heterogeneous networkwhich include PC and Android platform2. provide an efficient, smooth, steady and high quality live streaming by integrating two technologies –FastMesh and SIM3. stream different format of videoInteractive 3D MAP of a big city like KarachiThe road system is complicated for tourists. It is not easy for the tourists to find theirinterested place and go to their destinations efficiently with the 2D map.Our project is develop to enable tourists or even locals to familiarize themselves in
11. places of HK with complicated road systems, so that they can walk through the cityby themselves with information provided from the interactive map on what buses totake, where to take and even the shops information in that location. This interactive3D Map will become the virtual city map for tourists/locals to get most accurateinformation and real visualization before they travel in real.A Collaborative Android Application Providing an Online Google Map with Audible Cantonese LocationPronunciations for Expats and Tourists in PakistanAny country has hundreds of different locations whose names are difficult for foreigners to pronounceand remember. Foreigners of ten have trouble communicating to local citizens, especially taxi drivers,when they want to go to various tourist attractions or popular places.Our goal in this project is to provide a tool to help non-urdu or Punjabi or any regional languagespeakers in Pakistan to overcome the language barrier when they travel in the territory. In our Androidapplication, users can select languages: English, Traditional Chinese and Simplified Chinese. When userstap on a location on the Google maps of Pakistan, the system displays the place name in the threelanguages. Then, the users can tap to hear the pronunciations in English, Cantonese and Putonghua.The system links to a tourist board, which is also created by us, so users can view additional usefulinformation of the location.Tourism Based Social Networking ServiceIn recent years, Social Networking Services have been playing an important role in people’s life.I Meanwhile, tourism is an everlasting popular topic. People like to travel to new places with friends.
12. o What if we combine the two factors?o The users will find it very convenient to plan for trips and invite friends for trips since they will haveaccess to both tourism information and friends.a The user experience of both social networking and tourism shall boost!The major innovation of our project is that we endeavor to combine SNS and tourism information on aGoogle Maps interface.We will continue to implement more functions and explore the business value of the project. Wesincerely welcome any comments or questions from everyone.Security Extension of GTalk based on Smart CardThe purpose of this project is to develop a security extension for Google Talk (GTalk) that will allow theusers to encrypt their Instance Messages (IM) and voice chat permitting the users to securely transfertheir data (text and VoIP) using public channels. Since, GTalk is normally used for group communicationso a key management issue will also be addressed in order to securely exchange symmetric keysbetweengroup members, if they are communicating in group environment.Secure Email SystemThe emails using public email service providers (e.g., yahoo, gmail etc) are sent unencrypted leavingthem readable by the routers and the service providers. The purpose of this project is to develop aninfrastructure for sending secure emails without storing the private key of the user on the secondarystorage device rather it will be stored in the smartcard and will be used through smartcard whenever
13. required. In addition to the project shall also focus on securely managing the address book of the users.Secure Email for Smart PhonesThe objective of this project is to design and develop a secure email system for smart phones (Androidand iOS based mobile devices). The students will handle security credentials which will be used tosend/receive Secure Emails and to protect the address book entries. In addition, the system will alsohandle different confirmation messages in order to inform the sender about the status of his/her email.DRM using TCDigital Rights Management (DRM) is one of the hot issues in current research. Trusted Computing (TC)provides a mechanism to achieve this goal. The aim of this project is to develop a system that allows thecontent providers to decide how the given data should be used and compells the client to follow thecriteria set by the content provider.Flood PredictionIn order to have adequate time to evacuate people and avoid loss of life from serious floods, an efficientand accurate flood prediction system is needed.In this project, we reduced the computation time that required for simulation of flood accumulation toenhance efficiency with a reasonable degree of accuracy. We analyzed and modified the existingalgorithms.We have made the achievement of providing a reasonably accurate simulation within a few minutes byusing a colorful 3D graphical user interface for result displays.Time series Analysis of Stock Market DataProject suggestions databaseProduce a system to automate the processes of gathering project suggestions from staff,
14. allowing students to browse the suggestions, express their preferences, and be allocated asuitable tutor, subject to resource constraints such as tutor availability, limits on the numberof students doing the same project, students suggesting unsuitable projects, etc...Project Title Project suggestions databaseAim of the ProjectProduce a system to automate the processes of gathering project suggestions from staff,allowing students to browse the suggestions, express their preferences, and be allocated asuitable tutor, subject to resource constraints such as tutor availability, limits on the numberof students doing the same project, students suggesting unsuitable projects, etc...Basic Project tasks • Design and implement a database that will support the basic project tasks · Implement a Web front end to the database that will allow staff to enter • suggestions and students to browse suggestions1. Project TitleDevelopment of a version of a “University Life” board game2. Aim of the ProjectThe aim of the project is to develop a program which allows a number of players to play a board game
15. called “The University Life Game”. The game will represent the ups and downs of life as a universitystudent. In particular, the board will have squares to represent events happening in three aspects ofstudent life: financial, academic and general “life” events.The program will provide facilities to display the current state of the game, simulate the dice throwswhich control the players moves, enforce the rules of the game, receive player input and indicate thewinner. The program plays the role of the “banker”, controlling but not taking part in the game.An essential feature of the implementation is that it should be designed in such a way as to allow aprogrammer to change existing features and add extra ones with relative ease, making the program easyto maintain and extend. In practice, this means that it should be designed using an object-orientedapproach.So this project is recommended for students who have studied object-oriented design and haveprogrammed in languages with object-oriented facilities.3. Background information and User RequirementsThe University Life Game will be a board game played by between 2 and 6 players on a rectangularboard which displays a number of squares arranged around its edges. Each player has an identifyingtoken. Players take it in turn to throw two dice and the sum of the face values of the dice determineshowfar a player may move their token around the board. All players start on a square labelled “START” inone corner of the board and move clockwise around the board.A players fate is determined by the square on which their token lands after a dice throw. These willeither specify a fixed event or will direct the player to pick an event card from a specified set of cards (inthe same way as “Chance” and “Community Chest” cards work in the game of Monopoly). There will bethree sets of cards : “Money”, “Study” and “Life”.Students working on this project will be able to obtain some help with using Java at a technical helpforum which will be run by members of the teaching team. The objectives of the forum are twofold.Firstly, to help students already familiar with procedural programming in languages such as Visual Basic,
16. Pascal, C etc. to move to Java. Secondly, to give a very brief introduction to basic object-orientedprogramming in Java. Details of the forum, including when and where it is to be held, will be posted onthe StudyNet site for 3COM0056.3.1 The board and event cardsThe detailed design of the board and the precise nature and complexity of the rules of the game are notfixed. However, some or all of the following features should be implemented:· The board should have the following types of squares: • Card square which direct a player to pick a card from a particular card set i.e.( a “Money”, “Study” or “Life” card)• Direct Event square which control movement on the board e.g. “receive good news, go forward4 squares”, “Serious illness, return to start”, “ Family crisis, miss a turn”• Rest squares where nothing happens• Each card set should have a range of cards which cause players to gain or lose. The Money cardswill relate to a players financial state. The Study cards will relate to their academic progress. TheLife cards may affect either.• Money cards will cause the player to gain or lose money. They may gain money from or lose it tothe banker (the computer) or the other players.• Study cards will affect a player’s academic progress . Players progress by passing modules. Thegame must have rules which govern how a player can pass a module at a particular level and movefrom one level of a programme to the next.• These rules may be simple e.g. a pass consisting of a total of 120 academic credits, or may bemore complicated e.g. 120 credits or over with at least 60 credits for coursework and a pass inthe examination.• Different rules may apply to different modules.• Gaining or losing credits or other required attributes (such as a pass in an exam) is determinedby the cards in the “Study” set.• The cards should have general instructions applicable to any module e.g. “penalised forplagiarism, lose 30 credits”, “Pass the examination”, and it will be up to the player to determinewhich of their modules will be affected.• There may also be more general rules such that a player cannot progress to the next level untilthey have passed at least three modules at the current level.• Life cards may describe general life events which may affect either financial position or academicprogress.3.2 The gameAt the start of the game:• Each player starts with a sum of money and a registration on four level modules(You should give these modules names e.g. “Computer Systems”)• The winner will be the player who first achieves a pass at level 3 in all four modules (or, playersmay be allowed to complete their academic progress and the winner will be the one who has done sowith the most money or lowest student debt).• Players may be eliminated from the game either by incurring severe academic penalties (e.g. failing
17. a module twice), by falling financially below an acceptable level of student debt , or by getting aterminating event (e.g. a card: “You have decided to emigrate and withdraw from the university”, adirect event : “Caught for drug-dealing; leave the university for jail” ).3.3 The playPlayers start at the START square and move their tokens clockwise around the board by the number ofsquares determined by the total face value of the thrown dice. When a player lands on a square, there maybe consequences outside their control determined by the rules of the game which may affect either theplayer or the other players e.g. “pick up a Money card”, “pay a fine”, “win at cards - collect £20 fromeach player”, but there may also be decisions left to the player e.g. which module will be affected by again/loss of academic creditsPlayers continue round the board until there is a winner.3.4 Internal Design and ImplementationThe program must be implemented using a modular structure. Its internal design should embody thefollowing characteristics of good program design: low coupling, high cohesion, minimised codeduplication. Maintainability and extendibility are important features of the internal design so that itshould be easy to change or add features.The requirements for maintainability and extendibility mean that an object-oriented approach would bemost suitable for the development of this game. There is no requirement for the game to be implementedin a specific programming language. However, students are strongly urged to choose a language whichhas good facilities for object-orientation. Anyone with no experience of object-oriented development,should investigate what may be involved before deciding to undertake this project.Students are also strongly urged to develop the solution in a series of stages, starting with a very simpleversion and then developing the complexity of the game in a controlled way. Stages in the developmentof the game and the thorough testing of those stages will provide a good basis for the discussion requiredin the project report.Finally, playing the game involves random dice throws which are unpredictable and a full game may takea long time to complete. An important aspect of the project is the development facilities which will allowfor testing to be undertaken under the control of the developer. These facilities would allow the developerto control the random aspects of the game so that it can be tested under the full range of circumstances,but would not be included as features available to end users.3.5 DevelopmentThere are three main aspects to the project:• the complexity of the game - rules and events• the user interface - how players interact with the game• maintenance facilities - such as save current game, load an old game, load a new game, help , tableof scores,A student may choose where to place the main emphasis of their project. There is no need to implementall three of these aspects to the same level of sophistication.The game should display a visual representation of the board. However, the complexity of the userinterface may range from a static image of the board with text i/o to describe what is happening, to asophisticated GUI with advanced graphics.Developing a game with complex rules may be balanced by providing a simple user interface or, minimalmaintenance facilities. On the other hand , a more advanced GUI or extensive maintenance facilities maybe provided for a simpler game. The project should be developed in a series of stages which implementincreasing functionality and each stage should be thoroughly tested. The project report should describethe development strategy and the steps taken to ensure that each stage is thoroughly tested. Theappendices should contain the earlier simpler versions of the game together with testing plans and the
18. code of programs developed for the purposes of testing.3.6 User Requirements1-4The program should display information about a players current location, the current state of theirresources such as their bank balance and the state of their academic progress. A representation of theboard should be provided, but this may be just a primitive static display or even as simple as a text basedlist. The program should ensure that players take turns, provide a random number simulating the throw oftwo dice and update the players position. It should follow through the consequences of each move eitherby acting on events and by receiving and acting on any required players input.If a player has reached any of the terminating conditions, they must be informed that they have lost andthe program must stop them from participating further in the game. The program should inform thewinner that they have won.4. Basic Project TasksThe project will be assessed not only on its functionality but also on its internal design, theimplementation decisions taken and on the approach taken to ensure thorough testingIn order to be considered for a Third Class Honours standard in this project, a student must give evidenceof having adequately attempted to :• Provide a clear and detailed specification of the game and its rules.• Design and implement a program which enables two players to play the game. It should:• display information about the players current position on the board and assets (money andacademic progress)• enable players to move in turn• process the events associated with the new position on the board• display the results of a move• enforce the rules of the game and inform a player if they have been terminated• identify an inform the players of the winner• Develop the game in stages• Ensure that each stage in the development of the program has been adequately tested• Develop the program in such a way as to make it easy to maintain and extend, reducing codeduplication• Provide a justification of some of the design decisions1. Project TitleA System for Scoring Cricket Matches2. Aim of the Project“In the old days, all you needed to keep the score at a cricket match was a stickand a sharp knife. Each time a run was scored, you cut a notch on your stick.Now you need a computer. This is because of cricket’s obsession withstatistics.” (Yapp, 1996)
19. Cricket is a fairly complex game. Consequently, accurate scoring is important, particularly asthe same event may need to be noted in several places on the score sheet. This project isintended to support the work of the scorers of a cricket match.Note: you may modify this project suggestion for games which are sufficiently similar tocricket for an equivalent scoring system to be valuable, such as baseball. If you areconsidering such a project, please discuss it with your project tutor,3. Background Information and User RequirementsCricket DescribedThe following description of the game of cricket is taken verbatim from the Cricinfo website.(see references/bibliography). This project relates specifically to the form of the game inwhich each side is restricted to one innings of a certain number of overs.Cricket is a team sport for two teams of eleven players each. A formal game of cricket canlast anything from an afternoon to several days.Although the game play and rules are very different, the basic concept of cricket is similar tothat of baseball. Teams bat in successive innings and attempt to score runs, while theopposing team fields and attempts to bring an end to the batting teams innings. After eachteam has batted an equal number of innings (either one or two, depending on conditionschosen before the game), the team with the most runs wins.The order in which the teams bat is determined by a coin toss. The captain of the side winningthe toss may elect to bat or field first.All eleven players of the fielding team go out to field, two players of the batting team go outto bat. The remainder of the batting team wait off the field for their turn to bat. Each batsmanwears protective gear and carries a cricket bat.The game progresses by the bowling of balls. The sequence of events which constitutes a ballfollows. The fielding team disperses around the field, to positions designed to stop runs beingscored or to get batsmen out. One fielder is the bowler. He takes the ball and stands some27 - 2distance behind one of the wickets (i.e. away from the pitch). Another fielder is the wicketkeeper,who wears a pair of webbed gloves designed for catching the ball and protective padscovering the shins. He squats behind the opposite wicket. The rest of the fielders have nospecial equipment - gloves to assist catching the ball are not allowed to anyone but thewicket-keeper.One batsman stands behind each popping crease, near a wicket. The batsman farthest from thebowler is the striker, the other is the non-striker. Whenever a batsman hits the ball during adelivery, he may score runs. A run is scored by the batsmen running between the poppingcreases, crossing over midway between them. When they both reach the opposite crease, onerun is scored, and they may return for another run immediately. The fielding side attempts toprevent runs being scored by threatening to run out one of the batsmen.If the batsmen are attempting to take runs, and a fielder gathers the ball and hits a wicket withit, dislodging one or both bails, while no batsman is behind that wickets popping crease, thenthe nearest batsman is run out. Specifically, the batsman must have some part of his body orhis bat (provided he is holding it) grounded behind (not on) the crease. The batsmen carrytheir bats as they run, and turning for another run is accomplished by touching the groundbeyond the crease with an outstretched bat. The batsmen do not have to run at any time theythink it is unsafe - it is common to hit the ball and elect not to run. If the batsmen run one orthree (or five! rare, but possible), then they have swapped ends and their striker/non-strikerroles are reversed for the next ball (unless the ball just completed is the end of an over).In addition to scoring runs like this, if a batsman hits the ball so that it reaches the boundaryfence, he scores four runs, without needing to actually run them. If a batsman hits the ballover the boundary on the full, he scores six runs. If a four or six is scored, the ball iscompleted and the batsmen cannot be run out. If a spectator encroaches on to the field and
20. touches the ball, it is considered to have reached the boundary. If a fielder gathers the ball, butthen steps outside or touches the boundary while still holding the ball, four runs are scored. Ifa fielder catches the ball on the full and, either during or immediately after the catch, stepsoutside or touches the boundary, six runs are scored.The batsmen usually stop taking runs when a fielder is throwing the ball back towards thepitch area. If no fielder near the pitch gathers the ball and it continues into the outfield again,the batsmen may take more runs. Such runs are called overthrows. If the ball reaches theboundary on an overthrow, four runs are scored in addition to the runs taken before theoverthrow occurred.Runs scored by a batsman, including all overthrows, are credited to him by the scorer. Thenumber of runs scored by each batsman is an important statistic.If, while running multiple runs, a batsman does not touch the ground beyond the poppingcrease before he returns for the next run, then the umpire at that end will signal one short,and the number of runs scored is reduced by one.The game is adjudicated by two umpires, who make all decisions on the field and whoseword is absolutely final. One umpire stands behind the non-strikers wicket, ready to makejudgements on LBWs and other events requiring a decision. The other umpire stands in linewith the strikers popping crease, about 20 metres (20 yards) to one side (usually the leg side,but not always), ready to judge stumpings and run-outs at his end. The umpires remain at theirrespective ends of the pitch, thus swapping roles every over.How to ScoreAn example score sheet, scanned in from Smith (1993), is shown as an appendix. It showshow events are recorded.27 - 3Note that each run needs to be scored for the batsman, the side and the bowler. This is thetype of multiple recording that your system should relieve the scorer of.The aim of the system you are to develop is to support a cricket scorer in the most elegant andefficient manner possible.A number of software systems are already available to enable the scoring of cricket matches(see Software websites below). You may design your program after an initial evaluation ofthese systems, as a way of making improvements to way they work, but of course the designand implementation of your system must be your own work.4. Basic Project TasksIn order to be considered for a pass at Third Class Honours standard in this project, a studentmust give evidence of having adequately attempted to :• develop a system which allows the scorer to score a complete one-innings 50-oversmatch via a simple graphical user interface, including• Enter the names of the teams and players, including identifying the captain andwicket-keeper of each team• Record the result of the toss and who bats first and second• Score each ball, over, run and wicket, recording the result as each ball isdelivered and providing feedback to the scorer• Support the recording of most of the types of invalid delivery and all of thecommon ways of getting out; if you wish, you may ignore the less commonones like Timed Out (Law 31; Smith; 1993, p.113) and Obstructing the Field(Law 37; Smith; 1993, p.133)• tell the score who has won at the end of the match• keep the scoring records permanently in a database or other storage, and retrieve themfor later examination• Allow the system to be tested quickly by scoring a three-over-a-side ‘match’ in
21. addition to the 50-over complete matchYour system must produce all of the information from a single entry for each event.You will also need to provide a short user manual, full analysis and design documents for thedata storage and user interface, and the results you obtain when you test the system. You maywant to use historical information of a specific match from Cricinfo etc (see referencesbelow) as test data.References/bibliographyBooksSmith T (2000) Cricket Umpiring and Scoring; Weidenfeld and Nicholson, London. Dry,factual, sets out the Laws of Cricket and examples of scoring. The reference book. (Note thatreferences in this project outline are to the 1993 edition of this work, and that a 2004 editionis due out imminently.)Yapp N (1996) Bluff Your Way in Cricket, Ravette Publishing; Horsham, West Sussex.Humorous, but contains some grains of deeper truth about the gameWebsites27 - 4http://www.cricinfo.com/ has the laws, explanations of the game, statistics, informationwhich can be used as input for testing your system, …http://www.howstat.com.au/cricket/home.asp an Aussie statistics siteSoftware websites (the ‘competition’ to your system)http://www.cricketstatz.com/cstatz.htmhttp://www.ggiddings.freeserve.co.uk/csfw.htmhttp://www.freedownloadscenter.com/Games/Misc_Games/Cricket_Scorer_Download.htmlhttp://ourworld.compuserve.com/homepages/eddson/willow.htmAppendix – score sheetsTaken from Smith (1993)1. Project TitleTravellers’ Tales: a web-site for sharing stories2. Aim of the ProjectThe aim of the project is to design and implement a web site to facilitate sharing the sort ofstories that people have when they have been travelling. Visitors to the website will be able tosearch the storybase, add their own stories and comment on existing stories.3. Background Information and User RequirementsNikki&James write travel books. They have decided to set up a web site on which people can
22. share stories about their travels. They see the value of their web site as twofold, firstly someof the stories will be useful to themselves (they plan to offer payment for any of the storieswhich they use in their books) and secondly the site will be useful to other people who plan totravel. They will seed the site with some of their own stories and pictures to get things started.Nikki&James have looked at LotusNotes type discussions and have decided that this does notprovide what they want; in particular it is not easy to find particular postings based oncontent. They have been following some of the links fromhttp://www.acsu.buffalo.edu/~duchan/narrative_links.html. They notice that some of the siteshave nice features they might consider including, but others are not so good.Nikki&James require the system to:• allow them to add their own stories (including illustrations such as photos and maps) tothe database.• allow other site users to add stories; in the first instance they would like to moderate thestories before allowing the stories to be placed on the web site. The moderation consistsof one of them reading each story submitted and rejecting any stories which containinappropriate material (this might not happen, but they prefer to be cautious, and theywant to read all the stories anyway).• collect information about a person submitting a story, they want this to on a voluntarybasis, but it would be used firstly to pay users for any stories published in their books(obviously complete names and addresses would not be disclosed on the web site), andused as search criteria, for example a user might want to search for stories that retiredpeople tell about India. At the moment Nikki&James would like to collect sex, age-group,party-type (lone traveller, small group, family group, large group), preferred mode(independent traveller, guided trek, group lead by subject expert, etc.), and level of luxurypreferred (basic, mid range, luxurious). However they would like to be able to modify thislist as they gain experience.• allow users to search for stories using the keywords above and allow users to search thecontent of the stories themselves (see for example: Database Management Systems, ThirdEdition, Ramakrishnan and Gehrke Chapter 27, ‘Information Retrieval and XML DataManagement’).28 -2• allow users to be able to respond to stories (a story might attract responses from manyusers), but in a constrained way: they can respond under the following headings:submit a similar story – the user has a story which they think is similar to theugiven story.submit a viewpoint story – the user has a story which they think casts the eventsgof the first story in a different light (the first story might say place X was terrible,there was nothing to do, a viewpoint story might say having nothing to do turnedinto an advantage, they were able to relax for the first time in years).submit a ‘what if’ story – a ‘what if’ story is one where the user explores differentipossibilities. What if you have been to these places in a different order, or at adifferent time of year.• allow the user control over the order they want to see the stories (e.g. most recent first,those which generated the greatest number of responses first, etc.)• provide the ‘next best’ stories if the user’s criteria have returned no stories. For example,case based reasoning might be used, and a dialog with the users entered to establish whichcriteria they want to relax. You could start by looking at http://www.ai-cbr.org/hall.htmland http://www.iiia.csic.es/People/enric/AICom_ToC.html4. Basic Project tasksIn order to be considered for a pass at Third Class Honours standard on this project, a student
23. must give evidence of having adequately attempted to:∗ design and implement an underlying database to store the stories and user details.∗ design and implement the web interface which allows stories to be submitted formoderation.∗ link the website and database.∗ provide the means for successfully moderated stories to be entered into the databaseand therefore be available on the website∗ allow users to search for stories using keywords.1. Project TitleJob recruitment system2. Aim of the ProjectProduce a system to automate the job recruitment process.3. Background Information and User RequirementsBasically the system needs to allow job recruiters to post jobs and job seekers to view the posted
24. jobs via different search categories such as location, industry, etc. and to apply for those theythinkare appropriate.4. Basic Project TasksIn order to be considered for a pass at Third Class Honours standard on this project, a studentmustgive evidence of having adequately attempted to attain the following objectives. It is expectedthatmost students attempting this project would have completed the following by Christmas.• Analyse requirements, design and implement a database that will support the basic tasks• Implement a web front end to the database which supports two interfaces that will allowboth types of user, job recruiter and job seeker to use the database effectively.1. Project TitleA knowledge management system2. Aim of the ProjectProduce a system to provide a way to capture and share knowledge within a research anddevelopment department of a chosen organisation.
25. 3. Background Information and User RequirementsOne of an organisation’s most important resources is its people and what they know. If you can’tplug into the knowledge you need, you’re powerless. Many knowledge sources are already tiedtocorporate intranets or available through the Internet but this does not always lead to accessibility(Fowler, 2001). Many R&D departments, within themselves, waste valuable time reinventing thewheel. ‘Ideally, combined intellectual and experience of the entire group should be readilyavailableto everyone all the time’ (Pohs, 2002). The system proposed needs to find a way to capture,organise and share the knowledge gained by such a department. Further requirements couldincludethe following: allowing users to create profiles listing their skills and contact details which couldthen be used as ‘yellow pages’ for workers and thus a way of finding support within theorganisation; addressing more specific issues such as aiding the annually replaced industrialtrainees by allowing the ‘passing down’ of knowledge between users.4. Basic Project TasksIn order to be considered for a pass at Third Class Honours standard on this project, a studentmustgive evidence of having adequately attempted to attain the following objectives. It is expectedthatmost students attempting this project would have completed the following by Christmas.Produce a detailed requirements specification for a system that will support the capture,morganisation and sharing of knowledge by the R&D department of an organisation.Identify a suitable approach for managing the knowledge, for example you may like tooinvestigate groupware approaches, and choose and install suitable software to implementthe system.Design and implement some of the functions identified in your requirements specificationtusing your chosen software.1. Project TitleA Web-based Resource Allocation and Problem Tracking System2. Aim of the ProjectThe aim of the project is to produce a web-based application that records the allocation of software
26. and hardware resources to the employees of a company, and tracks the progress of technical staffworking on problems with particular resources.3. Background Information and User RequirementsThis system keeps track of the software and hardware resources that belong to a company.Information kept about a resource includes its serial number, date of purchase, supplier, licensedetails (for software resources), current location (a room number) and the resource type (e.g."Hewlett Packard T540 Imaging Package", or “Microsoft Windows XP Professional 2002 ServicePack 1”).At any time, a resource may be allocated to a particular user (an employee of the company). Aresource may be allocated to a different user at different times during its use by the company.Records are kept of the jobs performed on a resource by technical staff, such as installation ofpatches for software resources, and physical repairs for hardware resources.The company employs a number of technical staff, whose responsibilities include helping users withresource-related problems. Each technician is competent in a number of resource types. In thiscontext, a “problem” might be any situation for which the employee needs help, such as getting anew piece of hardware to work, or installing some software that requires technical assistance. Aproblem might involve more than one resource.When an employee has such a problem, they may log it with the system. This involves entry of thedetails of the resources involved and the problem into a form on a web page.When this form is submitted, the details are added to the outstanding problems log, and theTechnical Support Manager is notified by email. The Technical Support Manager retrieves the log,finds a suitably qualified technician, and allocates the job of fixing the problem to them.The technician works on the job, recording what they are doing on a form on a web page. When thejob is completed, information about it (a unique identifier, details of the original problem, start andcompletion dates, technicians details and notes) is added to the resources history.4. Basic Project TasksIn order to be considered for a pass at Third Class Honours standard on this project, a studentmustgive evidence of having adequately attempted to attain the following objectives. It is expectedthatmost students attempting this project would have completed the following by Christmas.• produce a data model (ERA diagram and data dictionary) to support resource allocation andproblem tracking• implement a database and web server to support the application• implement the basic resource users and technicians functions through a simple web-basedinterface1. Project TitleInteractive Evolution of Behaviours
27. 2. Aim of the ProjectThe goal is to develop a software that generates a desired behaviour for very simple line-based cartooncharactersusing an interactive evolutionary algorithm. The software will run an evolutionary algorithm which willpresentthe user with several instances of a simple line-cartoon 2-dimensional character performing simplebehaviours(e.g. walking, dancing). The user orders them according to preference and the evolutionary algorithm thencreates new behaviours to be evaluated by the user in the next round.3. Background Information and User RequirementsThe candidate needs to•review literature about evolutionary algorithms and implement an evolutionary algorithm. As a startingpoint,http://www.cs.sandia.gov/opt/survey/ea.htmlprovides a good start. In particular, (Goldberg, 1989), (Michalewicz, 1992) (or a later edition) are ofinterest.For ideas how to apply Evolutionary Algorithms to design, seehttp://www.red3d.com/cwr/evolve.html•learn how to implement simple line-based graphical animation (in a language of her or his choice)•investigate how to translate the parameters from an evolutionary run into a cartoon character behaviour(e.g. using suitable mappings or function generators)•implement a user preference selection for a number of available behaviours•implement a conversion of the user’s preferences into a selection criteriumIdeally, a final product would realize the following goals•implementation of graphics with a very simple animated line-based “cartoon” character•implementation of a basic Evolutionary Algorithm operating on chromosomes implemented as tuples ofreal-valued numbers•a translation of the Evolutionary Algorithm chromosomes into a behaviour (movement) of the “cartoon”character•presentation of the “cartoon” character behaviours to the user and selection interface, by which user canidentify her/his preferences to the Evolutionary Algorithm14. Basic Project TasksIn order to be considered for a pass at Third Class Honours standard on this project, a student must giveevidence of having adequately attempted to attain the following objectives. It is expected that moststudentsattempting this project would have completed the following by Christmas.•implementation of a graphics module with a very simple animated line-based “cartoon” character,controlledby specification of movement function.This involves:– writing a very simple animation software which is able to display moving lines– construct a model of a simple line-based cartoon character– creating an interface, by which the cartoon character can be controlled by external functions– implement a function making the character perform simple moves through aforementioned interface
28. 1. Project TitleAbsence booking system2. Aim of the Project & Background Information and User RequirementsProduce a system that allows lecturers to book time away from work.This seems like an almost trivial system to construct, but it is actually quite hard to getright.I can be away from the department for an hour or two, or a couple of weeks. I may have adoctors appointment which I dont want anyone to know about, or I may be presenting apaper at a prestigious conference and Id rather like everyone to notice. I may want to becontacted at my home phone, or may need to give out my mobile number. I may not carewho sees the number, or I might prefer it to be visible only to trusted colleagues. I may booktwo weeks leave, but it only counts as nine days off my leave allowance, as one day is abank holiday. I might later find it necessary to change one day to "working at home" (assome urgent request has come in from my boss).• Implement a database that implements a reasonable proportion of therequirements implied above.Produce a design for a user interface that makes it easy to manage the system.3. Basic Project tasksIn order to be considered for a pass at Third Class Honours standard on this project, a studentmust give evidence of having adequately attempted to attain the following objectives. It isexpected that most students attempting this project would have completed the following byChristmas.
29. 1. Project Title A Simulation Tool for UH Racing To specify, design, implement and test a simulator of a racing car and circuit for UH Racing.2. Aim of the Project3. Background Information and User RequirementsUH Racing is the University of Hertfordshire’s Formula Student’s team. They race theirFormula Student car against other Universities in the UK, and recently reached the worldfinals where they raced against international opposition.UH Racing consists of a number of teams. Class 1 team is a (mainly) final year team whoeach year design, build and compete in a new car in the UK and Internationally. Class 1-200team is a team of first and second year students who further develop the previous year’s Class1 team’s car and compete in this modified version in the UK. Class 3 team is a team ofstudents on their placement year and some second year students. The Class 3 team is involvedin design and business events.The UH Racing’s teams are highly successful, and have won many racing competitions andawards. The teams aim to remain one of the leading university teams, but their competitorsare catching up quickly. To retain their leading position, UH racing need to develop aninteractive simulator of how their car will perform on a racing circuit. They will use thissimulator as a test-bed for the design of their cars, and later for analysis of data logged fromthe car during actual races. The simulator needs to be highly parameterised to allow differentcar designs to be tested on the different racing circuits under different weather conditions. Itis important that simulation runs can produce various statistical results to let the UH Racingteams analyse them in a meaningful manner to aid them in their engineering designs.Any student undertaking this project would be involved directly with the UH Racing teams.UH Racing would aid Computer Science students by specifying the parameters for the cardesigns, and providing information on the analysis tools they use. The output of the most
30. advanced version of this simulator will need to be compatible with the results of logs fromUH Racing cars, to allow side-by-side analysis to provide feedback to improve car designs,advise the driver and improve future versions of the simulation software.. There will be aconsiderable amount of pure, applied and statistical mathematics in this project. Therefore,some understanding of mathematics is essential to any student undertaking this project.4. Basic Project tasksIn order to be considered for a pass at Third Class Honours standard on this project, a studentmust give evidence of having adequately attempted to attain the following objectives:• Code into a high-level programming language a basic set of equations given by UHRacing personnel which describe the behaviours of their car on a specified racing circuit• Develop a user interface which allows UH racing personnel to:o input the necessary parameters for a simulation runo view the results of that run in a suitable numeric formThis interface will adhere to good HCI principles which should be stated in the projectreport.• Allow the simulation program’s user to save the simulation output data in a form suitablefor importing into for example MS-Excel.In order to be considered for a pass at Second Class Honours standard on this project, astudent must give evidence of having adequately attempted to attain the following objectives:• Either (A)o Code into a high-level programming language a set of equations given by UHRacing personnel which describe the behaviours of the car on the racing circuit,including additional parameters such as weather conditions to be specified by UHRacing personnelo Design a software-based simulation whose structure allows car and circuitequations, parameters and values to be changed easilyo Develop a user interface which allows UH racing personnel to input the necessaryparameters for a simulation run and make use of its outputs; this interface willadhere to good HCI principles which should be stated in the project reporto Provide tools to allow the user to view the results of a simulation run in at leastone graphical form specified by the UH Racing personnelo Enable the user to specify different racing circuits on which to run simulated carso Using information provided by UH Racing personnel, optimise the car’sacceleration and deceleration behaviour during a lap to produce the best possibletheoretical lap timeo Allow the program’s user to save the simulation output data in a form suitable forimporting into for example MS-Excel• or (B)o Provide a reasonably realistic view on a PC display of the car running in thecircuit derived form of information provided by your simulation, either in theform of what the driver may see as they drive round the circuit or a birds-eyeview of the car being driven round the circuit. In either case, scenery around thecircuit can be omitted.In order to be considered for a pass at First Class Honours standard on this project, a studentmust give evidence of having adequately attempted to attain the following objectives:• Eithero Both of tasks A and B required for Second Class Honours• or
31. o All of the tasks required for Second Class Honours under A above, ando Developing an interface to the data provided by GPS and other data saved inelectronic decides in the car itself during a lap of the circuit, and providing UHRacing personnel with information about how well the driver’s actualperformance in each part of the circuit compares with the theoretical optimal lapwhich your simulation will have computed2• oro All of the tasks required for Second Class Honours under A above, ando Developing statistically- and/or AI-based mechanisms which will help UHRacing personnel optimise some of the many design and set-up parameters whichaffect the car’s performance on race day.Note: since this project is intended to support UH Racing’s efforts, the direction of which may changeduring the development and testing of this year’s car, it is possible that during the year other objectivesmay turn out to be more important to them than those listed above at Second and First Class Honoursstandards. Project work on these alternatives will be acceptable subject to the agreement of UH racingand of the project supervisor.Additional information:UH Racing’s home page is at http://www.uhracing.co.uk/General information about Formula Student can be found here:http://www.formulastudent.com/To give you an idea of the type of things UH Racing would like, have a look this free lapsimulator provided by Bosch:http://www.bosch-motorsport.de/content/language2/html/3050.htm 1. Project Title A Facebook application for questionnaires and opinion polls 2. Aim of the Project & 3. Background Information and User Requirements I think it would be cool to be able to add a questionnaire to a facebook page. Then you could find out that 92% of males dont like your new hairstyle, but 69% of females have the same favourite movie as you have. Cool maybe, but not easy I suspect -- definitely involves programming -- the API seems to be based on PHP. Facbook is a popular "social networking" system. You can add applications to your facebook page, see http://www.facebook.com/help.php?page=12 for more info on this. It may be that someone has already build a questionnaire application, but even if so you could build your own. Eventually, you should be able to easily create new questionnaires, an the results should be updated on everybodys page in real time. Apart from the obvious development process, there are lots of interesting and subtle privacy
32. and security issues that you could look at if you have time. • Implement a simple Facebook application that doesnt do anything. • Implement a Facebook application that does a fixed questionnaire.4. Basic Project tasksIn order to be considered for a pass at Third Class Honours standard on this project, a studentmust give evidence of having adequately attempted to attain the following objectives. It isexpected that most students attempting this project would have completed the following byChristmas.