2006

From Computer Laboratory Group Design Projects
Jump to navigationJump to search

Alpha: Animating Algorithms Much of practical computer science can be explained by drawing boxes and arrows that represent data structures. The contents 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 the algorithm and then step through to watch its operation. Auxiliary displays showing the time and space requirements of the algorithm might also be shown. The system should be demonstrated by animating at least five different algorithms for two different problems – say three sorting algorithms and two heap management routines.

Bravo: Book Bluffer's Spectacles 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 EPXA1 teaching board, then deduce the ISBN number and access an online book review. Some useful information can be found at: http://www.bic.org.uk/bar4book.html Special resources: some technical assistance, including advice on selection and purchase of electronic components, can be provided by Arnab.Banerjee@cl.cam.ac.uk.

Charlie: Reconstructing Sketchpad Sketchpad was the first interactive graphics program, created by Ivan Sutherland for the TX-2 computer at the MIT Lincoln Labs. It was one of the most influential programs ever written, and provided features that are still not found in commercial products 40 years later. Your goal is to simulate (as a “virtual TX-2” implemented in Java) as much of the internal architecture as possible. Your system should reproduce the original user interface of Sketchpad, and also provide a visualization of the internal state. Sutherland’s Sketchpad system is described in his PhD thesis, available online at: http://www.cl.cam.ac.uk/TechReports/UCAM-CL-TR-574.pdf

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: Extensible Conference Management System Create a system to manage the paper-submission and review process for an academic conference, workshop or journal. You should aim to improve on existing systems such as the Editor’s Assistant (http://edas.info/doc/) and ConfMan (http://www.ifi.uio.no/confman/demo/). The system must be easily usable by authors, referees and editors – with a wide range of computing skill levels.

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. Special resources: Team members will have the opportunity to visit the Fitzwilliam to discuss this project with museum staff. However there is no need to base your demonstrated system on exhibits or multimedia material from the Fitzwilliam. It may also be possible for the client to arrange loan of a suitable PDA platform, and access to Hypertag technology.

Golf: Distributed Game Take any popular board or card game (preferably one not encumbered with patent or copyright restrictions) and make a computer version of it that can be played over a network. Go and chess are possibilities, but something like Mah-jong or poker with more than two players could be better. The system must enforce the rules and manage the shared state of the game, keeping it consistent between the machines, and display it attractively through a graphical user interface. Ideally, the system should survive failure of some of the participants, and it should be possible for players to join and leave the game at any time. An automatic player can also be provided to make up numbers when there are not enough real players.

Hotel: Student Comfort System The student workstation area in the Gates Building is subject to substantial variations in temperature and humidity, especially during the annual group project demonstration day. Your task is to design an environmental control system that will monitor and predict changing comfort levels. This should be done sufficiently accurately that corrective action can be taken before conditions become too extreme for passive airflow modifications to be effective. You will use a Squirrel environmental datalogger, with sensors to record current environmental conditions and count the number of people entering and leaving. Based on your recordings of the effects of occupancy and incident sunlight, you should develop a predictive model that will then be used to regulate conditions by managing airflow on the final project demonstration day. Special resources: the project client, an engineer from Grant Instruments, will loan a Squirrel datalogger, together with documentation and suitable sensors.

India: Synthetic Sudoku A group project coordinator is addicted to Sudoku. One puzzle a day is no longer enough, so, like many others, he would like an automated Sudoku puzzle generator. This would also allow the generated puzzles to be completed on-screen. If the player gets stuck, he should be able to request a hint at any time. It should be possible to save and restore work in progress. The system should also provide a competition mode, in which two players work on the same puzzle, with each player’s display indicating progress made by the other.

Juliet: 3D Puzzle Experience A local entrepreneur has designed a new logic puzzle, similar to Peter's Black Hole, but with blocks that change colour when they move. Your task is to create a Java applet that could be used to model and demonstrate the behaviour of the new puzzle. It should give applet users a pleasurable experience of understanding and solving the puzzle, and could include animated visualisation of an automatic puzzle-solver working in 3-D. Information on similar puzzles and Java applets is available from Jaap's Puzzle Page: www.geocities.com/jaapsch/puzzles. Special resources: a description of the puzzle can be obtained from the project client, Kelvin Stott <kelvin.stott@btinternet.com>

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 the concepts in sections 4.1 to 4.4 of Arthur Norman's Java notes. (You don't have to use Java syntax.)

Lima: Last-Resort PWF Expansion Security and other administrative considerations cause PWF administrators to take a conservative view of system expansion. This can be inconvenient for more adventurous group projects, as can be confirmed by attempting to connect Bluetooth or other exotic USB devices to a PWF workstation. In the last resort, the only output channel left might be the display screen! Your task is to devise a data communications channel that sends data via the screen to an EPXA1 teaching board, using one or more light sensing devices, along with a suitable transmission protocol. Special resources: some technical assistance, including advice on selection and purchase of electronic components, can be provided by Arnab.Banerjee@cl.cam.ac.uk.

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. Wireless users will be able to access the same information, but rendered as a series of brief text instructions.

November: Sampling Synthesiser 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 EPXA1 teaching 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. Special resources: some technical assistance, including advice on selection and purchase of electronic components, can be provided by Jonathan.May@cl.cam.ac.uk.

Oscar: Optical Tomography We have some hardware to scan the convex surfaces of objects. The hardware consists of a turntable on top of which the object is placed. On one side of the turntable is an array of LED emitters, and on the other side is a set of optical receivers. By sequencing the LEDs, one can produce a sequence of shadows which are detected by the optical receivers. Rotating the object allows further sets of shadows to be produced. These shadows are then analysed using tomography techniques to determine the shape of the object being scanned. You should use an EPXA1 teaching board to drive the turntable via a stepper motor, to scan the LEDs and optical receivers, and provide video output. You should also implement the tomography code on the ARM processor embedded in the teaching board. Special resources: some technical assistance, including advice on selection and purchase of electronic components, can be provided by Jonathan.May@cl.cam.ac.uk.