Alpha: Animating Algorithms Much of practical computer science can be explained by drawing boxes and arrows that represent data structures. The content of the boxes and the connectivity of the lines then changes as an algorithm proceeds. This is difficult to achieve using whiteboards or drawing programs. What is needed is a program that produces slow-motion animated films of data structures and algorithms at work. The system should provide a general mechanism for writing an animation script and connecting it to an implemented algorithm. The user should be able to set up the initial data for a variety of algorithms and then step through to watch their operation. It would be convenient if the resulting movie can be exported in a form suitable for viewing online or including in a PowerPoint presentation.
Bravo: Book Bluffer's Spectacles (hardware project) Don't you hate it when somebody is displaying a new book, but you haven't got anything clever to say about it? One day soon, the frame of your spectacles will scan the barcode, then look up the book on the web in order to display an intelligent quote on the inside of your lenses. Your job is to prototype this system. Implement a bar-code reader using the DE2 board, then deduce the ISBN number and access an online book review. Some useful information can be found at: http://bic.org.uk/isbnbarcode-rfid.html
Charlie: Wednesday Mash-up The public seminars presented at the Computer Laboratory on Wednesday afternoons are accessible online from a video archive. At present, this archive allows viewers to replay the talk, but not index, tag, edit, or link it to other research and teaching material. Design an interactive tool that would allow a wider community of users to restructure and reorganise archived seminars for a greater variety of browsing, viewing and linking. Your tool need not be integrated into a web browser, or use web services for video streaming. A reasonable approach would be to make a special Java client (perhaps based on Java Media Framework) that allows users to download a whole video file and add local structured content that can later be viewed by others using the same client.
Delta: Digital Logic Simulator First year computer scientists sometimes have difficulty working out how Boolean logic and finite state machines work. It might be helpful to have a simple graphical simulator that would allow a small circuit diagram to be sketched and then exercised with test signals, and the resulting changes in signals displayed. The user interface should allow the user to select components from a library (including, say, 2- and 3-input NOR and NAND gates, RS-, JK-, D- and T-type flip-flops) and place them on the screen together with switches and LEDs. Connections could then be made between these by drawing lines between specified pins on the components. It would be helpful if the circuit could be saved to a file and restored so that a user can return to an earlier piece of work after a break.
Echo: Controllers for Kids (hardware project) The UK school syllabus for Design and Technology encourages kids to gain experience of programming robots and other digitally-controlled gadgets. Those student projects are usually limited by slow hardware and clunky programming interfaces. Your task is to create a compiler that will allow Sixth Form D&T students to draw a state machine on their PC screen, then compile it into a form that can be downloaded and executed on a DE2 board, either as interpreted transition tables or by direct output of ARM instructions. You should build a physical demonstrator machine that shows off the versatility of your control system.
Foxtrot: Next-Generation Museum Guide Visitors to the Fitzwilliam Museum in Cambridge can currently use a handheld eGuide, deployed on PDAs with location sensing infrastructure from local company Hypertag. Your task is to design a next-generation guide aimed at an audience of eight-year olds. The device should enable users to guide the rest of their family around the Museum during their visit. It should also allow users to construct a thematic story inspired by a selection of museum objects. By combining the user's narrative with multimedia material, the system will automatically generate a personalised (HTML-based) videogame that users and their friends can later play online.
Golf: Intelligent Schedule Negotiator Scheduling problems are notoriously hard. In Cambridge, they are even harder, because Colleges and Departments see the world in different ways. The impact is severe for NatSci Part 1A students, who must take afternoon practical courses managed by multiple departments, under constraints set by multiple colleges. Your task is to design a system that will allow users to propose and negotiate their various constraints, with sophisticated conflict resolutions supported by artificial intelligence techniques. The first stage in the project will require brief interviews with representative users, including some College Directors of Studies, and Part 1A teaching coordinators.
Hotel: Ring around the World Design a web application that uses the Google Maps API to show the distribution of Computer Lab Ring members around the world. Include a secure protocol such that (with mutual consent) two members can exchange contact details when they live within a specified travelling distance, or are visiting the same location. All personal data must otherwise be securely protected, under the control of a database administrator.
India: Web 2.0 Research Gateway Social networking and user-driven content are making everyone excited about “Web 2.0”. Could such techniques improve University research? The talks.cam system allows researchers across Cambridge to generate and access descriptions of the latest research. However, talks.cam doesn't include user recommendations, ratings, tagging and the other advanced features you'd expect in Web 2.0 content delivery systems such as Flickr, YouTube and so on. Using the XML interfaces to talks.cam, design a system that offers students, prospective students, and the outside world, direct insight to whatever research is most relevant or exciting to them. See: http://talks.cam.ac.uk/document/specification
Juliet: Pipe Dreams Design an online fantasy game in which players compete to reach items of treasure inside a three-dimensional maze of pipes and tanks. The display need not be three dimensional (it might use 2-D perspective renderings of the pipe interiors), but should give advice on which players have the best chance of reaching each treasure, based on speeds with which players can run around corners of varying radius, climb ladders versus sliding down, etc. Although players only see the inside of the maze, you can create a 3-D visualisation for use by a Game Master, by exporting the whole maze description to a rendering engine.
Kilo: Programming for Artists Seymour Papert’s Logo, Steven Tanimoto’s Pixel Calculator, and John Maeda’s Design By Numbers have all tried to teach basic computational concepts by focusing on image manipulation. Your task is to design a new educational language, suitable for use by first-year art or architecture students. Your system should offer a sufficiently engaging aesthetic experience to keep art students interested at least until they have acquired concepts sufficient to create a simple interactive web animation or illustrated talk.
Lima: Street Video Wall (hardware project) The public display screens in the Gates Building “Street” are informative, but don’t showcase the abilities of our students. Using the DE2 teaching boards, it should be possible to create a “video wall” that accepts VNC display commands and outputs a large display across multiple screens. Start with four screens, driven from four DE2 boards. Provide a software application interface suitable for use in a student design competition to create an interactive display that will impress visitors. The application interface might also provide audio, motion, SMS, web or environment sensing via the DE2 for multimodal interaction.
Mike: Mobile Map Service One of the challenges of mobile information devices is that the available screen space is so much smaller than on desktop systems. This project is to create a restaurant, shop and entertainment finding service that provides users with attractive maps showing how to get to their advertising clients when users have a web browser, but simpler text instructions (“go left next corner” etc.) when accessed from a mobile phone. Information about the advertising clients, their location, and layout of local streets will be stored in XML format. Simple graphical maps will be constructed from this information by a Java applet that can be incorporated in web pages. SMS users will be able to access the same information, but rendered as a series of brief text instructions.
November: Sampling Synthesiser (hardware project) Bands that use sampled sounds often want to adjust the pitch, or even play a tune, as in novelty tracks where a barking dog sings Happy Birthday. The DE2 board can be used for simple signal processing. Your task is to turn it into a synthesiser, using sound captured and downloaded from a CD, so that it can be played directly as a musical instrument or used as a remote synthesiser.
Oscar: Smart Poster Picker Many people like to buy poster reproductions of famous artworks. This could be done by using a mobile phone to take a picture of the painting they would like to hang on their wall, and sending an MMS message to a poster distribution service. Design a system that retrieves and ranks probable matching candidates from a database of posters, based on a mobile phone image. A simple metric for matching might be the relative averages or variances of hue in each quadrant of the image. Where the photo is not good enough to provide an effective match, users should also be able to navigate through thumbnails of the available posters, arranged according to the match metric for aesthetic graphical navigation.