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: Magic board games (hardware project) Find a way to create a ‘magic’ board game in which a computer opponent moves the pieces invisibly, perhaps with magnets moving under the board. A significant amount of mechanical assembly and experimentation is likely to be necessary. This will be achieved using stepper motors, rotary encoders, and construction using a simple prototyping toolset such as Lego Technic.
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 "It would be useful if a first year computer scientist could rapidly prototype a circuit on an Altera DE2 FPGA board without using a hardware description language. The user interface might be presented as a graphical circuit entry system allowing the user to select components from a library (including, 2- and 3-input NOR and NAND gates, RS-latch and D flip-flop) and place them on the screen. Additional components like RAMs and ROMs would be desirable. Switches and LEDs that are present on the DE2 board should be present in the graphical environment to allow circuits to interfaced to them. Saving and loading of circuits is desirable. Circuits created should be simulated on the DE2 board. The transfer of the circuit to the FPGA simulation might happen in real-time (i.e. any change in the circuit is reflected "instantly" in the simulation). The simulation might be performed in software by a soft processor on the FPGA. For a high performance implementation, the graphical circuit might also be written out as Verilog and then synthesised for direct implementation on the FPGA."
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: Pocket Power Predictor It's irritating when your mobile shows full battery power for 3 whole days, then suddenly drops to one flashing red bar as you're halfway through a text. It's even more annoying when that happens to your planet. The aim of this project is to design a pocket visualisation, running on Google Android, that will help you anticipate your future energy problems on all scales, from the phone itself, to your home heating and travel needs. The visualisation should also scale up to global problems, when you need rapid data for political debate. Use as many data sources as possible - RSS feeds, live updates on international agency websites, and the many sources of information from www.withouthotair.com
Golf: Statistical Persuasion Maker A well-presented statistical argument is very valuable. Many politicians, policy makers and members of the public find it hard to understand risk factors, likelihood, and what the priorities for action should be in an uncertain world. But Al Gore's film An Inconvenient Truth showed the power of well-designed statistical graphics. Web sites like http://www.gapminder.org/ help people explore political and economic statistics, and sites like http://www.understandinguncertainty.org/ help people understand statistical principles through animations of risk data. But it is hard for regular people to create sites like these (it usually involves a lot of Flash programming). Your task is to create an authoring tool that helps people communicate statistical arguments by creating interactive online graphics. They might get help to structure the arguments, as in http://compendium.open.ac.uk/. They should also be able to collect their own data from online sources, for example using data mashup tools like Yahoo Pipes.
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 for Scholars Businesses are rapidly moving to adopt ‘web 2.0’ approaches for product forums, marketing and on. Could such techniques improve academic 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 academics, 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.
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: Graphical Shared Wiki Editor TinyMCE is a platform independent WYSIWYG editor for HTML that is a popular component of web content management systems. A typical application is a wiki-style environment, allowing users to click on a button in the page, after which their browser loads an editor window containing the page content, with formatting controls that save the resulting changes as HTML. The disadvantage of TinyMCE is that it doesn't allow multiple users to make edits at the same time (it would be necessary to handle contention between users), and it doesn't support advanced diagrammatic elements such as SVG. Your task is to make a multi-user collaborative editor that runs within a browser and generates wiki pages incorporating HTML and SVG.